koppler 0.0.3 → 0.0.4
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/README.md +12 -8
- package/dist/.built +1 -1
- package/dist/engine/claude-title.js +58 -0
- package/dist/engine/claude-title.js.map +1 -0
- package/dist/engine/listen.js +13 -2
- package/dist/engine/listen.js.map +1 -1
- package/dist/page/assets/{index-WRqrTxE9.js → index-CSzjiE0H.js} +1 -1
- package/dist/page/assets/index-DntXDvS8.css +1 -0
- package/dist/page/index.html +2 -2
- package/dist/server/status.js +9 -2
- package/dist/server/status.js.map +1 -1
- package/package.json +2 -1
- package/skills/koppler-run/VERSION +1 -1
- package/dist/page/assets/index-Dq45jswH.css +0 -1
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
`).slice(-300).join(`
|
|
5
5
|
`)}clear(){this.#t=[],pc(`debug-clear`,{})}watch(){try{N(this.#e,localStorage.getItem(`koppler-debug`)===`on`)}catch{}let e={capture:!0};addEventListener(`click`,e=>{e.target instanceof Element&&!hc(e.target)&&this.note(`click`,mc(e.target))},e),addEventListener(`change`,e=>{let t=e.target;if(!(t instanceof Element)||hc(t))return;let n=t instanceof HTMLInputElement&&t.type===`checkbox`?String(t.checked):t instanceof HTMLSelectElement||t instanceof HTMLInputElement&&t.type===`radio`?t.value:`(typed)`;this.note(`change`,mc(t),n)},e),addEventListener(`keydown`,e=>{let t=e.target instanceof Element&&!!e.target.closest(`input:not([type="radio"]):not([type="checkbox"]), textarea, select, [contenteditable]`);if(!e.metaKey&&!e.ctrlKey&&t||e.key.length>12)return;let n=[e.metaKey&&`Cmd`,e.ctrlKey&&`Ctrl`,e.shiftKey&&`Shift`,e.altKey&&`Alt`,e.key];this.note(`key`,n.filter(Boolean).join(`+`))},e),addEventListener(`error`,e=>{this.note(`error`,e.message||`page error`,e.filename?`${e.filename.split(`/`).pop()??``}:${String(e.lineno)}`:``)}),addEventListener(`unhandledrejection`,e=>{let t=e.reason,n=t instanceof Error?t.message:typeof t==`string`?t:``;this.note(`error`,n||`unhandled rejection`)}),addEventListener(`pagehide`,()=>{this.flush()})}},$=new class{#e=M(null);get now(){return z(this.#e)}set now(e){N(this.#e,e)}#t;show(e,t=`message`,n){clearTimeout(this.#t),gc.note(t,e),this.now={text:e,warning:t===`warning`,...n&&{action:n}},t!==`warning`&&(this.#t=setTimeout(()=>this.now=null,n?7e3:2600))}hide(){clearTimeout(this.#t),this.now=null}},_c={play:so,database:ro,sprout:fo,refresh:lo,trash:go,terminal:mo,upload:vo,download:ao};async function vc(e,t={}){let n=await Xs(`app-command`,{app:e.app,command:e.key,args:t});return`error`in n?n.error:($.show(`${e.command.label} started on ${e.appName}. The inbox says when it ends.`),null)}async function yc(e,t=!1){let n=await Xs(`open-terminal`,{app:e,env:Z.env,query:t});`error`in n?$.show(n.error,`warning`):$.show(t?`psql opens in a Terminal window.`:`A terminal opens in ${Z.nameOf(e)}'s clone.`)}var bc=H(`<p class="ask svelte-gr1w3a"> </p>`),xc=H(`<span class="opt svelte-gr1w3a">optional</span>`),Sc=H(`<option> </option>`),Cc=H(`<select class="svelte-gr1w3a"></select>`),wc=H(`<input class="svelte-gr1w3a"/>`),Tc=H(`<label class="svelte-gr1w3a"><span> <!></span> <!></label>`),Ec=H(`<button class="x svelte-gr1w3a" type="button" aria-label="Close"><!></button> <h2 id="command-title" class="svelte-gr1w3a"> </h2> <!> <form class="svelte-gr1w3a"><!> <p class="error svelte-gr1w3a" role="alert"> </p> <div class="acts svelte-gr1w3a"><button type="button" class="svelte-gr1w3a">Cancel</button> <button type="submit"> </button></div></form>`,1),Dc=H(`<dialog aria-labelledby="command-title" class="svelte-gr1w3a"><!></dialog>`);function Oc(e,t){k(t,!0);let n=M(void 0),r=M(null),i=M(pn({})),a=M(``),o=M(!1);function s(e){N(r,e),N(i,Object.fromEntries((e.command.args??[]).map(e=>[e.name,e.choices?.[0]??``])),!0),N(a,``),z(n)?.showModal()}let c=async e=>{e.preventDefault(),z(r)&&(N(o,!0),N(a,await vc(z(r),z(i))??``,!0),N(o,!1),z(a)||z(n)?.close())};var l={open:s},u=Dc(),d=P(u),f=e=>{let t=j(()=>z(r));var s=Ec(),l=F(s);X(P(l),{get of(){return to},size:14}),O(l);var u=L(l,2),d=I(u),f=L(u,2),p=e=>{var n=bc(),r=I(n,!0);R(()=>W(r,z(t).command.confirm)),U(e,n)};G(f,e=>{z(t).command.confirm&&e(p)});var m=L(f,2),h=P(m);K(h,17,()=>z(t).command.args??[],e=>e.name,(e,t)=>{var n=Tc(),r=P(n),a=P(r,!0),o=L(a),s=e=>{U(e,xc())};G(o,e=>{z(t).required||e(s)}),O(r);var c=L(r,2),l=e=>{var n=Cc();K(n,20,()=>z(t).choices??[],e=>e,(e,t)=>{var n=Sc(),r=I(n,!0),i={};R(()=>{W(r,t),i!==(i=t)&&(n.value=(n.__value=i)??``)}),U(e,n)}),O(n),ta(n),na(n,()=>z(i)[z(t).name],e=>z(i)[z(t).name]=e),U(e,n)},u=e=>{var n=wc();ma(n),R(()=>{n.required=!!z(t).required,q(n,`inputmode`,z(t).type===`number`?`decimal`:void 0),q(n,`pattern`,z(t).type===`number`?`-?\\d+(\\.\\d+)?`:void 0)}),Sa(n,()=>z(i)[z(t).name],e=>z(i)[z(t).name]=e),U(e,n)};G(c,e=>{z(t).type===`choice`?e(l):e(u,-1)}),O(n),R(()=>W(a,z(t).label??z(t).name)),U(e,n)});var g=L(h,2),_=I(g,!0),v=L(g,2),y=P(v),b=L(y,2);let x;var S=I(b,!0);O(v),O(m),R(()=>{W(d,`${z(t).command.label??``} on ${z(t).appName??``}`),W(_,z(a)),x=Ji(b,1,`go svelte-gr1w3a`,null,x,{danger:!!z(t).command.confirm}),b.disabled=z(o),W(S,z(t).command.label)}),V(`click`,l,()=>z(n)?.close()),B(`submit`,m,c),V(`click`,y,()=>z(n)?.close()),U(e,s)};return G(d,e=>{z(r)&&e(f)}),O(u),Ma(u,e=>N(n,e),()=>z(n)),U(e,u),A(l)}Zr([`click`]);var kc=new Set([`$$slots`,`$$events`,`$$legacy`]);function Ac(e,t){let n=J(t,kc),r={name:`panel-left`,size:24,node:[[`rect`,{width:`18`,height:`18`,x:`3`,y:`3`,rx:`2`}],[`path`,{d:`M9 3v18`}]],aliases:[`sidebar`]};$a(e,Ba(()=>n,{get icon(){return r}}))}var jc=new Set([`$$slots`,`$$events`,`$$legacy`]);function Mc(e,t){let n=J(t,jc),r={name:`square`,size:24,node:[[`rect`,{width:`18`,height:`18`,x:`3`,y:`3`,rx:`2`}]]};$a(e,Ba(()=>n,{get icon(){return r}}))}var Nc=new Set([`$$slots`,`$$events`,`$$legacy`]);function Pc(e,t){let n=J(t,Nc),r={name:`settings`,size:24,node:[[`path`,{d:`M9.671 4.136a2.34 2.34 0 0 1 4.659 0 2.34 2.34 0 0 0 3.319 1.915 2.34 2.34 0 0 1 2.33 4.033 2.34 2.34 0 0 0 0 3.831 2.34 2.34 0 0 1-2.33 4.033 2.34 2.34 0 0 0-3.319 1.915 2.34 2.34 0 0 1-4.659 0 2.34 2.34 0 0 0-3.32-1.915 2.34 2.34 0 0 1-2.33-4.033 2.34 2.34 0 0 0 0-3.831A2.34 2.34 0 0 1 6.35 6.051a2.34 2.34 0 0 0 3.319-1.915`}],[`circle`,{cx:`12`,cy:`12`,r:`3`}]]};$a(e,Ba(()=>n,{get icon(){return r}}))}function Fc(e,t){let n=Y(t,`size`,3,14);X(e,{get of(){return Pc},get size(){return n()}})}var Ic=H(`<span class="cmd nodrag nopan svelte-1mrkr86"><code class="svelte-1mrkr86"> </code> <button type="button" title="Copy this command" class="svelte-1mrkr86"> </button></span>`);function Lc(e,t){k(t,!0);let n=M(!1),r=async()=>{await navigator.clipboard.writeText(t.command).then(()=>!0,()=>!1)?(N(n,!0),setTimeout(()=>N(n,!1),1500)):$.show(`Copy is blocked here. Select the command and copy it.`,`warning`)};var i=Ic(),a=P(i),o=I(a,!0),s=L(a,2),c=I(s,!0);O(i),R(()=>{W(o,t.command),q(s,`aria-label`,t.label),W(c,z(n)?`Copied`:`Copy`)}),V(`click`,s,r),U(e,i),A()}Zr([`click`]);var Rc={value:()=>{}};function zc(){for(var e=0,t=arguments.length,n={},r;e<t;++e){if(!(r=arguments[e]+``)||r in n||/[\s.]/.test(r))throw Error(`illegal type: `+r);n[r]=[]}return new Bc(n)}function Bc(e){this._=e}function Vc(e,t){return e.trim().split(/^|\s+/).map(function(e){var n=``,r=e.indexOf(`.`);if(r>=0&&(n=e.slice(r+1),e=e.slice(0,r)),e&&!t.hasOwnProperty(e))throw Error(`unknown type: `+e);return{type:e,name:n}})}Bc.prototype=zc.prototype={constructor:Bc,on:function(e,t){var n=this._,r=Vc(e+``,n),i,a=-1,o=r.length;if(arguments.length<2){for(;++a<o;)if((i=(e=r[a]).type)&&(i=Hc(n[i],e.name)))return i}else{if(t!=null&&typeof t!=`function`)throw Error(`invalid callback: `+t);for(;++a<o;)if(i=(e=r[a]).type)n[i]=Uc(n[i],e.name,t);else if(t==null)for(i in n)n[i]=Uc(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 Bc(e)},call:function(e,t){if((i=arguments.length-2)>0)for(var n=Array(i),r=0,i,a;r<i;++r)n[r]=arguments[r+2];if(!this._.hasOwnProperty(e))throw Error(`unknown type: `+e);for(a=this._[e],r=0,i=a.length;r<i;++r)a[r].value.apply(t,n)},apply:function(e,t,n){if(!this._.hasOwnProperty(e))throw Error(`unknown type: `+e);for(var r=this._[e],i=0,a=r.length;i<a;++i)r[i].value.apply(t,n)}};function Hc(e,t){for(var n=0,r=e.length,i;n<r;++n)if((i=e[n]).name===t)return i.value}function Uc(e,t,n){for(var r=0,i=e.length;r<i;++r)if(e[r].name===t){e[r]=Rc,e=e.slice(0,r).concat(e.slice(r+1));break}return n!=null&&e.push({name:t,value:n}),e}var Wc={svg:`http://www.w3.org/2000/svg`,xhtml:`http://www.w3.org/1999/xhtml`,xlink:`http://www.w3.org/1999/xlink`,xml:`http://www.w3.org/XML/1998/namespace`,xmlns:`http://www.w3.org/2000/xmlns/`};function Gc(e){var t=e+=``,n=t.indexOf(`:`);return n>=0&&(t=e.slice(0,n))!==`xmlns`&&(e=e.slice(n+1)),Wc.hasOwnProperty(t)?{space:Wc[t],local:e}:e}function Kc(e){return function(){var t=this.ownerDocument,n=this.namespaceURI;return n===`http://www.w3.org/1999/xhtml`&&t.documentElement.namespaceURI===`http://www.w3.org/1999/xhtml`?t.createElement(e):t.createElementNS(n,e)}}function qc(e){return function(){return this.ownerDocument.createElementNS(e.space,e.local)}}function Jc(e){var t=Gc(e);return(t.local?qc:Kc)(t)}function Yc(){}function Xc(e){return e==null?Yc:function(){return this.querySelector(e)}}function Zc(e){typeof e!=`function`&&(e=Xc(e));for(var t=this._groups,n=t.length,r=Array(n),i=0;i<n;++i)for(var a=t[i],o=a.length,s=r[i]=Array(o),c,l,u=0;u<o;++u)(c=a[u])&&(l=e.call(c,c.__data__,u,a))&&(`__data__`in c&&(l.__data__=c.__data__),s[u]=l);return new zu(r,this._parents)}function Qc(e){return e==null?[]:Array.isArray(e)?e:Array.from(e)}function $c(){return[]}function el(e){return e==null?$c:function(){return this.querySelectorAll(e)}}function tl(e){return function(){return Qc(e.apply(this,arguments))}}function nl(e){e=typeof e==`function`?tl(e):el(e);for(var t=this._groups,n=t.length,r=[],i=[],a=0;a<n;++a)for(var o=t[a],s=o.length,c,l=0;l<s;++l)(c=o[l])&&(r.push(e.call(c,c.__data__,l,o)),i.push(c));return new zu(r,i)}function rl(e){return function(){return this.matches(e)}}function il(e){return function(t){return t.matches(e)}}var al=Array.prototype.find;function ol(e){return function(){return al.call(this.children,e)}}function sl(){return this.firstElementChild}function cl(e){return this.select(e==null?sl:ol(typeof e==`function`?e:il(e)))}var ll=Array.prototype.filter;function ul(){return Array.from(this.children)}function dl(e){return function(){return ll.call(this.children,e)}}function fl(e){return this.selectAll(e==null?ul:dl(typeof e==`function`?e:il(e)))}function pl(e){typeof e!=`function`&&(e=rl(e));for(var t=this._groups,n=t.length,r=Array(n),i=0;i<n;++i)for(var a=t[i],o=a.length,s=r[i]=[],c,l=0;l<o;++l)(c=a[l])&&e.call(c,c.__data__,l,a)&&s.push(c);return new zu(r,this._parents)}function ml(e){return Array(e.length)}function hl(){return new zu(this._enter||this._groups.map(ml),this._parents)}function gl(e,t){this.ownerDocument=e.ownerDocument,this.namespaceURI=e.namespaceURI,this._next=null,this._parent=e,this.__data__=t}gl.prototype={constructor:gl,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 _l(e){return function(){return e}}function vl(e,t,n,r,i,a){for(var o=0,s,c=t.length,l=a.length;o<l;++o)(s=t[o])?(s.__data__=a[o],r[o]=s):n[o]=new gl(e,a[o]);for(;o<c;++o)(s=t[o])&&(i[o]=s)}function yl(e,t,n,r,i,a,o){var s,c,l=new Map,u=t.length,d=a.length,f=Array(u),p;for(s=0;s<u;++s)(c=t[s])&&(f[s]=p=o.call(c,c.__data__,s,t)+``,l.has(p)?i[s]=c:l.set(p,c));for(s=0;s<d;++s)p=o.call(e,a[s],s,a)+``,(c=l.get(p))?(r[s]=c,c.__data__=a[s],l.delete(p)):n[s]=new gl(e,a[s]);for(s=0;s<u;++s)(c=t[s])&&l.get(f[s])===c&&(i[s]=c)}function bl(e){return e.__data__}function xl(e,t){if(!arguments.length)return Array.from(this,bl);var n=t?yl:vl,r=this._parents,i=this._groups;typeof e!=`function`&&(e=_l(e));for(var a=i.length,o=Array(a),s=Array(a),c=Array(a),l=0;l<a;++l){var u=r[l],d=i[l],f=d.length,p=Sl(e.call(u,u&&u.__data__,l,r)),m=p.length,h=s[l]=Array(m),g=o[l]=Array(m);n(u,d,h,g,c[l]=Array(f),p,t);for(var _=0,v=0,y,b;_<m;++_)if(y=h[_]){for(_>=v&&(v=_+1);!(b=g[v])&&++v<m;);y._next=b||null}}return o=new zu(o,r),o._enter=s,o._exit=c,o}function Sl(e){return typeof e==`object`&&`length`in e?e:Array.from(e)}function Cl(){return new zu(this._exit||this._groups.map(ml),this._parents)}function wl(e,t,n){var r=this.enter(),i=this,a=this.exit();return typeof e==`function`?(r=e(r),r&&=r.selection()):r=r.append(e+``),t!=null&&(i=t(i),i&&=i.selection()),n==null?a.remove():n(a),r&&i?r.merge(i).order():i}function Tl(e){for(var t=e.selection?e.selection():e,n=this._groups,r=t._groups,i=n.length,a=r.length,o=Math.min(i,a),s=Array(i),c=0;c<o;++c)for(var l=n[c],u=r[c],d=l.length,f=s[c]=Array(d),p,m=0;m<d;++m)(p=l[m]||u[m])&&(f[m]=p);for(;c<i;++c)s[c]=n[c];return new zu(s,this._parents)}function El(){for(var e=this._groups,t=-1,n=e.length;++t<n;)for(var r=e[t],i=r.length-1,a=r[i],o;--i>=0;)(o=r[i])&&(a&&o.compareDocumentPosition(a)^4&&a.parentNode.insertBefore(o,a),a=o);return this}function Dl(e){e||=Ol;function t(t,n){return t&&n?e(t.__data__,n.__data__):!t-!n}for(var n=this._groups,r=n.length,i=Array(r),a=0;a<r;++a){for(var o=n[a],s=o.length,c=i[a]=Array(s),l,u=0;u<s;++u)(l=o[u])&&(c[u]=l);c.sort(t)}return new zu(i,this._parents).order()}function Ol(e,t){return e<t?-1:e>t?1:e>=t?0:NaN}function kl(){var e=arguments[0];return arguments[0]=this,e.apply(null,arguments),this}function Al(){return Array.from(this)}function jl(){for(var e=this._groups,t=0,n=e.length;t<n;++t)for(var r=e[t],i=0,a=r.length;i<a;++i){var o=r[i];if(o)return o}return null}function Ml(){let e=0;for(let t of this)++e;return e}function Nl(){return!this.node()}function Pl(e){for(var t=this._groups,n=0,r=t.length;n<r;++n)for(var i=t[n],a=0,o=i.length,s;a<o;++a)(s=i[a])&&e.call(s,s.__data__,a,i);return this}function Fl(e){return function(){this.removeAttribute(e)}}function Il(e){return function(){this.removeAttributeNS(e.space,e.local)}}function Ll(e,t){return function(){this.setAttribute(e,t)}}function Rl(e,t){return function(){this.setAttributeNS(e.space,e.local,t)}}function zl(e,t){return function(){var n=t.apply(this,arguments);n==null?this.removeAttribute(e):this.setAttribute(e,n)}}function Bl(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 Vl(e,t){var n=Gc(e);if(arguments.length<2){var r=this.node();return n.local?r.getAttributeNS(n.space,n.local):r.getAttribute(n)}return this.each((t==null?n.local?Il:Fl:typeof t==`function`?n.local?Bl:zl:n.local?Rl:Ll)(n,t))}function Hl(e){return e.ownerDocument&&e.ownerDocument.defaultView||e.document&&e||e.defaultView}function Ul(e){return function(){this.style.removeProperty(e)}}function Wl(e,t,n){return function(){this.style.setProperty(e,t,n)}}function Gl(e,t,n){return function(){var r=t.apply(this,arguments);r==null?this.style.removeProperty(e):this.style.setProperty(e,r,n)}}function Kl(e,t,n){return arguments.length>1?this.each((t==null?Ul:typeof t==`function`?Gl:Wl)(e,t,n??``)):ql(this.node(),e)}function ql(e,t){return e.style.getPropertyValue(t)||Hl(e).getComputedStyle(e,null).getPropertyValue(t)}function Jl(e){return function(){delete this[e]}}function Yl(e,t){return function(){this[e]=t}}function Xl(e,t){return function(){var n=t.apply(this,arguments);n==null?delete this[e]:this[e]=n}}function Zl(e,t){return arguments.length>1?this.each((t==null?Jl:typeof t==`function`?Xl:Yl)(e,t)):this.node()[e]}function Ql(e){return e.trim().split(/^|\s+/)}function $l(e){return e.classList||new eu(e)}function eu(e){this._node=e,this._names=Ql(e.getAttribute(`class`)||``)}eu.prototype={add:function(e){this._names.indexOf(e)<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 tu(e,t){for(var n=$l(e),r=-1,i=t.length;++r<i;)n.add(t[r])}function nu(e,t){for(var n=$l(e),r=-1,i=t.length;++r<i;)n.remove(t[r])}function ru(e){return function(){tu(this,e)}}function iu(e){return function(){nu(this,e)}}function au(e,t){return function(){(t.apply(this,arguments)?tu:nu)(this,e)}}function ou(e,t){var n=Ql(e+``);if(arguments.length<2){for(var r=$l(this.node()),i=-1,a=n.length;++i<a;)if(!r.contains(n[i]))return!1;return!0}return this.each((typeof t==`function`?au:t?ru:iu)(n,t))}function su(){this.textContent=``}function cu(e){return function(){this.textContent=e}}function lu(e){return function(){var t=e.apply(this,arguments);this.textContent=t??``}}function uu(e){return arguments.length?this.each(e==null?su:(typeof e==`function`?lu:cu)(e)):this.node().textContent}function du(){this.innerHTML=``}function fu(e){return function(){this.innerHTML=e}}function pu(e){return function(){var t=e.apply(this,arguments);this.innerHTML=t??``}}function mu(e){return arguments.length?this.each(e==null?du:(typeof e==`function`?pu:fu)(e)):this.node().innerHTML}function hu(){this.nextSibling&&this.parentNode.appendChild(this)}function gu(){return this.each(hu)}function _u(){this.previousSibling&&this.parentNode.insertBefore(this,this.parentNode.firstChild)}function vu(){return this.each(_u)}function yu(e){var t=typeof e==`function`?e:Jc(e);return this.select(function(){return this.appendChild(t.apply(this,arguments))})}function bu(){return null}function xu(e,t){var n=typeof e==`function`?e:Jc(e),r=t==null?bu:typeof t==`function`?t:Xc(t);return this.select(function(){return this.insertBefore(n.apply(this,arguments),r.apply(this,arguments)||null)})}function Su(){var e=this.parentNode;e&&e.removeChild(this)}function Cu(){return this.each(Su)}function wu(){var e=this.cloneNode(!1),t=this.parentNode;return t?t.insertBefore(e,this.nextSibling):e}function Tu(){var e=this.cloneNode(!0),t=this.parentNode;return t?t.insertBefore(e,this.nextSibling):e}function Eu(e){return this.select(e?Tu:wu)}function Du(e){return arguments.length?this.property(`__data__`,e):this.node().__data__}function Ou(e){return function(t){e.call(this,t,this.__data__)}}function ku(e){return e.trim().split(/^|\s+/).map(function(e){var t=``,n=e.indexOf(`.`);return n>=0&&(t=e.slice(n+1),e=e.slice(0,n)),{type:e,name:t}})}function Au(e){return function(){var t=this.__on;if(t){for(var n=0,r=-1,i=t.length,a;n<i;++n)a=t[n],(!e.type||a.type===e.type)&&a.name===e.name?this.removeEventListener(a.type,a.listener,a.options):t[++r]=a;++r?t.length=r:delete this.__on}}}function ju(e,t,n){return function(){var r=this.__on,i,a=Ou(t);if(r){for(var o=0,s=r.length;o<s;++o)if((i=r[o]).type===e.type&&i.name===e.name){this.removeEventListener(i.type,i.listener,i.options),this.addEventListener(i.type,i.listener=a,i.options=n),i.value=t;return}}this.addEventListener(e.type,a,n),i={type:e.type,name:e.name,value:t,listener:a,options:n},r?r.push(i):this.__on=[i]}}function Mu(e,t,n){var r=ku(e+``),i,a=r.length,o;if(arguments.length<2){var s=this.node().__on;if(s){for(var c=0,l=s.length,u;c<l;++c)for(i=0,u=s[c];i<a;++i)if((o=r[i]).type===u.type&&o.name===u.name)return u.value}}else{for(s=t?ju:Au,i=0;i<a;++i)this.each(s(r[i],t,n));return this}}function Nu(e,t,n){var r=Hl(e),i=r.CustomEvent;typeof i==`function`?i=new i(t,n):(i=r.document.createEvent(`Event`),n?(i.initEvent(t,n.bubbles,n.cancelable),i.detail=n.detail):i.initEvent(t,!1,!1)),e.dispatchEvent(i)}function Pu(e,t){return function(){return Nu(this,e,t)}}function Fu(e,t){return function(){return Nu(this,e,t.apply(this,arguments))}}function Iu(e,t){return this.each((typeof t==`function`?Fu:Pu)(e,t))}function*Lu(){for(var e=this._groups,t=0,n=e.length;t<n;++t)for(var r=e[t],i=0,a=r.length,o;i<a;++i)(o=r[i])&&(yield o)}var Ru=[null];function zu(e,t){this._groups=e,this._parents=t}function Bu(){return new zu([[document.documentElement]],Ru)}function Vu(){return this}zu.prototype=Bu.prototype={constructor:zu,select:Zc,selectAll:nl,selectChild:cl,selectChildren:fl,filter:pl,data:xl,enter:hl,exit:Cl,join:wl,merge:Tl,selection:Vu,order:El,sort:Dl,call:kl,nodes:Al,node:jl,size:Ml,empty:Nl,each:Pl,attr:Vl,style:Kl,property:Zl,classed:ou,text:uu,html:mu,raise:gu,lower:vu,append:yu,insert:xu,remove:Cu,clone:Eu,datum:Du,on:Mu,dispatch:Iu,[Symbol.iterator]:Lu};function Hu(e){return typeof e==`string`?new zu([[document.querySelector(e)]],[document.documentElement]):new zu([[e]],Ru)}function Uu(e){let t;for(;t=e.sourceEvent;)e=t;return e}function Wu(e,t){if(e=Uu(e),t===void 0&&(t=e.currentTarget),t){var n=t.ownerSVGElement||t;if(n.createSVGPoint){var r=n.createSVGPoint();return r.x=e.clientX,r.y=e.clientY,r=r.matrixTransform(t.getScreenCTM().inverse()),[r.x,r.y]}if(t.getBoundingClientRect){var i=t.getBoundingClientRect();return[e.clientX-i.left-t.clientLeft,e.clientY-i.top-t.clientTop]}}return[e.pageX,e.pageY]}var Gu={passive:!1},Ku={capture:!0,passive:!1};function qu(e){e.stopImmediatePropagation()}function Ju(e){e.preventDefault(),e.stopImmediatePropagation()}function Yu(e){var t=e.document.documentElement,n=Hu(e).on(`dragstart.drag`,Ju,Ku);`onselectstart`in t?n.on(`selectstart.drag`,Ju,Ku):(t.__noselect=t.style.MozUserSelect,t.style.MozUserSelect=`none`)}function Xu(e,t){var n=e.document.documentElement,r=Hu(e).on(`dragstart.drag`,null);t&&(r.on(`click.drag`,Ju,Ku),setTimeout(function(){r.on(`click.drag`,null)},0)),`onselectstart`in n?r.on(`selectstart.drag`,null):(n.style.MozUserSelect=n.__noselect,delete n.__noselect)}var Zu=e=>()=>e;function Qu(e,{sourceEvent:t,subject:n,target:r,identifier:i,active:a,x:o,y:s,dx:c,dy:l,dispatch:u}){Object.defineProperties(this,{type:{value:e,enumerable:!0,configurable:!0},sourceEvent:{value:t,enumerable:!0,configurable:!0},subject:{value:n,enumerable:!0,configurable:!0},target:{value:r,enumerable:!0,configurable:!0},identifier:{value:i,enumerable:!0,configurable:!0},active:{value:a,enumerable:!0,configurable:!0},x:{value:o,enumerable:!0,configurable:!0},y:{value:s,enumerable:!0,configurable:!0},dx:{value:c,enumerable:!0,configurable:!0},dy:{value:l,enumerable:!0,configurable:!0},_:{value:u}})}Qu.prototype.on=function(){var e=this._.on.apply(this._,arguments);return e===this._?this:e};function $u(e){return!e.ctrlKey&&!e.button}function ed(){return this.parentNode}function td(e,t){return t??{x:e.x,y:e.y}}function nd(){return navigator.maxTouchPoints||`ontouchstart`in this}function rd(){var e=$u,t=ed,n=td,r=nd,i={},a=zc(`start`,`drag`,`end`),o=0,s,c,l,u,d=0;function f(e){e.on(`mousedown.drag`,p).filter(r).on(`touchstart.drag`,g).on(`touchmove.drag`,_,Gu).on(`touchend.drag touchcancel.drag`,v).style(`touch-action`,`none`).style(`-webkit-tap-highlight-color`,`rgba(0,0,0,0)`)}function p(n,r){if(!u&&e.call(this,n,r)){var i=y(this,t.call(this,n,r),n,r,`mouse`);i&&(Hu(n.view).on(`mousemove.drag`,m,Ku).on(`mouseup.drag`,h,Ku),Yu(n.view),qu(n),l=!1,s=n.clientX,c=n.clientY,i(`start`,n))}}function m(e){if(Ju(e),!l){var t=e.clientX-s,n=e.clientY-c;l=t*t+n*n>d}i.mouse(`drag`,e)}function h(e){Hu(e.view).on(`mousemove.drag mouseup.drag`,null),Xu(e.view,l),Ju(e),i.mouse(`end`,e)}function g(n,r){if(e.call(this,n,r))for(var i=n.changedTouches,a=t.call(this,n,r),o=i.length,s=0,c;s<o;++s)(c=y(this,a,n,r,i[s].identifier,i[s]))&&(qu(n),c(`start`,n,i[s]))}function _(e){for(var t=e.changedTouches,n=t.length,r=0,a;r<n;++r)(a=i[t[r].identifier])&&(Ju(e),a(`drag`,e,t[r]))}function v(e){var t=e.changedTouches,n=t.length,r,a;for(u&&clearTimeout(u),u=setTimeout(function(){u=null},500),r=0;r<n;++r)(a=i[t[r].identifier])&&(qu(e),a(`end`,e,t[r]))}function y(e,t,r,s,c,l){var u=a.copy(),d=Wu(l||r,t),p,m,h;if((h=n.call(e,new Qu(`beforestart`,{sourceEvent:r,target:f,identifier:c,active:o,x:d[0],y:d[1],dx:0,dy:0,dispatch:u}),s))!=null)return p=h.x-d[0]||0,m=h.y-d[1]||0,function n(r,a,l){var g=d,_;switch(r){case`start`:i[c]=n,_=o++;break;case`end`:delete i[c],--o;case`drag`:d=Wu(l||a,t),_=o}u.call(r,e,new Qu(r,{sourceEvent:a,subject:h,target:f,identifier:c,active:_,x:d[0]+p,y:d[1]+m,dx:d[0]-g[0],dy:d[1]-g[1],dispatch:u}),s)}}return f.filter=function(t){return arguments.length?(e=typeof t==`function`?t:Zu(!!t),f):e},f.container=function(e){return arguments.length?(t=typeof e==`function`?e:Zu(e),f):t},f.subject=function(e){return arguments.length?(n=typeof e==`function`?e:Zu(e),f):n},f.touchable=function(e){return arguments.length?(r=typeof e==`function`?e:Zu(!!e),f):r},f.on=function(){var e=a.on.apply(a,arguments);return e===a?f:e},f.clickDistance=function(e){return arguments.length?(d=(e=+e)*e,f):Math.sqrt(d)},f}function id(e,t,n){e.prototype=t.prototype=n,n.constructor=e}function ad(e,t){var n=Object.create(e.prototype);for(var r in t)n[r]=t[r];return n}function od(){}var sd=.7,cd=1/sd,ld=`\\s*([+-]?\\d+)\\s*`,ud=`\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)\\s*`,dd=`\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)%\\s*`,fd=/^#([0-9a-f]{3,8})$/,pd=RegExp(`^rgb\\(${ld},${ld},${ld}\\)$`),md=RegExp(`^rgb\\(${dd},${dd},${dd}\\)$`),hd=RegExp(`^rgba\\(${ld},${ld},${ld},${ud}\\)$`),gd=RegExp(`^rgba\\(${dd},${dd},${dd},${ud}\\)$`),_d=RegExp(`^hsl\\(${ud},${dd},${dd}\\)$`),vd=RegExp(`^hsla\\(${ud},${dd},${dd},${ud}\\)$`),yd={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};id(od,wd,{copy(e){return Object.assign(new this.constructor,this,e)},displayable(){return this.rgb().displayable()},hex:bd,formatHex:bd,formatHex8:xd,formatHsl:Sd,formatRgb:Cd,toString:Cd});function bd(){return this.rgb().formatHex()}function xd(){return this.rgb().formatHex8()}function Sd(){return Ld(this).formatHsl()}function Cd(){return this.rgb().formatRgb()}function wd(e){var t,n;return e=(e+``).trim().toLowerCase(),(t=fd.exec(e))?(n=t[1].length,t=parseInt(t[1],16),n===6?Td(t):n===3?new kd(t>>8&15|t>>4&240,t>>4&15|t&240,(t&15)<<4|t&15,1):n===8?Ed(t>>24&255,t>>16&255,t>>8&255,(t&255)/255):n===4?Ed(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=pd.exec(e))?new kd(t[1],t[2],t[3],1):(t=md.exec(e))?new kd(t[1]*255/100,t[2]*255/100,t[3]*255/100,1):(t=hd.exec(e))?Ed(t[1],t[2],t[3],t[4]):(t=gd.exec(e))?Ed(t[1]*255/100,t[2]*255/100,t[3]*255/100,t[4]):(t=_d.exec(e))?Id(t[1],t[2]/100,t[3]/100,1):(t=vd.exec(e))?Id(t[1],t[2]/100,t[3]/100,t[4]):yd.hasOwnProperty(e)?Td(yd[e]):e===`transparent`?new kd(NaN,NaN,NaN,0):null}function Td(e){return new kd(e>>16&255,e>>8&255,e&255,1)}function Ed(e,t,n,r){return r<=0&&(e=t=n=NaN),new kd(e,t,n,r)}function Dd(e){return e instanceof od||(e=wd(e)),e?(e=e.rgb(),new kd(e.r,e.g,e.b,e.opacity)):new kd}function Od(e,t,n,r){return arguments.length===1?Dd(e):new kd(e,t,n,r??1)}function kd(e,t,n,r){this.r=+e,this.g=+t,this.b=+n,this.opacity=+r}id(kd,Od,ad(od,{brighter(e){return e=e==null?cd:cd**+e,new kd(this.r*e,this.g*e,this.b*e,this.opacity)},darker(e){return e=e==null?sd:sd**+e,new kd(this.r*e,this.g*e,this.b*e,this.opacity)},rgb(){return this},clamp(){return new kd(Pd(this.r),Pd(this.g),Pd(this.b),Nd(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:Ad,formatHex:Ad,formatHex8:jd,formatRgb:Md,toString:Md}));function Ad(){return`#${Fd(this.r)}${Fd(this.g)}${Fd(this.b)}`}function jd(){return`#${Fd(this.r)}${Fd(this.g)}${Fd(this.b)}${Fd((isNaN(this.opacity)?1:this.opacity)*255)}`}function Md(){let e=Nd(this.opacity);return`${e===1?`rgb(`:`rgba(`}${Pd(this.r)}, ${Pd(this.g)}, ${Pd(this.b)}${e===1?`)`:`, ${e})`}`}function Nd(e){return isNaN(e)?1:Math.max(0,Math.min(1,e))}function Pd(e){return Math.max(0,Math.min(255,Math.round(e)||0))}function Fd(e){return e=Pd(e),(e<16?`0`:``)+e.toString(16)}function Id(e,t,n,r){return r<=0?e=t=n=NaN:n<=0||n>=1?e=t=NaN:t<=0&&(e=NaN),new zd(e,t,n,r)}function Ld(e){if(e instanceof zd)return new zd(e.h,e.s,e.l,e.opacity);if(e instanceof od||(e=wd(e)),!e)return new zd;if(e instanceof zd)return e;e=e.rgb();var t=e.r/255,n=e.g/255,r=e.b/255,i=Math.min(t,n,r),a=Math.max(t,n,r),o=NaN,s=a-i,c=(a+i)/2;return s?(o=t===a?(n-r)/s+(n<r)*6:n===a?(r-t)/s+2:(t-n)/s+4,s/=c<.5?a+i:2-a-i,o*=60):s=c>0&&c<1?0:o,new zd(o,s,c,e.opacity)}function Rd(e,t,n,r){return arguments.length===1?Ld(e):new zd(e,t,n,r??1)}function zd(e,t,n,r){this.h=+e,this.s=+t,this.l=+n,this.opacity=+r}id(zd,Rd,ad(od,{brighter(e){return e=e==null?cd:cd**+e,new zd(this.h,this.s,this.l*e,this.opacity)},darker(e){return e=e==null?sd:sd**+e,new zd(this.h,this.s,this.l*e,this.opacity)},rgb(){var e=this.h%360+(this.h<0)*360,t=isNaN(e)||isNaN(this.s)?0:this.s,n=this.l,r=n+(n<.5?n:1-n)*t,i=2*n-r;return new kd(Hd(e>=240?e-240:e+120,i,r),Hd(e,i,r),Hd(e<120?e+240:e-120,i,r),this.opacity)},clamp(){return new zd(Bd(this.h),Vd(this.s),Vd(this.l),Nd(this.opacity))},displayable(){return(0<=this.s&&this.s<=1||isNaN(this.s))&&0<=this.l&&this.l<=1&&0<=this.opacity&&this.opacity<=1},formatHsl(){let e=Nd(this.opacity);return`${e===1?`hsl(`:`hsla(`}${Bd(this.h)}, ${Vd(this.s)*100}%, ${Vd(this.l)*100}%${e===1?`)`:`, ${e})`}`}}));function Bd(e){return e=(e||0)%360,e<0?e+360:e}function Vd(e){return Math.max(0,Math.min(1,e||0))}function Hd(e,t,n){return(e<60?t+(n-t)*e/60:e<180?n:e<240?t+(n-t)*(240-e)/60:t)*255}var Ud=e=>()=>e;function Wd(e,t){return function(n){return e+n*t}}function Gd(e,t,n){return e**=+n,t=t**+n-e,n=1/n,function(r){return(e+r*t)**+n}}function Kd(e){return(e=+e)==1?qd:function(t,n){return n-t?Gd(t,n,e):Ud(isNaN(t)?n:t)}}function qd(e,t){var n=t-e;return n?Wd(e,n):Ud(isNaN(e)?t:e)}var Jd=(function e(t){var n=Kd(t);function r(e,t){var r=n((e=Od(e)).r,(t=Od(t)).r),i=n(e.g,t.g),a=n(e.b,t.b),o=qd(e.opacity,t.opacity);return function(t){return e.r=r(t),e.g=i(t),e.b=a(t),e.opacity=o(t),e+``}}return r.gamma=e,r})(1);function Yd(e,t){t||=[];var n=e?Math.min(t.length,e.length):0,r=t.slice(),i;return function(a){for(i=0;i<n;++i)r[i]=e[i]*(1-a)+t[i]*a;return r}}function Xd(e){return ArrayBuffer.isView(e)&&!(e instanceof DataView)}function Zd(e,t){for(var n=t?t.length:0,r=e?Math.min(n,e.length):0,i=Array(r),a=Array(n),o=0;o<r;++o)i[o]=sf(e[o],t[o]);for(;o<n;++o)a[o]=t[o];return function(e){for(o=0;o<r;++o)a[o]=i[o](e);return a}}function Qd(e,t){var n=new Date;return e=+e,t=+t,function(r){return n.setTime(e*(1-r)+t*r),n}}function $d(e,t){return e=+e,t=+t,function(n){return e*(1-n)+t*n}}function ef(e,t){var n={},r={},i;for(i in(typeof e!=`object`||!e)&&(e={}),(typeof t!=`object`||!t)&&(t={}),t)i in e?n[i]=sf(e[i],t[i]):r[i]=t[i];return function(e){for(i in n)r[i]=n[i](e);return r}}var tf=/[-+]?(?:\d+\.?\d*|\.?\d+)(?:[eE][-+]?\d+)?/g,nf=new RegExp(tf.source,`g`);function rf(e){return function(){return e}}function af(e){return function(t){return e(t)+``}}function of(e,t){var n=tf.lastIndex=nf.lastIndex=0,r,i,a,o=-1,s=[],c=[];for(e+=``,t+=``;(r=tf.exec(e))&&(i=nf.exec(t));)(a=i.index)>n&&(a=t.slice(n,a),s[o]?s[o]+=a:s[++o]=a),(r=r[0])===(i=i[0])?s[o]?s[o]+=i:s[++o]=i:(s[++o]=null,c.push({i:o,x:$d(r,i)})),n=nf.lastIndex;return n<t.length&&(a=t.slice(n),s[o]?s[o]+=a:s[++o]=a),s.length<2?c[0]?af(c[0].x):rf(t):(t=c.length,function(e){for(var n=0,r;n<t;++n)s[(r=c[n]).i]=r.x(e);return s.join(``)})}function sf(e,t){var n=typeof t,r;return t==null||n===`boolean`?Ud(t):(n===`number`?$d:n===`string`?(r=wd(t))?(t=r,Jd):of:t instanceof wd?Jd:t instanceof Date?Qd:Xd(t)?Yd:Array.isArray(t)?Zd:typeof t.valueOf!=`function`&&typeof t.toString!=`function`||isNaN(t)?ef:$d)(e,t)}var cf=180/Math.PI,lf={translateX:0,translateY:0,rotate:0,skewX:0,scaleX:1,scaleY:1};function uf(e,t,n,r,i,a){var o,s,c;return(o=Math.sqrt(e*e+t*t))&&(e/=o,t/=o),(c=e*n+t*r)&&(n-=e*c,r-=t*c),(s=Math.sqrt(n*n+r*r))&&(n/=s,r/=s,c/=s),e*r<t*n&&(e=-e,t=-t,c=-c,o=-o),{translateX:i,translateY:a,rotate:Math.atan2(t,e)*cf,skewX:Math.atan(c)*cf,scaleX:o,scaleY:s}}var df;function ff(e){let t=new(typeof DOMMatrix==`function`?DOMMatrix:WebKitCSSMatrix)(e+``);return t.isIdentity?lf:uf(t.a,t.b,t.c,t.d,t.e,t.f)}function pf(e){return e==null||(df||=document.createElementNS(`http://www.w3.org/2000/svg`,`g`),df.setAttribute(`transform`,e),!(e=df.transform.baseVal.consolidate()))?lf:(e=e.matrix,uf(e.a,e.b,e.c,e.d,e.e,e.f))}function mf(e,t,n,r){function i(e){return e.length?e.pop()+` `:``}function a(e,r,i,a,o,s){if(e!==i||r!==a){var c=o.push(`translate(`,null,t,null,n);s.push({i:c-4,x:$d(e,i)},{i:c-2,x:$d(r,a)})}else(i||a)&&o.push(`translate(`+i+t+a+n)}function o(e,t,n,a){e===t?t&&n.push(i(n)+`rotate(`+t+r):(e-t>180?t+=360:t-e>180&&(e+=360),a.push({i:n.push(i(n)+`rotate(`,null,r)-2,x:$d(e,t)}))}function s(e,t,n,a){e===t?t&&n.push(i(n)+`skewX(`+t+r):a.push({i:n.push(i(n)+`skewX(`,null,r)-2,x:$d(e,t)})}function c(e,t,n,r,a,o){if(e!==n||t!==r){var s=a.push(i(a)+`scale(`,null,`,`,null,`)`);o.push({i:s-4,x:$d(e,n)},{i:s-2,x:$d(t,r)})}else(n!==1||r!==1)&&a.push(i(a)+`scale(`+n+`,`+r+`)`)}return function(t,n){var r=[],i=[];return t=e(t),n=e(n),a(t.translateX,t.translateY,n.translateX,n.translateY,r,i),o(t.rotate,n.rotate,r,i),s(t.skewX,n.skewX,r,i),c(t.scaleX,t.scaleY,n.scaleX,n.scaleY,r,i),t=n=null,function(e){for(var t=-1,n=i.length,a;++t<n;)r[(a=i[t]).i]=a.x(e);return r.join(``)}}}var hf=mf(ff,`px, `,`px)`,`deg)`),gf=mf(pf,`, `,`)`,`)`),_f=1e-12;function vf(e){return((e=Math.exp(e))+1/e)/2}function yf(e){return((e=Math.exp(e))-1/e)/2}function bf(e){return((e=Math.exp(2*e))-1)/(e+1)}var xf=(function e(t,n,r){function i(e,i){var a=e[0],o=e[1],s=e[2],c=i[0],l=i[1],u=i[2],d=c-a,f=l-o,p=d*d+f*f,m,h;if(p<_f)h=Math.log(u/s)/t,m=function(e){return[a+e*d,o+e*f,s*Math.exp(t*e*h)]};else{var g=Math.sqrt(p),_=(u*u-s*s+r*p)/(2*s*n*g),v=(u*u-s*s-r*p)/(2*u*n*g),y=Math.log(Math.sqrt(_*_+1)-_);h=(Math.log(Math.sqrt(v*v+1)-v)-y)/t,m=function(e){var r=e*h,i=vf(y),c=s/(n*g)*(i*bf(t*r+y)-yf(y));return[a+c*d,o+c*f,s*i/vf(t*r+y)]}}return m.duration=h*1e3*t/Math.SQRT2,m}return i.rho=function(t){var n=Math.max(.001,+t),r=n*n;return e(n,r,r*r)},i})(Math.SQRT2,2,4),Sf=0,Cf=0,wf=0,Tf=1e3,Ef,Df,Of=0,kf=0,Af=0,jf=typeof performance==`object`&&performance.now?performance:Date,Mf=typeof window==`object`&&window.requestAnimationFrame?window.requestAnimationFrame.bind(window):function(e){setTimeout(e,17)};function Nf(){return kf||=(Mf(Pf),jf.now()+Af)}function Pf(){kf=0}function Ff(){this._call=this._time=this._next=null}Ff.prototype=If.prototype={constructor:Ff,restart:function(e,t,n){if(typeof e!=`function`)throw TypeError(`callback is not a function`);n=(n==null?Nf():+n)+(t==null?0:+t),!this._next&&Df!==this&&(Df?Df._next=this:Ef=this,Df=this),this._call=e,this._time=n,Vf()},stop:function(){this._call&&(this._call=null,this._time=1/0,Vf())}};function If(e,t,n){var r=new Ff;return r.restart(e,t,n),r}function Lf(){Nf(),++Sf;for(var e=Ef,t;e;)(t=kf-e._time)>=0&&e._call.call(void 0,t),e=e._next;--Sf}function Rf(){kf=(Of=jf.now())+Af,Sf=Cf=0;try{Lf()}finally{Sf=0,Bf(),kf=0}}function zf(){var e=jf.now(),t=e-Of;t>Tf&&(Af-=t,Of=e)}function Bf(){for(var e,t=Ef,n,r=1/0;t;)t._call?(r>t._time&&(r=t._time),e=t,t=t._next):(n=t._next,t._next=null,t=e?e._next=n:Ef=n);Df=e,Vf(r)}function Vf(e){Sf||(Cf&&=clearTimeout(Cf),e-kf>24?(e<1/0&&(Cf=setTimeout(Rf,e-jf.now()-Af)),wf&&=clearInterval(wf)):(wf||=(Of=jf.now(),setInterval(zf,Tf)),Sf=1,Mf(Rf)))}function Hf(e,t,n){var r=new Ff;return t=t==null?0:+t,r.restart(n=>{r.stop(),e(n+t)},t,n),r}var Uf=zc(`start`,`end`,`cancel`,`interrupt`),Wf=[];function Gf(e,t,n,r,i,a){var o=e.__transition;if(!o)e.__transition={};else if(n in o)return;Yf(e,n,{name:t,index:r,group:i,on:Uf,tween:Wf,time:a.time,delay:a.delay,duration:a.duration,ease:a.ease,timer:null,state:0})}function Kf(e,t){var n=Jf(e,t);if(n.state>0)throw Error(`too late; already scheduled`);return n}function qf(e,t){var n=Jf(e,t);if(n.state>3)throw Error(`too late; already running`);return n}function Jf(e,t){var n=e.__transition;if(!n||!(n=n[t]))throw Error(`transition not found`);return n}function Yf(e,t,n){var r=e.__transition,i;r[t]=n,n.timer=If(a,0,n.time);function a(e){n.state=1,n.timer.restart(o,n.delay,n.time),n.delay<=e&&o(e-n.delay)}function o(a){var l,u,d,f;if(n.state!==1)return c();for(l in r)if(f=r[l],f.name===n.name){if(f.state===3)return Hf(o);f.state===4?(f.state=6,f.timer.stop(),f.on.call(`interrupt`,e,e.__data__,f.index,f.group),delete r[l]):+l<t&&(f.state=6,f.timer.stop(),f.on.call(`cancel`,e,e.__data__,f.index,f.group),delete r[l])}if(Hf(function(){n.state===3&&(n.state=4,n.timer.restart(s,n.delay,n.time),s(a))}),n.state=2,n.on.call(`start`,e,e.__data__,n.index,n.group),n.state===2){for(n.state=3,i=Array(d=n.tween.length),l=0,u=-1;l<d;++l)(f=n.tween[l].value.call(e,e.__data__,n.index,n.group))&&(i[++u]=f);i.length=u+1}}function s(t){for(var r=t<n.duration?n.ease.call(null,t/n.duration):(n.timer.restart(c),n.state=5,1),a=-1,o=i.length;++a<o;)i[a].call(e,r);n.state===5&&(n.on.call(`end`,e,e.__data__,n.index,n.group),c())}function c(){for(var i in n.state=6,n.timer.stop(),delete r[t],r)return;delete e.__transition}}function Xf(e,t){var n=e.__transition,r,i,a=!0,o;if(n){for(o in t=t==null?null:t+``,n)(r=n[o]).name===t?(i=r.state>2&&r.state<5,r.state=6,r.timer.stop(),r.on.call(i?`interrupt`:`cancel`,e,e.__data__,r.index,r.group),delete n[o]):a=!1;a&&delete e.__transition}}function Zf(e){return this.each(function(){Xf(this,e)})}function Qf(e,t){var n,r;return function(){var i=qf(this,e),a=i.tween;if(a!==n){r=n=a;for(var o=0,s=r.length;o<s;++o)if(r[o].name===t){r=r.slice(),r.splice(o,1);break}}i.tween=r}}function $f(e,t,n){var r,i;if(typeof n!=`function`)throw Error();return function(){var a=qf(this,e),o=a.tween;if(o!==r){i=(r=o).slice();for(var s={name:t,value:n},c=0,l=i.length;c<l;++c)if(i[c].name===t){i[c]=s;break}c===l&&i.push(s)}a.tween=i}}function ep(e,t){var n=this._id;if(e+=``,arguments.length<2){for(var r=Jf(this.node(),n).tween,i=0,a=r.length,o;i<a;++i)if((o=r[i]).name===e)return o.value;return null}return this.each((t==null?Qf:$f)(n,e,t))}function tp(e,t,n){var r=e._id;return e.each(function(){var e=qf(this,r);(e.value||={})[t]=n.apply(this,arguments)}),function(e){return Jf(e,r).value[t]}}function np(e,t){var n;return(typeof t==`number`?$d:t instanceof wd?Jd:(n=wd(t))?(t=n,Jd):of)(e,t)}function rp(e){return function(){this.removeAttribute(e)}}function ip(e){return function(){this.removeAttributeNS(e.space,e.local)}}function ap(e,t,n){var r,i=n+``,a;return function(){var o=this.getAttribute(e);return o===i?null:o===r?a:a=t(r=o,n)}}function op(e,t,n){var r,i=n+``,a;return function(){var o=this.getAttributeNS(e.space,e.local);return o===i?null:o===r?a:a=t(r=o,n)}}function sp(e,t,n){var r,i,a;return function(){var o,s=n(this),c;return s==null?void this.removeAttribute(e):(o=this.getAttribute(e),c=s+``,o===c?null:o===r&&c===i?a:(i=c,a=t(r=o,s)))}}function cp(e,t,n){var r,i,a;return function(){var o,s=n(this),c;return s==null?void this.removeAttributeNS(e.space,e.local):(o=this.getAttributeNS(e.space,e.local),c=s+``,o===c?null:o===r&&c===i?a:(i=c,a=t(r=o,s)))}}function lp(e,t){var n=Gc(e),r=n===`transform`?gf:np;return this.attrTween(e,typeof t==`function`?(n.local?cp:sp)(n,r,tp(this,`attr.`+e,t)):t==null?(n.local?ip:rp)(n):(n.local?op:ap)(n,r,t))}function up(e,t){return function(n){this.setAttribute(e,t.call(this,n))}}function dp(e,t){return function(n){this.setAttributeNS(e.space,e.local,t.call(this,n))}}function fp(e,t){var n,r;function i(){var i=t.apply(this,arguments);return i!==r&&(n=(r=i)&&dp(e,i)),n}return i._value=t,i}function pp(e,t){var n,r;function i(){var i=t.apply(this,arguments);return i!==r&&(n=(r=i)&&up(e,i)),n}return i._value=t,i}function mp(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 Error();var r=Gc(e);return this.tween(n,(r.local?fp:pp)(r,t))}function hp(e,t){return function(){Kf(this,e).delay=+t.apply(this,arguments)}}function gp(e,t){return t=+t,function(){Kf(this,e).delay=t}}function _p(e){var t=this._id;return arguments.length?this.each((typeof e==`function`?hp:gp)(t,e)):Jf(this.node(),t).delay}function vp(e,t){return function(){qf(this,e).duration=+t.apply(this,arguments)}}function yp(e,t){return t=+t,function(){qf(this,e).duration=t}}function bp(e){var t=this._id;return arguments.length?this.each((typeof e==`function`?vp:yp)(t,e)):Jf(this.node(),t).duration}function xp(e,t){if(typeof t!=`function`)throw Error();return function(){qf(this,e).ease=t}}function Sp(e){var t=this._id;return arguments.length?this.each(xp(t,e)):Jf(this.node(),t).ease}function Cp(e,t){return function(){var n=t.apply(this,arguments);if(typeof n!=`function`)throw Error();qf(this,e).ease=n}}function wp(e){if(typeof e!=`function`)throw Error();return this.each(Cp(this._id,e))}function Tp(e){typeof e!=`function`&&(e=rl(e));for(var t=this._groups,n=t.length,r=Array(n),i=0;i<n;++i)for(var a=t[i],o=a.length,s=r[i]=[],c,l=0;l<o;++l)(c=a[l])&&e.call(c,c.__data__,l,a)&&s.push(c);return new em(r,this._parents,this._name,this._id)}function Ep(e){if(e._id!==this._id)throw Error();for(var t=this._groups,n=e._groups,r=t.length,i=n.length,a=Math.min(r,i),o=Array(r),s=0;s<a;++s)for(var c=t[s],l=n[s],u=c.length,d=o[s]=Array(u),f,p=0;p<u;++p)(f=c[p]||l[p])&&(d[p]=f);for(;s<r;++s)o[s]=t[s];return new em(o,this._parents,this._name,this._id)}function Dp(e){return(e+``).trim().split(/^|\s+/).every(function(e){var t=e.indexOf(`.`);return t>=0&&(e=e.slice(0,t)),!e||e===`start`})}function Op(e,t,n){var r,i,a=Dp(t)?Kf:qf;return function(){var o=a(this,e),s=o.on;s!==r&&(i=(r=s).copy()).on(t,n),o.on=i}}function kp(e,t){var n=this._id;return arguments.length<2?Jf(this.node(),n).on.on(e):this.each(Op(n,e,t))}function Ap(e){return function(){var t=this.parentNode;for(var n in this.__transition)if(+n!==e)return;t&&t.removeChild(this)}}function jp(){return this.on(`end.remove`,Ap(this._id))}function Mp(e){var t=this._name,n=this._id;typeof e!=`function`&&(e=Xc(e));for(var r=this._groups,i=r.length,a=Array(i),o=0;o<i;++o)for(var s=r[o],c=s.length,l=a[o]=Array(c),u,d,f=0;f<c;++f)(u=s[f])&&(d=e.call(u,u.__data__,f,s))&&(`__data__`in u&&(d.__data__=u.__data__),l[f]=d,Gf(l[f],t,n,f,l,Jf(u,n)));return new em(a,this._parents,t,n)}function Np(e){var t=this._name,n=this._id;typeof e!=`function`&&(e=el(e));for(var r=this._groups,i=r.length,a=[],o=[],s=0;s<i;++s)for(var c=r[s],l=c.length,u,d=0;d<l;++d)if(u=c[d]){for(var f=e.call(u,u.__data__,d,c),p,m=Jf(u,n),h=0,g=f.length;h<g;++h)(p=f[h])&&Gf(p,t,n,h,f,m);a.push(f),o.push(u)}return new em(a,o,t,n)}var Pp=Bu.prototype.constructor;function Fp(){return new Pp(this._groups,this._parents)}function Ip(e,t){var n,r,i;return function(){var a=ql(this,e),o=(this.style.removeProperty(e),ql(this,e));return a===o?null:a===n&&o===r?i:i=t(n=a,r=o)}}function Lp(e){return function(){this.style.removeProperty(e)}}function Rp(e,t,n){var r,i=n+``,a;return function(){var o=ql(this,e);return o===i?null:o===r?a:a=t(r=o,n)}}function zp(e,t,n){var r,i,a;return function(){var o=ql(this,e),s=n(this),c=s+``;return s??(c=s=(this.style.removeProperty(e),ql(this,e))),o===c?null:o===r&&c===i?a:(i=c,a=t(r=o,s))}}function Bp(e,t){var n,r,i,a=`style.`+t,o=`end.`+a,s;return function(){var c=qf(this,e),l=c.on,u=c.value[a]==null?s||=Lp(t):void 0;(l!==n||i!==u)&&(r=(n=l).copy()).on(o,i=u),c.on=r}}function Vp(e,t,n){var r=(e+=``)==`transform`?hf:np;return t==null?this.styleTween(e,Ip(e,r)).on(`end.style.`+e,Lp(e)):typeof t==`function`?this.styleTween(e,zp(e,r,tp(this,`style.`+e,t))).each(Bp(this._id,e)):this.styleTween(e,Rp(e,r,t),n).on(`end.style.`+e,null)}function Hp(e,t,n){return function(r){this.style.setProperty(e,t.call(this,r),n)}}function Up(e,t,n){var r,i;function a(){var a=t.apply(this,arguments);return a!==i&&(r=(i=a)&&Hp(e,a,n)),r}return a._value=t,a}function Wp(e,t,n){var r=`style.`+(e+=``);if(arguments.length<2)return(r=this.tween(r))&&r._value;if(t==null)return this.tween(r,null);if(typeof t!=`function`)throw Error();return this.tween(r,Up(e,t,n??``))}function Gp(e){return function(){this.textContent=e}}function Kp(e){return function(){var t=e(this);this.textContent=t??``}}function qp(e){return this.tween(`text`,typeof e==`function`?Kp(tp(this,`text`,e)):Gp(e==null?``:e+``))}function Jp(e){return function(t){this.textContent=e.call(this,t)}}function Yp(e){var t,n;function r(){var r=e.apply(this,arguments);return r!==n&&(t=(n=r)&&Jp(r)),t}return r._value=e,r}function Xp(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 Error();return this.tween(t,Yp(e))}function Zp(){for(var e=this._name,t=this._id,n=tm(),r=this._groups,i=r.length,a=0;a<i;++a)for(var o=r[a],s=o.length,c,l=0;l<s;++l)if(c=o[l]){var u=Jf(c,t);Gf(c,e,n,l,o,{time:u.time+u.delay+u.duration,delay:0,duration:u.duration,ease:u.ease})}return new em(r,this._parents,e,n)}function Qp(){var e,t,n=this,r=n._id,i=n.size();return new Promise(function(a,o){var s={value:o},c={value:function(){--i===0&&a()}};n.each(function(){var n=qf(this,r),i=n.on;i!==e&&(t=(e=i).copy(),t._.cancel.push(s),t._.interrupt.push(s),t._.end.push(c)),n.on=t}),i===0&&a()})}var $p=0;function em(e,t,n,r){this._groups=e,this._parents=t,this._name=n,this._id=r}function tm(){return++$p}var nm=Bu.prototype;em.prototype={constructor:em,select:Mp,selectAll:Np,selectChild:nm.selectChild,selectChildren:nm.selectChildren,filter:Tp,merge:Ep,selection:Fp,transition:Zp,call:nm.call,nodes:nm.nodes,node:nm.node,size:nm.size,empty:nm.empty,each:nm.each,on:kp,attr:lp,attrTween:mp,style:Vp,styleTween:Wp,text:qp,textTween:Xp,remove:jp,tween:ep,delay:_p,duration:bp,ease:Sp,easeVarying:wp,end:Qp,[Symbol.iterator]:nm[Symbol.iterator]};function rm(e){return((e*=2)<=1?e*e*e:(e-=2)*e*e+2)/2}var im={time:null,delay:0,duration:250,ease:rm};function am(e,t){for(var n;!(n=e.__transition)||!(n=n[t]);)if(!(e=e.parentNode))throw Error(`transition ${t} not found`);return n}function om(e){var t,n;e instanceof em?(t=e._id,e=e._name):(t=tm(),(n=im).time=Nf(),e=e==null?null:e+``);for(var r=this._groups,i=r.length,a=0;a<i;++a)for(var o=r[a],s=o.length,c,l=0;l<s;++l)(c=o[l])&&Gf(c,e,t,l,o,n||am(c,t));return new em(r,this._parents,e,t)}Bu.prototype.interrupt=Zf,Bu.prototype.transition=om;var sm=e=>()=>e;function cm(e,{sourceEvent:t,target:n,transform:r,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:r,enumerable:!0,configurable:!0},_:{value:i}})}function lm(e,t,n){this.k=e,this.x=t,this.y=n}lm.prototype={constructor:lm,scale:function(e){return e===1?this:new lm(this.k*e,this.x,this.y)},translate:function(e,t){return e===0&t===0?this:new lm(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 um=new lm(1,0,0);dm.prototype=lm.prototype;function dm(e){for(;!e.__zoom;)if(!(e=e.parentNode))return um;return e.__zoom}function fm(e){e.stopImmediatePropagation()}function pm(e){e.preventDefault(),e.stopImmediatePropagation()}function mm(e){return(!e.ctrlKey||e.type===`wheel`)&&!e.button}function hm(){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 gm(){return this.__zoom||um}function _m(e){return-e.deltaY*(e.deltaMode===1?.05:e.deltaMode?1:.002)*(e.ctrlKey?10:1)}function vm(){return navigator.maxTouchPoints||`ontouchstart`in this}function ym(e,t,n){var r=e.invertX(t[0][0])-n[0][0],i=e.invertX(t[1][0])-n[1][0],a=e.invertY(t[0][1])-n[0][1],o=e.invertY(t[1][1])-n[1][1];return e.translate(i>r?(r+i)/2:Math.min(0,r)||Math.max(0,i),o>a?(a+o)/2:Math.min(0,a)||Math.max(0,o))}function bm(){var e=mm,t=hm,n=ym,r=_m,i=vm,a=[0,1/0],o=[[-1/0,-1/0],[1/0,1/0]],s=250,c=xf,l=zc(`start`,`zoom`,`end`),u,d,f,p=500,m=150,h=0,g=10;function _(e){e.property(`__zoom`,gm).on(`wheel.zoom`,w,{passive:!1}).on(`mousedown.zoom`,ee).on(`dblclick.zoom`,T).filter(i).on(`touchstart.zoom`,te).on(`touchmove.zoom`,E).on(`touchend.zoom touchcancel.zoom`,ne).style(`-webkit-tap-highlight-color`,`rgba(0,0,0,0)`)}_.transform=function(e,t,n,r){var i=e.selection?e.selection():e;i.property(`__zoom`,gm),e===i?i.interrupt().each(function(){S(this,arguments).event(r).start().zoom(null,typeof t==`function`?t.apply(this,arguments):t).end()}):x(e,t,n,r)},_.scaleBy=function(e,t,n,r){_.scaleTo(e,function(){return this.__zoom.k*(typeof t==`function`?t.apply(this,arguments):t)},n,r)},_.scaleTo=function(e,r,i,a){_.transform(e,function(){var e=t.apply(this,arguments),a=this.__zoom,s=i==null?b(e):typeof i==`function`?i.apply(this,arguments):i,c=a.invert(s),l=typeof r==`function`?r.apply(this,arguments):r;return n(y(v(a,l),s,c),e,o)},i,a)},_.translateBy=function(e,r,i,a){_.transform(e,function(){return n(this.__zoom.translate(typeof r==`function`?r.apply(this,arguments):r,typeof i==`function`?i.apply(this,arguments):i),t.apply(this,arguments),o)},null,a)},_.translateTo=function(e,r,i,a,s){_.transform(e,function(){var e=t.apply(this,arguments),s=this.__zoom,c=a==null?b(e):typeof a==`function`?a.apply(this,arguments):a;return n(um.translate(c[0],c[1]).scale(s.k).translate(typeof r==`function`?-r.apply(this,arguments):-r,typeof i==`function`?-i.apply(this,arguments):-i),e,o)},a,s)};function v(e,t){return t=Math.max(a[0],Math.min(a[1],t)),t===e.k?e:new lm(t,e.x,e.y)}function y(e,t,n){var r=t[0]-n[0]*e.k,i=t[1]-n[1]*e.k;return r===e.x&&i===e.y?e:new lm(e.k,r,i)}function b(e){return[(+e[0][0]+ +e[1][0])/2,(+e[0][1]+ +e[1][1])/2]}function x(e,n,r,i){e.on(`start.zoom`,function(){S(this,arguments).event(i).start()}).on(`interrupt.zoom end.zoom`,function(){S(this,arguments).event(i).end()}).tween(`zoom`,function(){var e=this,a=arguments,o=S(e,a).event(i),s=t.apply(e,a),l=r==null?b(s):typeof r==`function`?r.apply(e,a):r,u=Math.max(s[1][0]-s[0][0],s[1][1]-s[0][1]),d=e.__zoom,f=typeof n==`function`?n.apply(e,a):n,p=c(d.invert(l).concat(u/d.k),f.invert(l).concat(u/f.k));return function(e){if(e===1)e=f;else{var t=p(e),n=u/t[2];e=new lm(n,l[0]-t[0]*n,l[1]-t[1]*n)}o.zoom(null,e)}})}function S(e,t,n){return!n&&e.__zooming||new C(e,t)}function C(e,n){this.that=e,this.args=n,this.active=0,this.sourceEvent=null,this.extent=t.apply(e,n),this.taps=0}C.prototype={event:function(e){return e&&(this.sourceEvent=e),this},start:function(){return++this.active===1&&(this.that.__zooming=this,this.emit(`start`)),this},zoom:function(e,t){return this.mouse&&e!==`mouse`&&(this.mouse[1]=t.invert(this.mouse[0])),this.touch0&&e!==`touch`&&(this.touch0[1]=t.invert(this.touch0[0])),this.touch1&&e!==`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(e){var t=Hu(this.that).datum();l.call(e,this.that,new cm(e,{sourceEvent:this.sourceEvent,target:_,type:e,transform:this.that.__zoom,dispatch:l}),t)}};function w(t,...i){if(!e.apply(this,arguments))return;var s=S(this,i).event(t),c=this.__zoom,l=Math.max(a[0],Math.min(a[1],c.k*2**r.apply(this,arguments))),u=Wu(t);if(s.wheel)(s.mouse[0][0]!==u[0]||s.mouse[0][1]!==u[1])&&(s.mouse[1]=c.invert(s.mouse[0]=u)),clearTimeout(s.wheel);else if(c.k===l)return;else s.mouse=[u,c.invert(u)],Xf(this),s.start();pm(t),s.wheel=setTimeout(d,m),s.zoom(`mouse`,n(y(v(c,l),s.mouse[0],s.mouse[1]),s.extent,o));function d(){s.wheel=null,s.end()}}function ee(t,...r){if(f||!e.apply(this,arguments))return;var i=t.currentTarget,a=S(this,r,!0).event(t),s=Hu(t.view).on(`mousemove.zoom`,d,!0).on(`mouseup.zoom`,p,!0),c=Wu(t,i),l=t.clientX,u=t.clientY;Yu(t.view),fm(t),a.mouse=[c,this.__zoom.invert(c)],Xf(this),a.start();function d(e){if(pm(e),!a.moved){var t=e.clientX-l,r=e.clientY-u;a.moved=t*t+r*r>h}a.event(e).zoom(`mouse`,n(y(a.that.__zoom,a.mouse[0]=Wu(e,i),a.mouse[1]),a.extent,o))}function p(e){s.on(`mousemove.zoom mouseup.zoom`,null),Xu(e.view,a.moved),pm(e),a.event(e).end()}}function T(r,...i){if(e.apply(this,arguments)){var a=this.__zoom,c=Wu(r.changedTouches?r.changedTouches[0]:r,this),l=a.invert(c),u=a.k*(r.shiftKey?.5:2),d=n(y(v(a,u),c,l),t.apply(this,i),o);pm(r),s>0?Hu(this).transition().duration(s).call(x,d,c,r):Hu(this).call(_.transform,d,c,r)}}function te(t,...n){if(e.apply(this,arguments)){var r=t.touches,i=r.length,a=S(this,n,t.changedTouches.length===i).event(t),o,s,c,l;for(fm(t),s=0;s<i;++s)c=r[s],l=Wu(c,this),l=[l,this.__zoom.invert(l),c.identifier],a.touch0?!a.touch1&&a.touch0[2]!==l[2]&&(a.touch1=l,a.taps=0):(a.touch0=l,o=!0,a.taps=1+!!u);u&&=clearTimeout(u),o&&(a.taps<2&&(d=l[0],u=setTimeout(function(){u=null},p)),Xf(this),a.start())}}function E(e,...t){if(this.__zooming){var r=S(this,t).event(e),i=e.changedTouches,a=i.length,s,c,l,u;for(pm(e),s=0;s<a;++s)c=i[s],l=Wu(c,this),r.touch0&&r.touch0[2]===c.identifier?r.touch0[0]=l:r.touch1&&r.touch1[2]===c.identifier&&(r.touch1[0]=l);if(c=r.that.__zoom,r.touch1){var d=r.touch0[0],f=r.touch0[1],p=r.touch1[0],m=r.touch1[1],h=(h=p[0]-d[0])*h+(h=p[1]-d[1])*h,g=(g=m[0]-f[0])*g+(g=m[1]-f[1])*g;c=v(c,Math.sqrt(h/g)),l=[(d[0]+p[0])/2,(d[1]+p[1])/2],u=[(f[0]+m[0])/2,(f[1]+m[1])/2]}else if(r.touch0)l=r.touch0[0],u=r.touch0[1];else return;r.zoom(`touch`,n(y(c,l,u),r.extent,o))}}function ne(e,...t){if(this.__zooming){var n=S(this,t).event(e),r=e.changedTouches,i=r.length,a,o;for(fm(e),f&&clearTimeout(f),f=setTimeout(function(){f=null},p),a=0;a<i;++a)o=r[a],n.touch0&&n.touch0[2]===o.identifier?delete n.touch0:n.touch1&&n.touch1[2]===o.identifier&&delete n.touch1;if(n.touch1&&!n.touch0&&(n.touch0=n.touch1,delete n.touch1),n.touch0)n.touch0[1]=this.__zoom.invert(n.touch0[0]);else if(n.end(),n.taps===2&&(o=Wu(o,this),Math.hypot(d[0]-o[0],d[1]-o[1])<g)){var s=Hu(this).on(`dblclick.zoom`);s&&s.apply(this,arguments)}}}return _.wheelDelta=function(e){return arguments.length?(r=typeof e==`function`?e:sm(+e),_):r},_.filter=function(t){return arguments.length?(e=typeof t==`function`?t:sm(!!t),_):e},_.touchable=function(e){return arguments.length?(i=typeof e==`function`?e:sm(!!e),_):i},_.extent=function(e){return arguments.length?(t=typeof e==`function`?e:sm([[+e[0][0],+e[0][1]],[+e[1][0],+e[1][1]]]),_):t},_.scaleExtent=function(e){return arguments.length?(a[0]=+e[0],a[1]=+e[1],_):[a[0],a[1]]},_.translateExtent=function(e){return arguments.length?(o[0][0]=+e[0][0],o[1][0]=+e[1][0],o[0][1]=+e[0][1],o[1][1]=+e[1][1],_):[[o[0][0],o[0][1]],[o[1][0],o[1][1]]]},_.constrain=function(e){return arguments.length?(n=e,_):n},_.duration=function(e){return arguments.length?(s=+e,_):s},_.interpolate=function(e){return arguments.length?(c=e,_):c},_.on=function(){var e=l.on.apply(l,arguments);return e===l?_:e},_.clickDistance=function(e){return arguments.length?(h=(e=+e)*e,_):Math.sqrt(h)},_.tapDistance=function(e){return arguments.length?(g=+e,_):g},_}var xm={error001:(e=`react`)=>`Seems like you have not used ${e===`svelte`?`SvelteFlowProvider`:`ReactFlowProvider`} as an ancestor. Help: https://${e}flow.dev/error#001`,error002:()=>`It looks like you've created a new nodeTypes or edgeTypes object. If this wasn't on purpose please define the nodeTypes/edgeTypes outside of the component or memoize them.`,error003:e=>`Node type "${e}" not found. Using fallback type "default".`,error004:()=>`The parent container needs a width and a height to render the graph.`,error005:()=>`Only child nodes can use a parent extent.`,error006:()=>`Can't create edge. An edge needs a source and a target.`,error007:e=>`The old edge with id=${e} does not exist.`,error009:e=>`Marker type "${e}" doesn't exist.`,error008:(e,{id:t,sourceHandle:n,targetHandle:r})=>`Couldn't create edge for ${e} handle id: "${e===`source`?n:r}", edge id: ${t}.`,error010:()=>`Handle: No node id found. Make sure to only use a Handle inside a custom Node.`,error011:e=>`Edge type "${e}" not found. Using fallback type "default".`,error012:e=>`Node with id "${e}" does not exist, it may have been removed. This can happen when a node is deleted before the "onNodeClick" handler is called.`,error013:(e=`react`)=>`It seems that you haven't loaded the styles. Please import '@xyflow/${e}/dist/style.css' or base.css to make sure everything is working properly.`,error014:()=>`useNodeConnections: No node ID found. Call useNodeConnections inside a custom Node or provide a node ID.`,error015:()=>`It seems that you are trying to drag a node that is not initialized. Please use onNodesChange as explained in the docs.`,error016:e=>`Edge with id "${e}" does not exist, it may have been removed. This can happen when an edge is deleted before the "onEdgeClick" handler is called.`},Sm=[[-1/0,-1/0],[1/0,1/0]],Cm=[`Enter`,` `,`Escape`],wm={"node.a11yDescription.default":`Press enter or space to select a node. Press delete to remove it and escape to cancel.`,"node.a11yDescription.keyboardDisabled":`Press enter or space to select a node. You can then use the arrow keys to move the node around. Press delete to remove it and escape to cancel.`,"node.a11yDescription.ariaLiveMessage":({direction:e,x:t,y:n})=>`Moved selected node ${e}. New position, x: ${t}, y: ${n}`,"edge.a11yDescription.default":`Press enter or space to select an edge. You can then press delete to remove it or escape to cancel.`,"controls.ariaLabel":`Control Panel`,"controls.zoomIn.ariaLabel":`Zoom In`,"controls.zoomOut.ariaLabel":`Zoom Out`,"controls.fitView.ariaLabel":`Fit View`,"controls.interactive.ariaLabel":`Toggle Interactivity`,"minimap.ariaLabel":`Mini Map`,"handle.ariaLabel":`Handle`},Tm;(function(e){e.Strict=`strict`,e.Loose=`loose`})(Tm||={});var Em;(function(e){e.Free=`free`,e.Vertical=`vertical`,e.Horizontal=`horizontal`})(Em||={});var Dm;(function(e){e.Partial=`partial`,e.Full=`full`})(Dm||={});var Om={inProgress:!1,isValid:null,from:null,fromHandle:null,fromPosition:null,fromNode:null,to:null,toHandle:null,toPosition:null,toNode:null,pointer:null},km;(function(e){e.Bezier=`default`,e.Straight=`straight`,e.Step=`step`,e.SmoothStep=`smoothstep`,e.SimpleBezier=`simplebezier`})(km||={});var Am;(function(e){e.Arrow=`arrow`,e.ArrowClosed=`arrowclosed`})(Am||={});var jm;(function(e){e.Left=`left`,e.Top=`top`,e.Right=`right`,e.Bottom=`bottom`})(jm||={});var Mm={[jm.Left]:jm.Right,[jm.Right]:jm.Left,[jm.Top]:jm.Bottom,[jm.Bottom]:jm.Top},Nm=e=>!!e&&typeof e==`object`&&`id`in e&&`source`in e&&`target`in e,Pm=e=>!!e&&typeof e==`object`&&`id`in e&&`position`in e&&!(`source`in e)&&!(`target`in e),Fm=e=>!!e&&typeof e==`object`&&`id`in e&&`internals`in e&&!(`source`in e)&&!(`target`in e),Im=(e,t=[0,0])=>{let{width:n,height:r}=gh(e),i=e.origin??t,a=n*i[0],o=r*i[1];return{x:e.position.x-a,y:e.position.y-o}},Lm=(e,t={nodeOrigin:[0,0]})=>{if(e.length===0)return{x:0,y:0,width:0,height:0};let n=!1,r=e.reduce((e,r)=>{let i=typeof r==`string`,a=!t.nodeLookup&&!i?r:void 0;return t.nodeLookup&&(a=i?t.nodeLookup.get(r):Fm(r)?r:t.nodeLookup.get(r.id)),a?(n=!0,Xm(e,eh(a,t.nodeOrigin))):e},{x:1/0,y:1/0,x2:-1/0,y2:-1/0});return n?Qm(r):{x:0,y:0,width:0,height:0}},Rm=(e,t={})=>{let n={x:1/0,y:1/0,x2:-1/0,y2:-1/0},r=!1;return e.forEach(e=>{(t.filter===void 0||t.filter(e))&&(n=Xm(n,eh(e)),r=!0)}),r?Qm(n):{x:0,y:0,width:0,height:0}},zm=(e,t,[n,r,i]=[0,0,1],a=!1,o=!1)=>{let s=(t.x-n)/i,c=(t.y-r)/i,l=t.width/i,u=t.height/i,d=[];for(let t of e.values()){let{measured:e,selectable:n=!0,hidden:r=!1}=t;if(o&&!n||r)continue;let i=e.width??t.width??t.initialWidth??0,f=e.height??t.height??t.initialHeight??0,{x:p,y:m}=t.internals.positionAbsolute,h=nh(s,c,l,u,p,m,i,f),g=i*f,_=a&&h>0;(!t.internals.handleBounds||_||h>=g||t.dragging)&&d.push(t)}return d},Bm=(e,t)=>{let n=new Set;return e.forEach(e=>{n.add(e.id)}),t.filter(e=>n.has(e.source)||n.has(e.target))};function Vm(e,t){let n=new Map,r=t?.nodes?new Set(t.nodes.map(e=>e.id)):null;return e.forEach(e=>{let i;if(t?.includeHiddenNodes){let{width:t,height:n}=gh(e);i=t>0&&n>0}else i=!!(e.measured.width&&e.measured.height&&!e.hidden);i&&(!r||r.has(e.id))&&n.set(e.id,e)}),n}async function Hm({nodes:e,width:t,height:n,panZoom:r,minZoom:i,maxZoom:a},o){if(e.size===0)return!0;let s=ph(Rm(Vm(e,o)),t,n,o?.minZoom??i,o?.maxZoom??a,o?.padding??.1);return await r.setViewport(s,{duration:o?.duration,ease:o?.ease,interpolate:o?.interpolate}),!0}function Um({nodeId:e,nextPosition:t,nodeLookup:n,nodeOrigin:r=[0,0],nodeExtent:i,onError:a}){let o=n.get(e),s=o.parentId?n.get(o.parentId):void 0,{x:c,y:l}=s?s.internals.positionAbsolute:{x:0,y:0},u=o.origin??r,d=o.extent||i;if(o.extent===`parent`&&!o.expandParent){if(!s)a?.(`005`,xm.error005());else{let{width:e,height:t}=gh(s);e&&t&&(d=[[c,l],[c+e,l+t]])}}else s&&hh(o.extent)&&(d=[[o.extent[0][0]+c,o.extent[0][1]+l],[o.extent[1][0]+c,o.extent[1][1]+l]]);let f=hh(d)?Km(t,d,o.measured):t;return(o.measured.width===void 0||o.measured.height===void 0)&&a?.(`015`,xm.error015()),{position:{x:f.x-c+(o.measured.width??0)*u[0],y:f.y-l+(o.measured.height??0)*u[1]},positionAbsolute:f}}async function Wm({nodesToRemove:e=[],edgesToRemove:t=[],nodes:n,edges:r,onBeforeDelete:i}){let a=new Set(e.map(e=>e.id)),o=[];for(let e of n){if(e.deletable===!1)continue;let t=a.has(e.id),n=!t&&e.parentId&&o.find(t=>t.id===e.parentId);(t||n)&&o.push(e)}let s=new Set(t.map(e=>e.id)),c=r.filter(e=>e.deletable!==!1),l=Bm(o,c);for(let e of c)s.has(e.id)&&!l.find(t=>t.id===e.id)&&l.push(e);if(!i)return{edges:l,nodes:o};let u=await i({nodes:o,edges:l});return typeof u==`boolean`?u?{edges:l,nodes:o}:{edges:[],nodes:[]}:u}var Gm=(e,t=0,n=1)=>Math.min(Math.max(e,t),n),Km=(e={x:0,y:0},t,n)=>({x:Gm(e.x,t[0][0],t[1][0]-(n?.width??0)),y:Gm(e.y,t[0][1],t[1][1]-(n?.height??0))});function qm(e,t,n){let{width:r,height:i}=gh(n),{x:a,y:o}=n.internals.positionAbsolute;return Km(e,[[a,o],[a+r,o+i]],t)}var Jm=(e,t,n)=>e<t?Gm(Math.abs(e-t),1,t)/t:e>n?-Gm(Math.abs(e-n),1,t)/t:0,Ym=(e,t,n=15,r=40)=>[Jm(e.x,r,t.width-r)*n,Jm(e.y,r,t.height-r)*n],Xm=(e,t)=>({x:Math.min(e.x,t.x),y:Math.min(e.y,t.y),x2:Math.max(e.x2,t.x2),y2:Math.max(e.y2,t.y2)}),Zm=({x:e,y:t,width:n,height:r})=>({x:e,y:t,x2:e+n,y2:t+r}),Qm=({x:e,y:t,x2:n,y2:r})=>({x:e,y:t,width:n-e,height:r-t}),$m=(e,t=[0,0])=>{let{x:n,y:r}=Fm(e)?e.internals.positionAbsolute:Im(e,t);return{x:n,y:r,width:e.measured?.width??e.width??e.initialWidth??0,height:e.measured?.height??e.height??e.initialHeight??0}},eh=(e,t=[0,0])=>{let{x:n,y:r}=Fm(e)?e.internals.positionAbsolute:Im(e,t);return{x:n,y:r,x2:n+(e.measured?.width??e.width??e.initialWidth??0),y2:r+(e.measured?.height??e.height??e.initialHeight??0)}},th=(e,t)=>Qm(Xm(Zm(e),Zm(t))),nh=(e,t,n,r,i,a,o,s)=>{let c=Math.max(0,Math.min(e+n,i+o)-Math.max(e,i)),l=Math.max(0,Math.min(t+r,a+s)-Math.max(t,a));return Math.ceil(c*l)},rh=(e,t)=>nh(e.x,e.y,e.width,e.height,t.x,t.y,t.width,t.height),ih=e=>ah(e.width)&&ah(e.height)&&ah(e.x)&&ah(e.y),ah=e=>!isNaN(e)&&isFinite(e),oh=(e,t)=>(e,t)=>{},sh=(e,t=[1,1])=>({x:t[0]*Math.round(e.x/t[0]),y:t[1]*Math.round(e.y/t[1])}),ch=({x:e,y:t},[n,r,i],a=!1,o=[1,1])=>{let s={x:(e-n)/i,y:(t-r)/i};return a?sh(s,o):s},lh=({x:e,y:t},[n,r,i])=>({x:e*i+n,y:t*i+r});function uh(e,t){if(typeof e==`number`)return Math.floor((t-t/(1+e))*.5);if(typeof e==`string`&&e.endsWith(`px`)){let t=parseFloat(e);if(!Number.isNaN(t))return Math.floor(t)}if(typeof e==`string`&&e.endsWith(`%`)){let n=parseFloat(e);if(!Number.isNaN(n))return Math.floor(t*n*.01)}return console.error(`The padding value "${e}" is invalid. Please provide a number or a string with a valid unit (px or %).`),0}function dh(e,t,n){if(typeof e==`string`||typeof e==`number`){let r=uh(e,n),i=uh(e,t);return{top:r,right:i,bottom:r,left:i,x:i*2,y:r*2}}if(typeof e==`object`){let r=uh(e.top??e.y??0,n),i=uh(e.bottom??e.y??0,n),a=uh(e.left??e.x??0,t),o=uh(e.right??e.x??0,t);return{top:r,right:o,bottom:i,left:a,x:a+o,y:r+i}}return{top:0,right:0,bottom:0,left:0,x:0,y:0}}function fh(e,t,n,r,i,a){let{x:o,y:s}=lh(e,[t,n,r]),{x:c,y:l}=lh({x:e.x+e.width,y:e.y+e.height},[t,n,r]),u=i-c,d=a-l;return{left:Math.floor(o),top:Math.floor(s),right:Math.floor(u),bottom:Math.floor(d)}}var ph=(e,t,n,r,i,a)=>{let o=dh(a,t,n),s=(t-o.x)/e.width,c=(n-o.y)/e.height,l=Gm(Math.min(s,c),r,i),u=e.x+e.width/2,d=e.y+e.height/2,f=t/2-u*l,p=n/2-d*l,m=fh(e,f,p,l,t,n),h={left:Math.min(m.left-o.left,0),top:Math.min(m.top-o.top,0),right:Math.min(m.right-o.right,0),bottom:Math.min(m.bottom-o.bottom,0)};return{x:f-h.left+h.right,y:p-h.top+h.bottom,zoom:l}},mh=()=>typeof navigator<`u`&&navigator?.userAgent?.indexOf(`Mac`)>=0;function hh(e){return e!=null&&e!==`parent`}function gh(e){return{width:e.measured?.width??e.width??e.initialWidth??0,height:e.measured?.height??e.height??e.initialHeight??0}}function _h(e){return(e.measured?.width??e.width??e.initialWidth)!==void 0&&(e.measured?.height??e.height??e.initialHeight)!==void 0}function vh(e,t={width:0,height:0},n,r,i){let a={...e},o=r.get(n);if(o){let e=o.origin||i;a.x+=o.internals.positionAbsolute.x-(t.width??0)*e[0],a.y+=o.internals.positionAbsolute.y-(t.height??0)*e[1]}return a}function yh(e){return{...wm,...e||{}}}function bh(e,t){if(!e&&!t)return!0;if(!e||!t||e.size!==t.size)return!1;if(!e.size&&!t.size)return!0;for(let n of e.keys())if(!t.has(n))return!1;return!0}function xh(e,t,n){if(!n)return;let r=[];e.forEach((e,n)=>{t?.has(n)||r.push(e)}),r.length&&n(r)}function Sh(e){return e===null?null:e?`valid`:`invalid`}function Ch(e,{snapGrid:t=[0,0],snapToGrid:n=!1,transform:r,containerBounds:i}){let{x:a,y:o}=kh(e),s=ch({x:a-(i?.left??0),y:o-(i?.top??0)},r),{x:c,y:l}=n?sh(s,t):s;return{xSnapped:c,ySnapped:l,...s}}var wh=e=>({width:e.offsetWidth,height:e.offsetHeight}),Th=e=>e?.getRootNode?.()||window?.document,Eh=[`INPUT`,`SELECT`,`TEXTAREA`];function Dh(e){let t=e.composedPath?.()?.[0]||e.target;return t?.nodeType===1?Eh.includes(t.nodeName)||t.hasAttribute(`contenteditable`)||!!t.closest(`.nokey`):!1}var Oh=e=>`clientX`in e,kh=(e,t)=>{let n=Oh(e),r=n?e.clientX:e.touches?.[0].clientX,i=n?e.clientY:e.touches?.[0].clientY;return{x:r-(t?.left??0),y:i-(t?.top??0)}},Ah=(e,t,n,r,i)=>{let a=t.querySelectorAll(`.${e}`);return!a||!a.length?null:Array.from(a).map(t=>{let a=t.getBoundingClientRect();return{id:t.getAttribute(`data-handleid`),type:e,nodeId:i,position:t.getAttribute(`data-handlepos`),x:(a.left-n.left)/r,y:(a.top-n.top)/r,...wh(t)}})};function jh({sourceX:e,sourceY:t,targetX:n,targetY:r,sourceControlX:i,sourceControlY:a,targetControlX:o,targetControlY:s}){let c=e*.125+i*.375+o*.375+n*.125,l=t*.125+a*.375+s*.375+r*.125;return[c,l,Math.abs(c-e),Math.abs(l-t)]}function Mh(e,t){return e>=0?.5*e:t*25*Math.sqrt(-e)}function Nh({pos:e,x1:t,y1:n,x2:r,y2:i,c:a}){switch(e){case jm.Left:return[t-Mh(t-r,a),n];case jm.Right:return[t+Mh(r-t,a),n];case jm.Top:return[t,n-Mh(n-i,a)];case jm.Bottom:return[t,n+Mh(i-n,a)]}}function Ph({sourceX:e,sourceY:t,sourcePosition:n=jm.Bottom,targetX:r,targetY:i,targetPosition:a=jm.Top,curvature:o=.25}){let[s,c]=Nh({pos:n,x1:e,y1:t,x2:r,y2:i,c:o}),[l,u]=Nh({pos:a,x1:r,y1:i,x2:e,y2:t,c:o}),[d,f,p,m]=jh({sourceX:e,sourceY:t,targetX:r,targetY:i,sourceControlX:s,sourceControlY:c,targetControlX:l,targetControlY:u});return[`M${e},${t} C${s},${c} ${l},${u} ${r},${i}`,d,f,p,m]}function Fh({sourceX:e,sourceY:t,targetX:n,targetY:r}){let i=Math.abs(n-e)/2,a=n<e?n+i:n-i,o=Math.abs(r-t)/2;return[a,r<t?r+o:r-o,i,o]}function Ih({sourceNode:e,targetNode:t,selected:n=!1,zIndex:r=0,elevateOnSelect:i=!1,zIndexMode:a=`basic`}){return a===`manual`?r:(i&&n?r+1e3:r)+Math.max(e.parentId||i&&e.selected?e.internals.z:0,t.parentId||i&&t.selected?t.internals.z:0)}function Lh({sourceNode:e,targetNode:t,width:n,height:r,transform:i}){let a=Xm(eh(e),eh(t));return a.x===a.x2&&(a.x2+=1),a.y===a.y2&&(a.y2+=1),rh({x:-i[0]/i[2],y:-i[1]/i[2],width:n/i[2],height:r/i[2]},Qm(a))>0}var Rh=({source:e,sourceHandle:t,target:n,targetHandle:r})=>`xy-edge__${e}${t||``}-${n}${r||``}`,zh=(e,t)=>t.some(t=>t.source===e.source&&t.target===e.target&&(t.sourceHandle===e.sourceHandle||!t.sourceHandle&&!e.sourceHandle)&&(t.targetHandle===e.targetHandle||!t.targetHandle&&!e.targetHandle)),Bh=(e,t,n={})=>{if(!e.source||!e.target)return n.onError?.(`006`,xm.error006()),t;let r=n.getEdgeId||Rh,i;return i=Nm(e)?{...e}:{...e,id:r(e)},zh(i,t)?t:(i.sourceHandle===null&&delete i.sourceHandle,i.targetHandle===null&&delete i.targetHandle,t.concat(i))};function Vh({sourceX:e,sourceY:t,targetX:n,targetY:r}){let[i,a,o,s]=Fh({sourceX:e,sourceY:t,targetX:n,targetY:r});return[`M ${e},${t}L ${n},${r}`,i,a,o,s]}var Hh={[jm.Left]:{x:-1,y:0},[jm.Right]:{x:1,y:0},[jm.Top]:{x:0,y:-1},[jm.Bottom]:{x:0,y:1}},Uh=({source:e,sourcePosition:t=jm.Bottom,target:n})=>t===jm.Left||t===jm.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},Wh=(e,t)=>Math.sqrt((t.x-e.x)**2+(t.y-e.y)**2);function Gh({source:e,sourcePosition:t=jm.Bottom,target:n,targetPosition:r=jm.Top,center:i,offset:a,stepPosition:o}){let s=Hh[t],c=Hh[r],l={x:e.x+s.x*a,y:e.y+s.y*a},u={x:n.x+c.x*a,y:n.y+c.y*a},d=Uh({source:l,sourcePosition:t,target:u}),f=d.x===0?`y`:`x`,p=d[f],m=[],h,g,_={x:0,y:0},v={x:0,y:0},[,,y,b]=Fh({sourceX:e.x,sourceY:e.y,targetX:n.x,targetY:n.y});if(s[f]*c[f]===-1){f===`x`?(h=i.x??l.x+(u.x-l.x)*o,g=i.y??(l.y+u.y)/2):(h=i.x??(l.x+u.x)/2,g=i.y??l.y+(u.y-l.y)*o);let e=[{x:h,y:l.y},{x:h,y:u.y}],t=[{x:l.x,y:g},{x:u.x,y:g}];m=s[f]===p?f===`x`?e:t:f===`x`?t:e}else{let i=[{x:l.x,y:u.y}],o=[{x:u.x,y:l.y}];if(m=f===`x`?s.x===p?o:i:s.y===p?i:o,t===r){let t=Math.abs(e[f]-n[f]);if(t<=a){let r=Math.min(a-1,a-t);s[f]===p?_[f]=(l[f]>e[f]?-1:1)*r:v[f]=(u[f]>n[f]?-1:1)*r}}if(t!==r){let e=f===`x`?`y`:`x`,t=s[f]===c[e],n=l[e]>u[e],r=l[e]<u[e];(s[f]===1&&(!t&&n||t&&r)||s[f]!==1&&(!t&&r||t&&n))&&(m=f===`x`?i:o)}let d={x:l.x+_.x,y:l.y+_.y},y={x:u.x+v.x,y:u.y+v.y};Math.max(Math.abs(d.x-m[0].x),Math.abs(y.x-m[0].x))>=Math.max(Math.abs(d.y-m[0].y),Math.abs(y.y-m[0].y))?(h=(d.x+y.x)/2,g=m[0].y):(h=m[0].x,g=(d.y+y.y)/2)}let x={x:l.x+_.x,y:l.y+_.y},S={x:u.x+v.x,y:u.y+v.y};return[[e,...x.x!==m[0].x||x.y!==m[0].y?[x]:[],...m,...S.x!==m[m.length-1].x||S.y!==m[m.length-1].y?[S]:[],n],h,g,y,b]}function Kh(e,t,n,r){let i=Math.min(Wh(e,t)/2,Wh(t,n)/2,r),{x:a,y:o}=t;if(e.x===a&&a===n.x||e.y===o&&o===n.y)return`L${a} ${o}`;if(e.y===o){let t=e.x<n.x?-1:1,r=e.y<n.y?1:-1;return`L ${a+i*t},${o}Q ${a},${o} ${a},${o+i*r}`}let s=e.x<n.x?1:-1;return`L ${a},${o+i*(e.y<n.y?-1:1)}Q ${a},${o} ${a+i*s},${o}`}function qh({sourceX:e,sourceY:t,sourcePosition:n=jm.Bottom,targetX:r,targetY:i,targetPosition:a=jm.Top,borderRadius:o=5,centerX:s,centerY:c,offset:l=20,stepPosition:u=.5}){let[d,f,p,m,h]=Gh({source:{x:e,y:t},sourcePosition:n,target:{x:r,y:i},targetPosition:a,center:{x:s,y:c},offset:l,stepPosition:u}),g=`M${d[0].x} ${d[0].y}`;for(let e=1;e<d.length-1;e++)g+=Kh(d[e-1],d[e],d[e+1],o);return g+=`L${d[d.length-1].x} ${d[d.length-1].y}`,[g,f,p,m,h]}function Jh(e){return e&&!!(e.internals.handleBounds||e.handles?.length)&&!!(e.measured.width||e.width||e.initialWidth)}function Yh(e){let{sourceNode:t,targetNode:n}=e;if(!Jh(t)||!Jh(n))return null;let r=t.internals.handleBounds||Xh(t.handles),i=n.internals.handleBounds||Xh(n.handles),a=Qh(r?.source??[],e.sourceHandle),o=Qh(e.connectionMode===Tm.Strict?i?.target??[]:(i?.target??[]).concat(i?.source??[]),e.targetHandle);if(!a||!o)return e.onError?.(`008`,xm.error008(a?`target`:`source`,{id:e.id,sourceHandle:e.sourceHandle,targetHandle:e.targetHandle})),null;let s=a?.position||jm.Bottom,c=o?.position||jm.Top,l=Zh(t,a,s),u=Zh(n,o,c);return{sourceX:l.x,sourceY:l.y,targetX:u.x,targetY:u.y,sourcePosition:s,targetPosition:c}}function Xh(e){if(!e)return null;let t=[],n=[];for(let r of e)r.width=r.width??1,r.height=r.height??1,r.type===`source`?t.push(r):r.type===`target`&&n.push(r);return{source:t,target:n}}function Zh(e,t,n=jm.Left,r=!1){let i=(t?.x??0)+e.internals.positionAbsolute.x,a=(t?.y??0)+e.internals.positionAbsolute.y,{width:o,height:s}=t??gh(e);if(r)return{x:i+o/2,y:a+s/2};switch(t?.position??n){case jm.Top:return{x:i+o/2,y:a};case jm.Right:return{x:i+o,y:a+s/2};case jm.Bottom:return{x:i+o/2,y:a+s};case jm.Left:return{x:i,y:a+s/2}}}function Qh(e,t){return e&&(t?e.find(e=>e.id===t):e[0])||null}function $h(e,t){return e?typeof e==`string`?e:`${t?`${t}__`:``}${Object.keys(e).sort().map(t=>`${t}=${e[t]}`).join(`&`)}`:``}function eg(e,{id:t,defaultColor:n,defaultMarkerStart:r,defaultMarkerEnd:i}){let a=new Set;return e.reduce((e,o)=>([o.markerStart||r,o.markerEnd||i].forEach(r=>{if(r&&typeof r==`object`){let i=$h(r,t);a.has(i)||(e.push({id:i,color:r.color||n,...r}),a.add(i))}}),e),[]).sort((e,t)=>e.id.localeCompare(t.id))}function tg(e,t,n,r,i){let a=.5;i===`start`?a=0:i===`end`&&(a=1);let o=[(e.x+e.width*a)*t.zoom+t.x,e.y*t.zoom+t.y-r],s=[-100*a,-100];switch(n){case jm.Right:o=[(e.x+e.width)*t.zoom+t.x+r,(e.y+e.height*a)*t.zoom+t.y],s=[0,-100*a];break;case jm.Bottom:o[1]=(e.y+e.height)*t.zoom+t.y+r,s[1]=0;break;case jm.Left:o=[e.x*t.zoom+t.x-r,(e.y+e.height*a)*t.zoom+t.y],s=[-100,-100*a]}return`translate(${o[0]}px, ${o[1]}px) translate(${s[0]}%, ${s[1]}%)`}var ng=1e3,rg=10,ig={nodeOrigin:[0,0],nodeExtent:Sm,elevateNodesOnSelect:!0,zIndexMode:`basic`,defaults:{}},ag={...ig,checkEquality:!0};function og(e,t){let n={...e};for(let e in t)t[e]!==void 0&&(n[e]=t[e]);return n}function sg(e,t,n){let r=og(ig,n);for(let n of e.values())if(n.parentId)fg(n,e,t,r);else{let e=Km(Im(n,r.nodeOrigin),hh(n.extent)?n.extent:r.nodeExtent,gh(n));n.internals.positionAbsolute=e}}function cg(e,t){if(!e.handles)return e.measured?t?.internals.handleBounds:void 0;let n=[],r=[];for(let t of e.handles){let i={id:t.id,width:t.width??1,height:t.height??1,nodeId:e.id,x:t.x,y:t.y,position:t.position,type:t.type};t.type===`source`?n.push(i):t.type===`target`&&r.push(i)}return{source:n,target:r}}function lg(e){return e===`manual`}function ug(e,t,n,r={}){let i=og(ag,r),a={i:0},o=new Map(t),s=i?.elevateNodesOnSelect&&!lg(i.zIndexMode)?ng:0,c=e.length>0,l=!1;t.clear(),n.clear();for(let u of e){let e=o.get(u.id);if(i.checkEquality&&u===e?.internals.userNode)t.set(u.id,e);else{let n=Km(Im(u,i.nodeOrigin),hh(u.extent)?u.extent:i.nodeExtent,gh(u));e={...i.defaults,...u,measured:{width:u.measured?.width,height:u.measured?.height},internals:{positionAbsolute:n,handleBounds:cg(u,e),z:pg(u,s,i.zIndexMode),userNode:u}},t.set(u.id,e)}(e.measured===void 0||e.measured.width===void 0||e.measured.height===void 0)&&!e.hidden&&(c=!1),u.parentId&&fg(e,t,n,r,a),l||=u.selected??!1}return{nodesInitialized:c,hasSelectedNodes:l}}function dg(e,t){if(!e.parentId)return;let n=t.get(e.parentId);n?n.set(e.id,e):t.set(e.parentId,new Map([[e.id,e]]))}function fg(e,t,n,r,i){let{elevateNodesOnSelect:a,nodeOrigin:o,nodeExtent:s,zIndexMode:c}=og(ig,r),l=e.parentId,u=t.get(l);if(!u){console.warn(`Parent node ${l} not found. Please make sure that parent nodes are in front of their child nodes in the nodes array.`);return}dg(e,n),i&&!u.parentId&&u.internals.rootParentIndex===void 0&&c===`auto`&&(u.internals.rootParentIndex=++i.i,u.internals.z=u.internals.z+i.i*rg),i&&u.internals.rootParentIndex!==void 0&&(i.i=u.internals.rootParentIndex);let{x:d,y:f,z:p}=mg(e,u,o,s,a&&!lg(c)?ng:0,c),{positionAbsolute:m}=e.internals,h=d!==m.x||f!==m.y;(h||p!==e.internals.z)&&t.set(e.id,{...e,internals:{...e.internals,positionAbsolute:h?{x:d,y:f}:m,z:p}})}function pg(e,t,n){let r=ah(e.zIndex)?e.zIndex:0;return lg(n)?r:r+(e.selected?t:0)}function mg(e,t,n,r,i,a){let{x:o,y:s}=t.internals.positionAbsolute,c=gh(e),l=Im(e,n),u=hh(e.extent)?Km(l,e.extent,c):l,d=Km({x:o+u.x,y:s+u.y},r,c);e.extent===`parent`&&(d=qm(d,c,t));let f=pg(e,i,a),p=t.internals.z??0;return{x:d.x,y:d.y,z:p>=f?p+1:f}}function hg(e,t,n,r=[0,0]){let i=[],a=new Map;for(let n of e){let e=t.get(n.parentId);if(!e)continue;let r=th(a.get(n.parentId)?.expandedRect??$m(e),n.rect);a.set(n.parentId,{expandedRect:r,parent:e})}return a.size>0&&a.forEach(({expandedRect:t,parent:a},o)=>{let s=a.internals.positionAbsolute,c=gh(a),l=a.origin??r,u=t.x<s.x?Math.round(Math.abs(s.x-t.x)):0,d=t.y<s.y?Math.round(Math.abs(s.y-t.y)):0,f=Math.max(c.width,Math.round(t.width)),p=Math.max(c.height,Math.round(t.height)),m=(f-c.width)*l[0],h=(p-c.height)*l[1];(u>0||d>0||m||h)&&(i.push({id:o,type:`position`,position:{x:a.position.x-u+m,y:a.position.y-d+h}}),n.get(o)?.forEach(t=>{e.some(e=>e.id===t.id)||i.push({id:t.id,type:`position`,position:{x:t.position.x+u,y:t.position.y+d}})})),(c.width<t.width||c.height<t.height||u||d)&&i.push({id:o,type:`dimensions`,setAttributes:!0,dimensions:{width:f+(u?l[0]*u-m:0),height:p+(d?l[1]*d-h:0)}})}),i}function gg(e,t,n,r,i,a,o){let s=r?.querySelector(`.xyflow__viewport`),c=!1;if(!s)return{changes:[],updatedInternals:c};let l=[],u=window.getComputedStyle(s),{m22:d}=new window.DOMMatrixReadOnly(u.transform),f=[];for(let r of e.values()){let e=t.get(r.id);if(!e)continue;if(e.hidden){t.set(e.id,{...e,internals:{...e.internals,handleBounds:void 0}}),c=!0;continue}let s=wh(r.nodeElement),u=e.measured.width!==s.width||e.measured.height!==s.height;if(s.width&&s.height&&(u||!e.internals.handleBounds||r.force)){let p=r.nodeElement.getBoundingClientRect(),m=hh(e.extent)?e.extent:a,{positionAbsolute:h}=e.internals;if(e.parentId&&e.extent===`parent`){let n=t.get(e.parentId);n&&(h=qm(h,s,n))}else m&&(h=Km(h,m,s));let g={...e,measured:s,internals:{...e.internals,positionAbsolute:h,handleBounds:{source:Ah(`source`,r.nodeElement,p,d,e.id),target:Ah(`target`,r.nodeElement,p,d,e.id)}}};t.set(e.id,g),e.parentId&&fg(g,t,n,{nodeOrigin:i,zIndexMode:o}),c=!0,u&&(l.push({id:e.id,type:`dimensions`,dimensions:s}),e.expandParent&&e.parentId&&f.push({id:e.id,parentId:e.parentId,rect:$m(g,i)}))}}if(f.length>0){let e=hg(f,t,n,i);l.push(...e)}return{changes:l,updatedInternals:c}}async function _g({delta:e,panZoom:t,transform:n,translateExtent:r,width:i,height:a}){if(!t||!e.x&&!e.y)return!1;let o=await t.setViewportConstrained({x:n[0]+e.x,y:n[1]+e.y,zoom:n[2]},[[0,0],[i,a]],r);return!!o&&(o.x!==n[0]||o.y!==n[1]||o.k!==n[2])}function vg(e,t,n,r,i,a){let o=i,s=r.get(o)||new Map;r.set(o,s.set(n,t)),o=`${i}-${e}`;let c=r.get(o)||new Map;if(r.set(o,c.set(n,t)),a){o=`${i}-${e}-${a}`;let s=r.get(o)||new Map;r.set(o,s.set(n,t))}}function yg(e,t,n){e.clear(),t.clear();for(let r of n){let{source:n,target:i,sourceHandle:a=null,targetHandle:o=null}=r,s={edgeId:r.id,source:n,target:i,sourceHandle:a,targetHandle:o},c=`${n}-${a}--${i}-${o}`;vg(`source`,s,`${i}-${o}--${n}-${a}`,e,n,a),vg(`target`,s,c,e,i,o),t.set(r.id,r)}}function bg(e,t){if(!e.parentId)return!1;let n=t.get(e.parentId);return n?n.selected?!0:bg(n,t):!1}function xg(e,t,n){let r=e;do{if(r?.matches?.(t))return!0;if(r===n)return!1;r=r?.parentElement}while(r);return!1}function Sg(e,t,n,r){let i=new Map;for(let[a,o]of e)if((o.selected||o.id===r)&&(!o.parentId||!bg(o,e))&&(o.draggable||t&&o.draggable===void 0)){let t=e.get(a);t&&i.set(a,{id:a,position:t.position||{x:0,y:0},distance:{x:n.x-t.internals.positionAbsolute.x,y:n.y-t.internals.positionAbsolute.y},extent:t.extent,parentId:t.parentId,origin:t.origin,expandParent:t.expandParent,internals:{positionAbsolute:t.internals.positionAbsolute||{x:0,y:0}},measured:{width:t.measured.width??0,height:t.measured.height??0}})}return i}function Cg({nodeId:e,dragItems:t,nodeLookup:n,dragging:r=!0}){let i=[];for(let[e,a]of t){let t=n.get(e)?.internals.userNode;t&&i.push({...t,position:a.position,dragging:r})}if(!e)return[i[0],i];let a=n.get(e)?.internals.userNode;return[a?{...a,position:t.get(e)?.position||a.position,dragging:r}:i[0],i]}function wg({dragItems:e,snapGrid:t,x:n,y:r}){let i=e.values().next().value;if(!i)return null;let a={x:n-i.distance.x,y:r-i.distance.y},o=sh(a,t);return{x:o.x-a.x,y:o.y-a.y}}function Tg({onNodeMouseDown:e,getStoreItems:t,onDragStart:n,onDrag:r,onDragStop:i}){let a={x:null,y:null},o=0,s=new Map,c=!1,l={x:0,y:0},u=null,d=!1,f=null,p=!1,m=!1,h=null;function g({noDragClassName:g,handleSelector:_,domNode:v,isSelectable:y,nodeId:b,nodeClickDistance:x=0}){f=Hu(v);function S({x:e,y:n}){let{nodeLookup:i,nodeExtent:o,snapGrid:c,snapToGrid:l,nodeOrigin:u,onNodeDrag:d,onSelectionDrag:f,onError:p,updateNodePositions:g}=t();a={x:e,y:n};let _=!1,v=s.size>1,y=v&&o?Zm(Rm(s)):null,x=v&&l?wg({dragItems:s,snapGrid:c,x:e,y:n}):null;for(let[t,r]of s){if(!i.has(t))continue;let a={x:e-r.distance.x,y:n-r.distance.y};l&&(a=x?{x:Math.round(a.x+x.x),y:Math.round(a.y+x.y)}:sh(a,c));let s=null;if(v&&o&&!r.extent&&y){let{positionAbsolute:e}=r.internals,t=e.x-y.x+o[0][0],n=e.x+r.measured.width-y.x2+o[1][0],i=e.y-y.y+o[0][1],a=e.y+r.measured.height-y.y2+o[1][1];s=[[t,i],[n,a]]}let{position:d,positionAbsolute:f}=Um({nodeId:t,nextPosition:a,nodeLookup:i,nodeExtent:s||o,nodeOrigin:u,onError:p});_=_||r.position.x!==d.x||r.position.y!==d.y,r.position=d,r.internals.positionAbsolute=f}if(m||=_,_&&(g(s,!0),h&&(r||d||!b&&f))){let[e,t]=Cg({nodeId:b,dragItems:s,nodeLookup:i});r?.(h,s,e,t),d?.(h,e,t),b||f?.(h,t)}}async function C(){if(!u)return;let{transform:e,panBy:n,autoPanSpeed:r,autoPanOnNodeDrag:i}=t();if(!i){c=!1,cancelAnimationFrame(o);return}let[s,d]=Ym(l,u,r);(s!==0||d!==0)&&(a.x=(a.x??0)-s/e[2],a.y=(a.y??0)-d/e[2],await n({x:s,y:d})&&S(a)),o=requestAnimationFrame(C)}function w(r){let{nodeLookup:i,multiSelectionActive:o,nodesDraggable:c,transform:l,snapGrid:f,snapToGrid:p,selectNodesOnDrag:m,onNodeDragStart:h,onSelectionDragStart:g,unselectNodesAndEdges:_}=t();d=!0,(!m||!y)&&!o&&b&&(i.get(b)?.selected||_()),y&&m&&b&&e?.(b);let v=Ch(r.sourceEvent,{transform:l,snapGrid:f,snapToGrid:p,containerBounds:u});if(a=v,s=Sg(i,c,v,b),s.size>0&&(n||h||!b&&g)){let[e,t]=Cg({nodeId:b,dragItems:s,nodeLookup:i});n?.(r.sourceEvent,s,e,t),h?.(r.sourceEvent,e,t),b||g?.(r.sourceEvent,t)}}let ee=rd().clickDistance(x).on(`start`,e=>{let{domNode:n,nodeDragThreshold:r,transform:i,snapGrid:o,snapToGrid:s}=t();u=n?.getBoundingClientRect()||null,p=!1,m=!1,h=e.sourceEvent,r===0&&w(e),a=Ch(e.sourceEvent,{transform:i,snapGrid:o,snapToGrid:s,containerBounds:u}),l=kh(e.sourceEvent,u)}).on(`drag`,e=>{let{autoPanOnNodeDrag:n,transform:r,snapGrid:i,snapToGrid:o,nodeDragThreshold:f,nodeLookup:m}=t(),g=Ch(e.sourceEvent,{transform:r,snapGrid:i,snapToGrid:o,containerBounds:u});if(h=e.sourceEvent,(e.sourceEvent.type===`touchmove`&&e.sourceEvent.touches.length>1||b&&!m.has(b))&&(p=!0),!p){if(!c&&n&&d&&(c=!0,C()),!d){let t=kh(e.sourceEvent,u),n=t.x-l.x,r=t.y-l.y;Math.sqrt(n*n+r*r)>f&&w(e)}(a.x!==g.xSnapped||a.y!==g.ySnapped)&&s&&d&&(l=kh(e.sourceEvent,u),S(g))}}).on(`end`,e=>{if(!d||p)p&&s.size>0&&t().updateNodePositions(s,!1);else if(c=!1,d=!1,cancelAnimationFrame(o),s.size>0){let{nodeLookup:n,updateNodePositions:r,onNodeDragStop:a,onSelectionDragStop:o}=t();if(m&&=(r(s,!1),!1),i||a||!b&&o){let[t,r]=Cg({nodeId:b,dragItems:s,nodeLookup:n,dragging:!1});i?.(e.sourceEvent,s,t,r),a?.(e.sourceEvent,t,r),b||o?.(e.sourceEvent,r)}}}).filter(e=>{let t=e.target;return!e.button&&(!g||!xg(t,`.${g}`,v))&&(!_||xg(t,_,v))});f.call(ee)}function _(){f?.on(`.drag`,null)}return{update:g,destroy:_}}function Eg(e,t,n){let r=[],i={x:e.x-n,y:e.y-n,width:n*2,height:n*2};for(let e of t.values())rh(i,$m(e))>0&&r.push(e);return r}var Dg=250;function Og(e,t,n,r){let i=[],a=1/0,o=Eg(e,n,t+Dg);for(let n of o){let o=[...n.internals.handleBounds?.source??[],...n.internals.handleBounds?.target??[]];for(let s of o){if(r.nodeId===s.nodeId&&r.type===s.type&&r.id===s.id)continue;let{x:o,y:c}=Zh(n,s,s.position,!0),l=Math.sqrt((o-e.x)**2+(c-e.y)**2);l>t||(l<a?(i=[{...s,x:o,y:c}],a=l):l===a&&i.push({...s,x:o,y:c}))}}if(!i.length)return null;if(i.length>1){let e=r.type===`source`?`target`:`source`;return i.find(t=>t.type===e)??i[0]}return i[0]}function kg(e,t,n,r,i,a=!1){let o=r.get(e);if(!o)return null;let s=i===`strict`?o.internals.handleBounds?.[t]:[...o.internals.handleBounds?.source??[],...o.internals.handleBounds?.target??[]],c=(n?s?.find(e=>e.id===n):s?.[0])??null;return c&&a?{...c,...Zh(o,c,c.position,!0)}:c}function Ag(e,t){return e||(t?.classList.contains(`target`)?`target`:t?.classList.contains(`source`)?`source`:null)}function jg(e,t){let n=null;return t?n=!0:e&&!t&&(n=!1),n}var Mg=()=>!0;function Ng(e,{connectionMode:t,connectionRadius:n,handleId:r,nodeId:i,edgeUpdaterType:a,isTarget:o,domNode:s,nodeLookup:c,lib:l,autoPanOnConnect:u,flowId:d,panBy:f,cancelConnection:p,onConnectStart:m,onConnect:h,onConnectEnd:g,isValidConnection:_=Mg,onReconnectEnd:v,updateConnection:y,getTransform:b,getFromHandle:x,autoPanSpeed:S,dragThreshold:C=1,handleDomNode:w}){let ee=Th(e.target),T=0,te,{x:E,y:ne}=kh(e),re=Ag(a,w),ie=s?.getBoundingClientRect(),ae=!1;if(!ie||!re)return;let oe=kg(i,re,r,c,t);if(!oe)return;let se=kh(e,ie),ce=!1,le=null,ue=!1,de=null;function fe(){if(!u||!ie)return;let[e,t]=Ym(se,ie,S);f({x:e,y:t}),T=requestAnimationFrame(fe)}let pe={...oe,nodeId:i,type:re,position:oe.position},me=c.get(i),he={inProgress:!0,isValid:null,from:Zh(me,pe,jm.Left,!0),fromHandle:pe,fromPosition:pe.position,fromNode:me,to:se,toHandle:null,toPosition:Mm[pe.position],toNode:null,pointer:se};function ge(){ae=!0,y(he),m?.(e,{nodeId:i,handleId:r,handleType:re})}C===0&&ge();function _e(e){if(!ae){let{x:t,y:n}=kh(e),r=t-E,i=n-ne;if(!(r*r+i*i>C*C))return;ge()}if(!x()||!pe){ve(e);return}let a=b();se=kh(e,ie),te=Og(ch(se,a,!1,[1,1]),n,c,pe),ce||=(fe(),!0);let s=Pg(e,{handle:te,connectionMode:t,fromNodeId:i,fromHandleId:r,fromType:o?`target`:`source`,isValidConnection:_,doc:ee,lib:l,flowId:d,nodeLookup:c});de=s.handleDomNode,le=s.connection,ue=jg(!!te,s.isValid);let u=c.get(i),f=u?Zh(u,pe,jm.Left,!0):he.from,p={...he,from:f,isValid:ue,to:s.toHandle&&ue?lh({x:s.toHandle.x,y:s.toHandle.y},a):se,toHandle:s.toHandle,toPosition:ue&&s.toHandle?s.toHandle.position:Mm[pe.position],toNode:s.toHandle?c.get(s.toHandle.nodeId):null,pointer:se};y(p),he=p}function ve(e){if(!(`touches`in e&&e.touches.length>0)){if(ae){(te||de)&&le&&ue&&h?.(le);let{inProgress:t,...n}=he,r={...n,toPosition:he.toHandle?he.toPosition:null};g?.(e,r),a&&v?.(e,r)}p(),cancelAnimationFrame(T),ce=!1,ue=!1,le=null,de=null,ee.removeEventListener(`mousemove`,_e),ee.removeEventListener(`mouseup`,ve),ee.removeEventListener(`touchmove`,_e),ee.removeEventListener(`touchend`,ve)}}ee.addEventListener(`mousemove`,_e),ee.addEventListener(`mouseup`,ve),ee.addEventListener(`touchmove`,_e),ee.addEventListener(`touchend`,ve)}function Pg(e,{handle:t,connectionMode:n,fromNodeId:r,fromHandleId:i,fromType:a,doc:o,lib:s,flowId:c,isValidConnection:l=Mg,nodeLookup:u}){let d=a===`target`,f=t?o.querySelector(`.${s}-flow__handle[data-id="${c}-${t?.nodeId}-${t?.id}-${t?.type}"]`):null,{x:p,y:m}=kh(e),h=o.elementFromPoint(p,m),g=h?.classList.contains(`${s}-flow__handle`)?h:f,_={handleDomNode:g,isValid:!1,connection:null,toHandle:null};if(g){let e=Ag(void 0,g),t=g.getAttribute(`data-nodeid`),a=g.getAttribute(`data-handleid`),o=g.classList.contains(`connectable`),s=g.classList.contains(`connectableend`);if(!t||!e)return _;let c={source:d?t:r,sourceHandle:d?a:i,target:d?r:t,targetHandle:d?i:a};_.connection=c,_.isValid=o&&s&&(n===Tm.Strict?d&&e===`source`||!d&&e===`target`:t!==r||a!==i)&&l(c),_.toHandle=kg(t,e,a,u,n,!0)}return _}var Fg={onPointerDown:Ng,isValid:Pg};function Ig({domNode:e,panZoom:t,getTransform:n,getViewScale:r}){let i=Hu(e);function a({translateExtent:e,width:a,height:o,zoomStep:s=1,pannable:c=!0,zoomable:l=!0,inversePan:u=!1}){let d=e=>{if(e.sourceEvent.type!==`wheel`||!t)return;let r=n(),i=e.sourceEvent.ctrlKey&&mh()?10:1,a=-e.sourceEvent.deltaY*(e.sourceEvent.deltaMode===1?.05:e.sourceEvent.deltaMode?1:.002)*s,o=r[2]*2**(a*i);t.scaleTo(o)},f=[0,0],p=bm().on(`start`,e=>{(e.sourceEvent.type===`mousedown`||e.sourceEvent.type===`touchstart`)&&(f=[e.sourceEvent.clientX??e.sourceEvent.touches[0].clientX,e.sourceEvent.clientY??e.sourceEvent.touches[0].clientY])}).on(`zoom`,c?i=>{let s=n();if(i.sourceEvent.type!==`mousemove`&&i.sourceEvent.type!==`touchmove`||!t)return;let c=[i.sourceEvent.clientX??i.sourceEvent.touches[0].clientX,i.sourceEvent.clientY??i.sourceEvent.touches[0].clientY],l=[c[0]-f[0],c[1]-f[1]];f=c;let d=r()*Math.max(s[2],Math.log(s[2]))*(u?-1:1),p={x:s[0]-l[0]*d,y:s[1]-l[1]*d},m=[[0,0],[a,o]];t.setViewportConstrained({x:p.x,y:p.y,zoom:s[2]},m,e)}:null).on(`zoom.wheel`,l?d:null);i.call(p,{})}function o(){i.on(`zoom`,null)}return{update:a,destroy:o,pointer:Wu}}var Lg=e=>({x:e.x,y:e.y,zoom:e.k}),Rg=({x:e,y:t,zoom:n})=>um.translate(e,t).scale(n),zg=(e,t)=>e.target.closest(`.${t}`),Bg=(e,t)=>t===2&&Array.isArray(e)&&e.includes(2),Vg=e=>((e*=2)<=1?e*e*e:(e-=2)*e*e+2)/2,Hg=(e,t=0,n=Vg,r=()=>{})=>{let i=typeof t==`number`&&t>0;return i||r(),i?e.transition().duration(t).ease(n).on(`end`,r):e},Ug=e=>{let t=e.ctrlKey&&mh()?10:1;return-e.deltaY*(e.deltaMode===1?.05:e.deltaMode?1:.002)*t};function Wg({zoomPanValues:e,noWheelClassName:t,d3Selection:n,d3Zoom:r,panOnScrollMode:i,panOnScrollSpeed:a,zoomOnPinch:o,onPanZoomStart:s,onPanZoom:c,onPanZoomEnd:l}){return u=>{if(zg(u,t))return u.ctrlKey&&u.preventDefault(),!1;u.preventDefault(),u.stopImmediatePropagation();let d=n.property(`__zoom`).k||1;if(u.ctrlKey&&o){let e=Wu(u),t=d*2**Ug(u);r.scaleTo(n,t,e,u);return}let f=u.deltaMode===1?20:1,p=i===Em.Vertical?0:u.deltaX*f,m=i===Em.Horizontal?0:u.deltaY*f;!mh()&&u.shiftKey&&i!==Em.Vertical&&(p=u.deltaY*f,m=0),r.translateBy(n,-(p/d)*a,-(m/d)*a,{internal:!0});let h=Lg(n.property(`__zoom`));clearTimeout(e.panScrollTimeout),e.isPanScrolling?c?.(u,h):(e.isPanScrolling=!0,s?.(u,h)),e.panScrollTimeout=setTimeout(()=>{l?.(u,h),e.isPanScrolling=!1},150)}}function Gg({noWheelClassName:e,preventScrolling:t,d3ZoomHandler:n}){return function(r,i){let a=r.type===`wheel`,o=!t&&a&&!r.ctrlKey,s=zg(r,e);if(r.ctrlKey&&a&&s&&r.preventDefault(),o||s)return null;r.preventDefault(),n.call(this,r,i)}}function Kg({zoomPanValues:e,onDraggingChange:t,onPanZoomStart:n}){return r=>{if(r.sourceEvent?.internal)return;let i=Lg(r.transform);e.mouseButton=r.sourceEvent?.button||0,e.isZoomingOrPanning=!0,e.prevViewport=i,r.sourceEvent?.type===`mousedown`&&t(!0),n&&n?.(r.sourceEvent,i)}}function qg({zoomPanValues:e,panOnDrag:t,onPaneContextMenu:n,onTransformChange:r,onPanZoom:i}){return a=>{e.usedRightMouseButton=!!(n&&Bg(t,e.mouseButton??0)),a.sourceEvent?.sync||r([a.transform.x,a.transform.y,a.transform.k]),i&&!a.sourceEvent?.internal&&i?.(a.sourceEvent,Lg(a.transform))}}function Jg({zoomPanValues:e,panOnDrag:t,panOnScroll:n,onDraggingChange:r,onPanZoomEnd:i,onPaneContextMenu:a}){return o=>{if(!o.sourceEvent?.internal&&(e.isZoomingOrPanning=!1,a&&Bg(t,e.mouseButton??0)&&!e.usedRightMouseButton&&o.sourceEvent&&a(o.sourceEvent),e.usedRightMouseButton=!1,r(!1),i)){let t=Lg(o.transform);e.prevViewport=t,clearTimeout(e.timerId),e.timerId=setTimeout(()=>{i?.(o.sourceEvent,t)},n?150:0)}}}function Yg({panActivationKeyPressed:e,zoomActivationKeyPressed:t,zoomOnScroll:n,zoomOnPinch:r,panOnDrag:i,panOnScroll:a,zoomOnDoubleClick:o,userSelectionActive:s,noWheelClassName:c,noPanClassName:l,lib:u,connectionInProgress:d}){return f=>{let p=t||n,m=r&&f.ctrlKey,h=f.type===`wheel`;if(f.button===1&&f.type===`mousedown`&&(zg(f,`${u}-flow__node`)||zg(f,`${u}-flow__edge`)||zg(f,`${u}-flow__selection`)||zg(f,`${u}-flow__nodesselection`)))return!0;if(!i&&!p&&!a&&!o&&!r||s||d&&!h||zg(f,c)&&h||zg(f,l)&&(!h||a&&h&&!t)||!r&&f.ctrlKey&&h)return!1;if(!r&&f.type===`touchstart`&&f.touches?.length>1)return f.preventDefault(),!1;if(!p&&!a&&!m&&h||!i&&(f.type===`mousedown`||f.type===`touchstart`)||Array.isArray(i)&&!i.includes(f.button)&&f.type===`mousedown`)return!1;let g=Array.isArray(i)&&i.includes(f.button)||!f.button||f.button<=1;return(!f.ctrlKey||h||e)&&g}}function Xg({domNode:e,minZoom:t,maxZoom:n,translateExtent:r,viewport:i,onPanZoom:a,onPanZoomStart:o,onPanZoomEnd:s,onDraggingChange:c}){let l={isZoomingOrPanning:!1,usedRightMouseButton:!1,prevViewport:{},mouseButton:0,timerId:void 0,panScrollTimeout:void 0,isPanScrolling:!1},u=e.getBoundingClientRect(),d=[[0,0],[u.width,u.height]];(typeof ResizeObserver<`u`?new ResizeObserver(e=>{let t=e[0];t&&(d=[[0,0],[t.contentRect.width,t.contentRect.height]])}):null)?.observe(e);let f=bm().extent(()=>d).scaleExtent([t,n]).translateExtent(r),p=Hu(e).call(f);y({x:i.x,y:i.y,zoom:Gm(i.zoom,t,n)},[[0,0],[u.width,u.height]],r);let m=p.on(`wheel.zoom`),h=p.on(`dblclick.zoom`);f.wheelDelta(Ug);async function g(e,t){return p?new Promise(n=>{f?.interpolate(t?.interpolate===`linear`?sf:xf).transform(Hg(p,t?.duration,t?.ease,()=>n(!0)),e)}):!1}function _({noWheelClassName:e,noPanClassName:t,onPaneContextMenu:n,userSelectionActive:r,panOnScroll:i,panOnDrag:u,panOnScrollMode:d,panOnScrollSpeed:g,preventScrolling:_,zoomOnPinch:y,zoomOnScroll:b,zoomOnDoubleClick:x,panActivationKeyPressed:S=!1,zoomActivationKeyPressed:C,lib:w,onTransformChange:ee,connectionInProgress:T,paneClickDistance:te,selectionOnDrag:E}){r&&!l.isZoomingOrPanning&&v();let ne=i&&!C&&!r;f.clickDistance(E?1/0:!ah(te)||te<0?0:te);let re=ne?Wg({zoomPanValues:l,noWheelClassName:e,d3Selection:p,d3Zoom:f,panOnScrollMode:d,panOnScrollSpeed:g,zoomOnPinch:y,onPanZoomStart:o,onPanZoom:a,onPanZoomEnd:s}):Gg({noWheelClassName:e,preventScrolling:_,d3ZoomHandler:m});p.on(`wheel.zoom`,re,{passive:!1});let ie=Kg({zoomPanValues:l,onDraggingChange:c,onPanZoomStart:o});f.on(`start`,ie);let ae=qg({zoomPanValues:l,panOnDrag:u,onPaneContextMenu:!!n,onPanZoom:a,onTransformChange:ee});f.on(`zoom`,ae);let oe=Jg({zoomPanValues:l,panOnDrag:u,panOnScroll:i,onPaneContextMenu:n,onPanZoomEnd:s,onDraggingChange:c});f.on(`end`,oe);let se=Yg({panActivationKeyPressed:S,zoomActivationKeyPressed:C,panOnDrag:u,zoomOnScroll:b,panOnScroll:i,zoomOnDoubleClick:x,zoomOnPinch:y,userSelectionActive:r,noPanClassName:t,noWheelClassName:e,lib:w,connectionInProgress:T});f.filter(se),x?p.on(`dblclick.zoom`,h):p.on(`dblclick.zoom`,null)}function v(){f.on(`zoom`,null)}async function y(e,t,n){let r=Rg(e),i=f?.constrain()(r,t,n);return i&&await g(i),i}async function b(e,t){let n=Rg(e);return await g(n,t),n}function x(e){if(p){let t=Rg(e),n=p.property(`__zoom`);(n.k!==e.zoom||n.x!==e.x||n.y!==e.y)&&f?.transform(p,t,null,{sync:!0})}}function S(){let e=p?dm(p.node()):{x:0,y:0,k:1};return{x:e.x,y:e.y,zoom:e.k}}async function C(e,t){return p?new Promise(n=>{f?.interpolate(t?.interpolate===`linear`?sf:xf).scaleTo(Hg(p,t?.duration,t?.ease,()=>n(!0)),e)}):!1}async function w(e,t){return p?new Promise(n=>{f?.interpolate(t?.interpolate===`linear`?sf:xf).scaleBy(Hg(p,t?.duration,t?.ease,()=>n(!0)),e)}):!1}function ee(e){f?.scaleExtent(e)}function T(e){f?.translateExtent(e)}function te(e){let t=!ah(e)||e<0?0:e;f?.clickDistance(t)}return{update:_,destroy:v,setViewport:b,setViewportConstrained:y,getViewport:S,scaleTo:C,scaleBy:w,setScaleExtent:ee,setTranslateExtent:T,syncViewport:x,setClickDistance:te}}var Zg;(function(e){e.Line=`line`,e.Handle=`handle`})(Zg||={});var Qg=oh(`Svelte Flow`,`https://svelteflow.dev/`);function $g(e,t,n={}){return Bh(e,t,{...n,onError:n.onError??Qg})}function e_(){let e={};return[t=>{if(t&&!ot(e))throw Error(t);return it(e)},t=>at(e,t)]}var[t_,n_]=e_(),[r_,i_]=e_(),[a_,o_]=e_(),s_=new Set([`$$slots`,`$$events`,`$$legacy`,`id`,`type`,`position`,`style`,`class`,`isConnectable`,`isConnectableStart`,`isConnectableEnd`,`isValidConnection`,`onconnect`,`ondisconnect`,`children`]),c_=H(`<div><!></div>`);function l_(e,t){k(t,!0);let n=Y(t,`id`,3,null),r=Y(t,`type`,3,`source`),i=Y(t,`position`,19,()=>jm.Top),a=Y(t,`isConnectableStart`,3,!0),o=Y(t,`isConnectableEnd`,3,!0),s=J(t,s_),c=t_(`Handle must be used within a Custom Node component`),l=r_(`Handle must be used within a Custom Node component`),u=j(()=>r()===`target`),d=j(()=>t.isConnectable===void 0?l.value:t.isConnectable),p=Q_(),m=j(()=>p.ariaLabelConfig),h=null;Rn(()=>{if(t.onconnect||t.ondisconnect){p.edges;let e=p.connectionLookup.get(`${c}-${r()}${n()?`-${n()}`:``}`);if(h&&!bh(e,h)){let n=e??new Map;xh(h,n,t.ondisconnect),xh(n,h,t.onconnect)}h=new Map(e)}});let g=j(()=>{if(!p.connection.inProgress)return[!1,!1,!1,!1,null];let{fromHandle:e,toHandle:t,isValid:i}=p.connection,a=e&&e.nodeId===c&&e.type===r()&&e.id===n(),o=t&&t.nodeId===c&&t.type===r()&&t.id===n();return[!0,a,o,p.connectionMode===Tm.Strict?e?.type!==r():c!==e?.nodeId||n()!==e?.id,o&&i]}),_=j(()=>v(z(g),5)),y=j(()=>z(_)[0]),b=j(()=>z(_)[1]),x=j(()=>z(_)[2]),S=j(()=>z(_)[3]),C=j(()=>z(_)[4]);function w(e){let t=p.onbeforeconnect?p.onbeforeconnect(e):e;t&&(p.addEdge(t),p.onconnect?.(e))}function ee(e){let r=Oh(e);e.currentTarget&&(r&&e.button===0||!r)&&Fg.onPointerDown(e,{handleId:n(),nodeId:c,isTarget:z(u),connectionRadius:p.connectionRadius,domNode:p.domNode,nodeLookup:p.nodeLookup,connectionMode:p.connectionMode,lib:`svelte`,autoPanOnConnect:p.autoPanOnConnect,autoPanSpeed:p.autoPanSpeed,flowId:p.flowId,isValidConnection:t.isValidConnection||((...e)=>p.isValidConnection?.(...e)??!0),updateConnection:p.updateConnection,cancelConnection:p.cancelConnection,panBy:p.panBy,onConnect:w,onConnectStart:p.onconnectstart,onConnectEnd:(...e)=>p.onconnectend?.(...e),getTransform:()=>[p.viewport.x,p.viewport.y,p.viewport.zoom],getFromHandle:()=>p.connection.fromHandle,dragThreshold:p.connectionDragThreshold,handleDomNode:e.currentTarget})}function T(e){if(!c||!p.clickConnectStartHandle&&!a())return;if(!p.clickConnectStartHandle){p.onclickconnectstart?.(e,{nodeId:c,handleId:n(),handleType:r()}),p.clickConnectStartHandle={nodeId:c,type:r(),id:n()};return}let i=Th(e.target),o=t.isValidConnection??p.isValidConnection,{connectionMode:s,clickConnectStartHandle:l,flowId:u,nodeLookup:d}=p,{connection:f,isValid:m}=Fg.isValid(e,{handle:{nodeId:c,id:n(),type:r()},connectionMode:s,fromNodeId:l.nodeId,fromHandleId:l.id??null,fromType:l.type,isValidConnection:o,flowId:u,doc:i,lib:`svelte`,nodeLookup:d});m&&f&&w(f);let h=structuredClone(Qe(p.connection));delete h.inProgress,h.toPosition=h.toHandle?h.toHandle.position:null,p.onclickconnectend?.(e,h),p.clickConnectStartHandle=null}var te=c_(),E=()=>{};va(te,()=>({"data-handleid":n(),"data-nodeid":c,"data-handlepos":i(),"data-id":`${p.flowId??``}-${c??``}-${n()??`null`??``}-${r()??``}`,class:[`svelte-flow__handle`,`svelte-flow__handle-${i()}`,p.noDragClass,p.noPanClass,i(),t.class],onmousedown:ee,ontouchstart:ee,onclick:p.clickConnect?T:void 0,onkeypress:E,style:t.style,role:`button`,"aria-label":z(m)[`handle.ariaLabel`],tabindex:`-1`,...s,[aa]:{valid:z(C),connectingto:z(x),connectingfrom:z(b),source:!z(u),target:z(u),connectablestart:a(),connectableend:o(),connectable:z(d),connectionindicator:z(d)&&(!z(y)||z(S))&&(z(y)||p.clickConnectStartHandle?o():a())}})),Fi(P(te),()=>t.children??f),O(te),U(e,te),A()}var u_=H(`<!> <!>`,1);function d_(e,t){k(t,!0);let n=Y(t,`targetPosition`,19,()=>jm.Top),r=Y(t,`sourcePosition`,19,()=>jm.Bottom);var i=u_(),a=F(i);l_(a,{type:`target`,get position(){return n()}});var o=L(a);l_(L(o),{type:`source`,get position(){return r()}}),R(()=>W(o,` ${t.data?.label??``} `)),U(e,i),A()}var f_=H(` <!>`,1);function p_(e,t){k(t,!0);let n=Y(t,`data`,19,()=>({label:`Node`})),r=Y(t,`sourcePosition`,19,()=>jm.Bottom);je();var i=f_(),a=F(i);l_(L(a),{type:`source`,get position(){return r()}}),R(()=>W(a,`${n()?.label??``} `)),U(e,i),A()}var m_=H(` <!>`,1);function h_(e,t){k(t,!0);let n=Y(t,`data`,19,()=>({label:`Node`})),r=Y(t,`targetPosition`,19,()=>jm.Top);je();var i=m_(),a=F(i);l_(L(a),{type:`target`,get position(){return r()}}),R(()=>W(a,`${n()?.label??``} `)),U(e,i),A()}function g_(e,t){}function __(e,t,n){if(!n||!t)return;let r=n===`root`?t:t.querySelector(`.svelte-flow__${n}`);r&&r.appendChild(e)}function v_(e,t){let n=j(Q_),r=j(()=>z(n).domNode),i;return z(r)?__(e,z(r),t):i=zn(()=>{In(()=>{__(e,z(r),t),i?.()})}),{async update(t){__(e,z(r),t)},destroy(){e.parentNode&&e.parentNode.removeChild(e),i?.()}}}function y_(){let e=M(typeof window>`u`);if(z(e)){let t=zn(()=>{In(()=>{N(e,!1),t?.()})})}return{get value(){return z(e)}}}var b_=e=>Pm(e),x_=e=>Nm(e);function S_(e){return e===void 0?void 0:`${e}px`}var C_={ArrowUp:{x:0,y:-1},ArrowDown:{x:0,y:1},ArrowLeft:{x:-1,y:0},ArrowRight:{x:1,y:0}},w_=new Set([`$$slots`,`$$events`,`$$legacy`,`x`,`y`,`width`,`height`,`selectEdgeOnClick`,`transparent`,`class`,`children`]),T_=H(`<div><!></div>`);function E_(e,t){k(t,!0);let n=Y(t,`x`,3,0),r=Y(t,`y`,3,0),i=Y(t,`selectEdgeOnClick`,3,!1),a=Y(t,`transparent`,3,!1),o=J(t,w_),s=Q_(),c=a_(`EdgeLabel must be used within a Custom Edge component`),l=j(()=>s.visible.edges.get(c)?.zIndex);var u=T_(),d=()=>{i()&&c&&s.handleEdgeSelection(c)};va(u,(e,s,c)=>({class:[`svelte-flow__edge-label`,{transparent:a()},t.class],tabindex:`-1`,onclick:d,...o,[oa]:{display:e,cursor:i()?`pointer`:void 0,transform:`translate(-50%, -50%) translate(${n()??``}px,${r()??``}px)`,"pointer-events":`all`,width:s,height:c,"z-index":z(l)}}),[()=>y_().value?`none`:void 0,()=>S_(t.width),()=>S_(t.height)],void 0,void 0,`svelte-1wg91mu`),Fi(P(u),()=>t.children??f),O(u),Ri(u,(e,t)=>v_?.(e,t),()=>`edge-labels`),U(e,u),A()}var D_=new Set([`$$slots`,`$$events`,`$$legacy`,`id`,`path`,`label`,`labelX`,`labelY`,`labelStyle`,`markerStart`,`markerEnd`,`style`,`interactionWidth`,`class`]),O_=oi(`<path></path>`),k_=oi(`<path fill="none"></path><!><!>`,1);function A_(e,t){let n=Y(t,`interactionWidth`,3,20),r=J(t,D_);var i=k_(),a=F(i),o=L(a),s=e=>{var i=O_();va(i,()=>({d:t.path,"stroke-opacity":0,"stroke-width":n(),fill:`none`,class:`svelte-flow__edge-interaction`,...r})),U(e,i)};G(o,e=>{n()>0&&e(s)});var c=L(o),l=e=>{E_(e,{get x(){return t.labelX},get y(){return t.labelY},get style(){return t.labelStyle},selectEdgeOnClick:!0,children:(e,n)=>{je();var r=si();R(()=>W(r,t.label)),U(e,r)},$$slots:{default:!0}})};G(c,e=>{t.label&&e(l)}),R(()=>{q(a,`id`,t.id),q(a,`d`,t.path),Ji(a,0,Hi([`svelte-flow__edge-path`,t.class])),q(a,`marker-start`,t.markerStart),q(a,`marker-end`,t.markerEnd),Xi(a,t.style)}),U(e,i)}function j_(e,t){k(t,!0);let n=j(()=>Ph({sourceX:t.sourceX,sourceY:t.sourceY,targetX:t.targetX,targetY:t.targetY,sourcePosition:t.sourcePosition,targetPosition:t.targetPosition,curvature:t.pathOptions?.curvature})),r=j(()=>v(z(n),3)),i=j(()=>z(r)[0]),a=j(()=>z(r)[1]),o=j(()=>z(r)[2]);A_(e,{get id(){return t.id},get path(){return z(i)},get labelX(){return z(a)},get labelY(){return z(o)},get label(){return t.label},get labelStyle(){return t.labelStyle},get markerStart(){return t.markerStart},get markerEnd(){return t.markerEnd},get interactionWidth(){return t.interactionWidth},get style(){return t.style}}),A()}function M_(e,t){k(t,!0);let n=j(()=>qh({sourceX:t.sourceX,sourceY:t.sourceY,targetX:t.targetX,targetY:t.targetY,sourcePosition:t.sourcePosition,targetPosition:t.targetPosition})),r=j(()=>v(z(n),3)),i=j(()=>z(r)[0]),a=j(()=>z(r)[1]),o=j(()=>z(r)[2]);A_(e,{get path(){return z(i)},get labelX(){return z(a)},get labelY(){return z(o)},get label(){return t.label},get labelStyle(){return t.labelStyle},get markerStart(){return t.markerStart},get markerEnd(){return t.markerEnd},get interactionWidth(){return t.interactionWidth},get style(){return t.style}}),A()}function N_(e,t){k(t,!0);let n=j(()=>Vh({sourceX:t.sourceX,sourceY:t.sourceY,targetX:t.targetX,targetY:t.targetY})),r=j(()=>v(z(n),3)),i=j(()=>z(r)[0]),a=j(()=>z(r)[1]),o=j(()=>z(r)[2]);A_(e,{get path(){return z(i)},get labelX(){return z(a)},get labelY(){return z(o)},get label(){return t.label},get labelStyle(){return t.labelStyle},get markerStart(){return t.markerStart},get markerEnd(){return t.markerEnd},get interactionWidth(){return t.interactionWidth},get style(){return t.style}}),A()}function P_(e,t){k(t,!0);let n=j(()=>qh({sourceX:t.sourceX,sourceY:t.sourceY,targetX:t.targetX,targetY:t.targetY,sourcePosition:t.sourcePosition,targetPosition:t.targetPosition,borderRadius:0})),r=j(()=>v(z(n),3)),i=j(()=>z(r)[0]),a=j(()=>z(r)[1]),o=j(()=>z(r)[2]);A_(e,{get path(){return z(i)},get labelX(){return z(a)},get labelY(){return z(o)},get label(){return t.label},get labelStyle(){return t.labelStyle},get markerStart(){return t.markerStart},get markerEnd(){return t.markerEnd},get interactionWidth(){return t.interactionWidth},get style(){return t.style}}),A()}var F_=[`forEach`,`isDisjointFrom`,`isSubsetOf`,`isSupersetOf`],I_=[`difference`,`intersection`,`symmetricDifference`,`union`],L_=!1,R_=class e extends Set{#e=new Map;#t=M(0);#n=M(0);#r=br||-1;constructor(e){if(super(),e){for(var t of e)super.add(t);this.#n.v=super.size}L_||this.#a()}#i(e){return br===this.#r?M(e):an(e)}#a(){L_=!0;var t=e.prototype,n=Set.prototype;for(let e of F_)t[e]=function(...t){return z(this.#t),n[e].apply(this,t)};for(let r of I_)t[r]=function(...t){z(this.#t);var i=n[r].apply(this,t);return new e(i)}}has(e){var t=super.has(e),n=this.#e,r=n.get(e);if(r===void 0){if(!t)return z(this.#t),!1;r=this.#i(!0),n.set(e,r)}return z(r),t}add(e){return super.has(e)||(super.add(e),N(this.#n,super.size),dn(this.#t)),this}delete(e){var t=super.delete(e),n=this.#e,r=n.get(e);return r!==void 0&&(n.delete(e),N(r,!1)),t&&(N(this.#n,super.size),dn(this.#t)),t}clear(){if(super.size!==0){super.clear();var e=this.#e;for(var t of e.values())N(t,!1);e.clear(),N(this.#n,0),dn(this.#t)}}keys(){return this.values()}values(){return z(this.#t),super.values()}entries(){return z(this.#t),super.entries()}[Symbol.iterator](){return this.keys()}get size(){return z(this.#n)}},z_=class extends Map{#e=new Map;#t=M(0);#n=M(0);#r=br||-1;constructor(e){if(super(),e){for(var[t,n]of e)super.set(t,n);this.#n.v=super.size}}#i(e){return br===this.#r?M(e):an(e)}has(e){var t=this.#e,n=t.get(e);if(n===void 0){if(super.has(e))n=this.#i(0),t.set(e,n);else return z(this.#t),!1}return z(n),!0}forEach(e,t){this.#a(),super.forEach(e,t)}get(e){var t=this.#e,n=t.get(e);if(n===void 0){if(super.has(e))n=this.#i(0),t.set(e,n);else{z(this.#t);return}}return z(n),super.get(e)}getOrInsert(e,t){return super.has(e)||this.set(e,t),this.get(e)}getOrInsertComputed(e,t){return super.has(e)||this.set(e,t(e)),this.get(e)}set(e,t){var n=this.#e,r=n.get(e),i=super.get(e),a=super.set(e,t),o=this.#t;if(r===void 0)r=this.#i(0),n.set(e,r),N(this.#n,super.size),dn(o);else if(i!==t){dn(r);var s=o.reactions===null?null:new Set(o.reactions);(s===null||!r.reactions?.every(e=>s.has(e)))&&dn(o)}return a}delete(e){var t=this.#e,n=t.get(e),r=super.delete(e);return n!==void 0&&(t.delete(e),N(n,-1)),r&&(N(this.#n,super.size),dn(this.#t)),r}clear(){if(super.size!==0){super.clear();var e=this.#e;N(this.#n,0);for(var t of e.values())N(t,-1);dn(this.#t),e.clear()}}#a(){z(this.#t);var e=this.#e;if(this.#n.v!==e.size){for(var t of super.keys())if(!e.has(t)){var n=this.#i(0);e.set(t,n)}}for([,n]of this.#e)z(n)}keys(){return z(this.#t),super.keys()}values(){return this.#a(),super.values()}entries(){return this.#a(),super.entries()}[Symbol.iterator](){return this.entries()}get size(){return z(this.#n),super.size}},B_=class{#e;#t;constructor(e,t){this.#e=e,this.#t=ui(t)}get current(){return this.#t(),this.#e()}},V_=/\(.+\)/,H_=new Set([`all`,`print`,`screen`,`and`,`or`,`not`,`only`]),U_=class extends B_{constructor(e,t){let n=V_.test(e)||e.split(/[\s,]+/).some(e=>H_.has(e.trim()))?e:`(${e})`,r=window.matchMedia(n);super(()=>r.matches,e=>Xr(r,`change`,e))}};function W_(e,t,n,r){let i=new Map;return zm(e,{x:0,y:0,width:n,height:r},t,!0).forEach(e=>{i.set(e.id,e)}),i}function G_(e){let{edges:t,defaultEdgeOptions:n,nodeLookup:r,previousEdges:i,connectionMode:a,onerror:o,onlyRenderVisible:s,elevateEdgesOnSelect:c,zIndexMode:l}=e,u=new Map;for(let d of t){let t=r.get(d.source),f=r.get(d.target);if(!t||!f||t.hidden||f.hidden)continue;if(s){let{visibleNodes:n,transform:r,width:i,height:a}=e;if(Lh({sourceNode:t,targetNode:f,width:i,height:a,transform:r}))n.set(t.id,t),n.set(f.id,f);else continue}let p=i.get(d.id);if(p&&d===p.edge&&t==p.sourceNode&&f==p.targetNode){u.set(d.id,p);continue}let m=Yh({id:d.id,sourceNode:t,targetNode:f,sourceHandle:d.sourceHandle||null,targetHandle:d.targetHandle||null,connectionMode:a,onError:o});m&&u.set(d.id,{...n,...d,...m,zIndex:Ih({selected:d.selected,zIndex:d.zIndex??n.zIndex,sourceNode:t,targetNode:f,elevateOnSelect:c,zIndexMode:l}),sourceNode:t,targetNode:f,edge:d})}return u}var K_=oh(`Svelte Flow`,`https://svelteflow.dev/`),q_={input:p_,output:h_,default:d_,group:g_},J_={straight:N_,smoothstep:M_,default:j_,step:P_};function Y_(e,t,n,r,i,a){return t&&!n&&r&&i?ph(Rm(a,{filter:e=>!(!e.width&&!e.initialWidth||!e.height&&!e.initialHeight)}),r,i,.5,2,.1):n??{x:0,y:0,zoom:1}}function X_(e){class t{#e=j(()=>e.props.id??`1`);get flowId(){return z(this.#e)}set flowId(e){N(this.#e,e)}#t=M(null);get domNode(){return z(this.#t)}set domNode(e){N(this.#t,e)}#n=M(null);get panZoom(){return z(this.#n)}set panZoom(e){N(this.#n,e)}#r=M(e.width??0);get width(){return z(this.#r)}set width(e){N(this.#r,e)}#i=M(e.height??0);get height(){return z(this.#i)}set height(e){N(this.#i,e)}#a=M(e.props.zIndexMode??`basic`);get zIndexMode(){return z(this.#a)}set zIndexMode(e){N(this.#a,e)}#o=j(()=>{let{nodesInitialized:t}=ug(e.nodes,this.nodeLookup,this.parentLookup,{nodeExtent:this.nodeExtent,nodeOrigin:this.nodeOrigin,elevateNodesOnSelect:e.props.elevateNodesOnSelect??!0,checkEquality:!0,zIndexMode:this.zIndexMode});return this.fitViewQueued&&t&&(this.fitViewOptions?.duration?this.resolveFitView():queueMicrotask(()=>{this.resolveFitView()})),t});get nodesInitialized(){return z(this.#o)}set nodesInitialized(e){N(this.#o,e)}#s=j(()=>this.panZoom!==null);get viewportInitialized(){return z(this.#s)}set viewportInitialized(e){N(this.#s,e)}#c=j(()=>(yg(this.connectionLookup,this.edgeLookup,e.edges),e.edges));get _edges(){return z(this.#c)}set _edges(e){N(this.#c,e)}get nodes(){return this.nodesInitialized,e.nodes}set nodes(t){e.nodes=t}get edges(){return this._edges}set edges(t){e.edges=t}_prevSelectedNodes=[];_prevSelectedNodeIds=new Set;#l=j(()=>{let e=this._prevSelectedNodeIds.size,t=new Set,n=this.nodes.filter(e=>(e.selected&&(t.add(e.id),this._prevSelectedNodeIds.delete(e.id)),e.selected));return(e!==t.size||this._prevSelectedNodeIds.size>0)&&(this._prevSelectedNodes=n),this._prevSelectedNodeIds=t,this._prevSelectedNodes});get selectedNodes(){return z(this.#l)}set selectedNodes(e){N(this.#l,e)}_prevSelectedEdges=[];_prevSelectedEdgeIds=new Set;#u=j(()=>{let e=this._prevSelectedEdgeIds.size,t=new Set,n=this.edges.filter(e=>(e.selected&&(t.add(e.id),this._prevSelectedEdgeIds.delete(e.id)),e.selected));return(e!==t.size||this._prevSelectedEdgeIds.size>0)&&(this._prevSelectedEdges=n),this._prevSelectedEdgeIds=t,this._prevSelectedEdges});get selectedEdges(){return z(this.#u)}set selectedEdges(e){N(this.#u,e)}selectionChangeHandlers=new Map;nodeLookup=new Map;parentLookup=new Map;connectionLookup=new Map;edgeLookup=new Map;_prevVisibleEdges=new Map;#d=j(()=>{let{nodes:t,_edges:n,_prevVisibleEdges:r,nodeLookup:i,connectionMode:a,onerror:o,onlyRenderVisibleElements:s,defaultEdgeOptions:c,zIndexMode:l}=this,u,d,f={edges:n,defaultEdgeOptions:c,previousEdges:r,nodeLookup:i,connectionMode:a,elevateEdgesOnSelect:e.props.elevateEdgesOnSelect??!0,zIndexMode:l,onerror:o};if(s){let{viewport:e,width:t,height:n}=this,r=[e.x,e.y,e.zoom];u=W_(i,r,t,n),d=G_({...f,onlyRenderVisible:!0,visibleNodes:u,transform:r,width:t,height:n})}else u=this.nodeLookup,d=G_(f);return this._prevVisibleEdges=d,{nodes:u,edges:d}});get visible(){return z(this.#d)}set visible(e){N(this.#d,e)}#f=j(()=>e.props.nodesDraggable??!0);get nodesDraggable(){return z(this.#f)}set nodesDraggable(e){N(this.#f,e)}#p=j(()=>e.props.nodesConnectable??!0);get nodesConnectable(){return z(this.#p)}set nodesConnectable(e){N(this.#p,e)}#m=j(()=>e.props.elementsSelectable??!0);get elementsSelectable(){return z(this.#m)}set elementsSelectable(e){N(this.#m,e)}#h=j(()=>e.props.nodesFocusable??!0);get nodesFocusable(){return z(this.#h)}set nodesFocusable(e){N(this.#h,e)}#g=j(()=>e.props.edgesFocusable??!0);get edgesFocusable(){return z(this.#g)}set edgesFocusable(e){N(this.#g,e)}#_=j(()=>e.props.disableKeyboardA11y??!1);get disableKeyboardA11y(){return z(this.#_)}set disableKeyboardA11y(e){N(this.#_,e)}#v=j(()=>e.props.minZoom??.5);get minZoom(){return z(this.#v)}set minZoom(e){N(this.#v,e)}#y=j(()=>e.props.maxZoom??2);get maxZoom(){return z(this.#y)}set maxZoom(e){N(this.#y,e)}#b=j(()=>e.props.nodeOrigin??[0,0]);get nodeOrigin(){return z(this.#b)}set nodeOrigin(e){N(this.#b,e)}#x=j(()=>e.props.nodeExtent??Sm);get nodeExtent(){return z(this.#x)}set nodeExtent(e){N(this.#x,e)}#S=j(()=>e.props.translateExtent??Sm);get translateExtent(){return z(this.#S)}set translateExtent(e){N(this.#S,e)}#C=j(()=>e.props.defaultEdgeOptions??{});get defaultEdgeOptions(){return z(this.#C)}set defaultEdgeOptions(e){N(this.#C,e)}#w=j(()=>e.props.nodeDragThreshold??1);get nodeDragThreshold(){return z(this.#w)}set nodeDragThreshold(e){N(this.#w,e)}#T=j(()=>e.props.autoPanOnNodeDrag??!0);get autoPanOnNodeDrag(){return z(this.#T)}set autoPanOnNodeDrag(e){N(this.#T,e)}#E=j(()=>e.props.autoPanOnConnect??!0);get autoPanOnConnect(){return z(this.#E)}set autoPanOnConnect(e){N(this.#E,e)}#D=j(()=>e.props.autoPanOnNodeFocus??!0);get autoPanOnNodeFocus(){return z(this.#D)}set autoPanOnNodeFocus(e){N(this.#D,e)}#O=j(()=>e.props.autoPanSpeed??15);get autoPanSpeed(){return z(this.#O)}set autoPanSpeed(e){N(this.#O,e)}#k=j(()=>e.props.connectionDragThreshold??1);get connectionDragThreshold(){return z(this.#k)}set connectionDragThreshold(e){N(this.#k,e)}fitViewQueued=e.props.fitView??!1;fitViewOptions=e.props.fitViewOptions;fitViewResolver=null;#A=j(()=>e.props.snapGrid??null);get snapGrid(){return z(this.#A)}set snapGrid(e){N(this.#A,e)}#j=M(!1);get dragging(){return z(this.#j)}set dragging(e){N(this.#j,e)}#M=M(null);get selectionRect(){return z(this.#M)}set selectionRect(e){N(this.#M,e)}#N=M(!1);get selectionKeyPressed(){return z(this.#N)}set selectionKeyPressed(e){N(this.#N,e)}#P=M(!1);get multiselectionKeyPressed(){return z(this.#P)}set multiselectionKeyPressed(e){N(this.#P,e)}#F=M(!1);get deleteKeyPressed(){return z(this.#F)}set deleteKeyPressed(e){N(this.#F,e)}#I=M(!1);get panActivationKeyPressed(){return z(this.#I)}set panActivationKeyPressed(e){N(this.#I,e)}#L=M(!1);get zoomActivationKeyPressed(){return z(this.#L)}set zoomActivationKeyPressed(e){N(this.#L,e)}#R=M(null);get selectionRectMode(){return z(this.#R)}set selectionRectMode(e){N(this.#R,e)}#z=M(``);get ariaLiveMessage(){return z(this.#z)}set ariaLiveMessage(e){N(this.#z,e)}#B=j(()=>e.props.selectionMode??Dm.Partial);get selectionMode(){return z(this.#B)}set selectionMode(e){N(this.#B,e)}#V=j(()=>({...q_,...e.props.nodeTypes}));get nodeTypes(){return z(this.#V)}set nodeTypes(e){N(this.#V,e)}#H=j(()=>({...J_,...e.props.edgeTypes}));get edgeTypes(){return z(this.#H)}set edgeTypes(e){N(this.#H,e)}#U=j(()=>e.props.noPanClass??`nopan`);get noPanClass(){return z(this.#U)}set noPanClass(e){N(this.#U,e)}#W=j(()=>e.props.noDragClass??`nodrag`);get noDragClass(){return z(this.#W)}set noDragClass(e){N(this.#W,e)}#G=j(()=>e.props.noWheelClass??`nowheel`);get noWheelClass(){return z(this.#G)}set noWheelClass(e){N(this.#G,e)}#K=j(()=>yh(e.props.ariaLabelConfig));get ariaLabelConfig(){return z(this.#K)}set ariaLabelConfig(e){N(this.#K,e)}#q=M(Y_(this.nodesInitialized,e.props.fitView,e.props.initialViewport,this.width,this.height,this.nodeLookup));get _viewport(){return z(this.#q)}set _viewport(e){N(this.#q,e)}get viewport(){return e.viewport??this._viewport}set viewport(t){e.viewport&&=t,this._viewport=t}#J=M(Om);get _connection(){return z(this.#J)}set _connection(e){N(this.#J,e)}#Y=j(()=>this._connection.inProgress?{...this._connection,to:ch(this._connection.to,[this.viewport.x,this.viewport.y,this.viewport.zoom])}:this._connection);get connection(){return z(this.#Y)}set connection(e){N(this.#Y,e)}#X=j(()=>e.props.connectionMode??Tm.Strict);get connectionMode(){return z(this.#X)}set connectionMode(e){N(this.#X,e)}#Z=j(()=>e.props.connectionRadius??20);get connectionRadius(){return z(this.#Z)}set connectionRadius(e){N(this.#Z,e)}#Q=j(()=>e.props.isValidConnection??(()=>!0));get isValidConnection(){return z(this.#Q)}set isValidConnection(e){N(this.#Q,e)}#$=j(()=>e.props.selectNodesOnDrag??!0);get selectNodesOnDrag(){return z(this.#$)}set selectNodesOnDrag(e){N(this.#$,e)}#ee=j(()=>e.props.defaultMarkerColor===void 0?`#b1b1b7`:e.props.defaultMarkerColor);get defaultMarkerColor(){return z(this.#ee)}set defaultMarkerColor(e){N(this.#ee,e)}#te=j(()=>eg(e.edges,{defaultColor:this.defaultMarkerColor,id:this.flowId,defaultMarkerStart:this.defaultEdgeOptions.markerStart,defaultMarkerEnd:this.defaultEdgeOptions.markerEnd}));get markers(){return z(this.#te)}set markers(e){N(this.#te,e)}#ne=j(()=>e.props.onlyRenderVisibleElements??!1);get onlyRenderVisibleElements(){return z(this.#ne)}set onlyRenderVisibleElements(e){N(this.#ne,e)}#re=j(()=>e.props.onflowerror??K_);get onerror(){return z(this.#re)}set onerror(e){N(this.#re,e)}#ie=j(()=>e.props.ondelete);get ondelete(){return z(this.#ie)}set ondelete(e){N(this.#ie,e)}#ae=j(()=>e.props.onbeforedelete);get onbeforedelete(){return z(this.#ae)}set onbeforedelete(e){N(this.#ae,e)}#oe=j(()=>e.props.onbeforeconnect);get onbeforeconnect(){return z(this.#oe)}set onbeforeconnect(e){N(this.#oe,e)}#se=j(()=>e.props.onconnect);get onconnect(){return z(this.#se)}set onconnect(e){N(this.#se,e)}#ce=j(()=>e.props.onconnectstart);get onconnectstart(){return z(this.#ce)}set onconnectstart(e){N(this.#ce,e)}#le=j(()=>e.props.onconnectend);get onconnectend(){return z(this.#le)}set onconnectend(e){N(this.#le,e)}#ue=j(()=>e.props.onbeforereconnect);get onbeforereconnect(){return z(this.#ue)}set onbeforereconnect(e){N(this.#ue,e)}#de=j(()=>e.props.onreconnect);get onreconnect(){return z(this.#de)}set onreconnect(e){N(this.#de,e)}#fe=j(()=>e.props.onreconnectstart);get onreconnectstart(){return z(this.#fe)}set onreconnectstart(e){N(this.#fe,e)}#pe=j(()=>e.props.onreconnectend);get onreconnectend(){return z(this.#pe)}set onreconnectend(e){N(this.#pe,e)}#me=j(()=>e.props.clickConnect??!0);get clickConnect(){return z(this.#me)}set clickConnect(e){N(this.#me,e)}#he=j(()=>e.props.onclickconnectstart);get onclickconnectstart(){return z(this.#he)}set onclickconnectstart(e){N(this.#he,e)}#ge=j(()=>e.props.onclickconnectend);get onclickconnectend(){return z(this.#ge)}set onclickconnectend(e){N(this.#ge,e)}#_e=M(null);get clickConnectStartHandle(){return z(this.#_e)}set clickConnectStartHandle(e){N(this.#_e,e)}#ve=j(()=>e.props.onselectiondrag);get onselectiondrag(){return z(this.#ve)}set onselectiondrag(e){N(this.#ve,e)}#ye=j(()=>e.props.onselectiondragstart);get onselectiondragstart(){return z(this.#ye)}set onselectiondragstart(e){N(this.#ye,e)}#be=j(()=>e.props.onselectiondragstop);get onselectiondragstop(){return z(this.#be)}set onselectiondragstop(e){N(this.#be,e)}resolveFitView=async()=>{this.panZoom&&(await Hm({nodes:this.nodeLookup,width:this.width,height:this.height,panZoom:this.panZoom,minZoom:this.minZoom,maxZoom:this.maxZoom},this.fitViewOptions),this.fitViewResolver?.resolve(!0),this.fitViewQueued=!1,this.fitViewOptions=void 0,this.fitViewResolver=null)};_prefersDark=new U_(`(prefers-color-scheme: dark)`,e.props.colorModeSSR===`dark`);#xe=j(()=>e.props.colorMode===`system`?this._prefersDark.current?`dark`:`light`:e.props.colorMode??`light`);get colorMode(){return z(this.#xe)}set colorMode(e){N(this.#xe,e)}constructor(){}resetStoreValues(){this.dragging=!1,this.selectionRect=null,this.selectionRectMode=null,this.selectionKeyPressed=!1,this.multiselectionKeyPressed=!1,this.deleteKeyPressed=!1,this.panActivationKeyPressed=!1,this.zoomActivationKeyPressed=!1,this._connection=Om,this.clickConnectStartHandle=null,this.viewport=e.props.initialViewport??{x:0,y:0,zoom:1},this.ariaLiveMessage=``}}return new t}var Z_=xm.error001(`svelte`);function Q_(){let e=it($_);if(!e)throw Error(Z_);return e.getStore()}var $_=Symbol();function ev(e){let t=X_(e);function n(e){t.nodeTypes={...q_,...e}}function r(e){t.edgeTypes={...J_,...e}}function i(e){t.edges=$g(e,t.edges,{onError:t.onerror})}let a=(e,n=!1)=>{t.nodes=t.nodes.map(r=>{if(t.connection.inProgress&&t.connection.fromNode.id===r.id){let e=t.nodeLookup.get(r.id);e&&(t.connection={...t.connection,from:Zh(e,t.connection.fromHandle,jm.Left,!0)})}let i=e.get(r.id);return i?{...r,position:i.position,dragging:n}:r})};function o(e){let{changes:n,updatedInternals:r}=gg(e,t.nodeLookup,t.parentLookup,t.domNode,t.nodeOrigin,t.nodeExtent,t.zIndexMode);if(!r)return;sg(t.nodeLookup,t.parentLookup,{nodeOrigin:t.nodeOrigin,nodeExtent:t.nodeExtent,zIndexMode:t.zIndexMode}),t.fitViewQueued&&t.resolveFitView();let i=new Map;for(let e of n){let n=t.nodeLookup.get(e.id)?.internals.userNode;if(!n)continue;let r={...n};switch(e.type){case`dimensions`:{let t={...r.measured,...e.dimensions};e.setAttributes&&(r.width=e.dimensions?.width??r.width,r.height=e.dimensions?.height??r.height),r.measured=t;break}case`position`:r.position=e.position??r.position}i.set(e.id,r)}t.nodes=t.nodes.map(e=>i.get(e.id)??e)}function s(e){let n=t.fitViewResolver??Promise.withResolvers();return t.fitViewQueued=!0,t.fitViewOptions=e,t.fitViewResolver=n,t.nodes=[...t.nodes],n.promise}async function c(e,n,r){let i=r?.zoom===void 0?t.maxZoom:r.zoom,a=t.panZoom;return a?(await a.setViewport({x:t.width/2-e*i,y:t.height/2-n*i,zoom:i},{duration:r?.duration,ease:r?.ease,interpolate:r?.interpolate}),!0):!1}async function l(e,n){let r=t.panZoom;return r?r.scaleBy(e,n):!1}async function u(e){return l(1.2,e)}function d(e){return l(1/1.2,e)}function f(e){let n=t.panZoom;n&&(n.setScaleExtent([e,t.maxZoom]),t.minZoom=e)}function p(e){let n=t.panZoom;n&&(n.setScaleExtent([t.minZoom,e]),t.maxZoom=e)}function m(e){let n=t.panZoom;n&&(n.setTranslateExtent(e),t.translateExtent=e)}function h(e,t=null){let n=!1,r=e.map(e=>(!t||t.has(e.id))&&e.selected?(n=!0,{...e,selected:!1}):e);return[n,r]}function g(e){let n=e?.nodes?new Set(e.nodes.map(e=>e.id)):null,[r,i]=h(t.nodes,n);r&&(t.nodes=i);let a=e?.edges?new Set(e.edges.map(e=>e.id)):null,[o,s]=h(t.edges,a);o&&(t.edges=s)}function _(e){let n=t.multiselectionKeyPressed;t.nodes=t.nodes.map(t=>{let r=e.includes(t.id),i=n&&t.selected||r;return!!t.selected===i?t:{...t,selected:i}}),n||g({nodes:[]})}function v(e){let n=t.multiselectionKeyPressed;t.edges=t.edges.map(t=>{let r=e.includes(t.id),i=n&&t.selected||r;return!!t.selected===i?t:{...t,selected:i}}),n||g({edges:[]})}function y(e,n,r){let i=t.nodeLookup.get(e);i?(t.selectionRect=null,t.selectionRectMode=null,i.selected?(n||i.selected&&t.multiselectionKeyPressed)&&(g({nodes:[i.internals.userNode],edges:[]}),requestAnimationFrame(()=>r?.blur())):_([e])):t.onerror(`012`,xm.error012(e))}function b(e){let n=t.edgeLookup.get(e);n?(n.selectable||t.elementsSelectable&&n.selectable===void 0)&&(t.selectionRect=null,t.selectionRectMode=null,n.selected?n.selected&&t.multiselectionKeyPressed&&g({nodes:[],edges:[n]}):v([e])):t.onerror(`016`,xm.error016(e))}function x(e,n){let{nodeExtent:r,snapGrid:i,nodeOrigin:o,nodeLookup:s,nodesDraggable:c,onerror:l}=t,u=new Map,d=i?.[0]??5,f=i?.[1]??5,p=e.x*d*n,m=e.y*f*n;for(let e of s.values()){if(!(e.selected&&(e.draggable||c&&e.draggable===void 0)))continue;let t={x:e.internals.positionAbsolute.x+p,y:e.internals.positionAbsolute.y+m};i&&(t=sh(t,i));let{position:n,positionAbsolute:a}=Um({nodeId:e.id,nextPosition:t,nodeLookup:s,nodeExtent:r,nodeOrigin:o,onError:l});e.position=n,e.internals.positionAbsolute=a,u.set(e.id,e)}a(u)}function S(e){return _g({delta:e,panZoom:t.panZoom,transform:[t.viewport.x,t.viewport.y,t.viewport.zoom],translateExtent:t.translateExtent,width:t.width,height:t.height})}let C=e=>{t._connection={...e}};function w(){t._connection=Om}function ee(){t.resetStoreValues(),g()}return Object.assign(t,{setNodeTypes:n,setEdgeTypes:r,addEdge:i,updateNodePositions:a,updateNodeInternals:o,zoomIn:u,zoomOut:d,fitView:s,setCenter:c,setMinZoom:f,setMaxZoom:p,setTranslateExtent:m,unselectNodesAndEdges:g,addSelectedNodes:_,addSelectedEdges:v,handleNodeSelection:y,handleEdgeSelection:b,moveSelectedNodes:x,panBy:S,updateConnection:C,cancelConnection:w,reset:ee})}function tv(e,t){let{minZoom:n,maxZoom:r,initialViewport:i,onPanZoomStart:a,onPanZoom:o,onPanZoomEnd:s,translateExtent:c,setPanZoomInstance:l,onDraggingChange:u,onTransformChange:d}=t,f=Xg({domNode:e,minZoom:n,maxZoom:r,translateExtent:c,viewport:i,onPanZoom:o,onPanZoomStart:a,onPanZoomEnd:s,onDraggingChange:u}),p=f.getViewport();return(i.x!==p.x||i.y!==p.y||i.zoom!==p.zoom)&&d([p.x,p.y,p.zoom]),l(f),f.update(t),{update(e){f.update(e)}}}var nv=H(`<div class="svelte-flow__zoom svelte-flow__container"><!></div>`);function rv(e,t){k(t,!0);let n=Y(t,`store`,15),r=j(()=>n().panActivationKeyPressed||t.panOnDrag),i=j(()=>n().panActivationKeyPressed||t.panOnScroll),{viewport:a}=n(),o=!1;In(()=>{!o&&n().viewportInitialized&&(t.oninit?.(),o=!0)});var s=nv();Fi(P(s),()=>t.children),O(s),Ri(s,(e,t)=>tv?.(e,t),()=>({viewport:n().viewport,minZoom:n().minZoom,maxZoom:n().maxZoom,initialViewport:a,onDraggingChange:e=>{n(n().dragging=e,!0)},setPanZoomInstance:e=>{n(n().panZoom=e,!0)},onPanZoomStart:t.onmovestart,onPanZoom:t.onmove,onPanZoomEnd:t.onmoveend,zoomOnScroll:t.zoomOnScroll,zoomOnDoubleClick:t.zoomOnDoubleClick,zoomOnPinch:t.zoomOnPinch,panOnScroll:z(i),panOnDrag:z(r),panOnScrollSpeed:t.panOnScrollSpeed,panOnScrollMode:t.panOnScrollMode,panActivationKeyPressed:n().panActivationKeyPressed,zoomActivationKeyPressed:n().zoomActivationKeyPressed,preventScrolling:typeof t.preventScrolling!=`boolean`||t.preventScrolling,noPanClassName:n().noPanClass,noWheelClassName:n().noWheelClass,userSelectionActive:!!n().selectionRect,translateExtent:n().translateExtent,lib:`svelte`,paneClickDistance:t.paneClickDistance,selectionOnDrag:t.selectionOnDrag,onTransformChange:e=>{n(n().viewport={x:e[0],y:e[1],zoom:e[2]},!0)},connectionInProgress:n().connection.inProgress})),U(e,s),A()}function iv(e,t){return n=>{n.target===t&&e?.(n)}}function av(e){return t=>{let n=e.has(t.id);return!!t.selected===n?t:{...t,selected:n}}}function ov(e,t){if(e.size!==t.size)return!1;for(let n of e)if(!t.has(n))return!1;return!0}var sv=H(`<div><!></div>`);function cv(e,t){k(t,!0);let n=Y(t,`store`,15),r=Y(t,`panOnDrag`,3,!0),i=Y(t,`paneClickDistance`,3,1),a=Y(t,`autoPanOnSelection`,3,!0),o,s=null,c=!1,l=new Set,u=new Set,d=j(()=>n().panActivationKeyPressed||r()),f=j(()=>n().selectionKeyPressed||!!n().selectionRect||t.selectionOnDrag&&z(d)!==!0),p=j(()=>n().elementsSelectable&&(z(f)||n().selectionRectMode===`user`)),m=!1,h=0,g={x:0,y:0},_=!1;function v(e){if(e.pointerType===`touch`&&z(d)!==!1&&!n().selectionKeyPressed||(s=o?.getBoundingClientRect(),!s))return;let r=e.target===o,i=!r&&!!e.target.closest(`.nokey`),a=t.selectionOnDrag&&r||n().selectionKeyPressed;if(i||!z(f)||!a||e.button!==0||!e.isPrimary)return;e.target?.setPointerCapture?.(e.pointerId),m=!1,_=!1;let{x:c,y:l}=kh(e,s),u=ch({x:c,y:l},[n().viewport.x,n().viewport.y,n().viewport.zoom]);n(n().selectionRect={width:0,height:0,startX:u.x,startY:u.y,x:c,y:l},!0),r||(e.stopPropagation(),e.preventDefault())}function y(e,t){if(n().selectionRect?.startX===void 0||n().selectionRect.startY===void 0)return;let r={x:n().selectionRect?.startX,y:n().selectionRect?.startY},i=lh(r,[n().viewport.x,n().viewport.y,n().viewport.zoom]),a={startX:r.x,startY:r.y,x:e<i.x?e:i.x,y:t<i.y?t:i.y,width:Math.abs(e-i.x),height:Math.abs(t-i.y)},o=l,s=u;l=new Set(zm(n().nodeLookup,a,[n().viewport.x,n().viewport.y,n().viewport.zoom],n().selectionMode===Dm.Partial,!0).map(e=>e.id));let c=n().defaultEdgeOptions.selectable??!0;u=new Set;for(let e of l){let t=n().connectionLookup.get(e);if(t)for(let{edgeId:e}of t.values()){let t=n().edgeLookup.get(e);t&&(t.selectable??c)&&u.add(e)}}ov(o,l)||n(n().nodes=n().nodes.map(av(l)),!0),ov(s,u)||n(n().edges=n().edges.map(av(u)),!0),n(n().selectionRectMode=`user`,!0),n(n().selectionRect=a,!0)}function b(){if(!a()||!s)return;let[e,t]=Ym(g,s,n().autoPanSpeed);n().panBy({x:e,y:t}).then(e=>{!m||!e||y(g.x,g.y),h=requestAnimationFrame(b)})}function x(){cancelAnimationFrame(h),h=0,_=!1}Ha(()=>{typeof window<`u`&&x()});function S(e){if(!z(f)||!s||!n().selectionRect)return;let r=kh(e,s);g={x:r.x,y:r.y};let a=lh({x:n().selectionRect.startX,y:n().selectionRect.startY},[n().viewport.x,n().viewport.y,n().viewport.zoom]);if(!m){let o=n().selectionKeyPressed?0:i();if(Math.hypot(r.x-a.x,r.y-a.y)<=o)return;n().unselectNodesAndEdges(),t.onselectionstart?.(e)}m=!0,_||=(b(),!0),y(r.x,r.y)}function C(e){z(p)?e.button===0&&(e.target?.releasePointerCapture?.(e.pointerId),!m&&e.target===o&&te?.(e),n(n().selectionRect=null,!0),m&&n(n().selectionRectMode=l.size>0?`nodes`:null,!0),m&&t.onselectionend?.(e),x()):e.target===o&&n().connection.inProgress&&(c=!0)}function w(e){e.target?.releasePointerCapture?.(e.pointerId),x()}let ee=e=>{Array.isArray(z(d))&&z(d).includes(2)?e.preventDefault():t.onpanecontextmenu?.({event:e})},T=e=>{m&&=(e.stopPropagation(),!1)};function te(e){m||n().connection.inProgress||c?(m=!1,c=!1):(t.onpaneclick?.({event:e}),n().unselectNodesAndEdges(),n(n().selectionRectMode=null,!0),n(n().selectionRect=null,!0))}var E=sv();let ne;var re=j(()=>z(p)?void 0:iv(te,o)),ie=j(()=>iv(ee,o));Fi(P(E),()=>t.children),O(E),Ma(E,e=>o=e,()=>o),R(e=>ne=Ji(E,1,`svelte-flow__pane svelte-flow__container`,null,ne,{draggable:e,dragging:n().dragging,selection:z(f)}),[()=>r()===!0||Array.isArray(r())&&r().includes(0)]),V(`click`,E,function(...e){z(re)?.apply(this,e)}),B(`pointerdown`,E,function(...e){(z(p)?v:void 0)?.apply(this,e)},!0),V(`pointermove`,E,function(...e){(z(p)?S:void 0)?.apply(this,e)}),V(`pointerup`,E,C),B(`pointercancel`,E,function(...e){(z(p)?w:void 0)?.apply(this,e)}),V(`contextmenu`,E,function(...e){z(ie)?.apply(this,e)}),B(`click`,E,function(...e){(z(p)?T:void 0)?.apply(this,e)},!0),U(e,E),A()}Zr([`click`,`pointermove`,`pointerup`,`contextmenu`]);var lv=H(`<div class="svelte-flow__viewport xyflow__viewport svelte-flow__container"><!></div>`);function uv(e,t){k(t,!0);var n=lv();let r;Fi(P(n),()=>t.children),O(n),R(()=>r=Xi(n,``,r,{transform:`translate(${t.store.viewport.x??``}px, ${t.store.viewport.y??``}px) scale(${t.store.viewport.zoom??``})`})),U(e,n),A()}function dv(e,t){let{store:n,onDrag:r,onDragStart:i,onDragStop:a,onNodeMouseDown:o}=t,s=Tg({onDrag:r,onDragStart:i,onDragStop:a,onNodeMouseDown:o,getStoreItems:()=>{let{snapGrid:e,viewport:t}=n;return{nodes:n.nodes,nodeLookup:n.nodeLookup,edges:n.edges,nodeExtent:n.nodeExtent,snapGrid:e||[0,0],snapToGrid:!!e,nodeOrigin:n.nodeOrigin,multiSelectionActive:n.multiselectionKeyPressed,domNode:n.domNode,transform:[t.x,t.y,t.zoom],autoPanOnNodeDrag:n.autoPanOnNodeDrag,nodesDraggable:n.nodesDraggable,selectNodesOnDrag:n.selectNodesOnDrag,nodeDragThreshold:n.nodeDragThreshold,unselectNodesAndEdges:n.unselectNodesAndEdges,updateNodePositions:n.updateNodePositions,onSelectionDrag:n.onselectiondrag,onSelectionDragStart:n.onselectiondragstart,onSelectionDragStop:n.onselectiondragstop,panBy:n.panBy}}});function c(e,t){t.disabled?s.destroy():s.update({domNode:e,noDragClassName:t.noDragClass,handleSelector:t.handleSelector,nodeId:t.nodeId,isSelectable:t.isSelectable,nodeClickDistance:t.nodeClickDistance})}return c(e,t),{update(t){c(e,t)},destroy(){s.destroy()}}}var fv=H(`<div aria-live="assertive" aria-atomic="true" class="a11y-live-msg svelte-13pq11u"> </div>`),pv=H(`<div class="a11y-hidden svelte-13pq11u"> </div> <div class="a11y-hidden svelte-13pq11u"> </div> <!>`,1);function mv(e,t){k(t,!0);var n=pv(),r=F(n),i=I(r,!0),a=L(r,2),o=I(a,!0),s=L(a,2),c=e=>{var n=fv(),r=I(n,!0);R(()=>{q(n,`id`,`${_v}-${t.store.flowId}`),W(r,t.store.ariaLiveMessage)}),U(e,n)};G(s,e=>{t.store.disableKeyboardA11y||e(c)}),R(()=>{q(r,`id`,`${hv}-${t.store.flowId}`),W(i,t.store.disableKeyboardA11y?t.store.ariaLabelConfig[`node.a11yDescription.default`]:t.store.ariaLabelConfig[`node.a11yDescription.keyboardDisabled`]),q(a,`id`,`${gv}-${t.store.flowId}`),W(o,t.store.ariaLabelConfig[`edge.a11yDescription.default`])}),U(e,n),A()}var hv=`svelte-flow__node-desc`,gv=`svelte-flow__edge-desc`,_v=`svelte-flow__aria-live`,vv=H(`<div><!></div>`);function yv(e,t){k(t,!0);let n=Y(t,`store`,15),r=j(()=>_(t.node.data,()=>({}),!0)),i=j(()=>_(t.node.selected,!1)),a=j(()=>t.node.draggable),o=j(()=>t.node.selectable),s=j(()=>_(t.node.deletable,!0)),c=j(()=>t.node.connectable),l=j(()=>t.node.focusable),u=j(()=>_(t.node.hidden,!1)),d=j(()=>_(t.node.dragging,!1)),f=j(()=>_(t.node.style,``)),p=j(()=>t.node.class),m=j(()=>_(t.node.type,`default`)),h=j(()=>t.node.parentId),g=j(()=>t.node.sourcePosition),v=j(()=>t.node.targetPosition),y=j(()=>_(t.node.measured,()=>({width:0,height:0}),!0).width),b=j(()=>_(t.node.measured,()=>({width:0,height:0}),!0).height),x=j(()=>t.node.initialWidth),S=j(()=>t.node.initialHeight),C=j(()=>t.node.width),w=j(()=>t.node.height),ee=j(()=>t.node.dragHandle),T=j(()=>_(t.node.internals.z,0)),te=j(()=>t.node.internals.positionAbsolute.x),E=j(()=>t.node.internals.positionAbsolute.y),ne=j(()=>t.node.internals.userNode),{id:re}=t.node,ie=j(()=>z(a)??n().nodesDraggable),ae=j(()=>z(o)??n().elementsSelectable),oe=j(()=>z(c)??n().nodesConnectable),se=j(()=>_h(t.node)),ce=j(()=>!!t.node.internals.handleBounds),le=j(()=>z(se)&&z(ce)),ue=j(()=>z(l)??n().nodesFocusable);function de(e){return n().parentLookup.has(e)}let fe=j(()=>de(re)),pe=M(null),me=null,he=z(m),ge=z(g),_e=z(v),ve=j(()=>n().nodeTypes[z(m)]??d_),ye=j(()=>n().ariaLabelConfig);n_(re),i_({get value(){return z(oe)}});let be=j(()=>{let e=z(y)===void 0?z(C)??z(x):z(C),t=z(b)===void 0?z(w)??z(S):z(w);if(e!==void 0||t!==void 0||z(f)!==void 0)return`${z(f)};${e?`width:${S_(e)};`:``}${t?`height:${S_(t)};`:``}`});In(()=>{(z(m)!==he||z(g)!==ge||z(v)!==_e)&&z(pe)!==null&&requestAnimationFrame(()=>{z(pe)!==null&&n().updateNodeInternals(new Map([[re,{id:re,nodeElement:z(pe),force:!0}]]))}),he=z(m),ge=z(g),_e=z(v)}),In(()=>{t.resizeObserver&&(!z(le)||z(pe)!==me)&&(me&&t.resizeObserver.unobserve(me),z(pe)&&t.resizeObserver.observe(z(pe)),me=z(pe))}),Ha(()=>{me&&t.resizeObserver?.unobserve(me)});function xe(e){z(ae)&&(!n().selectNodesOnDrag||!z(ie)||n().nodeDragThreshold>0)&&n().handleNodeSelection(re),t.onnodeclick?.({node:z(ne),event:e})}function Se(e){if(!(Dh(e)||n().disableKeyboardA11y)){if(Cm.includes(e.key)&&z(ae)){let t=e.key===`Escape`;n().handleNodeSelection(re,t,z(pe))}else z(ie)&&t.node.selected&&Object.prototype.hasOwnProperty.call(C_,e.key)&&(e.preventDefault(),n(n().ariaLiveMessage=z(ye)[`node.a11yDescription.ariaLiveMessage`]({direction:e.key.replace(`Arrow`,``).toLowerCase(),x:~~t.node.internals.positionAbsolute.x,y:~~t.node.internals.positionAbsolute.y}),!0),n().moveSelectedNodes(C_[e.key],e.shiftKey?4:1))}}let Ce=()=>{if(n().disableKeyboardA11y||!n().autoPanOnNodeFocus||!z(pe)?.matches(`:focus-visible`))return;let{width:e,height:r,viewport:i}=n();zm(new Map([[re,t.node]]),{x:0,y:0,width:e,height:r},[i.x,i.y,i.zoom],!0).length>0||n().setCenter(t.node.position.x+(t.node.measured.width??0)/2,t.node.position.y+(t.node.measured.height??0)/2,{zoom:i.zoom})};var we=ci(),Te=F(we),Ee=e=>{var a=vv();va(a,()=>({"data-id":re,class:[`svelte-flow__node`,`svelte-flow__node-${z(m)}`,z(p)],style:z(be),onclick:xe,onpointerenter:t.onnodepointerenter?e=>t.onnodepointerenter({node:z(ne),event:e}):void 0,onpointerleave:t.onnodepointerleave?e=>t.onnodepointerleave({node:z(ne),event:e}):void 0,onpointermove:t.onnodepointermove?e=>t.onnodepointermove({node:z(ne),event:e}):void 0,oncontextmenu:t.onnodecontextmenu?e=>t.onnodecontextmenu({node:z(ne),event:e}):void 0,onkeydown:z(ue)?Se:void 0,onfocus:z(ue)?Ce:void 0,tabIndex:z(ue)?0:void 0,role:t.node.ariaRole??(z(ue)?`group`:void 0),"aria-label":t.node.ariaLabel,"aria-roledescription":`node`,"aria-describedby":n().disableKeyboardA11y?void 0:`${hv}-${n().flowId}`,...t.node.domAttributes,[aa]:{dragging:z(d),selected:z(i),draggable:z(ie),connectable:z(oe),selectable:z(ae),nopan:z(ie),parent:z(fe)},[oa]:{"z-index":z(T),transform:`translate(${z(te)??``}px, ${z(E)??``}px)`,visibility:z(se)?`visible`:`hidden`}})),Ii(P(a),()=>z(ve),(e,t)=>{t(e,{get data(){return z(r)},get id(){return re},get selected(){return z(i)},get selectable(){return z(ae)},get deletable(){return z(s)},get sourcePosition(){return z(g)},get targetPosition(){return z(v)},get zIndex(){return z(T)},get dragging(){return z(d)},get draggable(){return z(ie)},get dragHandle(){return z(ee)},get parentId(){return z(h)},get type(){return z(m)},get isConnectable(){return z(oe)},get positionAbsoluteX(){return z(te)},get positionAbsoluteY(){return z(E)},get width(){return z(C)},get height(){return z(w)}})}),O(a),Ri(a,(e,t)=>dv?.(e,t),()=>({nodeId:re,isSelectable:z(ae),disabled:!z(ie),handleSelector:z(ee),noDragClass:n().noDragClass,nodeClickDistance:t.nodeClickDistance,onNodeMouseDown:n().handleNodeSelection,onDrag:(e,n,r,i)=>{t.onnodedrag?.({event:e,targetNode:r,nodes:i})},onDragStart:(e,n,r,i)=>{t.onnodedragstart?.({event:e,targetNode:r,nodes:i})},onDragStop:(e,n,r,i)=>{t.onnodedragstop?.({event:e,targetNode:r,nodes:i})},store:n()})),Ma(a,e=>N(pe,e),()=>z(pe)),U(e,a)};G(Te,e=>{z(u)||e(Ee)}),U(e,we),A()}var bv=H(`<div class="svelte-flow__nodes"></div>`);function xv(e,t){k(t,!0);let n=Y(t,`store`,15),r=typeof ResizeObserver>`u`?null:new ResizeObserver(e=>{let t=new Map;e.forEach(e=>{let n=e.target.getAttribute(`data-id`);t.set(n,{id:n,nodeElement:e.target,force:!0})}),n().updateNodeInternals(t)});Ha(()=>{r?.disconnect()});var i=bv();K(i,21,()=>n().visible.nodes.values(),e=>e.id,(e,i)=>{yv(e,{get node(){return z(i)},get resizeObserver(){return r},get nodeClickDistance(){return t.nodeClickDistance},get onnodeclick(){return t.onnodeclick},get onnodepointerenter(){return t.onnodepointerenter},get onnodepointermove(){return t.onnodepointermove},get onnodepointerleave(){return t.onnodepointerleave},get onnodedrag(){return t.onnodedrag},get onnodedragstart(){return t.onnodedragstart},get onnodedragstop(){return t.onnodedragstop},get onnodecontextmenu(){return t.onnodecontextmenu},get store(){return n()},set store(e){n(e)}})}),O(i),U(e,i),A()}var Sv=oi(`<svg class="svelte-flow__edge-wrapper"><g><!></g></svg>`);function Cv(e,t){k(t,!0);let n=j(()=>t.edge.id),r=j(()=>t.edge.source),i=j(()=>t.edge.target),a=j(()=>t.edge.sourceX),o=j(()=>t.edge.sourceY),s=j(()=>t.edge.targetX),c=j(()=>t.edge.targetY),l=j(()=>t.edge.sourcePosition),u=j(()=>t.edge.targetPosition),d=j(()=>_(t.edge.animated,!1)),f=j(()=>_(t.edge.selected,!1)),p=j(()=>t.edge.label),m=j(()=>t.edge.labelStyle),h=j(()=>_(t.edge.data,()=>({}),!0)),g=j(()=>t.edge.style),v=j(()=>t.edge.interactionWidth),y=j(()=>_(t.edge.type,`default`)),b=j(()=>t.edge.sourceHandle),x=j(()=>t.edge.targetHandle),S=j(()=>t.edge.markerStart),C=j(()=>t.edge.markerEnd),w=j(()=>t.edge.selectable),ee=j(()=>t.edge.focusable),T=j(()=>_(t.edge.deletable,!0)),te=j(()=>t.edge.hidden),E=j(()=>t.edge.zIndex),ne=j(()=>t.edge.class),re=j(()=>t.edge.ariaLabel);o_(z(n));let ie=null,ae=j(()=>z(w)??t.store.elementsSelectable),oe=j(()=>z(ee)??t.store.edgesFocusable),se=j(()=>t.store.edgeTypes[z(y)]??j_),ce=j(()=>z(S)?`url('#${$h(z(S),t.store.flowId)}')`:void 0),le=j(()=>z(C)?`url('#${$h(z(C),t.store.flowId)}')`:void 0);function ue(e){let r=t.store.edgeLookup.get(z(n));r&&(z(ae)&&t.store.handleEdgeSelection(z(n)),t.onedgeclick?.({event:e,edge:r}))}function de(e,r){let i=t.store.edgeLookup.get(z(n));i&&r({event:e,edge:i})}function fe(e){if(!t.store.disableKeyboardA11y&&Cm.includes(e.key)&&z(ae)){let{unselectNodesAndEdges:r,addSelectedEdges:i}=t.store;e.key===`Escape`?(ie?.blur(),r({edges:[t.edge]})):i([z(n)])}}var pe=ci(),me=F(pe),he=e=>{var _=Sv();let S;var C=P(_);va(C,()=>({class:[`svelte-flow__edge`,z(ne)],"data-id":z(n),onclick:ue,oncontextmenu:t.onedgecontextmenu?e=>{de(e,t.onedgecontextmenu)}:void 0,onpointerenter:t.onedgepointerenter?e=>{de(e,t.onedgepointerenter)}:void 0,onpointerleave:t.onedgepointerleave?e=>{de(e,t.onedgepointerleave)}:void 0,"aria-label":z(re)===null?void 0:z(re)?z(re):`Edge from ${z(r)} to ${z(i)}`,"aria-describedby":z(oe)?`${gv}-${t.store.flowId}`:void 0,role:t.edge.ariaRole??(z(oe)?`group`:`img`),"aria-roledescription":`edge`,onkeydown:z(oe)?fe:void 0,tabindex:z(oe)?0:void 0,...t.edge.domAttributes,[aa]:{animated:z(d),selected:z(f),selectable:z(ae)}})),Ii(P(C),()=>z(se),(e,t)=>{t(e,{get id(){return z(n)},get source(){return z(r)},get target(){return z(i)},get sourceX(){return z(a)},get sourceY(){return z(o)},get targetX(){return z(s)},get targetY(){return z(c)},get sourcePosition(){return z(l)},get targetPosition(){return z(u)},get animated(){return z(d)},get selected(){return z(f)},get label(){return z(p)},get labelStyle(){return z(m)},get data(){return z(h)},get style(){return z(g)},get interactionWidth(){return z(v)},get selectable(){return z(ae)},get deletable(){return z(T)},get type(){return z(y)},get sourceHandleId(){return z(b)},get targetHandleId(){return z(x)},get markerStart(){return z(ce)},get markerEnd(){return z(le)}})}),O(C),Ma(C,e=>ie=e,()=>ie),O(_),R(()=>S=Xi(_,``,S,{"z-index":z(E)})),U(e,_)};G(me,e=>{z(te)||e(he)}),U(e,pe),A()}Xe();var wv=oi(`<defs></defs>`);function Tv(e,t){k(t,!1);let n=Q_();Pa();var r=wv();K(r,5,()=>n.markers,e=>e.id,(e,t)=>{kv(e,Ba(()=>z(t)))}),O(r),U(e,r),A()}var Ev=oi(`<polyline class="arrow" fill="none" stroke-linecap="round" stroke-linejoin="round" points="-5,-4 0,0 -5,4"></polyline>`),Dv=oi(`<polyline class="arrowclosed" stroke-linecap="round" stroke-linejoin="round" points="-5,-4 0,0 -5,4 -5,-4"></polyline>`),Ov=oi(`<marker class="svelte-flow__arrowhead" viewBox="-10 -10 20 20" refX="0" refY="0"><!></marker>`);function kv(e,t){k(t,!0);let n=Y(t,`width`,3,12.5),r=Y(t,`height`,3,12.5),i=Y(t,`markerUnits`,3,`strokeWidth`),a=Y(t,`orient`,3,`auto-start-reverse`),o=Y(t,`color`,3,`none`);var s=Ov(),c=P(s),l=e=>{var n=Ev();let r;R(()=>{q(n,`stroke-width`,t.strokeWidth),r=Xi(n,``,r,{stroke:o()})}),U(e,n)},u=e=>{var n=Dv();let r;R(()=>{q(n,`stroke-width`,t.strokeWidth),r=Xi(n,``,r,{stroke:o(),fill:o()})}),U(e,n)};G(c,e=>{t.type===Am.Arrow?e(l):t.type===Am.ArrowClosed&&e(u,1)}),O(s),R(()=>{q(s,`id`,t.id),q(s,`markerWidth`,`${n()}`),q(s,`markerHeight`,`${r()}`),q(s,`markerUnits`,i()),q(s,`orient`,a())}),U(e,s),A()}var Av=H(`<div class="svelte-flow__edges"><svg class="svelte-flow__marker"><!></svg> <!></div>`);function jv(e,t){k(t,!0);let n=Y(t,`store`,15);var r=Av(),i=P(r);Tv(P(i),{}),O(i),K(L(i,2),17,()=>n().visible.edges.values(),e=>e.id,(e,r)=>{Cv(e,{get edge(){return z(r)},get onedgeclick(){return t.onedgeclick},get onedgecontextmenu(){return t.onedgecontextmenu},get onedgepointerenter(){return t.onedgepointerenter},get onedgepointerleave(){return t.onedgepointerleave},get store(){return n()},set store(e){n(e)}})}),O(r),U(e,r),A()}var Mv=H(`<div class="svelte-flow__selection svelte-1vr3gfi"></div>`);function Nv(e,t){k(t,!0);let n=Y(t,`x`,3,0),r=Y(t,`y`,3,0),i=Y(t,`width`,3,0),a=Y(t,`height`,3,0),o=Y(t,`isVisible`,3,!0);var s=ci(),c=F(s),l=e=>{var t=Mv();let o;R((e,i)=>o=Xi(t,``,o,{width:e,height:i,transform:`translate(${n()}px, ${r()}px)`}),[()=>typeof i()==`string`?i():S_(i()),()=>typeof a()==`string`?a():S_(a())]),U(e,t)};G(c,e=>{o()&&e(l)}),U(e,s),A()}var Pv=H(`<div><!></div>`);function Fv(e,t){k(t,!0);let n=M(void 0);In(()=>{t.store.disableKeyboardA11y||z(n)?.focus({preventScroll:!0})});let r=j(()=>{if(t.store.selectionRectMode===`nodes`){t.store.nodes;let e=Rm(t.store.nodeLookup,{filter:e=>!!e.selected});if(e.width>0&&e.height>0)return e}return null});function i(e){let n=t.store.nodes.filter(e=>e.selected);t.onselectioncontextmenu?.({nodes:n,event:e})}function a(e){let n=t.store.nodes.filter(e=>e.selected);t.onselectionclick?.({nodes:n,event:e})}function o(e){Object.prototype.hasOwnProperty.call(C_,e.key)&&(e.preventDefault(),t.store.moveSelectedNodes(C_[e.key],e.shiftKey?4:1))}var s=ci(),c=F(s),l=e=>{var s=Pv();let c;Nv(P(s),{width:`100%`,height:`100%`,x:0,y:0}),O(s),Ri(s,(e,t)=>dv?.(e,t),()=>({disabled:!1,store:t.store,onDrag:(e,n,r,i)=>{t.onnodedrag?.({event:e,targetNode:null,nodes:i})},onDragStart:(e,n,r,i)=>{t.onnodedragstart?.({event:e,targetNode:null,nodes:i})},onDragStop:(e,n,r,i)=>{t.onnodedragstop?.({event:e,targetNode:null,nodes:i})}})),Ma(s,e=>N(n,e),()=>z(n)),R((e,n)=>{Ji(s,1,Hi([`svelte-flow__selection-wrapper`,t.store.noPanClass]),`svelte-sf2y5e`),q(s,`role`,t.store.disableKeyboardA11y?void 0:`button`),q(s,`tabindex`,t.store.disableKeyboardA11y?void 0:-1),c=Xi(s,``,c,{width:e,height:n,transform:`translate(${z(r).x??``}px, ${z(r).y??``}px)`})},[()=>S_(z(r).width),()=>S_(z(r).height)]),V(`contextmenu`,s,i),V(`click`,s,a),V(`keydown`,s,function(...e){(t.store.disableKeyboardA11y?void 0:o)?.apply(this,e)}),U(e,s)},u=j(()=>t.store.selectionRectMode===`nodes`&&z(r)&&ah(z(r).x)&&ah(z(r).y));G(c,e=>{z(u)&&e(l)}),U(e,s),A()}Zr([`contextmenu`,`click`,`keydown`]);function Iv(e){switch(e){case`none`:return 0;case`ctrl`:return 8;case`shift`:return 4;case`alt`:return 2;case`meta`:return 1}}function Lv(e,t){let{enabled:n=!0,trigger:r,type:i=`keydown`}=t;function a(t){let n=Array.isArray(r)?r:[r],i=[t.metaKey,t.altKey,t.shiftKey,t.ctrlKey].reduce((e,t,n)=>t?e|1<<n:e,0);for(let r of n){let n={preventDefault:!1,enabled:!0,...r},{modifier:a,key:o,code:s,callback:c,preventDefault:l,enabled:u}=n;if(!o&&!s&&console.warn("[svelte-put/shortcut] Trigger should have either `key` or `code`, a trigger missing both was detected! Check your configuration"),u&&(o||s)){if(s&&t.code!==s||o&&t.key!==o)continue;if(a===null||a===!1){if(i!==0)continue}else if(a!==void 0&&a?.[0]?.length>0){let e=Array.isArray(a)?a:[a],t=!1;for(let n of e)if((Array.isArray(n)?n:[n]).reduce((e,t)=>e|Iv(t),0)===i){t=!0;break}if(!t)continue}l&&t.preventDefault();let r={node:e,trigger:n,originalEvent:t};e.dispatchEvent(new CustomEvent(`shortcut`,{detail:r})),c?.(r)}}}let o;return n&&(o=Xr(e,i,a)),{update:t=>{let{enabled:s=!0,type:c=`keydown`}=t;n&&(!s||i!==c)?o?.():!n&&s&&(o=Xr(e,c,a)),n=s,i=c,r=t.trigger},destroy:()=>{o?.()}}}function Rv(){let e=j(Q_),t=t=>{let n=b_(t)?t:z(e).nodeLookup.get(t.id),r=n.parentId?vh(n.position,n.measured,n.parentId,z(e).nodeLookup,z(e).nodeOrigin):n.position;return $m({...n,position:r,width:n.measured?.width??n.width,height:n.measured?.height??n.height})};function n(t,n,r={replace:!1}){z(e).nodes=Nr(()=>z(e).nodes).map(e=>{if(e.id===t){let t=typeof n==`function`?n(e):n;return r?.replace&&b_(t)?t:{...e,...t}}return e})}function r(t,n,r={replace:!1}){z(e).edges=Nr(()=>z(e).edges).map(e=>{if(e.id===t){let t=typeof n==`function`?n(e):n;return r.replace&&x_(t)?t:{...e,...t}}return e})}let i=t=>z(e).nodeLookup.get(t);return{zoomIn:z(e).zoomIn,zoomOut:z(e).zoomOut,getInternalNode:i,getNode:e=>i(e)?.internals.userNode,getNodes:t=>t===void 0?z(e).nodes:zv(z(e).nodeLookup,t),getEdge:t=>z(e).edgeLookup.get(t),getEdges:t=>t===void 0?z(e).edges:zv(z(e).edgeLookup,t),setZoom:async(t,n)=>{let r=z(e).panZoom;return r?r.scaleTo(t,n):!1},getZoom:()=>z(e).viewport.zoom,setViewport:async(t,n)=>{let r=z(e).viewport;return z(e).panZoom?(await z(e).panZoom.setViewport({x:t.x??r.x,y:t.y??r.y,zoom:t.zoom??r.zoom},n),!0):!1},getViewport:()=>Qe(z(e).viewport),setCenter:async(t,n,r)=>z(e).setCenter(t,n,r),fitView:t=>z(e).fitView(t),fitBounds:async(t,n)=>{if(!z(e).panZoom)return!1;let r=ph(t,z(e).width,z(e).height,z(e).minZoom,z(e).maxZoom,n?.padding??.1);return await z(e).panZoom.setViewport(r,{duration:n?.duration,ease:n?.ease,interpolate:n?.interpolate}),!0},getIntersectingNodes:(n,r=!0,i)=>{let a=ih(n),o=a?n:t(n);return o?(i||z(e).nodes).filter(t=>{let i=z(e).nodeLookup.get(t.id);if(!i||!a&&t.id===n.id)return!1;let s=$m(i),c=rh(s,o);return r&&c>0||c>=s.width*s.height||c>=o.width*o.height}):[]},isNodeIntersecting:(e,n,r=!0)=>{let i=ih(e)?e:t(e);if(!i)return!1;let a=rh(i,n);return r&&a>0||a>=n.width*n.height||a>=i.width*i.height},deleteElements:async({nodes:t=[],edges:n=[]})=>{let{nodes:r,edges:i}=await Wm({nodesToRemove:t,edgesToRemove:n,nodes:z(e).nodes,edges:z(e).edges,onBeforeDelete:z(e).onbeforedelete});return r&&(z(e).nodes=Nr(()=>z(e).nodes).filter(e=>!r.some(({id:t})=>t===e.id))),i&&(z(e).edges=Nr(()=>z(e).edges).filter(e=>!i.some(({id:t})=>t===e.id))),(r.length>0||i.length>0)&&z(e).ondelete?.({nodes:r,edges:i}),{deletedNodes:r,deletedEdges:i}},screenToFlowPosition:(t,n={snapToGrid:!0})=>{if(!z(e).domNode)return t;let r=n.snapToGrid?z(e).snapGrid:!1,{x:i,y:a,zoom:o}=z(e).viewport,{x:s,y:c}=z(e).domNode.getBoundingClientRect();return ch({x:t.x-s,y:t.y-c},[i,a,o],r!==null,r||[1,1])},flowToScreenPosition:t=>{if(!z(e).domNode)return t;let{x:n,y:r,zoom:i}=z(e).viewport,{x:a,y:o}=z(e).domNode.getBoundingClientRect(),s=lh(t,[n,r,i]);return{x:s.x+a,y:s.y+o}},toObject:()=>structuredClone({nodes:[...z(e).nodes],edges:[...z(e).edges],viewport:{...z(e).viewport}}),updateNode:n,updateNodeData:(t,r,i)=>{let a=z(e).nodeLookup.get(t)?.internals.userNode;if(!a)return;let o=typeof r==`function`?r(a):r;n(t,e=>({...e,data:i?.replace?o:{...e.data,...o}}))},updateEdge:r,getNodesBounds:t=>Lm(t,{nodeLookup:z(e).nodeLookup,nodeOrigin:z(e).nodeOrigin}),getHandleConnections:({type:t,id:n,nodeId:r})=>Array.from(z(e).connectionLookup.get(`${r}-${t}-${n??null}`)?.values()??[])}}function zv(e,t){let n=[];for(let r of t){let t=e.get(r);if(t){let e=`internals`in t?t.internals?.userNode:t;n.push(e)}}return n}function Bv(e,t){k(t,!0);let n=Y(t,`store`,15),r=Y(t,`selectionKey`,3,`Shift`),i=Y(t,`multiSelectionKey`,19,()=>mh()?`Meta`:`Control`),a=Y(t,`deleteKey`,3,`Backspace`),o=Y(t,`panActivationKey`,3,` `),s=Y(t,`zoomActivationKey`,19,()=>mh()?`Meta`:`Control`),{deleteElements:c}=Rv();function l(e){return typeof e==`object`&&!!e}function u(e){return l(e)&&e.modifier||[]}function d(e){return e==null?``:l(e)?e.key:e}function f(e,t){return(Array.isArray(e)?e:[e]).map(e=>{let n=d(e);return{key:n,modifier:u(e),enabled:n!==null,callback:t}})}function p(){n(n().selectionRect=null,!0),n(n().selectionKeyPressed=!1,!0),n(n().multiselectionKeyPressed=!1,!0),n(n().deleteKeyPressed=!1,!0),n(n().panActivationKeyPressed=!1,!0),n(n().zoomActivationKeyPressed=!1,!0)}function m(){let e=n().nodes.filter(e=>e.selected),t=n().edges.filter(e=>e.selected);c({nodes:e,edges:t})}B(`blur`,gn,p),B(`contextmenu`,gn,p),Ri(gn,(e,t)=>Lv?.(e,t),()=>({trigger:f(r(),()=>n(n().selectionKeyPressed=!0,!0)),type:`keydown`})),Ri(gn,(e,t)=>Lv?.(e,t),()=>({trigger:f(r(),()=>n(n().selectionKeyPressed=!1,!0)),type:`keyup`})),Ri(gn,(e,t)=>Lv?.(e,t),()=>({trigger:f(i(),()=>{n(n().multiselectionKeyPressed=!0,!0)}),type:`keydown`})),Ri(gn,(e,t)=>Lv?.(e,t),()=>({trigger:f(i(),()=>n(n().multiselectionKeyPressed=!1,!0)),type:`keyup`})),Ri(gn,(e,t)=>Lv?.(e,t),()=>({trigger:f(a(),e=>{!(e.originalEvent.ctrlKey||e.originalEvent.metaKey||e.originalEvent.shiftKey)&&!Dh(e.originalEvent)&&(n(n().deleteKeyPressed=!0,!0),m())}),type:`keydown`})),Ri(gn,(e,t)=>Lv?.(e,t),()=>({trigger:f(a(),()=>n(n().deleteKeyPressed=!1,!0)),type:`keyup`})),Ri(gn,(e,t)=>Lv?.(e,t),()=>({trigger:f(o(),()=>n(n().panActivationKeyPressed=!0,!0)),type:`keydown`})),Ri(gn,(e,t)=>Lv?.(e,t),()=>({trigger:f(o(),()=>n(n().panActivationKeyPressed=!1,!0)),type:`keyup`})),Ri(gn,(e,t)=>Lv?.(e,t),()=>({trigger:f(s(),()=>n(n().zoomActivationKeyPressed=!0,!0)),type:`keydown`})),Ri(gn,(e,t)=>Lv?.(e,t),()=>({trigger:f(s(),()=>n(n().zoomActivationKeyPressed=!1,!0)),type:`keyup`})),A()}var Vv=oi(`<path fill="none" class="svelte-flow__connection-path"></path>`),Hv=oi(`<svg class="svelte-flow__connectionline"><g><!></g></svg>`);function Uv(e,t){k(t,!0);let n=j(()=>{if(!t.store.connection.inProgress)return``;let e={sourceX:t.store.connection.from.x,sourceY:t.store.connection.from.y,sourcePosition:t.store.connection.fromPosition,targetX:t.store.connection.to.x,targetY:t.store.connection.to.y,targetPosition:t.store.connection.toPosition};switch(t.type){case km.Bezier:{let[t]=Ph(e);return t}case km.Straight:{let[t]=Vh(e);return t}case km.Step:case km.SmoothStep:{let[n]=qh({...e,borderRadius:t.type===km.Step?0:void 0});return n}}});var r=ci(),i=F(r),a=e=>{var r=Hv(),i=P(r),a=P(i),o=e=>{var n=ci();Ii(F(n),()=>t.LineComponent,(e,t)=>{t(e,{})}),U(e,n)},s=e=>{var r=Vv();R(()=>{q(r,`d`,z(n)),Xi(r,t.style)}),U(e,r)};G(a,e=>{t.LineComponent?e(o):e(s,-1)}),O(i),O(r),R(e=>{q(r,`width`,t.store.width),q(r,`height`,t.store.height),Xi(r,t.containerStyle),Ji(i,0,e)},[()=>Hi([`svelte-flow__connection`,Sh(t.store.connection.isValid)])]),U(e,r)};G(i,e=>{t.store.connection.inProgress&&e(a)}),U(e,r),A()}var Wv=new Set([`$$slots`,`$$events`,`$$legacy`,`position`,`style`,`class`,`children`]),Gv=H(`<div><!></div>`);function Kv(e,t){k(t,!0);let n=Y(t,`position`,3,`top-right`),r=J(t,Wv),i=j(()=>`${n()}`.split(`-`));var a=Gv();va(a,e=>({class:e,style:t.style,...r}),[()=>[`svelte-flow__panel`,t.class,...z(i)]]),Fi(P(a),()=>t.children??f),O(a),U(e,a),A()}var qv=H(`<a target="_blank" rel="noopener noreferrer" aria-label="Svelte Flow attribution">Svelte Flow</a>`);function Jv(e,t){k(t,!0);let n=Y(t,`position`,3,`bottom-right`),r=`https://svelteflow.dev?utm_source=attribution`;var i=ci(),a=F(i),o=e=>{{let t=j(()=>`Please only hide this attribution when you are subscribed to Svelte Flow Pro: ${r}`);Kv(e,{get position(){return n()},class:`svelte-flow__attribution`,get"data-message"(){return z(t)},children:(e,t)=>{var n=qv();R(()=>q(n,`href`,r)),U(e,n)},$$slots:{default:!0}})}};G(a,e=>{t.proOptions?.hideAttribution||e(o)}),U(e,i),A()}var Yv=H(`<div><!></div>`);function Xv(e,t){k(t,!0);let n=Y(t,`domNode`,15),r=Y(t,`clientWidth`,15),i=Y(t,`clientHeight`,15),a=j(()=>t.rest.class),o=j(()=>y(t.rest,`id.class.nodeTypes.edgeTypes.colorMode.isValidConnection.onmove.onmovestart.onmoveend.onflowerror.ondelete.onbeforedelete.onbeforeconnect.onconnect.onconnectstart.onconnectend.onbeforereconnect.onreconnect.onreconnectstart.onreconnectend.onclickconnectstart.onclickconnectend.oninit.onselectionchange.onselectiondragstart.onselectiondrag.onselectiondragstop.onselectionstart.onselectionend.clickConnect.fitView.fitViewOptions.nodeOrigin.nodeDragThreshold.connectionDragThreshold.minZoom.maxZoom.initialViewport.connectionRadius.connectionMode.selectionMode.selectNodesOnDrag.snapGrid.defaultMarkerColor.translateExtent.nodeExtent.onlyRenderVisibleElements.autoPanOnConnect.autoPanOnNodeDrag.colorModeSSR.defaultEdgeOptions.elevateNodesOnSelect.elevateEdgesOnSelect.nodesDraggable.autoPanOnNodeFocus.nodesConnectable.elementsSelectable.nodesFocusable.edgesFocusable.disableKeyboardA11y.noDragClass.noPanClass.noWheelClass.ariaLabelConfig.autoPanSpeed.panOnScrollSpeed.zIndexMode.autoPanOnSelection`.split(`.`)));function s(e){e.currentTarget.scrollTo({top:0,left:0,behavior:`auto`}),t.rest.onscroll&&t.rest.onscroll(e)}var c=Yv();va(c,(e,n)=>({class:[`svelte-flow`,`svelte-flow__container`,t.colorMode,z(a)],"data-testid":`svelte-flow__wrapper`,role:`application`,onscroll:s,...z(o),[oa]:{width:e,height:n}}),[()=>S_(t.width),()=>S_(t.height)],void 0,void 0,`svelte-mkap6j`),Fi(P(c),()=>t.children??f),O(c),Ma(c,e=>n(e),()=>n()),Aa(c,`clientHeight`,i),Aa(c,`clientWidth`,r),U(e,c),A()}var Zv=new Set(`$$slots.$$events.$$legacy.width.height.proOptions.selectionKey.deleteKey.panActivationKey.multiSelectionKey.zoomActivationKey.paneClickDistance.nodeClickDistance.onmovestart.onmoveend.onmove.oninit.onnodeclick.onnodecontextmenu.onnodedrag.onnodedragstart.onnodedragstop.onnodepointerenter.onnodepointermove.onnodepointerleave.onselectionclick.onselectioncontextmenu.onselectionstart.onselectionend.onedgeclick.onedgecontextmenu.onedgepointerenter.onedgepointerleave.onpaneclick.onpanecontextmenu.panOnScrollMode.preventScrolling.zoomOnScroll.zoomOnDoubleClick.zoomOnPinch.panOnScroll.panOnScrollSpeed.panOnDrag.selectionOnDrag.autoPanOnSelection.connectionLineComponent.connectionLineStyle.connectionLineContainerStyle.connectionLineType.attributionPosition.children.nodes.edges.viewport`.split(`.`)),Qv=H(`<div class="svelte-flow__viewport-back svelte-flow__container"></div> <!> <div class="svelte-flow__edge-labels svelte-flow__container"></div> <!> <!> <!> <div class="svelte-flow__viewport-front svelte-flow__container"></div>`,1),$v=H(`<!> <!>`,1),ey=H(`<!> <!> <!> <!> <!>`,1);function ty(e,t){k(t,!0);let n=Y(t,`paneClickDistance`,3,1),r=Y(t,`nodeClickDistance`,3,1),i=Y(t,`panOnScrollMode`,19,()=>Em.Free),a=Y(t,`preventScrolling`,3,!0),o=Y(t,`zoomOnScroll`,3,!0),s=Y(t,`zoomOnDoubleClick`,3,!0),c=Y(t,`zoomOnPinch`,3,!0),l=Y(t,`panOnScroll`,3,!1),u=Y(t,`panOnScrollSpeed`,3,.5),d=Y(t,`panOnDrag`,3,!0),p=Y(t,`selectionOnDrag`,3,!1),m=Y(t,`autoPanOnSelection`,3,!0),h=Y(t,`connectionLineType`,19,()=>km.Bezier),g=Y(t,`nodes`,31,()=>pn([])),_=Y(t,`edges`,31,()=>pn([])),v=Y(t,`viewport`,15,void 0),y=J(t,Zv),b=ev({props:y,width:t.width,height:t.height,get nodes(){return g()},set nodes(e){g(e)},get edges(){return _()},set edges(e){_(e)},get viewport(){return v()},set viewport(e){v(e)}}),x=it($_);x&&x.setStore&&x.setStore(b),at($_,{provider:!1,getStore(){return b}}),In(()=>{let e={nodes:b.selectedNodes,edges:b.selectedEdges};Nr(()=>t.onselectionchange)?.(e);for(let t of b.selectionChangeHandlers.values())t(e)}),Ha(()=>{x?.setStore(ev({width:0,height:0,nodes:[],edges:[],props:{}}))}),Xv(e,{get colorMode(){return b.colorMode},get width(){return t.width},get height(){return t.height},get rest(){return y},get domNode(){return b.domNode},set domNode(e){b.domNode=e},get clientWidth(){return b.width},set clientWidth(e){b.width=e},get clientHeight(){return b.height},set clientHeight(e){b.height=e},children:(e,g)=>{var _=ey(),v=F(_);Bv(v,{get selectionKey(){return t.selectionKey},get deleteKey(){return t.deleteKey},get panActivationKey(){return t.panActivationKey},get multiSelectionKey(){return t.multiSelectionKey},get zoomActivationKey(){return t.zoomActivationKey},get store(){return b},set store(e){b=e}});var y=L(v,2);rv(y,{get panOnScrollMode(){return i()},get preventScrolling(){return a()},get zoomOnScroll(){return o()},get zoomOnDoubleClick(){return s()},get zoomOnPinch(){return c()},get panOnScroll(){return l()},get panOnScrollSpeed(){return u()},get panOnDrag(){return d()},get paneClickDistance(){return n()},get selectionOnDrag(){return p()},get onmovestart(){return t.onmovestart},get onmove(){return t.onmove},get onmoveend(){return t.onmoveend},get oninit(){return t.oninit},get store(){return b},set store(e){b=e},children:(e,i)=>{cv(e,{get onpaneclick(){return t.onpaneclick},get onpanecontextmenu(){return t.onpanecontextmenu},get onselectionstart(){return t.onselectionstart},get onselectionend(){return t.onselectionend},get panOnDrag(){return d()},get paneClickDistance(){return n()},get selectionOnDrag(){return p()},get autoPanOnSelection(){return m()},get store(){return b},set store(e){b=e},children:(e,n)=>{var i=$v(),a=F(i);uv(a,{get store(){return b},set store(e){b=e},children:(e,n)=>{var i=Qv(),a=L(F(i),2);jv(a,{get onedgeclick(){return t.onedgeclick},get onedgecontextmenu(){return t.onedgecontextmenu},get onedgepointerenter(){return t.onedgepointerenter},get onedgepointerleave(){return t.onedgepointerleave},get store(){return b},set store(e){b=e}});var o=L(a,4);Uv(o,{get type(){return h()},get LineComponent(){return t.connectionLineComponent},get containerStyle(){return t.connectionLineContainerStyle},get style(){return t.connectionLineStyle},get store(){return b},set store(e){b=e}});var s=L(o,2);xv(s,{get nodeClickDistance(){return r()},get onnodeclick(){return t.onnodeclick},get onnodecontextmenu(){return t.onnodecontextmenu},get onnodepointerenter(){return t.onnodepointerenter},get onnodepointermove(){return t.onnodepointermove},get onnodepointerleave(){return t.onnodepointerleave},get onnodedrag(){return t.onnodedrag},get onnodedragstart(){return t.onnodedragstart},get onnodedragstop(){return t.onnodedragstop},get store(){return b},set store(e){b=e}}),Fv(L(s,2),{get onselectionclick(){return t.onselectionclick},get onselectioncontextmenu(){return t.onselectioncontextmenu},get onnodedrag(){return t.onnodedrag},get onnodedragstart(){return t.onnodedragstart},get onnodedragstop(){return t.onnodedragstop},get store(){return b},set store(e){b=e}}),je(2),U(e,i)},$$slots:{default:!0}});var o=L(a,2);{let e=j(()=>!!(b.selectionRect&&b.selectionRectMode===`user`)),t=j(()=>b.selectionRect?.width),n=j(()=>b.selectionRect?.height),r=j(()=>b.selectionRect?.x),i=j(()=>b.selectionRect?.y);Nv(o,{get isVisible(){return z(e)},get width(){return z(t)},get height(){return z(n)},get x(){return z(r)},get y(){return z(i)}})}U(e,i)},$$slots:{default:!0}})},$$slots:{default:!0}});var x=L(y,2);Jv(x,{get proOptions(){return t.proOptions},get position(){return t.attributionPosition}});var S=L(x,2);mv(S,{get store(){return b}}),Fi(L(S,2),()=>t.children??f),U(e,_)},$$slots:{default:!0}}),A()}function ny(e,t){k(t,!0);let n=M(ev({props:{},nodes:[],edges:[]}));at($_,{provider:!0,getStore(){return z(n)},setStore:e=>{N(n,e)}}),Ha(()=>{z(n).reset()});var r=ci();Fi(F(r),()=>t.children??f),U(e,r),A()}var ry=new Set([`$$slots`,`$$events`,`$$legacy`,`target`,`children`]),iy=H(`<div><!></div>`);function ay(e,t){k(t,!0);let n=Y(t,`target`,3,`front`),r=J(t,ry);var i=iy();va(i,e=>({...r,[oa]:{display:e}}),[()=>y_().value?`none`:void 0]),Fi(P(i),()=>t.children??f),O(i),Ri(i,(e,t)=>v_?.(e,t),()=>`viewport-${n()}`),U(e,i),A()}var oy;(function(e){e.Lines=`lines`,e.Dots=`dots`,e.Cross=`cross`})(oy||={});var sy=oi(`<circle></circle>`);function cy(e,t){var n=sy();R(()=>{q(n,`cx`,t.radius),q(n,`cy`,t.radius),q(n,`r`,t.radius),Ji(n,0,Hi([`svelte-flow__background-pattern`,`dots`,t.class]))}),U(e,n)}var ly=oi(`<path></path>`);function uy(e,t){k(t,!0);var n=ly();R(()=>{q(n,`stroke-width`,t.lineWidth),q(n,`d`,`M${t.dimensions[0]/2} 0 V${t.dimensions[1]} M0 ${t.dimensions[1]/2} H${t.dimensions[0]}`),Ji(n,0,Hi([`svelte-flow__background-pattern`,t.variant,t.class]))}),U(e,n),A()}var dy={[oy.Dots]:1,[oy.Lines]:1,[oy.Cross]:6},fy=oi(`<svg data-testid="svelte-flow__background"><pattern patternUnits="userSpaceOnUse"><!></pattern><rect x="0" y="0" width="100%" height="100%"></rect></svg>`);function py(e,t){k(t,!0);let n=Y(t,`variant`,19,()=>oy.Dots),r=Y(t,`gap`,3,20),i=Y(t,`lineWidth`,3,1),a=j(Q_),o=j(()=>n()===oy.Dots),s=j(()=>n()===oy.Cross),c=j(()=>Array.isArray(r())?r():[r(),r()]),l=j(()=>`background-pattern-${z(a).flowId}-${t.id??``}`),u=j(()=>[z(c)[0]*z(a).viewport.zoom||1,z(c)[1]*z(a).viewport.zoom||1]),d=j(()=>(t.size??dy[n()])*z(a).viewport.zoom),f=j(()=>z(s)?[z(d),z(d)]:z(u)),p=j(()=>z(o)?[z(d)/2,z(d)/2]:[z(f)[0]/2,z(f)[1]/2]);var m=fy();let h;var g=P(m),_=P(g),v=e=>{{let n=j(()=>z(d)/2);cy(e,{get radius(){return z(n)},get class(){return t.patternClass}})}},y=e=>{uy(e,{get dimensions(){return z(f)},get variant(){return n()},get lineWidth(){return i()},get class(){return t.patternClass}})};G(_,e=>{z(o)?e(v):e(y,-1)}),O(g);var b=L(g);O(m),R(()=>{Ji(m,0,Hi([`svelte-flow__background`,`svelte-flow__container`,t.class])),h=Xi(m,``,h,{"--xy-background-color-props":t.bgColor,"--xy-background-pattern-color-props":t.patternColor}),q(g,`id`,z(l)),q(g,`x`,z(a).viewport.x%z(u)[0]),q(g,`y`,z(a).viewport.y%z(u)[1]),q(g,`width`,z(u)[0]),q(g,`height`,z(u)[1]),q(g,`patternTransform`,`translate(-${z(p)[0]},-${z(p)[1]})`),q(b,`fill`,`url(#${z(l)})`)}),U(e,m),A()}function my(e){let t=j(Q_),n=j(()=>z(t).nodeLookup),r=j(()=>z(t).nodes),i=j(()=>(z(r),z(n).get(e)));return{get current(){return z(i)}}}var hy=oi(`<rect></rect>`);function gy(e,t){k(t,!0);let n=Y(t,`borderRadius`,3,5),r=Y(t,`strokeWidth`,3,2),i=j(()=>my(t.id)),a=j(()=>{if(!z(i).current)return{width:0,height:0,x:0,y:0};let{width:e,height:n}=gh(z(i).current);return{width:t.width??e,height:t.height??n,x:t.x??z(i).current.internals.positionAbsolute.x,y:t.y??z(i).current.internals.positionAbsolute.y}}),o=j(()=>z(a).width),s=j(()=>z(a).height),c=j(()=>z(a).x),l=j(()=>z(a).y);var u=ci(),d=F(u),f=e=>{let i=j(()=>t.nodeComponent);var a=ci();Ii(F(a),()=>z(i),(e,i)=>{i(e,{get id(){return t.id},get x(){return z(c)},get y(){return z(l)},get width(){return z(o)},get height(){return z(s)},get borderRadius(){return n()},get class(){return t.class},get color(){return t.color},get shapeRendering(){return t.shapeRendering},get strokeColor(){return t.strokeColor},get strokeWidth(){return r()},get selected(){return t.selected}})}),U(e,a)},p=e=>{var i=hy();let a,u;R(()=>{a=Ji(i,0,Hi([`svelte-flow__minimap-node`,t.class]),null,a,{selected:t.selected}),q(i,`x`,z(c)),q(i,`y`,z(l)),q(i,`rx`,n()),q(i,`ry`,n()),q(i,`width`,z(o)),q(i,`height`,z(s)),q(i,`shape-rendering`,t.shapeRendering),u=Xi(i,``,u,{fill:t.color,stroke:t.strokeColor,"stroke-width":r()})}),U(e,i)};G(d,e=>{t.nodeComponent?e(f):e(p,-1)}),U(e,u),A()}function _y(e,t){let n=Ig({domNode:e,panZoom:t.panZoom,getTransform:()=>{let{viewport:e}=t.store;return[e.x,e.y,e.zoom]},getViewScale:t.getViewScale});n.update({translateExtent:t.translateExtent,width:t.width,height:t.height,inversePan:t.inversePan,zoomStep:t.zoomStep,pannable:t.pannable,zoomable:t.zoomable});function r(e){n.update({translateExtent:e.translateExtent,width:e.width,height:e.height,inversePan:e.inversePan,zoomStep:e.zoomStep,pannable:e.pannable,zoomable:e.zoomable})}return{update:r,destroy(){n.destroy()}}}var vy=e=>e instanceof Function?e:()=>e,yy=new Set([`$$slots`,`$$events`,`$$legacy`,`position`,`ariaLabel`,`nodeStrokeColor`,`nodeColor`,`nodeClass`,`nodeBorderRadius`,`nodeStrokeWidth`,`nodeComponent`,`bgColor`,`maskColor`,`maskStrokeColor`,`maskStrokeWidth`,`width`,`height`,`pannable`,`zoomable`,`inversePan`,`zoomStep`,`class`]),by=oi(`<title> </title>`),xy=oi(`<svg class="svelte-flow__minimap-svg" role="img"><!><!><path class="svelte-flow__minimap-mask" fill-rule="evenodd" pointer-events="none"></path></svg>`),Sy=H(`<svelte-css-wrapper style="display: contents"><!></svelte-css-wrapper>`,1);function Cy(e,t){k(t,!0);let n=Y(t,`position`,3,`bottom-right`),r=Y(t,`nodeStrokeColor`,3,`transparent`),i=Y(t,`nodeClass`,3,``),a=Y(t,`nodeBorderRadius`,3,5),o=Y(t,`nodeStrokeWidth`,3,2),s=Y(t,`width`,3,200),c=Y(t,`height`,3,150),l=Y(t,`pannable`,3,!0),u=Y(t,`zoomable`,3,!0),d=J(t,yy),f=j(Q_),p=j(()=>z(f).ariaLabelConfig),m=typeof window>`u`||window.chrome?`crispEdges`:`geometricPrecision`,h=j(()=>`svelte-flow__minimap-desc-${z(f).flowId}`),g=j(()=>({x:-z(f).viewport.x/z(f).viewport.zoom,y:-z(f).viewport.y/z(f).viewport.zoom,width:z(f).width/z(f).viewport.zoom,height:z(f).height/z(f).viewport.zoom})),_=j(()=>z(f).nodes.some(e=>!e.hidden)),v=j(()=>z(_)?th(Rm(z(f).nodeLookup,{filter:e=>!e.hidden}),z(g)):z(g)),y=j(()=>z(v).width/s()),b=j(()=>z(v).height/c()),x=j(()=>Math.max(z(y),z(b))),S=j(()=>z(x)*s()),C=j(()=>z(x)*c()),w=j(()=>5*z(x)),ee=j(()=>z(v).x-(z(S)-z(v).width)/2-z(w)),T=j(()=>z(v).y-(z(C)-z(v).height)/2-z(w)),te=j(()=>z(S)+z(w)*2),E=j(()=>z(C)+z(w)*2),ne=()=>z(x);var re=Sy(),ie=F(re);{let e=j(()=>[`svelte-flow__minimap`,t.class]);Ti(ie,()=>({"--xy-minimap-background-color-props":t.bgColor})),Kv(ie.lastChild,Ba({get position(){return n()},get class(){return z(e)},"data-testid":`svelte-flow__minimap`},()=>d,{children:(e,n)=>{var d=ci(),_=F(d),v=e=>{var n=xy();let d;var _=P(n),v=e=>{var n=by(),r=I(n,!0);R(()=>{q(n,`id`,z(h)),W(r,t.ariaLabel??z(p)[`minimap.ariaLabel`])}),U(e,n)};G(_,e=>{(t.ariaLabel??z(p)[`minimap.ariaLabel`])&&e(v)});var y=L(_);K(y,17,()=>z(f).nodes,e=>e.id,(e,n)=>{let s=j(()=>z(f).nodeLookup.get(z(n).id));var c=ci(),l=F(c),u=e=>{{let c=j(()=>t.nodeColor===void 0?void 0:vy(t.nodeColor)(z(n))),l=j(()=>vy(r())(z(n))),u=j(()=>vy(i())(z(n)));gy(e,{get id(){return z(s).id},get selected(){return z(s).selected},get nodeComponent(){return t.nodeComponent},get color(){return z(c)},get borderRadius(){return a()},get strokeColor(){return z(l)},get strokeWidth(){return o()},get shapeRendering(){return m},get class(){return z(u)}})}},d=j(()=>z(s)&&_h(z(s))&&!z(s).hidden);G(l,e=>{z(d)&&e(u)}),U(e,c)});var b=L(y);O(n),Ri(n,(e,t)=>_y?.(e,t),()=>({store:z(f),panZoom:z(f).panZoom,getViewScale:ne,translateExtent:z(f).translateExtent,width:z(f).width,height:z(f).height,inversePan:t.inversePan,zoomStep:t.zoomStep,pannable:l(),zoomable:u()})),R(()=>{q(n,`width`,s()),q(n,`height`,c()),q(n,`viewBox`,`${z(ee)??``} ${z(T)??``} ${z(te)??``} ${z(E)??``}`),q(n,`aria-labelledby`,z(h)),d=Xi(n,``,d,{"--xy-minimap-mask-background-color-props":t.maskColor,"--xy-minimap-mask-stroke-color-props":t.maskStrokeColor,"--xy-minimap-mask-stroke-width-props":t.maskStrokeWidth?t.maskStrokeWidth*z(x):void 0}),q(b,`d`,`M${z(ee)-z(w)},${z(T)-z(w)}h${z(te)+z(w)*2}v${z(E)+z(w)*2}h${-z(te)-z(w)*2}z
|
|
6
6
|
M${z(g).x??``},${z(g).y??``}h${z(g).width??``}v${z(g).height??``}h${-z(g).width}z`)}),U(e,n)};G(_,e=>{z(f).panZoom&&e(v)}),U(e,d)},$$slots:{default:!0}})),O(ie)}U(e,re),A()}var wy=new Set([`$$slots`,`$$events`,`$$legacy`,`nodeId`,`position`,`align`,`offset`,`isVisible`,`children`]),Ty=H(`<div><!></div>`);function Ey(e,t){k(t,!0);let n=Y(t,`position`,19,()=>jm.Top),r=Y(t,`align`,3,`center`),i=Y(t,`offset`,3,10),a=J(t,wy),o=Q_(),{getNodesBounds:s}=Rv(),c=t_(),l=j(()=>(o.nodes,(Array.isArray(t.nodeId)?t.nodeId:[t.nodeId??c]).reduce((e,t)=>{if(!t)throw Error(`Either pass a nodeId or use within a Custom Node component`);let n=o.nodeLookup.get(t);return n&&e.push(n),e},[]))),u=j(()=>{let e=s(z(l));return e?tg(e,o.viewport,n(),i(),r()):``}),d=j(()=>z(l).length===0?1:Math.max(...z(l).map(e=>(e.internals.z||5)+1))),p=j(()=>o.nodes.filter(e=>e.selected).length),m=j(()=>typeof t.isVisible==`boolean`?t.isVisible:z(l).length===1&&z(l)[0].selected&&z(p)===1);var h=ci(),g=F(h),_=e=>{var n=Ty();va(n,(e,t)=>({class:`svelte-flow__node-toolbar`,"data-id":e,...a,[oa]:{display:t,position:`absolute`,transform:z(u),"z-index":z(d)}}),[()=>z(l).reduce((e,t)=>`${e}${t.id} `,``).trim(),()=>y_().value?`none`:void 0]),Fi(P(n),()=>t.children??f),O(n),Ri(n,(e,t)=>v_?.(e,t),()=>`root`),U(e,n)};G(g,e=>{o.domNode&&z(m)&&z(l)&&e(_)}),U(e,h),A()}function Dy(){let e=j(Q_);return{get current(){return z(e).viewport},set current(t){z(e).viewport=t},update(t){z(e).viewport=t(z(e).viewport)},set(t){z(e).viewport=t}}}var Oy=new Set([`$$slots`,`$$events`,`$$legacy`]);function ky(e,t){let n=J(t,Oy),r={name:`plug`,size:24,node:[[`path`,{d:`M12 22v-5`}],[`path`,{d:`M15 8V2`}],[`path`,{d:`M17 8a1 1 0 0 1 1 1v4a4 4 0 0 1-4 4h-4a4 4 0 0 1-4-4V9a1 1 0 0 1 1-1z`}],[`path`,{d:`M9 8V2`}]]};$a(e,Ba(()=>n,{get icon(){return r}}))}var Ay=new class{#e=M(!1);get open(){return z(this.#e)}set open(e){N(this.#e,e,!0)}#t=M(pn({}));#n=M(!1);#r=new Set;#i=!1;#a=``;#o=j(()=>[...Q.status?.messages??[]].reverse().map(e=>({...e,answered:z(this.#t)[e.id]??e.answered??null})).filter(e=>!z(this.#n)||e.kind===`question`&&!e.answered));get messages(){return z(this.#o)}set messages(e){N(this.#o,e)}#s=j(()=>this.messages.find(e=>e.kind===`question`&&e.choices?.length&&!e.answered));get question(){return z(this.#s)}set question(e){N(this.#s,e)}follow(){if(Q.status){for(let e of this.messages)this.#r.has(e.id)||(this.#r.add(e.id),this.#i&&(e.kind===`question`&&!e.answered?this.open=!0:e.from===`koppler`&&!e.answered?(this.open=!0,this.#a=e.id):$.show(`Agent: ${e.title}`,e.kind===`failure`?`warning`:`message`,{label:`Open`,run:()=>this.open=!0})));this.#i=!0,this.#a&&this.messages.find(e=>e.id===this.#a)?.answered&&(this.#a=``,this.question||(this.open=!1)),z(this.#n)&&!(Q.status.messages??[]).some(e=>!(e.kind===`question`&&!e.answered))&&N(this.#n,!1)}}async answer(e,t){let n=e.choices?.find(e=>e.id===t.choice),r=n?`${n.label}${t.text?`. ${t.text}`:``}`:t.text??``,i=await Js(`prompt`,{tag:`koppler-reply`,text:`Answer to your question "${e.title}"${e.run?` (run ${e.run})`:``}: ${r}`,data:{message:e.id,...t}});i?.ok?(z(this.#t)[e.id]={at:new Date().toISOString(),...t,via:`canvas`},(Q.status?.agent?.state??`none`)===`none`&&$.show(`Answer saved. The agent gets it when one connects.`)):$.show(i?.status===409?`That question was already answered.`:`Could not send the answer.`,`warning`)}async dismiss(e){let t=await Js(`message-dismiss`,{id:e.id});!t?.ok&&t?.status!==409?$.show(`Could not dismiss it.`,`warning`):z(this.#t)[e.id]={at:new Date().toISOString(),via:`dismissed`}}get waiting(){return[...Q.status?.waiting??[]].reverse().filter(e=>!z(this.#c).includes(e.key))}#c=M(pn([]));async drop(e){let t=await Js(`prompt-drop`,{key:e});t?.ok||t?.status===409?N(this.#c,[...z(this.#c),e],!0):$.show(`Could not drop it.`,`warning`)}async clear(){(await Js(`messages-clear`,{}))?.ok?(N(this.#n,!0),this.question&&$.show(`Cleared. The open question stays.`)):$.show(`Could not clear the messages.`,`warning`)}},jy=H(`<button class="how svelte-ssy1qy" type="button" aria-label="How to connect an agent" title="How to connect an agent" aria-haspopup="dialog"><!></button>`),My=H(`<button class="agent svelte-ssy1qy" type="button"><span class="dot svelte-ssy1qy" aria-hidden="true"></span><span class="words svelte-ssy1qy"> </span></button> <!> <div class="connect svelte-ssy1qy" popover="" role="dialog"><h2 class="svelte-ssy1qy">Connect an agent</h2> <p class="svelte-ssy1qy">Koppler starts and stops a confirmed run by itself. The agent is needed for what it cannot do alone: manual
|
|
7
|
-
checklists, notes, fixing a failed start, and anything a run leaves over.</p> <ol class="svelte-ssy1qy"><li class="svelte-ssy1qy">Open your agent session in this project</li> <li class="svelte-ssy1qy">Run this command there <!></li> <li class="svelte-ssy1qy">The dot turns green once it listens<small class="svelte-ssy1qy">Anything sent meanwhile waits for it.</small></li></ol></div>`,1);function Ny(e,t){let n=li();k(t,!0);let r={listening:[`Agent connected`,`An agent session is listening: notes, checklists and fix requests reach it right away.`],busy:[`Agent working`,`The connected agent is working on a request; the next one waits for it.`],question:[`Agent needs you`,`The agent asked something about your run. Click to answer.`],quiet:[`Agent quiet`,`It took a request and has neither finished it nor listened again since. If its session is done, run /koppler-run connect there; press ↻ for the steps.`],none:[`No agent listening`,`Runs work without one. Notes, checklists and fix requests wait until an agent connects; press ↻ to see how.`]},i=M(void 0),a=M(void 0),o=M(!1),s=j(()=>{let e=Date.parse(Q.status?.agent?.busy??``);return Number.isNaN(e)||!Q.status?0:Math.floor((Date.now()-e)/6e4)}),c=j(()=>Q.status?.agent?.state??`none`),l=j(()=>z(c)===`busy`&&z(s)*6e4>=6e5?`quiet`:z(c)),u=j(()=>Ay.question?`question`:z(l)),d=j(()=>r[z(u)]??r.none??[``,``]),f=j(()=>v(z(d),2)),p=j(()=>z(f)[0]),m=j(()=>z(f)[1]),h=j(()=>Q.status?.queued??0),g=j(()=>z(h)>0&&z(u)!==`listening`),_=j(()=>z(u)===`none`&&!z(h)?`off`:z(u)),y=j(()=>({listening:`Agent`,busy:z(s)?`Agent working, ${String(z(s))} min`:`Agent working`,quiet:`Agent quiet, ${String(z(s))} min`,none:z(h)?z(p):`No agent`}[z(u)]??z(p))+(z(g)?`, ${String(z(h))} waiting`:``)),b=j(()=>`${z(p)}. ${z(m)}${z(g)?` ${String(z(h))} ${z(h)===1?`request waits`:`requests wait`} for it; only the newest run or Stop is handed over.`:``}`),x=()=>{let e=z(i)?.getBoundingClientRect();e&&z(a)&&(z(a).style.top=`${String(e.bottom+6)}px`,z(a).style.right=`${String(Math.max(12,innerWidth-e.right))}px`)};In(()=>{(z(l)===`listening`||z(l)===`busy`)&&z(o)&&z(a)?.hidePopover()});var S=ci(),C=F(S),w=e=>{var t=My(),r=F(t),s=I(L(P(r)),!0);O(r);var c=L(r,2),u=e=>{var t=jy();X(P(t),{get of(){return ky},size:15}),O(t),Ma(t,e=>N(i,e),()=>z(i)),R(()=>{q(t,`aria-expanded`,z(o)),q(t,`popovertarget`,n)}),U(e,t)};G(c,e=>{(z(l)===`none`||z(l)===`quiet`)&&e(u)});var d=L(c,2),f=P(d),p=L(f,4),m=L(P(p),2);Lc(L(P(m)),{command:`/koppler-run connect`}),O(m),je(2),O(p),O(d),Ma(d,e=>N(a,e),()=>z(a)),R(()=>{q(r,`data-state`,z(_)),q(r,`title`,z(b)),q(r,`aria-expanded`,Ay.open),W(s,z(y)),q(d,`id`,n),q(d,`aria-labelledby`,`${n}-title`),q(f,`id`,`${n}-title`)}),V(`click`,r,()=>Ay.open=!Ay.open),B(`toggle`,d,e=>{N(o,e.newState===`open`),z(o)&&x()}),U(e,t)};G(C,e=>{Q.status&&e(w)}),U(e,S),A()}Zr([`click`]);var Py=new Set([`$$slots`,`$$events`,`$$legacy`]);function Fy(e,t){let n=J(t,Py),r={name:`minus`,size:24,node:[[`path`,{d:`M5 12h14`}]]};$a(e,Ba(()=>n,{get icon(){return r}}))}var Iy=new Set([`$$slots`,`$$events`,`$$legacy`]);function Ly(e,t){let n=J(t,Iy),r={name:`plus`,size:24,node:[[`path`,{d:`M5 12h14`}],[`path`,{d:`M12 5v14`}]]};$a(e,Ba(()=>n,{get icon(){return r}}))}var Ry=new Set([`$$slots`,`$$events`,`$$legacy`]);function zy(e,t){let n=J(t,Ry),r={name:`hand`,size:24,node:[[`path`,{d:`M18 11V6a2 2 0 0 0-2-2a2 2 0 0 0-2 2`}],[`path`,{d:`M14 10V4a2 2 0 0 0-2-2a2 2 0 0 0-2 2v2`}],[`path`,{d:`M10 10.5V6a2 2 0 0 0-2-2a2 2 0 0 0-2 2v8`}],[`path`,{d:`M18 8a2 2 0 1 1 4 0v6a8 8 0 0 1-8 8h-2c-2.8 0-4.5-.86-5.99-2.34l-3.6-3.6a2 2 0 0 1 2.83-2.82L7 15`}]]};$a(e,Ba(()=>n,{get icon(){return r}}))}var By=new Set([`$$slots`,`$$events`,`$$legacy`]);function Vy(e,t){let n=J(t,By),r={name:`maximize`,size:24,node:[[`path`,{d:`M8 3H5a2 2 0 0 0-2 2v3`}],[`path`,{d:`M21 8V5a2 2 0 0 0-2-2h-3`}],[`path`,{d:`M3 16v3a2 2 0 0 0 2 2h3`}],[`path`,{d:`M16 21h3a2 2 0 0 0 2-2v-3`}]]};$a(e,Ba(()=>n,{get icon(){return r}}))}var Hy=new Set([`$$slots`,`$$events`,`$$legacy`]);function Uy(e,t){let n=J(t,Hy),r={name:`minimize`,size:24,node:[[`path`,{d:`M8 3v3a2 2 0 0 1-2 2H3`}],[`path`,{d:`M21 8h-3a2 2 0 0 1-2-2V3`}],[`path`,{d:`M3 16h3a2 2 0 0 1 2 2v3`}],[`path`,{d:`M16 21v-3a2 2 0 0 1 2-2h3`}]]};$a(e,Ba(()=>n,{get icon(){return r}}))}var Wy=new Set([`$$slots`,`$$events`,`$$legacy`]);function Gy(e,t){let n=J(t,Wy),r={name:`mouse-pointer-2`,size:24,node:[[`path`,{d:`M4.037 4.688a.495.495 0 0 1 .651-.651l16 6.5a.5.5 0 0 1-.063.947l-6.124 1.58a2 2 0 0 0-1.438 1.435l-1.579 6.126a.5.5 0 0 1-.947.063z`}]]};$a(e,Ba(()=>n,{get icon(){return r}}))}var Ky=new Set([`$$slots`,`$$events`,`$$legacy`]);function qy(e,t){let n=J(t,Ky),r={name:`redo-2`,size:24,node:[[`path`,{d:`m15 14 5-5-5-5`}],[`path`,{d:`M20 9H9.5A5.5 5.5 0 0 0 4 14.5A5.5 5.5 0 0 0 9.5 20H13`}]]};$a(e,Ba(()=>n,{get icon(){return r}}))}var Jy=new Set([`$$slots`,`$$events`,`$$legacy`]);function Yy(e,t){let n=J(t,Jy),r={name:`undo-2`,size:24,node:[[`path`,{d:`M9 14 4 9l5-5`}],[`path`,{d:`M4 9h10.5a5.5 5.5 0 0 1 5.5 5.5a5.5 5.5 0 0 1-5.5 5.5H11`}]]};$a(e,Ba(()=>n,{get icon(){return r}}))}var Xy=new Set([`$$slots`,`$$events`,`$$legacy`]);function Zy(e,t){let n=J(t,Xy),r={name:`zap`,size:24,node:[[`path`,{d:`M15.914 4a1.5 1.5 0 00-2.474-1.561l-9 9A1.5 1.5 0 005.5 14h4.002a.5.5 0 01.471.666L8.086 20a1.5 1.5 0 002.475 1.56l9-9A1.5 1.5 0 0018.5 10h-3.997a.5.5 0 01-.472-.667z`}]]};$a(e,Ba(()=>n,{get icon(){return r}}))}var Qy=new Set([`$$slots`,`$$events`,`$$legacy`]);function $y(e,t){let n=J(t,Qy),r={name:`waypoints`,size:24,node:[[`path`,{d:`m10.586 5.414-5.172 5.172`}],[`path`,{d:`m18.586 13.414-5.172 5.172`}],[`path`,{d:`M6 12h12`}],[`circle`,{cx:`12`,cy:`20`,r:`2`}],[`circle`,{cx:`12`,cy:`4`,r:`2`}],[`circle`,{cx:`20`,cy:`12`,r:`2`}],[`circle`,{cx:`4`,cy:`12`,r:`2`}]]};$a(e,Ba(()=>n,{get icon(){return r}}))}var eb=new Set([`$$slots`,`$$events`,`$$legacy`]);function tb(e,t){let n=J(t,eb),r={name:`check`,size:24,node:[[`path`,{d:`M20 6 9 17l-5-5`}]]};$a(e,Ba(()=>n,{get icon(){return r}}))}var nb=new Set([`$$slots`,`$$events`,`$$legacy`]);function rb(e,t){let n=J(t,nb),r={name:`grip-vertical`,size:24,node:[[`circle`,{cx:`9`,cy:`12`,r:`1`}],[`circle`,{cx:`9`,cy:`5`,r:`1`}],[`circle`,{cx:`9`,cy:`19`,r:`1`}],[`circle`,{cx:`15`,cy:`12`,r:`1`}],[`circle`,{cx:`15`,cy:`5`,r:`1`}],[`circle`,{cx:`15`,cy:`19`,r:`1`}]]};$a(e,Ba(()=>n,{get icon(){return r}}))}var ib=new Set([`$$slots`,`$$events`,`$$legacy`]);function ab(e,t){let n=J(t,ib),r={name:`logs`,size:24,node:[[`path`,{d:`M3 5h1`}],[`path`,{d:`M3 12h1`}],[`path`,{d:`M3 19h1`}],[`path`,{d:`M8 5h1`}],[`path`,{d:`M8 12h1`}],[`path`,{d:`M8 19h1`}],[`path`,{d:`M13 5h8`}],[`path`,{d:`M13 12h8`}],[`path`,{d:`M13 19h8`}]]};$a(e,Ba(()=>n,{get icon(){return r}}))}var ob=new Set([`$$slots`,`$$events`,`$$legacy`]);function sb(e,t){let n=J(t,ob),r={name:`rotate-cw`,size:24,node:[[`path`,{d:`M21 12a9 9 0 1 1-9-9c2.52 0 4.93 1 6.74 2.74L21 8`}],[`path`,{d:`M21 3v5h-5`}]]};$a(e,Ba(()=>n,{get icon(){return r}}))}var cb=H(`<span class="tag svelte-1ypd2at">current</span>`),lb=H(`<span class="tag svelte-1ypd2at">picked</span>`),ub=H(`<li role="option" class="svelte-1ypd2at"><span class="name svelte-1ypd2at"> </span> <!></li>`),db=H(`<li class="note svelte-1ypd2at" role="presentation"> </li>`),fb=H(`<input class="mono svelte-1ypd2at" role="combobox" aria-autocomplete="list" autocomplete="off" spellcheck="false" placeholder="current branch"/> <ul class="nodrag nopan nowheel svelte-1ypd2at" role="listbox" popover="manual"><!> <!></ul>`,1);function pb(e,t){let n=li();k(t,!0);let r=Y(t,`label`,3,`Branch`),i=M(void 0),a=M(void 0),o=M(!1),s=M(``),c=M(0),l=``,u=j(()=>z(s)?t.branches.filter(e=>e.toLowerCase().includes(z(s).toLowerCase())):t.branches),d=j(()=>z(u).slice(0,80)),f=(e,t)=>{let n=z(i)?.getBoundingClientRect();if(!n||!z(a))return;z(a).style.left=`${String(n.left)}px`,z(a).style.minWidth=`${String(Math.max(n.width,280))}px`,z(a).style.maxWidth=`${String(Math.max(280,Math.min(560,innerWidth-n.left-12)))}px`;let r=n.bottom+4;z(a).style.top=`${String(r+z(a).offsetHeight>innerHeight-8?Math.max(8,n.top-4-z(a).offsetHeight):r)}px`,t&&z(a).children[e]?.scrollIntoView({block:`nearest`})};In(()=>{z(o)&&f(z(c),z(d).length)});let p=()=>{!z(o)&&z(i)&&(l=z(i).value,N(s,``),N(c,Math.max(0,z(d).indexOf(t.value||t.current)),!0),N(o,!0),z(i).select(),z(a)?.showPopover())},m=()=>{z(o)&&(N(o,!1),z(a)?.hidePopover())},h=e=>{let n=e.trim();!n&&z(i)&&(z(i).value=t.current),n!==(t.value||t.current)&&t.onpick(n===t.current?``:n)},g=e=>{z(i)&&(z(i).value=e),h(e),m(),z(i)?.blur()},_=e=>{if(!z(o))e.key===`ArrowDown`&&p();else if((e.key===`ArrowDown`||e.key===`ArrowUp`)&&z(d).length)e.preventDefault(),N(c,(z(c)+(e.key===`ArrowDown`?1:-1)+z(d).length)%z(d).length);else if(e.key===`Enter`){e.preventDefault();let t=z(d)[z(c)];t?g(t):z(i)?.blur()}else e.key===`Escape`&&(e.preventDefault(),e.stopPropagation(),z(i)&&(z(i).value=l),m(),z(i)?.blur())};var v=fb(),y=F(v);ma(y),Ma(y,e=>N(i,e),()=>z(i));var b=L(y,2),x=P(b);K(x,18,()=>z(d),e=>e,(e,r,i)=>{var a=ub(),o=P(a),s=I(o,!0),l=L(o,2),u=e=>{U(e,cb())},d=e=>{U(e,lb())};G(l,e=>{r===t.current?e(u):r===t.value&&e(d,1)}),O(a),R(()=>{q(a,`id`,`${n}-${z(i)??``}`),q(a,`aria-selected`,z(i)===z(c)),q(a,`title`,r),W(s,r)}),B(`pointerenter`,a,()=>N(c,z(i),!0)),V(`click`,a,e=>{e.preventDefault(),g(r)}),U(e,a)});var S=L(x,2),C=e=>{var t=db(),n=I(t);R(()=>W(n,`${z(u).length-z(d).length} more, keep typing`)),U(e,t)},w=e=>{var n=db(),r=I(n,!0);R(()=>W(r,t.branches.length?`No branch matches. Enter keeps "${z(s)}".`:`No branches found. Run koppler sync.`)),U(e,n)};G(S,e=>{z(u).length>z(d).length?e(C):z(u).length||e(w,1)}),O(b),Ma(b,e=>N(a,e),()=>z(a)),R(e=>{q(y,`aria-label`,r()),q(y,`aria-expanded`,z(o)),q(y,`aria-controls`,`${n}-list`),q(y,`aria-activedescendant`,e),q(y,`title`,t.title),ha(y,t.value||t.current),q(b,`id`,`${n}-list`)},[()=>z(o)&&z(d).length?`${n}-${String(z(c))}`:void 0]),V(`click`,y,p),B(`blur`,y,e=>{h(e.currentTarget.value),m()}),V(`input`,y,e=>{p(),N(s,e.currentTarget.value.trim(),!0),N(c,0)}),V(`keydown`,y,_),V(`pointerdown`,b,e=>{e.preventDefault()}),U(e,v),A()}Zr([`click`,`input`,`keydown`,`pointerdown`]);var mb=H(`<label class="field svelte-1kkgx5y">Branch <!></label>`),hb=H(`<label class="svelte-1kkgx5y"><input type="radio"/> </label>`),gb=H(`<div class="field svelte-1kkgx5y" role="radiogroup"> <span class="seg svelte-1kkgx5y"></span></div>`),_b=H(`<div class="field svelte-1kkgx5y" role="group" aria-label="Who starts it">Started by <span class="seg svelte-1kkgx5y"></span></div>`),vb=H(`<option> </option>`),yb=H(`<label class="field svelte-1kkgx5y">Platform <span class="combo svelte-1kkgx5y"><select class="mono svelte-1kkgx5y"></select></span></label>`),bb=H(`<div class="field svelte-1kkgx5y">Tunnels <label class="toggle svelte-1kkgx5y"><input type="checkbox" role="switch"/><span class="track" aria-hidden="true"></span> </label></div>`),xb=H(`<button class="link svelte-1kkgx5y" type="button"> </button>`),Sb=H(`<div class="field svelte-1kkgx5y">Queues <label class="toggle svelte-1kkgx5y"><input type="checkbox" role="switch"/><span class="track" aria-hidden="true"></span> </label> <!></div>`),Cb=H(`<div class="row svelte-1kkgx5y"><!> <!> <!> <!></div>`),wb=H(`<label class="toggle svelte-1kkgx5y"><input type="checkbox" role="switch"/><span class="track" aria-hidden="true"></span> </label>`),Tb=H(`<div class="field svelte-1kkgx5y">Libraries <!></div>`),Eb=H(`<optgroup label="Call a local app"></optgroup>`),Db=H(`<optgroup label="Remove the cable to"></optgroup>`),Ob=H(`<label class="field svelte-1kkgx5y">Note for the agent <textarea rows="2" placeholder="e.g. run with the new pricing flag on" class="svelte-1kkgx5y"></textarea></label>`),kb=H(`<button class="note-toggle svelte-1kkgx5y" type="button">Add a note for the agent</button>`),Ab=H(`<label class="field svelte-1kkgx5y">Cables <span class="combo svelte-1kkgx5y"><select class="svelte-1kkgx5y"><option>Add or remove…</option><!><!></select></span></label> <!>`,1),jb=H(`<div class="body svelte-1kkgx5y"><!> <!> <!> <!> <!></div>`);function Mb(e,t){k(t,!0);let n=[[`set-aside`,`Set aside`,`Kept aside while it runs the other branch, back on Stop`],[`take-along`,`Take along`,`Carried to the other branch, and back on Stop`]],r=j(()=>Z.nodes.find(e=>e.id===t.id)?.data),i=j(()=>Z.app(t.id)),a=j(()=>z(i)?.current||`current branch`),o=j(()=>`${String(z(i)?.dirty??0)} uncommitted ${z(i)?.dirty===1?`change`:`changes`}`),s=j(()=>(z(i)?.runIn??[]).map(([e])=>e).filter(e=>Object.hasOwn(Qs,e))),c=j(()=>z(s).length>1),l=j(()=>z(r)?.run===`mock`),u=j(()=>Z.tunnelsOf(t.id)),d=j(()=>Z.queuesOf(t.id)),f=j(()=>z(d).filter(e=>Z.hiddenQueues[e])),p=j(()=>z(d).length>0&&!z(r)?.showQueues),m=j(()=>Z.localLibraries(t.id)),h=(e,n)=>{Z.set(t.id,{libraries:n?[...z(m),e]:z(m).filter(t=>t!==e)})},g=j(()=>!!z(i)?.platforms.length&&z(r)?.run===`cli`),_=M(pn({can:[],wired:[]})),y=M(!1),b=e=>{let n=e.currentTarget,[r,i]=[n.value[0],n.value.slice(1)];r===`+`?Z.connect(t.id,i):r===`-`&&Z.cut(t.id,i),n.value=``},x=e=>e.target.closest(`select, textarea, input:not([type="radio"], [type="checkbox"])`),S=e=>{let t=x(e);t===document.activeElement?e.stopPropagation():t&&e.preventDefault()},C=e=>{let t=x(e);t&&t!==document.activeElement&&(t.focus(),t instanceof HTMLSelectElement&&t.showPicker())},w=e=>{e.style.height=`auto`,e.style.height=`${String(e.scrollHeight+2)}px`};var ee=ci(),T=F(ee),te=e=>{var x=jb(),ee=P(x),T=e=>{var n=mb(),a=L(P(n));{let e=j(()=>z(i)?.current??``),n=j(()=>z(i)?.branches??[]),s=j(()=>z(i)?.dirty&&!Z.switchesOver(t.id)?`Runs with your ${z(o)}`:void 0);pb(a,{get value(){return z(r).branch},get current(){return z(e)},get branches(){return z(n)},get title(){return z(s)},onpick:e=>{Z.set(t.id,{branch:e})}})}O(n),U(e,n)};G(ee,e=>{z(l)||e(T)});var te=L(ee,2),E=e=>{var i=gb(),s=P(i),c=L(s);K(c,21,()=>n,([e,t,n])=>e,(e,n)=>{var i=j(()=>v(z(n),3));let a=()=>z(i)[0],o=()=>z(i)[1],s=()=>z(i)[2];var c=hb(),l=P(c);ma(l);var u=L(l,1,!0);O(c),R(()=>{q(c,`title`,s()),q(l,`name`,`changes-${t.id??``}`),ha(l,a()),ga(l,(z(r).changes??`set-aside`)===a()),W(u,o())}),V(`change`,l,()=>{Z.set(t.id,{changes:a()})}),U(e,c)}),O(c),O(i),R(()=>{q(i,`aria-label`,`Your ${z(o)??``} on ${z(a)??``}`),q(i,`title`,`Your ${z(o)??``} on ${z(a)??``}: set aside while it runs the other branch, or taken along. Back on Stop either way.`),W(s,`${z(o)??``} `)}),U(e,i)},ne=j(()=>Z.switchesOver(t.id));G(te,e=>{z(ne)&&e(E)});var re=L(te,2),ie=e=>{var n=Cb(),a=P(n),o=e=>{var n=_b(),i=L(P(n));K(i,20,()=>z(s),e=>e,(e,n)=>{var i=hb(),a=P(i);ma(a);var o=L(a,1,!0);O(i),R(()=>{q(a,`name`,`run-${t.id??``}`),ha(a,n),ga(a,z(r).run===n),W(o,Qs[n])}),V(`change`,a,()=>{Z.set(t.id,{run:n})}),U(e,i)}),O(i),O(n),R(e=>q(n,`title`,`Koppler: the agent starts it. Me: you start it yourself (IDE, terminal, anything); the agent only prepares it.${e??``}`),[()=>z(s).includes(`mock`)?` Mock: Koppler answers its mock responses from the stack in its place.`:``]),U(e,n)};G(a,e=>{z(c)&&e(o)});var l=L(a,2),m=e=>{var n=yb(),a=L(P(n)),o=P(a);K(o,21,()=>z(i)?.platforms??[],([e,t])=>e,(e,t)=>{var n=j(()=>v(z(t),2));let r=()=>z(n)[0],i=()=>z(n)[1];var a=vb(),o=I(a,!0),s={};R(()=>{W(o,i()),s!==(s=r())&&(a.value=(a.__value=s)??``)}),U(e,a)}),O(o);var s;ta(o),O(a),O(n),R(()=>{s!==(s=z(r).platform)&&(o.value=(o.__value=s)??``,ea(o,s))}),V(`change`,o,e=>{Z.set(t.id,{platform:e.currentTarget.value})}),U(e,n)};G(l,e=>{z(g)&&e(m)});var h=L(l,2),_=e=>{var n=bb(),i=L(P(n)),a=P(i);ma(a);var o=L(a,2,!0);O(i),O(n),R(()=>{q(i,`title`,z(r).hideTunnels?`Off: only the API runs; calls through its tunnels fail.`:`On: Koppler opens its tunnels. Turn off when you only need the API.`),q(a,`aria-label`,`Open ${z(r).name??``}'s tunnels`),ga(a,!z(r).hideTunnels),W(o,z(r).hideTunnels?`Off`:`On`)}),V(`change`,a,e=>{Z.set(t.id,{hideTunnels:!e.currentTarget.checked})}),U(e,n)};G(h,e=>{z(u).length&&e(_)});var y=L(h,2),b=e=>{var n=Sb(),i=L(P(n)),a=P(i);ma(a);var o=L(a,2,!0);O(i);var s=L(i,2),c=e=>{var t=xb(),n=I(t);R(()=>W(n,`Show ${z(f).length??``} hidden`)),V(`click`,t,()=>{Z.showQueues(z(d),!0)}),U(e,t)};G(s,e=>{z(f).length&&!z(p)&&e(c)}),O(n),R(()=>{q(i,`title`,z(p)?`Off: it is taken off its queues and keeps the deployed ones. A queue another app uses stays on the board for that app.`:`On: its queues show on the board, where each can be switched to a local copy.`),q(a,`aria-label`,`Show ${z(r).name??``}'s queues`),ga(a,!z(p)),W(o,z(p)?`Off`:`On`)}),V(`change`,a,e=>{Z.set(t.id,{showQueues:e.currentTarget.checked})}),U(e,n)};G(y,e=>{z(d).length&&e(b)}),O(n),U(e,n)};G(re,e=>{(z(c)||z(u).length||z(d).length)&&e(ie)});var ae=L(re,2),oe=e=>{var t=Tb();K(L(P(t)),17,()=>z(i).libraries,e=>e.name,(e,t)=>{let n=j(()=>z(m).includes(z(t).name));var i=wb(),a=P(i);ma(a);var o=L(a,2,!0);O(i),R(e=>{q(i,`title`,e),q(a,`aria-label`,`Use the local ${z(t).name??``}`),ga(a,z(n)),W(o,z(t).name)},[()=>z(n)?`On: ${z(r).name} uses your local copy in ${z(t).path.replace(/^\/Users\/[^/]+/,`~`)}`:`Off: ${z(r).name} uses the published ${z(t).name}`]),V(`change`,a,e=>{h(z(t).name,e.currentTarget.checked)}),U(e,i)}),O(t),U(e,t)};G(ae,e=>{z(i)?.libraries.length&&!z(l)&&e(oe)});var se=L(ae,2),ce=e=>{var n=Ab(),i=F(n),a=L(P(i)),o=P(a),s=P(o);s.value=s.__value=``;var c=L(s),l=e=>{var t=Eb();K(t,21,()=>z(_).can,e=>e.id,(e,t)=>{var n=vb(),r=I(n,!0),i={};R(()=>{W(r,z(t).name),i!==(i=`+${z(t).id??``}`)&&(n.value=n.__value=i)}),U(e,n)}),O(t),U(e,t)};G(c,e=>{z(_).can.length&&e(l)});var u=L(c),d=e=>{var t=Db();K(t,21,()=>z(_).wired,e=>e.id,(e,t)=>{var n=vb(),r=I(n,!0),i={};R(()=>{W(r,z(t).name),i!==(i=`-${z(t).id??``}`)&&(n.value=n.__value=i)}),U(e,n)}),O(t),U(e,t)};G(u,e=>{z(_).wired.length&&e(d)}),O(o),O(a),O(i);var f=L(i,2),p=e=>{var n=Ob(),i=L(P(n));vt(i),zi(i,()=>w),O(n),R(()=>ha(i,z(r).note)),V(`input`,i,e=>{w(e.currentTarget),Z.set(t.id,{note:e.currentTarget.value})}),B(`blur`,i,()=>N(y,!1)),U(e,n)},m=e=>{var t=kb();V(`click`,t,()=>N(y,!0)),U(e,t)};G(f,e=>{z(r).note||z(y)?e(p):e(m,-1)}),R(()=>q(o,`aria-label`,`Add or remove a cable from ${z(r).name??``}`)),B(`focus`,o,()=>N(_,Z.cablesOf(t.id),!0)),V(`pointerdown`,o,()=>N(_,Z.cablesOf(t.id),!0)),V(`change`,o,b),U(e,n)};G(se,e=>{z(l)||e(ce)}),O(x),B(`mousedown`,x,S,!0),V(`click`,x,C),U(e,x)};G(T,e=>{z(r)&&e(te)}),U(e,ee),A()}Zr([`click`,`change`,`pointerdown`,`input`]);var Nb=(e,t)=>document.elementsFromPoint(e,t).find(e=>e.classList.contains(`svelte-flow__node`))?.getAttribute(`data-id`)??void 0,Pb=new class{#e=M(null);get draft(){return z(this.#e)}set draft(e){N(this.#e,e)}#t=M(null);get grabbed(){return z(this.#t)}set grabbed(e){N(this.#t,e)}#n=M(null);get drop(){return z(this.#n)}set drop(e){N(this.#n,e)}endPoint(e,t){let n=Z.cables[e],r=n&&Z.boxes.get(n[t]);if(!r)return;let i=n[`${t}Side`],a=Ho(r,i),o=Z.ends.offset[`${String(e)}|${t}`]??0;return Lo[i][0]===0?{...a,x:a.x+o}:{...a,y:a.y+o}}nearestSide(e,t){let n=n=>Math.hypot(Ho(e,n).x-t.x,Ho(e,n).y-t.y);return Object.keys(Lo).reduce((e,t)=>n(t)<n(e)?t:e)}start(e,t){let n=Z.boxes.get(e);if(!n)return;let r=Ho(n,t),i=[],a=e=>Z.toFlow({x:e.clientX,y:e.clientY}),o=t=>{let n=Nb(t.clientX,t.clientY),o=n&&n!==e?Z.boxes.get(n):void 0;if(!n||!o)return;let s=a(t);return{id:n,side:Object.keys(Lo).find(e=>Math.hypot(Ho(o,e).x-s.x,Ho(o,e).y-s.y)<=16/Z.zoom())??this.nearestSide(o,i.at(-1)??r),at:o}},s=e=>Z.app(e),c=(e,t)=>!!s(e)?.calls.includes(t),l=t=>!s(e)?.outside&&!!s(t)&&!s(t)?.outside&&!!s(t)?.answers,u=t=>!c(e,t)&&c(t,e),d=e=>{let n=o(e),s=!!n&&l(n.id)&&!u(n.id);this.draft={a:r,side:t,b:n&&s?Ho(n.at,n.side):a(e),bSide:n&&s?n.side:null,points:[...i]},this.drop=n?{id:n.id,ok:s}:null},f=()=>{removeEventListener(`pointermove`,d),removeEventListener(`pointerdown`,m,!0),removeEventListener(`keydown`,h,!0),this.draft=this.drop=null},p=n=>{let r=o(n);if(f(),!r)return;let[a,c]=[s(e)?.name??e,s(r.id)?.name??r.id];if(!l(r.id)){let e=s(r.id)?.answers?`${a} doesn't call ${c}`:`${c} is a ${s(r.id)?.kindLabel??``} app: it calls others, nothing calls it.`;$.show(e,`warning`);return}if(u(r.id)){let t=Z.edges.some(t=>t.id===`${r.id}>${e}`);$.show(`In the code ${c} calls ${a}, not the other way round.${t?` That cable is already on the board.`:``}`,`warning`,t?void 0:{label:`Connect that way`,run:()=>{Z.connect(r.id,e)}});return}let d=cc(e,r.id,{fromSide:t,toSide:r.side,...i.length&&{points:i}});Z.edges=[...Z.edges.filter(e=>e.id!==d.id),d]},m=e=>{if(e.button===0){e.preventDefault(),e.stopPropagation();for(let e of[`mousedown`,`click`])addEventListener(e,e=>{e.stopPropagation()},{capture:!0,once:!0});Nb(e.clientX,e.clientY)?p(e):e.target.closest(`.svelte-flow__panel, button`)?f():(i.push(a(e)),d(e))}},h=e=>{e.key===`Escape`&&(e.preventDefault(),f())};addEventListener(`pointermove`,d),addEventListener(`pointerup`,e=>{let t=a(e),n=Math.hypot(t.x-r.x,t.y-r.y)>24/Z.zoom();Nb(e.clientX,e.clientY)||!n?p(e):(i.push(t),d(e),addEventListener(`pointerdown`,m,!0),addEventListener(`keydown`,h,!0))},{once:!0})}grabEnd(e,t,n){let r=Z.edges.find(e=>e.id===t);if(e.button!==0||!r||Z.live)return;e.preventDefault(),e.stopPropagation();let i=n===`from`?r.source:r.target,a=r.data[`${n}Side`],o=Lo[a][0]===0?`x`:`y`,s=Z.toFlow({x:e.clientX,y:e.clientY}),c=()=>Z.edges.flatMap((e,t)=>{let n=e.source===i&&e.data.fromSide===a?`from`:e.target===i&&e.data.toSide===a?`to`:null;return n?[{edge:e,index:t,end:n}]:[]}).sort((e,t)=>(e.edge.data[`${e.end}Slot`]??1/0)-(t.edge.data[`${t.end}Slot`]??1/0)||e.index-t.index),l=null,u=()=>{removeEventListener(`pointermove`,d),removeEventListener(`pointerup`,u),this.grabbed=null},d=e=>{let r=Z.toFlow({x:e.clientX,y:e.clientY}),d=r[o]-s[o],f=o===`x`?r.y-s.y:r.x-s.x;if(!l){if(Math.hypot(d,f)<6/Z.zoom())return;if(l=Math.abs(f)>Math.abs(d)?`wire`:`order`,l===`wire`){u(),this.start(i,a);return}this.grabbed={id:t,end:n}}let p=c(),m=p.find(e=>e.edge.id===t&&e.end===n);if(!m||p.length<2)return;let h=p.filter(e=>e!==m),g=h.filter(e=>(this.endPoint(e.index,e.end)?.[o]??0)<r[o]).length,_=[...h.slice(0,g),m,...h.slice(g)];if(_.every((e,t)=>p[t]===e))return;let v=new Map(_.map((e,t)=>[`${e.edge.id}|${e.end}`,t]));Z.edges=Z.edges.map(e=>{let t=v.get(`${e.id}|from`),n=v.get(`${e.id}|to`);return t===void 0&&n===void 0?e:{...e,data:{...e.data,...t!==void 0&&{fromSlot:t},...n!==void 0&&{toSlot:n}}}})};addEventListener(`pointermove`,d),addEventListener(`pointerup`,u)}},Fb=()=>{try{return JSON.parse(sessionStorage.getItem(`koppler-log-cleared`)??`{}`)??{}}catch{return{}}},Ib=e=>{let[t=``,n]=e.split(`@`);return[t,n]},Lb=new class{#e=M([]);get tabs(){return z(this.#e)}set tabs(e){N(this.#e,e)}#t=M(null);get active(){return z(this.#t)}set active(e){N(this.#t,e,!0)}#n=M(!1);get raw(){return z(this.#n)}set raw(e){N(this.#n,e,!0)}#r=M(Fb());get cleared(){return z(this.#r)}set cleared(e){N(this.#r,e)}#i=M({});get full(){return z(this.#i)}set full(e){N(this.#i,e)}#a={};open(e,t){let n=t?`${e}@${t}`:e;this.tabs.includes(n)||(this.tabs=[...this.tabs,n]),this.active=n,requestAnimationFrame(()=>{Z.show(e)})}past(e){return!!Ib(e)[1]}label(e){let[t,n]=Ib(e),r=n?Q.status?.runs?.find(e=>e.id===n)?.at:void 0,i=r?new Date(r).toLocaleString([],{month:`short`,day:`numeric`,hour:`2-digit`,minute:`2-digit`}):``;return n?`${Z.nameOf(t)}, run of ${i||n}`:Z.nameOf(t)}close(e){this.tabs=this.tabs.filter(t=>t!==e),this.active===e&&(this.active=this.tabs.at(-1)??null)}closeAll(){this.tabs=[],this.active=null}clear(){let e=this.active,t=e?Q.tail(e).trimEnd():``;if(e&&t){this.cleared={...this.cleared,[e]:t.slice(t.lastIndexOf(`
|
|
7
|
+
checklists, notes, fixing a failed start, and anything a run leaves over.</p> <ol class="svelte-ssy1qy"><li class="svelte-ssy1qy">Open your agent session in this project</li> <li class="svelte-ssy1qy">Run this command there <!></li> <li class="svelte-ssy1qy">The dot turns green once it listens<small class="svelte-ssy1qy">Anything sent meanwhile waits for it.</small></li></ol></div>`,1);function Ny(e,t){let n=li();k(t,!0);let r={listening:[`Agent connected`,`An agent session is listening: notes, checklists and fix requests reach it right away.`],busy:[`Agent working`,`The connected agent is working on a request; the next one waits for it.`],question:[`Agent needs you`,`The agent asked something about your run. Click to answer.`],quiet:[`Agent quiet`,`It took a request and has neither finished it nor listened again since. If its session is done, run /koppler-run connect there; press ↻ for the steps.`],none:[`No agent listening`,`Runs work without one. Notes, checklists and fix requests wait until an agent connects; press ↻ to see how.`]},i=M(void 0),a=M(void 0),o=M(!1),s=j(()=>{let e=Date.parse(Q.status?.agent?.busy??``);return Number.isNaN(e)||!Q.status?0:Math.floor((Date.now()-e)/6e4)}),c=j(()=>Q.status?.agent?.state??`none`),l=j(()=>z(c)===`busy`&&z(s)*6e4>=6e5?`quiet`:z(c)),u=j(()=>Ay.question?`question`:z(l)),d=j(()=>r[z(u)]??r.none??[``,``]),f=j(()=>v(z(d),2)),p=j(()=>z(f)[0]),m=j(()=>z(f)[1]),h=j(()=>Q.status?.queued??0),g=j(()=>z(h)>0&&z(u)!==`listening`),_=j(()=>z(u)===`none`&&!z(h)?`off`:z(u)),y=j(()=>z(l)===`none`?void 0:Q.status?.agent?.who),b=j(()=>z(y)&&(z(y).agent||z(y).cwd)?` ${[z(y).agent&&`${z(y).agent}${z(y).agentSession?` session ${z(y).agentSession}`:``}`,z(y).cwd&&`in ${z(y).cwd.replace(/^\/Users\/[^/]+/,`~`)}`].filter(Boolean).join(`, `)}.`:``),x=j(()=>({listening:z(y)?.name?`Agent: ${z(y).name}`:`Agent`,busy:z(s)?`Agent working, ${String(z(s))} min`:`Agent working`,quiet:`Agent quiet, ${String(z(s))} min`,none:z(h)?z(p):`No agent`}[z(u)]??z(p))+(z(g)?`, ${String(z(h))} waiting`:``)),S=j(()=>`${z(p)}${z(y)?.name?`: ${z(y).name}`:``}.${z(b)} ${z(m)}${z(g)?` ${String(z(h))} ${z(h)===1?`request waits`:`requests wait`} for it; only the newest run or Stop is handed over.`:``}`),C=()=>{let e=z(i)?.getBoundingClientRect();e&&z(a)&&(z(a).style.top=`${String(e.bottom+6)}px`,z(a).style.right=`${String(Math.max(12,innerWidth-e.right))}px`)};In(()=>{(z(l)===`listening`||z(l)===`busy`)&&z(o)&&z(a)?.hidePopover()});var w=ci(),ee=F(w),T=e=>{var t=My(),r=F(t),s=I(L(P(r)),!0);O(r);var c=L(r,2),u=e=>{var t=jy();X(P(t),{get of(){return ky},size:15}),O(t),Ma(t,e=>N(i,e),()=>z(i)),R(()=>{q(t,`aria-expanded`,z(o)),q(t,`popovertarget`,n)}),U(e,t)};G(c,e=>{(z(l)===`none`||z(l)===`quiet`)&&e(u)});var d=L(c,2),f=P(d),p=L(f,4),m=L(P(p),2);Lc(L(P(m)),{command:`/koppler-run connect`}),O(m),je(2),O(p),O(d),Ma(d,e=>N(a,e),()=>z(a)),R(()=>{q(r,`data-state`,z(_)),q(r,`title`,z(S)),q(r,`aria-expanded`,Ay.open),W(s,z(x)),q(d,`id`,n),q(d,`aria-labelledby`,`${n}-title`),q(f,`id`,`${n}-title`)}),V(`click`,r,()=>Ay.open=!Ay.open),B(`toggle`,d,e=>{N(o,e.newState===`open`),z(o)&&C()}),U(e,t)};G(ee,e=>{Q.status&&e(T)}),U(e,w),A()}Zr([`click`]);var Py=new Set([`$$slots`,`$$events`,`$$legacy`]);function Fy(e,t){let n=J(t,Py),r={name:`minus`,size:24,node:[[`path`,{d:`M5 12h14`}]]};$a(e,Ba(()=>n,{get icon(){return r}}))}var Iy=new Set([`$$slots`,`$$events`,`$$legacy`]);function Ly(e,t){let n=J(t,Iy),r={name:`plus`,size:24,node:[[`path`,{d:`M5 12h14`}],[`path`,{d:`M12 5v14`}]]};$a(e,Ba(()=>n,{get icon(){return r}}))}var Ry=new Set([`$$slots`,`$$events`,`$$legacy`]);function zy(e,t){let n=J(t,Ry),r={name:`hand`,size:24,node:[[`path`,{d:`M18 11V6a2 2 0 0 0-2-2a2 2 0 0 0-2 2`}],[`path`,{d:`M14 10V4a2 2 0 0 0-2-2a2 2 0 0 0-2 2v2`}],[`path`,{d:`M10 10.5V6a2 2 0 0 0-2-2a2 2 0 0 0-2 2v8`}],[`path`,{d:`M18 8a2 2 0 1 1 4 0v6a8 8 0 0 1-8 8h-2c-2.8 0-4.5-.86-5.99-2.34l-3.6-3.6a2 2 0 0 1 2.83-2.82L7 15`}]]};$a(e,Ba(()=>n,{get icon(){return r}}))}var By=new Set([`$$slots`,`$$events`,`$$legacy`]);function Vy(e,t){let n=J(t,By),r={name:`maximize`,size:24,node:[[`path`,{d:`M8 3H5a2 2 0 0 0-2 2v3`}],[`path`,{d:`M21 8V5a2 2 0 0 0-2-2h-3`}],[`path`,{d:`M3 16v3a2 2 0 0 0 2 2h3`}],[`path`,{d:`M16 21h3a2 2 0 0 0 2-2v-3`}]]};$a(e,Ba(()=>n,{get icon(){return r}}))}var Hy=new Set([`$$slots`,`$$events`,`$$legacy`]);function Uy(e,t){let n=J(t,Hy),r={name:`minimize`,size:24,node:[[`path`,{d:`M8 3v3a2 2 0 0 1-2 2H3`}],[`path`,{d:`M21 8h-3a2 2 0 0 1-2-2V3`}],[`path`,{d:`M3 16h3a2 2 0 0 1 2 2v3`}],[`path`,{d:`M16 21v-3a2 2 0 0 1 2-2h3`}]]};$a(e,Ba(()=>n,{get icon(){return r}}))}var Wy=new Set([`$$slots`,`$$events`,`$$legacy`]);function Gy(e,t){let n=J(t,Wy),r={name:`mouse-pointer-2`,size:24,node:[[`path`,{d:`M4.037 4.688a.495.495 0 0 1 .651-.651l16 6.5a.5.5 0 0 1-.063.947l-6.124 1.58a2 2 0 0 0-1.438 1.435l-1.579 6.126a.5.5 0 0 1-.947.063z`}]]};$a(e,Ba(()=>n,{get icon(){return r}}))}var Ky=new Set([`$$slots`,`$$events`,`$$legacy`]);function qy(e,t){let n=J(t,Ky),r={name:`redo-2`,size:24,node:[[`path`,{d:`m15 14 5-5-5-5`}],[`path`,{d:`M20 9H9.5A5.5 5.5 0 0 0 4 14.5A5.5 5.5 0 0 0 9.5 20H13`}]]};$a(e,Ba(()=>n,{get icon(){return r}}))}var Jy=new Set([`$$slots`,`$$events`,`$$legacy`]);function Yy(e,t){let n=J(t,Jy),r={name:`undo-2`,size:24,node:[[`path`,{d:`M9 14 4 9l5-5`}],[`path`,{d:`M4 9h10.5a5.5 5.5 0 0 1 5.5 5.5a5.5 5.5 0 0 1-5.5 5.5H11`}]]};$a(e,Ba(()=>n,{get icon(){return r}}))}var Xy=new Set([`$$slots`,`$$events`,`$$legacy`]);function Zy(e,t){let n=J(t,Xy),r={name:`zap`,size:24,node:[[`path`,{d:`M15.914 4a1.5 1.5 0 00-2.474-1.561l-9 9A1.5 1.5 0 005.5 14h4.002a.5.5 0 01.471.666L8.086 20a1.5 1.5 0 002.475 1.56l9-9A1.5 1.5 0 0018.5 10h-3.997a.5.5 0 01-.472-.667z`}]]};$a(e,Ba(()=>n,{get icon(){return r}}))}var Qy=new Set([`$$slots`,`$$events`,`$$legacy`]);function $y(e,t){let n=J(t,Qy),r={name:`waypoints`,size:24,node:[[`path`,{d:`m10.586 5.414-5.172 5.172`}],[`path`,{d:`m18.586 13.414-5.172 5.172`}],[`path`,{d:`M6 12h12`}],[`circle`,{cx:`12`,cy:`20`,r:`2`}],[`circle`,{cx:`12`,cy:`4`,r:`2`}],[`circle`,{cx:`20`,cy:`12`,r:`2`}],[`circle`,{cx:`4`,cy:`12`,r:`2`}]]};$a(e,Ba(()=>n,{get icon(){return r}}))}var eb=new Set([`$$slots`,`$$events`,`$$legacy`]);function tb(e,t){let n=J(t,eb),r={name:`check`,size:24,node:[[`path`,{d:`M20 6 9 17l-5-5`}]]};$a(e,Ba(()=>n,{get icon(){return r}}))}var nb=new Set([`$$slots`,`$$events`,`$$legacy`]);function rb(e,t){let n=J(t,nb),r={name:`grip-vertical`,size:24,node:[[`circle`,{cx:`9`,cy:`12`,r:`1`}],[`circle`,{cx:`9`,cy:`5`,r:`1`}],[`circle`,{cx:`9`,cy:`19`,r:`1`}],[`circle`,{cx:`15`,cy:`12`,r:`1`}],[`circle`,{cx:`15`,cy:`5`,r:`1`}],[`circle`,{cx:`15`,cy:`19`,r:`1`}]]};$a(e,Ba(()=>n,{get icon(){return r}}))}var ib=new Set([`$$slots`,`$$events`,`$$legacy`]);function ab(e,t){let n=J(t,ib),r={name:`logs`,size:24,node:[[`path`,{d:`M3 5h1`}],[`path`,{d:`M3 12h1`}],[`path`,{d:`M3 19h1`}],[`path`,{d:`M8 5h1`}],[`path`,{d:`M8 12h1`}],[`path`,{d:`M8 19h1`}],[`path`,{d:`M13 5h8`}],[`path`,{d:`M13 12h8`}],[`path`,{d:`M13 19h8`}]]};$a(e,Ba(()=>n,{get icon(){return r}}))}var ob=new Set([`$$slots`,`$$events`,`$$legacy`]);function sb(e,t){let n=J(t,ob),r={name:`rotate-cw`,size:24,node:[[`path`,{d:`M21 12a9 9 0 1 1-9-9c2.52 0 4.93 1 6.74 2.74L21 8`}],[`path`,{d:`M21 3v5h-5`}]]};$a(e,Ba(()=>n,{get icon(){return r}}))}var cb=H(`<span class="tag svelte-1ypd2at">current</span>`),lb=H(`<span class="tag svelte-1ypd2at">picked</span>`),ub=H(`<li role="option" class="svelte-1ypd2at"><span class="name svelte-1ypd2at"> </span> <!></li>`),db=H(`<li class="note svelte-1ypd2at" role="presentation"> </li>`),fb=H(`<input class="mono svelte-1ypd2at" role="combobox" aria-autocomplete="list" autocomplete="off" spellcheck="false" placeholder="current branch"/> <ul class="nodrag nopan nowheel svelte-1ypd2at" role="listbox" popover="manual"><!> <!></ul>`,1);function pb(e,t){let n=li();k(t,!0);let r=Y(t,`label`,3,`Branch`),i=M(void 0),a=M(void 0),o=M(!1),s=M(``),c=M(0),l=``,u=j(()=>z(s)?t.branches.filter(e=>e.toLowerCase().includes(z(s).toLowerCase())):t.branches),d=j(()=>z(u).slice(0,80)),f=(e,t)=>{let n=z(i)?.getBoundingClientRect();if(!n||!z(a))return;z(a).style.left=`${String(n.left)}px`,z(a).style.minWidth=`${String(Math.max(n.width,280))}px`,z(a).style.maxWidth=`${String(Math.max(280,Math.min(560,innerWidth-n.left-12)))}px`;let r=n.bottom+4;z(a).style.top=`${String(r+z(a).offsetHeight>innerHeight-8?Math.max(8,n.top-4-z(a).offsetHeight):r)}px`,t&&z(a).children[e]?.scrollIntoView({block:`nearest`})};In(()=>{z(o)&&f(z(c),z(d).length)});let p=()=>{!z(o)&&z(i)&&(l=z(i).value,N(s,``),N(c,Math.max(0,z(d).indexOf(t.value||t.current)),!0),N(o,!0),z(i).select(),z(a)?.showPopover())},m=()=>{z(o)&&(N(o,!1),z(a)?.hidePopover())},h=e=>{let n=e.trim();!n&&z(i)&&(z(i).value=t.current),n!==(t.value||t.current)&&t.onpick(n===t.current?``:n)},g=e=>{z(i)&&(z(i).value=e),h(e),m(),z(i)?.blur()},_=e=>{if(!z(o))e.key===`ArrowDown`&&p();else if((e.key===`ArrowDown`||e.key===`ArrowUp`)&&z(d).length)e.preventDefault(),N(c,(z(c)+(e.key===`ArrowDown`?1:-1)+z(d).length)%z(d).length);else if(e.key===`Enter`){e.preventDefault();let t=z(d)[z(c)];t?g(t):z(i)?.blur()}else e.key===`Escape`&&(e.preventDefault(),e.stopPropagation(),z(i)&&(z(i).value=l),m(),z(i)?.blur())};var v=fb(),y=F(v);ma(y),Ma(y,e=>N(i,e),()=>z(i));var b=L(y,2),x=P(b);K(x,18,()=>z(d),e=>e,(e,r,i)=>{var a=ub(),o=P(a),s=I(o,!0),l=L(o,2),u=e=>{U(e,cb())},d=e=>{U(e,lb())};G(l,e=>{r===t.current?e(u):r===t.value&&e(d,1)}),O(a),R(()=>{q(a,`id`,`${n}-${z(i)??``}`),q(a,`aria-selected`,z(i)===z(c)),q(a,`title`,r),W(s,r)}),B(`pointerenter`,a,()=>N(c,z(i),!0)),V(`click`,a,e=>{e.preventDefault(),g(r)}),U(e,a)});var S=L(x,2),C=e=>{var t=db(),n=I(t);R(()=>W(n,`${z(u).length-z(d).length} more, keep typing`)),U(e,t)},w=e=>{var n=db(),r=I(n,!0);R(()=>W(r,t.branches.length?`No branch matches. Enter keeps "${z(s)}".`:`No branches found. Run koppler sync.`)),U(e,n)};G(S,e=>{z(u).length>z(d).length?e(C):z(u).length||e(w,1)}),O(b),Ma(b,e=>N(a,e),()=>z(a)),R(e=>{q(y,`aria-label`,r()),q(y,`aria-expanded`,z(o)),q(y,`aria-controls`,`${n}-list`),q(y,`aria-activedescendant`,e),q(y,`title`,t.title),ha(y,t.value||t.current),q(b,`id`,`${n}-list`)},[()=>z(o)&&z(d).length?`${n}-${String(z(c))}`:void 0]),V(`click`,y,p),B(`blur`,y,e=>{h(e.currentTarget.value),m()}),V(`input`,y,e=>{p(),N(s,e.currentTarget.value.trim(),!0),N(c,0)}),V(`keydown`,y,_),V(`pointerdown`,b,e=>{e.preventDefault()}),U(e,v),A()}Zr([`click`,`input`,`keydown`,`pointerdown`]);var mb=H(`<label class="field svelte-1kkgx5y">Branch <!></label>`),hb=H(`<label class="svelte-1kkgx5y"><input type="radio"/> </label>`),gb=H(`<div class="field svelte-1kkgx5y" role="radiogroup"> <span class="seg svelte-1kkgx5y"></span></div>`),_b=H(`<div class="field svelte-1kkgx5y" role="group" aria-label="Who starts it">Started by <span class="seg svelte-1kkgx5y"></span></div>`),vb=H(`<option> </option>`),yb=H(`<label class="field svelte-1kkgx5y">Platform <span class="combo svelte-1kkgx5y"><select class="mono svelte-1kkgx5y"></select></span></label>`),bb=H(`<div class="field svelte-1kkgx5y">Tunnels <label class="toggle svelte-1kkgx5y"><input type="checkbox" role="switch"/><span class="track" aria-hidden="true"></span> </label></div>`),xb=H(`<button class="link svelte-1kkgx5y" type="button"> </button>`),Sb=H(`<div class="field svelte-1kkgx5y">Queues <label class="toggle svelte-1kkgx5y"><input type="checkbox" role="switch"/><span class="track" aria-hidden="true"></span> </label> <!></div>`),Cb=H(`<div class="row svelte-1kkgx5y"><!> <!> <!> <!></div>`),wb=H(`<label class="toggle svelte-1kkgx5y"><input type="checkbox" role="switch"/><span class="track" aria-hidden="true"></span> </label>`),Tb=H(`<div class="field svelte-1kkgx5y">Libraries <!></div>`),Eb=H(`<optgroup label="Call a local app"></optgroup>`),Db=H(`<optgroup label="Remove the cable to"></optgroup>`),Ob=H(`<label class="field svelte-1kkgx5y">Note for the agent <textarea rows="2" placeholder="e.g. run with the new pricing flag on" class="svelte-1kkgx5y"></textarea></label>`),kb=H(`<button class="note-toggle svelte-1kkgx5y" type="button">Add a note for the agent</button>`),Ab=H(`<label class="field svelte-1kkgx5y">Cables <span class="combo svelte-1kkgx5y"><select class="svelte-1kkgx5y"><option>Add or remove…</option><!><!></select></span></label> <!>`,1),jb=H(`<div class="body svelte-1kkgx5y"><!> <!> <!> <!> <!></div>`);function Mb(e,t){k(t,!0);let n=[[`set-aside`,`Set aside`,`Kept aside while it runs the other branch, back on Stop`],[`take-along`,`Take along`,`Carried to the other branch, and back on Stop`]],r=j(()=>Z.nodes.find(e=>e.id===t.id)?.data),i=j(()=>Z.app(t.id)),a=j(()=>z(i)?.current||`current branch`),o=j(()=>`${String(z(i)?.dirty??0)} uncommitted ${z(i)?.dirty===1?`change`:`changes`}`),s=j(()=>(z(i)?.runIn??[]).map(([e])=>e).filter(e=>Object.hasOwn(Qs,e))),c=j(()=>z(s).length>1),l=j(()=>z(r)?.run===`mock`),u=j(()=>Z.tunnelsOf(t.id)),d=j(()=>Z.queuesOf(t.id)),f=j(()=>z(d).filter(e=>Z.hiddenQueues[e])),p=j(()=>z(d).length>0&&!z(r)?.showQueues),m=j(()=>Z.localLibraries(t.id)),h=(e,n)=>{Z.set(t.id,{libraries:n?[...z(m),e]:z(m).filter(t=>t!==e)})},g=j(()=>!!z(i)?.platforms.length&&z(r)?.run===`cli`),_=M(pn({can:[],wired:[]})),y=M(!1),b=e=>{let n=e.currentTarget,[r,i]=[n.value[0],n.value.slice(1)];r===`+`?Z.connect(t.id,i):r===`-`&&Z.cut(t.id,i),n.value=``},x=e=>e.target.closest(`select, textarea, input:not([type="radio"], [type="checkbox"])`),S=e=>{let t=x(e);t===document.activeElement?e.stopPropagation():t&&e.preventDefault()},C=e=>{let t=x(e);t&&t!==document.activeElement&&(t.focus(),t instanceof HTMLSelectElement&&t.showPicker())},w=e=>{e.style.height=`auto`,e.style.height=`${String(e.scrollHeight+2)}px`};var ee=ci(),T=F(ee),te=e=>{var x=jb(),ee=P(x),T=e=>{var n=mb(),a=L(P(n));{let e=j(()=>z(i)?.current??``),n=j(()=>z(i)?.branches??[]),s=j(()=>z(i)?.dirty&&!Z.switchesOver(t.id)?`Runs with your ${z(o)}`:void 0);pb(a,{get value(){return z(r).branch},get current(){return z(e)},get branches(){return z(n)},get title(){return z(s)},onpick:e=>{Z.set(t.id,{branch:e})}})}O(n),U(e,n)};G(ee,e=>{z(l)||e(T)});var te=L(ee,2),E=e=>{var i=gb(),s=P(i),c=L(s);K(c,21,()=>n,([e,t,n])=>e,(e,n)=>{var i=j(()=>v(z(n),3));let a=()=>z(i)[0],o=()=>z(i)[1],s=()=>z(i)[2];var c=hb(),l=P(c);ma(l);var u=L(l,1,!0);O(c),R(()=>{q(c,`title`,s()),q(l,`name`,`changes-${t.id??``}`),ha(l,a()),ga(l,(z(r).changes??`set-aside`)===a()),W(u,o())}),V(`change`,l,()=>{Z.set(t.id,{changes:a()})}),U(e,c)}),O(c),O(i),R(()=>{q(i,`aria-label`,`Your ${z(o)??``} on ${z(a)??``}`),q(i,`title`,`Your ${z(o)??``} on ${z(a)??``}: set aside while it runs the other branch, or taken along. Back on Stop either way.`),W(s,`${z(o)??``} `)}),U(e,i)},ne=j(()=>Z.switchesOver(t.id));G(te,e=>{z(ne)&&e(E)});var re=L(te,2),ie=e=>{var n=Cb(),a=P(n),o=e=>{var n=_b(),i=L(P(n));K(i,20,()=>z(s),e=>e,(e,n)=>{var i=hb(),a=P(i);ma(a);var o=L(a,1,!0);O(i),R(()=>{q(a,`name`,`run-${t.id??``}`),ha(a,n),ga(a,z(r).run===n),W(o,Qs[n])}),V(`change`,a,()=>{Z.set(t.id,{run:n})}),U(e,i)}),O(i),O(n),R(e=>q(n,`title`,`Koppler: the agent starts it. Me: you start it yourself (IDE, terminal, anything); the agent only prepares it.${e??``}`),[()=>z(s).includes(`mock`)?` Mock: Koppler answers its mock responses from the stack in its place.`:``]),U(e,n)};G(a,e=>{z(c)&&e(o)});var l=L(a,2),m=e=>{var n=yb(),a=L(P(n)),o=P(a);K(o,21,()=>z(i)?.platforms??[],([e,t])=>e,(e,t)=>{var n=j(()=>v(z(t),2));let r=()=>z(n)[0],i=()=>z(n)[1];var a=vb(),o=I(a,!0),s={};R(()=>{W(o,i()),s!==(s=r())&&(a.value=(a.__value=s)??``)}),U(e,a)}),O(o);var s;ta(o),O(a),O(n),R(()=>{s!==(s=z(r).platform)&&(o.value=(o.__value=s)??``,ea(o,s))}),V(`change`,o,e=>{Z.set(t.id,{platform:e.currentTarget.value})}),U(e,n)};G(l,e=>{z(g)&&e(m)});var h=L(l,2),_=e=>{var n=bb(),i=L(P(n)),a=P(i);ma(a);var o=L(a,2,!0);O(i),O(n),R(()=>{q(i,`title`,z(r).hideTunnels?`Off: only the API runs; calls through its tunnels fail.`:`On: Koppler opens its tunnels. Turn off when you only need the API.`),q(a,`aria-label`,`Open ${z(r).name??``}'s tunnels`),ga(a,!z(r).hideTunnels),W(o,z(r).hideTunnels?`Off`:`On`)}),V(`change`,a,e=>{Z.set(t.id,{hideTunnels:!e.currentTarget.checked})}),U(e,n)};G(h,e=>{z(u).length&&e(_)});var y=L(h,2),b=e=>{var n=Sb(),i=L(P(n)),a=P(i);ma(a);var o=L(a,2,!0);O(i);var s=L(i,2),c=e=>{var t=xb(),n=I(t);R(()=>W(n,`Show ${z(f).length??``} hidden`)),V(`click`,t,()=>{Z.showQueues(z(d),!0)}),U(e,t)};G(s,e=>{z(f).length&&!z(p)&&e(c)}),O(n),R(()=>{q(i,`title`,z(p)?`Off: it is taken off its queues and keeps the deployed ones. A queue another app uses stays on the board for that app.`:`On: its queues show on the board, where each can be switched to a local copy.`),q(a,`aria-label`,`Show ${z(r).name??``}'s queues`),ga(a,!z(p)),W(o,z(p)?`Off`:`On`)}),V(`change`,a,e=>{Z.set(t.id,{showQueues:e.currentTarget.checked})}),U(e,n)};G(y,e=>{z(d).length&&e(b)}),O(n),U(e,n)};G(re,e=>{(z(c)||z(u).length||z(d).length)&&e(ie)});var ae=L(re,2),oe=e=>{var t=Tb();K(L(P(t)),17,()=>z(i).libraries,e=>e.name,(e,t)=>{let n=j(()=>z(m).includes(z(t).name));var i=wb(),a=P(i);ma(a);var o=L(a,2,!0);O(i),R(e=>{q(i,`title`,e),q(a,`aria-label`,`Use the local ${z(t).name??``}`),ga(a,z(n)),W(o,z(t).name)},[()=>z(n)?`On: ${z(r).name} uses your local copy in ${z(t).path.replace(/^\/Users\/[^/]+/,`~`)}`:`Off: ${z(r).name} uses the published ${z(t).name}`]),V(`change`,a,e=>{h(z(t).name,e.currentTarget.checked)}),U(e,i)}),O(t),U(e,t)};G(ae,e=>{z(i)?.libraries.length&&!z(l)&&e(oe)});var se=L(ae,2),ce=e=>{var n=Ab(),i=F(n),a=L(P(i)),o=P(a),s=P(o);s.value=s.__value=``;var c=L(s),l=e=>{var t=Eb();K(t,21,()=>z(_).can,e=>e.id,(e,t)=>{var n=vb(),r=I(n,!0),i={};R(()=>{W(r,z(t).name),i!==(i=`+${z(t).id??``}`)&&(n.value=n.__value=i)}),U(e,n)}),O(t),U(e,t)};G(c,e=>{z(_).can.length&&e(l)});var u=L(c),d=e=>{var t=Db();K(t,21,()=>z(_).wired,e=>e.id,(e,t)=>{var n=vb(),r=I(n,!0),i={};R(()=>{W(r,z(t).name),i!==(i=`-${z(t).id??``}`)&&(n.value=n.__value=i)}),U(e,n)}),O(t),U(e,t)};G(u,e=>{z(_).wired.length&&e(d)}),O(o),O(a),O(i);var f=L(i,2),p=e=>{var n=Ob(),i=L(P(n));vt(i),zi(i,()=>w),O(n),R(()=>ha(i,z(r).note)),V(`input`,i,e=>{w(e.currentTarget),Z.set(t.id,{note:e.currentTarget.value})}),B(`blur`,i,()=>N(y,!1)),U(e,n)},m=e=>{var t=kb();V(`click`,t,()=>N(y,!0)),U(e,t)};G(f,e=>{z(r).note||z(y)?e(p):e(m,-1)}),R(()=>q(o,`aria-label`,`Add or remove a cable from ${z(r).name??``}`)),B(`focus`,o,()=>N(_,Z.cablesOf(t.id),!0)),V(`pointerdown`,o,()=>N(_,Z.cablesOf(t.id),!0)),V(`change`,o,b),U(e,n)};G(se,e=>{z(l)||e(ce)}),O(x),B(`mousedown`,x,S,!0),V(`click`,x,C),U(e,x)};G(T,e=>{z(r)&&e(te)}),U(e,ee),A()}Zr([`click`,`change`,`pointerdown`,`input`]);var Nb=(e,t)=>document.elementsFromPoint(e,t).find(e=>e.classList.contains(`svelte-flow__node`))?.getAttribute(`data-id`)??void 0,Pb=new class{#e=M(null);get draft(){return z(this.#e)}set draft(e){N(this.#e,e)}#t=M(null);get grabbed(){return z(this.#t)}set grabbed(e){N(this.#t,e)}#n=M(null);get drop(){return z(this.#n)}set drop(e){N(this.#n,e)}endPoint(e,t){let n=Z.cables[e],r=n&&Z.boxes.get(n[t]);if(!r)return;let i=n[`${t}Side`],a=Ho(r,i),o=Z.ends.offset[`${String(e)}|${t}`]??0;return Lo[i][0]===0?{...a,x:a.x+o}:{...a,y:a.y+o}}nearestSide(e,t){let n=n=>Math.hypot(Ho(e,n).x-t.x,Ho(e,n).y-t.y);return Object.keys(Lo).reduce((e,t)=>n(t)<n(e)?t:e)}start(e,t){let n=Z.boxes.get(e);if(!n)return;let r=Ho(n,t),i=[],a=e=>Z.toFlow({x:e.clientX,y:e.clientY}),o=t=>{let n=Nb(t.clientX,t.clientY),o=n&&n!==e?Z.boxes.get(n):void 0;if(!n||!o)return;let s=a(t);return{id:n,side:Object.keys(Lo).find(e=>Math.hypot(Ho(o,e).x-s.x,Ho(o,e).y-s.y)<=16/Z.zoom())??this.nearestSide(o,i.at(-1)??r),at:o}},s=e=>Z.app(e),c=(e,t)=>!!s(e)?.calls.includes(t),l=t=>!s(e)?.outside&&!!s(t)&&!s(t)?.outside&&!!s(t)?.answers,u=t=>!c(e,t)&&c(t,e),d=e=>{let n=o(e),s=!!n&&l(n.id)&&!u(n.id);this.draft={a:r,side:t,b:n&&s?Ho(n.at,n.side):a(e),bSide:n&&s?n.side:null,points:[...i]},this.drop=n?{id:n.id,ok:s}:null},f=()=>{removeEventListener(`pointermove`,d),removeEventListener(`pointerdown`,m,!0),removeEventListener(`keydown`,h,!0),this.draft=this.drop=null},p=n=>{let r=o(n);if(f(),!r)return;let[a,c]=[s(e)?.name??e,s(r.id)?.name??r.id];if(!l(r.id)){let e=s(r.id)?.answers?`${a} doesn't call ${c}`:`${c} is a ${s(r.id)?.kindLabel??``} app: it calls others, nothing calls it.`;$.show(e,`warning`);return}if(u(r.id)){let t=Z.edges.some(t=>t.id===`${r.id}>${e}`);$.show(`In the code ${c} calls ${a}, not the other way round.${t?` That cable is already on the board.`:``}`,`warning`,t?void 0:{label:`Connect that way`,run:()=>{Z.connect(r.id,e)}});return}let d=cc(e,r.id,{fromSide:t,toSide:r.side,...i.length&&{points:i}});Z.edges=[...Z.edges.filter(e=>e.id!==d.id),d]},m=e=>{if(e.button===0){e.preventDefault(),e.stopPropagation();for(let e of[`mousedown`,`click`])addEventListener(e,e=>{e.stopPropagation()},{capture:!0,once:!0});Nb(e.clientX,e.clientY)?p(e):e.target.closest(`.svelte-flow__panel, button`)?f():(i.push(a(e)),d(e))}},h=e=>{e.key===`Escape`&&(e.preventDefault(),f())};addEventListener(`pointermove`,d),addEventListener(`pointerup`,e=>{let t=a(e),n=Math.hypot(t.x-r.x,t.y-r.y)>24/Z.zoom();Nb(e.clientX,e.clientY)||!n?p(e):(i.push(t),d(e),addEventListener(`pointerdown`,m,!0),addEventListener(`keydown`,h,!0))},{once:!0})}grabEnd(e,t,n){let r=Z.edges.find(e=>e.id===t);if(e.button!==0||!r||Z.live)return;e.preventDefault(),e.stopPropagation();let i=n===`from`?r.source:r.target,a=r.data[`${n}Side`],o=Lo[a][0]===0?`x`:`y`,s=Z.toFlow({x:e.clientX,y:e.clientY}),c=()=>Z.edges.flatMap((e,t)=>{let n=e.source===i&&e.data.fromSide===a?`from`:e.target===i&&e.data.toSide===a?`to`:null;return n?[{edge:e,index:t,end:n}]:[]}).sort((e,t)=>(e.edge.data[`${e.end}Slot`]??1/0)-(t.edge.data[`${t.end}Slot`]??1/0)||e.index-t.index),l=null,u=()=>{removeEventListener(`pointermove`,d),removeEventListener(`pointerup`,u),this.grabbed=null},d=e=>{let r=Z.toFlow({x:e.clientX,y:e.clientY}),d=r[o]-s[o],f=o===`x`?r.y-s.y:r.x-s.x;if(!l){if(Math.hypot(d,f)<6/Z.zoom())return;if(l=Math.abs(f)>Math.abs(d)?`wire`:`order`,l===`wire`){u(),this.start(i,a);return}this.grabbed={id:t,end:n}}let p=c(),m=p.find(e=>e.edge.id===t&&e.end===n);if(!m||p.length<2)return;let h=p.filter(e=>e!==m),g=h.filter(e=>(this.endPoint(e.index,e.end)?.[o]??0)<r[o]).length,_=[...h.slice(0,g),m,...h.slice(g)];if(_.every((e,t)=>p[t]===e))return;let v=new Map(_.map((e,t)=>[`${e.edge.id}|${e.end}`,t]));Z.edges=Z.edges.map(e=>{let t=v.get(`${e.id}|from`),n=v.get(`${e.id}|to`);return t===void 0&&n===void 0?e:{...e,data:{...e.data,...t!==void 0&&{fromSlot:t},...n!==void 0&&{toSlot:n}}}})};addEventListener(`pointermove`,d),addEventListener(`pointerup`,u)}},Fb=()=>{try{return JSON.parse(sessionStorage.getItem(`koppler-log-cleared`)??`{}`)??{}}catch{return{}}},Ib=e=>{let[t=``,n]=e.split(`@`);return[t,n]},Lb=new class{#e=M([]);get tabs(){return z(this.#e)}set tabs(e){N(this.#e,e)}#t=M(null);get active(){return z(this.#t)}set active(e){N(this.#t,e,!0)}#n=M(!1);get raw(){return z(this.#n)}set raw(e){N(this.#n,e,!0)}#r=M(Fb());get cleared(){return z(this.#r)}set cleared(e){N(this.#r,e)}#i=M({});get full(){return z(this.#i)}set full(e){N(this.#i,e)}#a={};open(e,t){let n=t?`${e}@${t}`:e;this.tabs.includes(n)||(this.tabs=[...this.tabs,n]),this.active=n,requestAnimationFrame(()=>{Z.show(e)})}past(e){return!!Ib(e)[1]}label(e){let[t,n]=Ib(e),r=n?Q.status?.runs?.find(e=>e.id===n)?.at:void 0,i=r?new Date(r).toLocaleString([],{month:`short`,day:`numeric`,hour:`2-digit`,minute:`2-digit`}):``;return n?`${Z.nameOf(t)}, run of ${i||n}`:Z.nameOf(t)}close(e){this.tabs=this.tabs.filter(t=>t!==e),this.active===e&&(this.active=this.tabs.at(-1)??null)}closeAll(){this.tabs=[],this.active=null}clear(){let e=this.active,t=e?Q.tail(e).trimEnd():``;if(e&&t){this.cleared={...this.cleared,[e]:t.slice(t.lastIndexOf(`
|
|
8
8
|
`)+1)};try{sessionStorage.setItem(`koppler-log-cleared`,JSON.stringify(this.cleared))}catch{}}}refresh(){let e=this.active;if(!e||Date.now()-(this.#a[e]??0)<2e3)return;this.#a[e]=Date.now();let[t,n]=Ib(e),r=`app=${encodeURIComponent(t)}${n?`&run=${encodeURIComponent(n)}`:``}`;fetch(`log?${r}`,{cache:`no-store`}).then(e=>e.ok?e.text():null).then(t=>{t!==null&&t!==this.full[e]&&(this.full={...this.full,[e]:t})}).catch(()=>void 0)}text(e){let t=this.full[e]??(this.past(e)?``:Q.tail(e)),n=this.cleared[e],r=n?t.lastIndexOf(n):-1;return r>=0?t.slice(r+(n?.length??0)).replace(/^\n/,``):t}},Rb=(e,t)=>(t.error===void 0?t.notes.length&&$.show(`Opened ${e}, changed to fit: ${t.notes.join(`; `)}`):$.show(`Cannot open ${e}. ${t.error}`,`warning`),t.error===void 0),zb=e=>Rb(e.name,Z.openBoard(e));async function Bb(e){if(!e)return;let t;try{t=JSON.parse(await e.text())}catch{$.show(`${e.name} is not a JSON file`,`warning`);return}let n=Z.importBoards(t,e.name);Rb(n.error===void 0?n.name:e.name,n)}async function Vb(e){let t=await Xs(`preset`,{url:e});if(t.error)return t.error;let n=Z.importBoards(t.presets,e);return n.error===void 0?(Rb(n.name,n),null):n.error}var Hb=[[`year`,31536e3],[`month`,2592e3],[`week`,604800],[`day`,86400],[`hour`,3600],[`minute`,60]];function Ub(e){let t=(new Date(e).getTime()-Date.now())/1e3,n=new Intl.RelativeTimeFormat(void 0,{numeric:`auto`});for(let[e,r]of Hb)if(Math.abs(t)>=r)return n.format(Math.round(t/r),e);return`just now`}var Wb=pn({}),Gb=[[`starts`,`Starts`],[`restarts`,`Restarts`],[`stops`,`Stops and reverts`],[`keeps`,`Keeps running`]],Kb=()=>(Date.now().toString(36)+Math.random().toString(36).slice(2,8)).replace(/[^a-z0-9]/g,``),qb=Z.nameOf,Jb=(e,t)=>`${String(e)} ${t}${e===1?``:`s`}`,Yb=new class{#e=M(null);get review(){return z(this.#e)}set review(e){N(this.#e,e)}#t=M(pn({}));get onItsOwn(){return z(this.#t)}set onItsOwn(e){N(this.#t,e,!0)}#n=M(pn({}));get leftOut(){return z(this.#n)}set leftOut(e){N(this.#n,e,!0)}graph(e){let t=Q.status?.live,n=n=>!e||n===e||Object.hasOwn(t?.nodes??{},n),r=Z.nodes.filter(({id:e})=>!this.leftOut[e]).map(({id:e,data:t})=>{let n=Z.app(e);return{id:e,branch:t.run!==`mock`&&t.branch||null,run:t.run,...t.hideTunnels&&Z.tunnelsOf(e).length>0&&{tunnels:!1},...t.showQueues&&Z.queuesOf(e).length>0&&{queues:!0},...t.watch&&t.run===`cli`&&{watch:!0},...Z.switchesOver(e)&&{changes:t.changes??`set-aside`},...t.platform&&t.run===`cli`&&!!n?.platforms.length&&{platform:t.platform},...t.run!==`mock`&&t.note.trim()&&{note:t.note.trim()},...Z.localLibraries(e).length>0&&{libraries:Z.localLibraries(e)}}}),i=Z.edges.filter(({source:e,target:t})=>!this.leftOut[e]&&!this.leftOut[t]).map(({source:e,target:t})=>({from:e,to:t})),a=e?r.flatMap(r=>r.id===e?[r]:n(r.id)?[{...t?.nodes?.[r.id],id:r.id}]:[]):r,o=e?[...(Array.isArray(t?.edges)?t.edges:[]).filter(t=>t.from!==e&&n(t.to)),...i.filter(t=>t.from===e&&n(t.to))]:i,s=a.filter(e=>e.run!==`mock`).flatMap(({id:e})=>(Z.app(e)?.calls??[]).filter(t=>!o.some(n=>n.from===e&&n.to===t)).map(t=>({from:e,to:t}))),c=Object.fromEntries(e?Object.entries(t?.queues??{}).filter(([,e])=>e===`local`):Z.infra.flatMap(e=>e.type===`queue`&&e.data.local?[[e.data.queue,`local`]]:[]));return{env:Z.env,mode:`auto`,nodes:a,edges:o,deployed:s,...Object.keys(c).length&&{queues:c}}}#r(e){let t=Q.status,n=t?.running;return ws(t?.live??null,e,{name:qb,running:e=>n?.includes(e),strays:(n??[]).filter(e=>Z.apps.some(t=>t.id===e)&&!t?.live?.nodes?.[e]),startedOn:e=>t?.runningEnvs?.[e],queuesOf:e=>Z.queuesOf(e),current:e=>Z.app(e)?.current})}#i(){return Z.nodes.flatMap(({id:e})=>(Q.status?.secrets?.[e]?.[Z.env]??[]).filter(e=>!e.stored&&(!e.when||/^always\b/i.test(e.when.trim()))).map(t=>`${t.name} for ${qb(e)}`))}#a(e){let t=e.env.toUpperCase(),n=(e,t)=>Z.app(e)?.known.includes(t);return[`ENV ${t}`,`MODE ${e.mode===`manual`?`manual: give me a checklist, change nothing`:`auto: apply the changes and start everything`}`,...e.note?[`NOTE ${e.note}`]:[],...Object.keys(e.queues??{}).map(e=>`QUEUE ${Z.queueName(e)}: local, in the AWS emulator`),...e.nodes.flatMap(e=>{let t=Z.apps.find(t=>t.id===e.id)?.platforms.find(([t])=>t===e.platform);if(e.run===`mock`)return[`MOCK ${qb(e.id)}: Koppler answers its mock responses from the stack`];let n=[e.run===`ide`?`IDE`:`CLI`,e.run===`cli`?t?.[1].split(` `)[0]:void 0];return[`LOCAL ${qb(e.id)} [${n.filter(Boolean).join(`, `)}] on ${e.branch??`current branch`}`,...e.note?[` note: ${e.note}`]:[]]}),...e.edges.map(({from:e,to:t})=>{let r=Z.app(e)?.calls.includes(t),i=n(e,t)?``:r?` (found in its repo, not in the stack yet)`:` (NEW: not in the stack; find how the caller picks this address, record it in consumes, ask if unclear)`;return` ${qb(e)} → local ${qb(t)}${i}`}),...e.deployed.map(({from:e,to:n})=>` ${qb(e)} → ${t} ${qb(n)}`),...e.deployed.filter(({to:t})=>e.nodes.some(e=>e.id===t)).map(({from:e,to:n})=>`! ${qb(n)} is local but ${qb(e)} still calls ${t}`)].join(`
|
|
9
9
|
`)}async deliver(e,t,n){return(await Js(`prompt`,{...t,text:e}))?.ok?($.show(n),!0):(await navigator.clipboard.writeText(e).catch(()=>void 0),$.show(`No agent connection, so the request was copied to your clipboard`,`warning`),!1)}#o(e,t=()=>[]){return Gb.filter(([t])=>e[t].length).map(([n,r])=>({verb:n,label:r,items:e[n].map(e=>({name:qb(e.id),...(n===`starts`||n===`restarts`)&&{id:e.id},notes:[...e.why.length?[{text:e.why.join(`; `)}]:[],...n===`starts`||n===`restarts`?t(e.id):[]]}))}))}#s={};again(){this.#c=!0,this.start(this.#s)}#c=!1;start({note:e,manual:t=!1,restart:n}={}){this.#c||(this.leftOut={}),this.#c=!1,this.#s={manual:t,...e&&{note:e},...n&&{restart:n}};let r=this.graph(n),i={...r,nodes:r.nodes.map(e=>e.id===n?{...e,restart:!0}:e),mode:t?`manual`:`auto`,...e&&{note:e}};if(!i.nodes.length){$.show(`Add at least one app first`,`warning`);return}let a=this.#r(i),o=i.env.toUpperCase(),s=Z.envs[0]?.toUpperCase()??``,c=!!e||i.nodes.some(e=>`note`in e),l=this.#i(),u=Z.nodes.filter(e=>Z.borrowsTunnels(e.id)).map(e=>e.id),d=Z.plan,f=Z.nodes.filter(e=>e.data.hideTunnels&&Z.tunnelsOf(e.id).length),p={label:`What to do`,run:()=>{this.review=null,Wb.checklist?.open()}},m=e=>{let t=Z.nodes.find(t=>t.id===e),n=Z.app(e);if(!t||!n)return[];let r=!t.data.branch||t.data.branch===n.current,a=Jb(n.dirty,`change`).replace(/^(\d+) /,`$1 uncommitted `);return[...new Set([n.current,...n.branches]).size>1?[]:[{text:t.data.branch||n.current||`current branch`,kind:`host`}],...n.dirty&&r?[{text:`With your ${a}`,kind:`flag`}]:[],...(Q.status?.recipes?.[e]??[]).filter(({when:t})=>t?.always||t?.env===i.env||i.edges.some(n=>n.from===e&&n.to===t?.calls)).map(e=>{let t=e.here?`${e.here.ok?`works on my machine`:`failed here`}, last run ${e.here.at}`:`not run here yet`;return{text:`Remembered change: ${e.why} (${t})`,title:e.file}}),...t.data.run===`ide`?[{text:`You start it; the agent only prepares it`}]:[],...t.data.run===`mock`?[{text:`A mock: its responses from the stack answer in its place`}]:[],...t.data.note?[{text:`Note: ${t.data.note}`}]:[],...Z.localLibraries(e).length?[{text:`Uses your local ${Z.localLibraries(e).join(`, `)}`}]:[]]},h={};for(let{from:e,to:t}of i.deployed)h[t]=[...h[t]??[],e];let g=Q.status?.agent?.state??`none`;this.review={title:t?`Checklist for ${o}`:`Run on ${o}`,sub:t?`You get a checklist of these steps to do yourself. The agent changes nothing.`:c?`The agent does exactly this, with your note, and asks before anything else.`:`Koppler does this as soon as you send it; the agent only steps in for what it cannot do alone.`,notices:[...u.length?[{text:`The stack has no ${o} sign-in or tunnel for ${u.map(qb).join(`, `)}. Koppler will not use another environment's.`,kind:`prod`,act:p}]:[],...l.length&&Z.protected?[{text:`Store first, then send: ${l.join(`, `)}.`,kind:`prod`,act:p}]:[],...Z.protected?[{text:`${o}: your local code reads and writes real ${o} data.${d.length?` Running opens the ${o} ${d.length===1?`tunnel`:`tunnels`} listed below.`:``}`,kind:`prod`}]:[],...a.nothing?[{text:`Nothing to change: the board matches what is running.`}]:[],...Q.status?.live===void 0?[{text:`Koppler cannot see what is running from this page, so everything is listed as starting.`}]:[],...Q.status?.runs?.some(e=>e.state===`waiting`)?[{text:`An earlier run is still waiting for the agent. This one replaces it.`}]:[],...e?[{text:`Your note: ${e}`}]:[],...g===`none`&&(c||t)?[{text:`No agent is listening, so this waits until one is. Run /koppler-run connect in your agent session.`}]:[],...l.length&&!Z.protected?[{text:`Not stored yet, the agent will ask for it: ${l.join(`, `)}.`}]:[]],groups:[...this.#o(a,m),...Object.keys(h).length?[{verb:`calls`,label:`Calls ${Z.protected?o:`deployed ${o}`}`,items:Object.entries(h).map(([e,t])=>{let n=Z.app(e),r=n?.cloned&&!n.outside&&n.answers;return{name:qb(e),notes:[{text:`from ${t.map(qb).join(`, `)}`}],...r&&{act:{label:`Run locally`,title:`Run it locally too, and point ${t.map(qb).join(`, `)} at it`,run:()=>{Z.add(e);for(let n of t)Z.connect(n,e);this.again()}}}}})}]:[],...d.length?[{verb:`calls`,label:`Opens tunnels`,items:d.map(e=>{let t=e.apps.filter(e=>u.includes(e)),n=Q.status?.ports?.[String(e.port)]?` (already open)`:``;return{name:`${e.what} on ${e.bind}:${String(e.port)}${n}`,off:t.length>0,notes:[{text:e.host,kind:`host`},...t.length?[{text:`${s} host: the stack has no ${o} entry for ${t.map(qb).join(`, `)}`}]:[]]}})}]:[],...f.length?[{verb:`keeps`,label:`No tunnels`,items:f.map(e=>({name:e.data.name,notes:[{text:`Only its API runs; calls through its tunnels fail`}]}))}]:[]],ok:t?`Get the checklist`:a.nothing?`Run anyway`:Z.protected?`Run on ${o}`:`Run`,prod:Z.protected,blocked:u.length>0||Z.protected&&l.length>0,confirm:()=>{let e=Object.fromEntries(Gb.map(([e])=>[e,a[e]])),n=`Set up and run this stack using the koppler-run skill.
|
|
10
10
|
`+this.#a(i)+`
|