@linkdlab/funcnodes_react_flow 0.3.20 → 0.3.22

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.
@@ -25,7 +25,7 @@ import*as e from"react";import t,{forwardRef as n,memo as r,useContext as o,crea
25
25
  *
26
26
  * This source code is licensed under the MIT license found in the
27
27
  * LICENSE file in the root directory of this source tree.
28
- */var V=(z||(z=1,"production"===process.env.NODE_ENV?N.exports=function(){if(D)return O;D=1;var e=t,n=L(),r="function"==typeof Object.is?Object.is:function(e,t){return e===t&&(0!==e||1/e==1/t)||e!=e&&t!=t},o=n.useSyncExternalStore,i=e.useRef,a=e.useEffect,s=e.useMemo,l=e.useDebugValue;return O.useSyncExternalStoreWithSelector=function(e,t,n,c,u){var d=i(null);if(null===d.current){var f={hasValue:!1,value:null};d.current=f}else f=d.current;d=s((function(){function e(e){if(!a){if(a=!0,o=e,e=c(e),void 0!==u&&f.hasValue){var t=f.value;if(u(t,e))return i=t}return i=e}if(t=i,r(o,e))return t;var n=c(e);return void 0!==u&&u(t,n)?(o=e,t):(o=e,i=n)}var o,i,a=!1,s=void 0===n?null:n;return[function(){return e(t())},null===s?void 0:function(){return e(s())}]}),[t,n,c,u]);var p=o(e,d[0],d[1]);return a((function(){f.hasValue=!0,f.value=p}),[p]),l(p),p},O}():N.exports=(F||(F=1,"production"!==process.env.NODE_ENV&&function(){"undefined"!=typeof __REACT_DEVTOOLS_GLOBAL_HOOK__&&"function"==typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStart&&__REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStart(Error());var e=t,n=L(),r="function"==typeof Object.is?Object.is:function(e,t){return e===t&&(0!==e||1/e==1/t)||e!=e&&t!=t},o=n.useSyncExternalStore,i=e.useRef,a=e.useEffect,s=e.useMemo,l=e.useDebugValue;B.useSyncExternalStoreWithSelector=function(e,t,n,c,u){var d=i(null);if(null===d.current){var f={hasValue:!1,value:null};d.current=f}else f=d.current;d=s((function(){function e(e){if(!a){if(a=!0,o=e,e=c(e),void 0!==u&&f.hasValue){var t=f.value;if(u(t,e))return i=t}return i=e}if(t=i,r(o,e))return t;var n=c(e);return void 0!==u&&u(t,n)?(o=e,t):(o=e,i=n)}var o,i,a=!1,s=void 0===n?null:n;return[function(){return e(t())},null===s?void 0:function(){return e(s())}]}),[t,n,c,u]);var p=o(e,d[0],d[1]);return a((function(){f.hasValue=!0,f.value=p}),[p]),l(p),p},"undefined"!=typeof __REACT_DEVTOOLS_GLOBAL_HOOK__&&"function"==typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop&&__REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop(Error())}()),B)),N.exports),G=_(V);const{useDebugValue:W}=t,{useSyncExternalStoreWithSelector:H}=G;let X=!1;const $=e=>e;const Z=e=>{"production"!==(import.meta.env?import.meta.env.MODE:void 0)&&"function"!=typeof e&&console.warn("[DEPRECATED] Passing a vanilla store will be unsupported in a future version. Instead use `import { useStore } from 'zustand'`.");const t="function"==typeof e?I(e):e,n=(e,n)=>function(e,t=$,n){"production"!==(import.meta.env?import.meta.env.MODE:void 0)&&n&&!X&&(console.warn("[DEPRECATED] Use `createWithEqualityFn` instead of `create` or use `useStoreWithEqualityFn` instead of `useStore`. They can be imported from 'zustand/traditional'. https://github.com/pmndrs/zustand/discussions/1937"),X=!0);const r=H(e.subscribe,e.getState,e.getServerState||e.getInitialState,t,n);return W(r),r}(t,e,n);return Object.assign(n,t),n},Y=e=>e?Z(e):Z;function U(e){return"[object Object]"===Object.prototype.toString.call(e)}function J(e,t){if(e===t)return!0;if("object"!=typeof e||null===e||"object"!=typeof t||null===t)return!1;if(e.constructor!==t.constructor)return!1;if(e.constructor===Object||e.constructor===Array){const n=Object.keys(e),r=Object.keys(t);if(n.length!==r.length)return!1;for(const o of n){if(!r.includes(o))return!1;if(!J(e[o],t[o]))return!1}}return!(e instanceof Date&&t instanceof Date)||e.getTime()===t.getTime()}const K=(e,t)=>{let n=!1;if(!U(e))throw new Error("Target must be a plain object");if(!U(t))throw new Error("Source must be a plain object");const r={...e};return Object.keys(t).forEach((o=>{const i=t[o],a=e[o];if(U(i)&&U(a)){const{new_obj:e,change:t}=K(a,i);t&&(n=!0,r[o]=e)}else J(a,i)||(n=!0,r[o]=i)})),{new_obj:r,change:n}},q=(e,t)=>{let n=!1;if(!U(e))throw new Error("Target must be a plain object");if(!U(t))throw new Error("Source must be a plain object");const r={...e};return Object.keys(t).forEach((o=>{const i=t[o],a=e[o];if(void 0!==a||void 0!==i){if(void 0===a)return n=!0,void(r[o]=i);if(U(i)&&U(a)){const{new_obj:e,change:t}=q(a,i);t&&(n=!0,r[o]=e)}}})),{new_obj:r,change:n}},Q={id:"dummy",name:"dummy",node:"dummy",full_id:"dummy",type:"any",value:void 0,is_input:!1,connected:!1,does_trigger:!0,fullvalue:void 0,try_get_full_value:void 0,render_options:{set_default:!0,type:"any"},set_hidden:void 0,hidden:!1},ee=e=>{if(!e.id)throw new Error("IO must have an id but is missing for "+JSON.stringify(e));void 0===e.name&&(e.name=e.id);const{new_obj:t}=q(e,Q);return"any"!==t.render_options.type&&void 0!==t.render_options.type||(t.render_options.type=t.type),t},te={id:"dummy",node_name:"dummy",properties:{"frontend:size":[200,100],"frontend:pos":[NaN,NaN],"frontend:collapsed":!1},io:{},name:"dummy",in_trigger:!1,io_order:[],progress:{ascii:!1,elapsed:0,initial:0,n:0,prefix:"idle",unit:"it",unit_divisor:1e3,unit_scale:!1}},ne=(e,t)=>{e.properties=e.properties||{},t.pos&&(e.properties["frontend:pos"]=t.pos),t.size&&(e.properties["frontend:size"]=t.size),void 0!==t.collapsed&&(e.properties["frontend:collapsed"]=!!t.collapsed)},re=JSON.stringify(te),oe=e=>{if(!e.id)throw new Error("Node must have an id");const t=JSON.parse(re),{new_obj:n}=q(e,t);for(const e in n.io){if(void 0===n.io[e])continue;void 0===n.io[e].id&&(n.io[e].id=e);const t=ee(n.io[e]);n.io[e]=t}return n},ie=e=>{if(void 0===e.io&&(e.io={}),void 0===e.io_order)if(Array.isArray(e.io)){e.io_order=e.io.map((e=>e.id));const t={};for(const n of e.io)t[n.id]=n;e.io=t}else e.io_order=Object.keys(e.io);else if(Array.isArray(e.io)){const t={};for(const n of e.io)t[n.id]=n,e.io_order.includes(n.id)||e.io_order.push(n.id);e.io=t}else for(const t in e.io)e.io_order.includes(t)||e.io_order.push(t);return e};function ae(e){if("string"==typeof e||"number"==typeof e)return""+e;let t="";if(Array.isArray(e))for(let n,r=0;r<e.length;r++)""!==(n=ae(e[r]))&&(t+=(t&&" ")+n);else for(let n in e)e[n]&&(t+=(t&&" ")+n);return t}const{useDebugValue:se}=t,{useSyncExternalStoreWithSelector:le}=G,ce=e=>e;function ue(e,t=ce,n){const r=le(e.subscribe,e.getState,e.getServerState||e.getInitialState,t,n);return se(r),r}const de=(e,t)=>{const n=I(e),r=(e,r=t)=>ue(n,e,r);return Object.assign(r,n),r};function fe(e,t){if(Object.is(e,t))return!0;if("object"!=typeof e||null===e||"object"!=typeof t||null===t)return!1;if(e instanceof Map&&t instanceof Map){if(e.size!==t.size)return!1;for(const[n,r]of e)if(!Object.is(r,t.get(n)))return!1;return!0}if(e instanceof Set&&t instanceof Set){if(e.size!==t.size)return!1;for(const n of e)if(!t.has(n))return!1;return!0}const n=Object.keys(e);if(n.length!==Object.keys(t).length)return!1;for(const r of n)if(!Object.prototype.hasOwnProperty.call(t,r)||!Object.is(e[r],t[r]))return!1;return!0}var pe={value:()=>{}};function he(){for(var e,t=0,n=arguments.length,r={};t<n;++t){if(!(e=arguments[t]+"")||e in r||/[\s.]/.test(e))throw new Error("illegal type: "+e);r[e]=[]}return new me(r)}function me(e){this._=e}function ge(e,t){for(var n,r=0,o=e.length;r<o;++r)if((n=e[r]).name===t)return n.value}function ye(e,t,n){for(var r=0,o=e.length;r<o;++r)if(e[r].name===t){e[r]=pe,e=e.slice(0,r).concat(e.slice(r+1));break}return null!=n&&e.push({name:t,value:n}),e}me.prototype=he.prototype={constructor:me,on:function(e,t){var n,r=this._,o=function(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 new Error("unknown type: "+e);return{type:e,name:n}}))}(e+"",r),i=-1,a=o.length;if(!(arguments.length<2)){if(null!=t&&"function"!=typeof t)throw new Error("invalid callback: "+t);for(;++i<a;)if(n=(e=o[i]).type)r[n]=ye(r[n],e.name,t);else if(null==t)for(n in r)r[n]=ye(r[n],e.name,null);return this}for(;++i<a;)if((n=(e=o[i]).type)&&(n=ge(r[n],e.name)))return n},copy:function(){var e={},t=this._;for(var n in t)e[n]=t[n].slice();return new me(e)},call:function(e,t){if((n=arguments.length-2)>0)for(var n,r,o=new Array(n),i=0;i<n;++i)o[i]=arguments[i+2];if(!this._.hasOwnProperty(e))throw new Error("unknown type: "+e);for(i=0,n=(r=this._[e]).length;i<n;++i)r[i].value.apply(t,o)},apply:function(e,t,n){if(!this._.hasOwnProperty(e))throw new Error("unknown type: "+e);for(var r=this._[e],o=0,i=r.length;o<i;++o)r[o].value.apply(t,n)}};var be="http://www.w3.org/1999/xhtml",ve={svg:"http://www.w3.org/2000/svg",xhtml:be,xlink:"http://www.w3.org/1999/xlink",xml:"http://www.w3.org/XML/1998/namespace",xmlns:"http://www.w3.org/2000/xmlns/"};function we(e){var t=e+="",n=t.indexOf(":");return n>=0&&"xmlns"!==(t=e.slice(0,n))&&(e=e.slice(n+1)),ve.hasOwnProperty(t)?{space:ve[t],local:e}:e}function xe(e){return function(){var t=this.ownerDocument,n=this.namespaceURI;return n===be&&t.documentElement.namespaceURI===be?t.createElement(e):t.createElementNS(n,e)}}function Ce(e){return function(){return this.ownerDocument.createElementNS(e.space,e.local)}}function ke(e){var t=we(e);return(t.local?Ce:xe)(t)}function Ee(){}function Se(e){return null==e?Ee:function(){return this.querySelector(e)}}function Ie(){return[]}function _e(e){return null==e?Ie:function(){return this.querySelectorAll(e)}}function Ae(e){return function(){return function(e){return null==e?[]:Array.isArray(e)?e:Array.from(e)}(e.apply(this,arguments))}}function Ne(e){return function(){return this.matches(e)}}function Oe(e){return function(t){return t.matches(e)}}var Re=Array.prototype.find;function Me(){return this.firstElementChild}var Te=Array.prototype.filter;function Pe(){return Array.from(this.children)}function De(e){return new Array(e.length)}function je(e,t){this.ownerDocument=e.ownerDocument,this.namespaceURI=e.namespaceURI,this._next=null,this._parent=e,this.__data__=t}function Le(e,t,n,r,o,i){for(var a,s=0,l=t.length,c=i.length;s<c;++s)(a=t[s])?(a.__data__=i[s],r[s]=a):n[s]=new je(e,i[s]);for(;s<l;++s)(a=t[s])&&(o[s]=a)}function Fe(e,t,n,r,o,i,a){var s,l,c,u=new Map,d=t.length,f=i.length,p=new Array(d);for(s=0;s<d;++s)(l=t[s])&&(p[s]=c=a.call(l,l.__data__,s,t)+"",u.has(c)?o[s]=l:u.set(c,l));for(s=0;s<f;++s)c=a.call(e,i[s],s,i)+"",(l=u.get(c))?(r[s]=l,l.__data__=i[s],u.delete(c)):n[s]=new je(e,i[s]);for(s=0;s<d;++s)(l=t[s])&&u.get(p[s])===l&&(o[s]=l)}function ze(e){return e.__data__}function Be(e){return"object"==typeof e&&"length"in e?e:Array.from(e)}function Ve(e,t){return e<t?-1:e>t?1:e>=t?0:NaN}function Ge(e){return function(){this.removeAttribute(e)}}function We(e){return function(){this.removeAttributeNS(e.space,e.local)}}function He(e,t){return function(){this.setAttribute(e,t)}}function Xe(e,t){return function(){this.setAttributeNS(e.space,e.local,t)}}function $e(e,t){return function(){var n=t.apply(this,arguments);null==n?this.removeAttribute(e):this.setAttribute(e,n)}}function Ze(e,t){return function(){var n=t.apply(this,arguments);null==n?this.removeAttributeNS(e.space,e.local):this.setAttributeNS(e.space,e.local,n)}}function Ye(e){return e.ownerDocument&&e.ownerDocument.defaultView||e.document&&e||e.defaultView}function Ue(e){return function(){this.style.removeProperty(e)}}function Je(e,t,n){return function(){this.style.setProperty(e,t,n)}}function Ke(e,t,n){return function(){var r=t.apply(this,arguments);null==r?this.style.removeProperty(e):this.style.setProperty(e,r,n)}}function qe(e,t){return e.style.getPropertyValue(t)||Ye(e).getComputedStyle(e,null).getPropertyValue(t)}function Qe(e){return function(){delete this[e]}}function et(e,t){return function(){this[e]=t}}function tt(e,t){return function(){var n=t.apply(this,arguments);null==n?delete this[e]:this[e]=n}}function nt(e){return e.trim().split(/^|\s+/)}function rt(e){return e.classList||new ot(e)}function ot(e){this._node=e,this._names=nt(e.getAttribute("class")||"")}function it(e,t){for(var n=rt(e),r=-1,o=t.length;++r<o;)n.add(t[r])}function at(e,t){for(var n=rt(e),r=-1,o=t.length;++r<o;)n.remove(t[r])}function st(e){return function(){it(this,e)}}function lt(e){return function(){at(this,e)}}function ct(e,t){return function(){(t.apply(this,arguments)?it:at)(this,e)}}function ut(){this.textContent=""}function dt(e){return function(){this.textContent=e}}function ft(e){return function(){var t=e.apply(this,arguments);this.textContent=null==t?"":t}}function pt(){this.innerHTML=""}function ht(e){return function(){this.innerHTML=e}}function mt(e){return function(){var t=e.apply(this,arguments);this.innerHTML=null==t?"":t}}function gt(){this.nextSibling&&this.parentNode.appendChild(this)}function yt(){this.previousSibling&&this.parentNode.insertBefore(this,this.parentNode.firstChild)}function bt(){return null}function vt(){var e=this.parentNode;e&&e.removeChild(this)}function wt(){var e=this.cloneNode(!1),t=this.parentNode;return t?t.insertBefore(e,this.nextSibling):e}function xt(){var e=this.cloneNode(!0),t=this.parentNode;return t?t.insertBefore(e,this.nextSibling):e}function Ct(e){return function(){var t=this.__on;if(t){for(var n,r=0,o=-1,i=t.length;r<i;++r)n=t[r],e.type&&n.type!==e.type||n.name!==e.name?t[++o]=n:this.removeEventListener(n.type,n.listener,n.options);++o?t.length=o:delete this.__on}}}function kt(e,t,n){return function(){var r,o=this.__on,i=function(e){return function(t){e.call(this,t,this.__data__)}}(t);if(o)for(var a=0,s=o.length;a<s;++a)if((r=o[a]).type===e.type&&r.name===e.name)return this.removeEventListener(r.type,r.listener,r.options),this.addEventListener(r.type,r.listener=i,r.options=n),void(r.value=t);this.addEventListener(e.type,i,n),r={type:e.type,name:e.name,value:t,listener:i,options:n},o?o.push(r):this.__on=[r]}}function Et(e,t,n){var r=Ye(e),o=r.CustomEvent;"function"==typeof o?o=new o(t,n):(o=r.document.createEvent("Event"),n?(o.initEvent(t,n.bubbles,n.cancelable),o.detail=n.detail):o.initEvent(t,!1,!1)),e.dispatchEvent(o)}function St(e,t){return function(){return Et(this,e,t)}}function It(e,t){return function(){return Et(this,e,t.apply(this,arguments))}}je.prototype={constructor:je,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)}},ot.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}};var _t=[null];function At(e,t){this._groups=e,this._parents=t}function Nt(){return new At([[document.documentElement]],_t)}function Ot(e){return"string"==typeof e?new At([[document.querySelector(e)]],[document.documentElement]):new At([[e]],_t)}function Rt(e,t){if(e=function(e){let t;for(;t=e.sourceEvent;)e=t;return e}(e),void 0===t&&(t=e.currentTarget),t){var n=t.ownerSVGElement||t;if(n.createSVGPoint){var r=n.createSVGPoint();return r.x=e.clientX,r.y=e.clientY,[(r=r.matrixTransform(t.getScreenCTM().inverse())).x,r.y]}if(t.getBoundingClientRect){var o=t.getBoundingClientRect();return[e.clientX-o.left-t.clientLeft,e.clientY-o.top-t.clientTop]}}return[e.pageX,e.pageY]}At.prototype=Nt.prototype={constructor:At,select:function(e){"function"!=typeof e&&(e=Se(e));for(var t=this._groups,n=t.length,r=new Array(n),o=0;o<n;++o)for(var i,a,s=t[o],l=s.length,c=r[o]=new Array(l),u=0;u<l;++u)(i=s[u])&&(a=e.call(i,i.__data__,u,s))&&("__data__"in i&&(a.__data__=i.__data__),c[u]=a);return new At(r,this._parents)},selectAll:function(e){e="function"==typeof e?Ae(e):_e(e);for(var t=this._groups,n=t.length,r=[],o=[],i=0;i<n;++i)for(var a,s=t[i],l=s.length,c=0;c<l;++c)(a=s[c])&&(r.push(e.call(a,a.__data__,c,s)),o.push(a));return new At(r,o)},selectChild:function(e){return this.select(null==e?Me:function(e){return function(){return Re.call(this.children,e)}}("function"==typeof e?e:Oe(e)))},selectChildren:function(e){return this.selectAll(null==e?Pe:function(e){return function(){return Te.call(this.children,e)}}("function"==typeof e?e:Oe(e)))},filter:function(e){"function"!=typeof e&&(e=Ne(e));for(var t=this._groups,n=t.length,r=new Array(n),o=0;o<n;++o)for(var i,a=t[o],s=a.length,l=r[o]=[],c=0;c<s;++c)(i=a[c])&&e.call(i,i.__data__,c,a)&&l.push(i);return new At(r,this._parents)},data:function(e,t){if(!arguments.length)return Array.from(this,ze);var n=t?Fe:Le,r=this._parents,o=this._groups;"function"!=typeof e&&(e=function(e){return function(){return e}}(e));for(var i=o.length,a=new Array(i),s=new Array(i),l=new Array(i),c=0;c<i;++c){var u=r[c],d=o[c],f=d.length,p=Be(e.call(u,u&&u.__data__,c,r)),h=p.length,m=s[c]=new Array(h),g=a[c]=new Array(h);n(u,d,m,g,l[c]=new Array(f),p,t);for(var y,b,v=0,w=0;v<h;++v)if(y=m[v]){for(v>=w&&(w=v+1);!(b=g[w])&&++w<h;);y._next=b||null}}return(a=new At(a,r))._enter=s,a._exit=l,a},enter:function(){return new At(this._enter||this._groups.map(De),this._parents)},exit:function(){return new At(this._exit||this._groups.map(De),this._parents)},join:function(e,t,n){var r=this.enter(),o=this,i=this.exit();return"function"==typeof e?(r=e(r))&&(r=r.selection()):r=r.append(e+""),null!=t&&(o=t(o))&&(o=o.selection()),null==n?i.remove():n(i),r&&o?r.merge(o).order():o},merge:function(e){for(var t=e.selection?e.selection():e,n=this._groups,r=t._groups,o=n.length,i=r.length,a=Math.min(o,i),s=new Array(o),l=0;l<a;++l)for(var c,u=n[l],d=r[l],f=u.length,p=s[l]=new Array(f),h=0;h<f;++h)(c=u[h]||d[h])&&(p[h]=c);for(;l<o;++l)s[l]=n[l];return new At(s,this._parents)},selection:function(){return this},order:function(){for(var e=this._groups,t=-1,n=e.length;++t<n;)for(var r,o=e[t],i=o.length-1,a=o[i];--i>=0;)(r=o[i])&&(a&&4^r.compareDocumentPosition(a)&&a.parentNode.insertBefore(r,a),a=r);return this},sort:function(e){function t(t,n){return t&&n?e(t.__data__,n.__data__):!t-!n}e||(e=Ve);for(var n=this._groups,r=n.length,o=new Array(r),i=0;i<r;++i){for(var a,s=n[i],l=s.length,c=o[i]=new Array(l),u=0;u<l;++u)(a=s[u])&&(c[u]=a);c.sort(t)}return new At(o,this._parents).order()},call:function(){var e=arguments[0];return arguments[0]=this,e.apply(null,arguments),this},nodes:function(){return Array.from(this)},node:function(){for(var e=this._groups,t=0,n=e.length;t<n;++t)for(var r=e[t],o=0,i=r.length;o<i;++o){var a=r[o];if(a)return a}return null},size:function(){let e=0;for(const t of this)++e;return e},empty:function(){return!this.node()},each:function(e){for(var t=this._groups,n=0,r=t.length;n<r;++n)for(var o,i=t[n],a=0,s=i.length;a<s;++a)(o=i[a])&&e.call(o,o.__data__,a,i);return this},attr:function(e,t){var n=we(e);if(arguments.length<2){var r=this.node();return n.local?r.getAttributeNS(n.space,n.local):r.getAttribute(n)}return this.each((null==t?n.local?We:Ge:"function"==typeof t?n.local?Ze:$e:n.local?Xe:He)(n,t))},style:function(e,t,n){return arguments.length>1?this.each((null==t?Ue:"function"==typeof t?Ke:Je)(e,t,null==n?"":n)):qe(this.node(),e)},property:function(e,t){return arguments.length>1?this.each((null==t?Qe:"function"==typeof t?tt:et)(e,t)):this.node()[e]},classed:function(e,t){var n=nt(e+"");if(arguments.length<2){for(var r=rt(this.node()),o=-1,i=n.length;++o<i;)if(!r.contains(n[o]))return!1;return!0}return this.each(("function"==typeof t?ct:t?st:lt)(n,t))},text:function(e){return arguments.length?this.each(null==e?ut:("function"==typeof e?ft:dt)(e)):this.node().textContent},html:function(e){return arguments.length?this.each(null==e?pt:("function"==typeof e?mt:ht)(e)):this.node().innerHTML},raise:function(){return this.each(gt)},lower:function(){return this.each(yt)},append:function(e){var t="function"==typeof e?e:ke(e);return this.select((function(){return this.appendChild(t.apply(this,arguments))}))},insert:function(e,t){var n="function"==typeof e?e:ke(e),r=null==t?bt:"function"==typeof t?t:Se(t);return this.select((function(){return this.insertBefore(n.apply(this,arguments),r.apply(this,arguments)||null)}))},remove:function(){return this.each(vt)},clone:function(e){return this.select(e?xt:wt)},datum:function(e){return arguments.length?this.property("__data__",e):this.node().__data__},on:function(e,t,n){var r,o,i=function(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}}))}(e+""),a=i.length;if(!(arguments.length<2)){for(s=t?kt:Ct,r=0;r<a;++r)this.each(s(i[r],t,n));return this}var s=this.node().__on;if(s)for(var l,c=0,u=s.length;c<u;++c)for(r=0,l=s[c];r<a;++r)if((o=i[r]).type===l.type&&o.name===l.name)return l.value},dispatch:function(e,t){return this.each(("function"==typeof t?It:St)(e,t))},[Symbol.iterator]:function*(){for(var e=this._groups,t=0,n=e.length;t<n;++t)for(var r,o=e[t],i=0,a=o.length;i<a;++i)(r=o[i])&&(yield r)}};const Mt={passive:!1},Tt={capture:!0,passive:!1};function Pt(e){e.stopImmediatePropagation()}function Dt(e){e.preventDefault(),e.stopImmediatePropagation()}function jt(e){var t=e.document.documentElement,n=Ot(e).on("dragstart.drag",Dt,Tt);"onselectstart"in t?n.on("selectstart.drag",Dt,Tt):(t.__noselect=t.style.MozUserSelect,t.style.MozUserSelect="none")}function Lt(e,t){var n=e.document.documentElement,r=Ot(e).on("dragstart.drag",null);t&&(r.on("click.drag",Dt,Tt),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 Ft=e=>()=>e;function zt(e,{sourceEvent:t,subject:n,target:r,identifier:o,active:i,x:a,y:s,dx:l,dy:c,dispatch:u}){Object.defineProperties(this,{type:{value:e,enumerable:!0,configurable:!0},sourceEvent:{value:t,enumerable:!0,configurable:!0},subject:{value:n,enumerable:!0,configurable:!0},target:{value:r,enumerable:!0,configurable:!0},identifier:{value:o,enumerable:!0,configurable:!0},active:{value:i,enumerable:!0,configurable:!0},x:{value:a,enumerable:!0,configurable:!0},y:{value:s,enumerable:!0,configurable:!0},dx:{value:l,enumerable:!0,configurable:!0},dy:{value:c,enumerable:!0,configurable:!0},_:{value:u}})}function Bt(e){return!e.ctrlKey&&!e.button}function Vt(){return this.parentNode}function Gt(e,t){return null==t?{x:e.x,y:e.y}:t}function Wt(){return navigator.maxTouchPoints||"ontouchstart"in this}function Ht(e,t,n){e.prototype=t.prototype=n,n.constructor=e}function Xt(e,t){var n=Object.create(e.prototype);for(var r in t)n[r]=t[r];return n}function $t(){}zt.prototype.on=function(){var e=this._.on.apply(this._,arguments);return e===this._?this:e};var Zt=.7,Yt=1/Zt,Ut="\\s*([+-]?\\d+)\\s*",Jt="\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)\\s*",Kt="\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)%\\s*",qt=/^#([0-9a-f]{3,8})$/,Qt=new RegExp(`^rgb\\(${Ut},${Ut},${Ut}\\)$`),en=new RegExp(`^rgb\\(${Kt},${Kt},${Kt}\\)$`),tn=new RegExp(`^rgba\\(${Ut},${Ut},${Ut},${Jt}\\)$`),nn=new RegExp(`^rgba\\(${Kt},${Kt},${Kt},${Jt}\\)$`),rn=new RegExp(`^hsl\\(${Jt},${Kt},${Kt}\\)$`),on=new RegExp(`^hsla\\(${Jt},${Kt},${Kt},${Jt}\\)$`),an={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};function sn(){return this.rgb().formatHex()}function ln(){return this.rgb().formatRgb()}function cn(e){var t,n;return e=(e+"").trim().toLowerCase(),(t=qt.exec(e))?(n=t[1].length,t=parseInt(t[1],16),6===n?un(t):3===n?new pn(t>>8&15|t>>4&240,t>>4&15|240&t,(15&t)<<4|15&t,1):8===n?dn(t>>24&255,t>>16&255,t>>8&255,(255&t)/255):4===n?dn(t>>12&15|t>>8&240,t>>8&15|t>>4&240,t>>4&15|240&t,((15&t)<<4|15&t)/255):null):(t=Qt.exec(e))?new pn(t[1],t[2],t[3],1):(t=en.exec(e))?new pn(255*t[1]/100,255*t[2]/100,255*t[3]/100,1):(t=tn.exec(e))?dn(t[1],t[2],t[3],t[4]):(t=nn.exec(e))?dn(255*t[1]/100,255*t[2]/100,255*t[3]/100,t[4]):(t=rn.exec(e))?vn(t[1],t[2]/100,t[3]/100,1):(t=on.exec(e))?vn(t[1],t[2]/100,t[3]/100,t[4]):an.hasOwnProperty(e)?un(an[e]):"transparent"===e?new pn(NaN,NaN,NaN,0):null}function un(e){return new pn(e>>16&255,e>>8&255,255&e,1)}function dn(e,t,n,r){return r<=0&&(e=t=n=NaN),new pn(e,t,n,r)}function fn(e,t,n,r){return 1===arguments.length?function(e){return e instanceof $t||(e=cn(e)),e?new pn((e=e.rgb()).r,e.g,e.b,e.opacity):new pn}(e):new pn(e,t,n,null==r?1:r)}function pn(e,t,n,r){this.r=+e,this.g=+t,this.b=+n,this.opacity=+r}function hn(){return`#${bn(this.r)}${bn(this.g)}${bn(this.b)}`}function mn(){const e=gn(this.opacity);return`${1===e?"rgb(":"rgba("}${yn(this.r)}, ${yn(this.g)}, ${yn(this.b)}${1===e?")":`, ${e})`}`}function gn(e){return isNaN(e)?1:Math.max(0,Math.min(1,e))}function yn(e){return Math.max(0,Math.min(255,Math.round(e)||0))}function bn(e){return((e=yn(e))<16?"0":"")+e.toString(16)}function vn(e,t,n,r){return r<=0?e=t=n=NaN:n<=0||n>=1?e=t=NaN:t<=0&&(e=NaN),new xn(e,t,n,r)}function wn(e){if(e instanceof xn)return new xn(e.h,e.s,e.l,e.opacity);if(e instanceof $t||(e=cn(e)),!e)return new xn;if(e instanceof xn)return e;var t=(e=e.rgb()).r/255,n=e.g/255,r=e.b/255,o=Math.min(t,n,r),i=Math.max(t,n,r),a=NaN,s=i-o,l=(i+o)/2;return s?(a=t===i?(n-r)/s+6*(n<r):n===i?(r-t)/s+2:(t-n)/s+4,s/=l<.5?i+o:2-i-o,a*=60):s=l>0&&l<1?0:a,new xn(a,s,l,e.opacity)}function xn(e,t,n,r){this.h=+e,this.s=+t,this.l=+n,this.opacity=+r}function Cn(e){return(e=(e||0)%360)<0?e+360:e}function kn(e){return Math.max(0,Math.min(1,e||0))}function En(e,t,n){return 255*(e<60?t+(n-t)*e/60:e<180?n:e<240?t+(n-t)*(240-e)/60:t)}Ht($t,cn,{copy(e){return Object.assign(new this.constructor,this,e)},displayable(){return this.rgb().displayable()},hex:sn,formatHex:sn,formatHex8:function(){return this.rgb().formatHex8()},formatHsl:function(){return wn(this).formatHsl()},formatRgb:ln,toString:ln}),Ht(pn,fn,Xt($t,{brighter(e){return e=null==e?Yt:Math.pow(Yt,e),new pn(this.r*e,this.g*e,this.b*e,this.opacity)},darker(e){return e=null==e?Zt:Math.pow(Zt,e),new pn(this.r*e,this.g*e,this.b*e,this.opacity)},rgb(){return this},clamp(){return new pn(yn(this.r),yn(this.g),yn(this.b),gn(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:hn,formatHex:hn,formatHex8:function(){return`#${bn(this.r)}${bn(this.g)}${bn(this.b)}${bn(255*(isNaN(this.opacity)?1:this.opacity))}`},formatRgb:mn,toString:mn})),Ht(xn,(function(e,t,n,r){return 1===arguments.length?wn(e):new xn(e,t,n,null==r?1:r)}),Xt($t,{brighter(e){return e=null==e?Yt:Math.pow(Yt,e),new xn(this.h,this.s,this.l*e,this.opacity)},darker(e){return e=null==e?Zt:Math.pow(Zt,e),new xn(this.h,this.s,this.l*e,this.opacity)},rgb(){var e=this.h%360+360*(this.h<0),t=isNaN(e)||isNaN(this.s)?0:this.s,n=this.l,r=n+(n<.5?n:1-n)*t,o=2*n-r;return new pn(En(e>=240?e-240:e+120,o,r),En(e,o,r),En(e<120?e+240:e-120,o,r),this.opacity)},clamp(){return new xn(Cn(this.h),kn(this.s),kn(this.l),gn(this.opacity))},displayable(){return(0<=this.s&&this.s<=1||isNaN(this.s))&&0<=this.l&&this.l<=1&&0<=this.opacity&&this.opacity<=1},formatHsl(){const e=gn(this.opacity);return`${1===e?"hsl(":"hsla("}${Cn(this.h)}, ${100*kn(this.s)}%, ${100*kn(this.l)}%${1===e?")":`, ${e})`}`}}));var Sn=e=>()=>e;function In(e){return 1==(e=+e)?_n:function(t,n){return n-t?function(e,t,n){return e=Math.pow(e,n),t=Math.pow(t,n)-e,n=1/n,function(r){return Math.pow(e+r*t,n)}}(t,n,e):Sn(isNaN(t)?n:t)}}function _n(e,t){var n=t-e;return n?function(e,t){return function(n){return e+n*t}}(e,n):Sn(isNaN(e)?t:e)}var An=function e(t){var n=In(t);function r(e,t){var r=n((e=fn(e)).r,(t=fn(t)).r),o=n(e.g,t.g),i=n(e.b,t.b),a=_n(e.opacity,t.opacity);return function(t){return e.r=r(t),e.g=o(t),e.b=i(t),e.opacity=a(t),e+""}}return r.gamma=e,r}(1);function Nn(e,t){return e=+e,t=+t,function(n){return e*(1-n)+t*n}}var On=/[-+]?(?:\d+\.?\d*|\.?\d+)(?:[eE][-+]?\d+)?/g,Rn=new RegExp(On.source,"g");function Mn(e,t){var n,r,o,i=On.lastIndex=Rn.lastIndex=0,a=-1,s=[],l=[];for(e+="",t+="";(n=On.exec(e))&&(r=Rn.exec(t));)(o=r.index)>i&&(o=t.slice(i,o),s[a]?s[a]+=o:s[++a]=o),(n=n[0])===(r=r[0])?s[a]?s[a]+=r:s[++a]=r:(s[++a]=null,l.push({i:a,x:Nn(n,r)})),i=Rn.lastIndex;return i<t.length&&(o=t.slice(i),s[a]?s[a]+=o:s[++a]=o),s.length<2?l[0]?function(e){return function(t){return e(t)+""}}(l[0].x):function(e){return function(){return e}}(t):(t=l.length,function(e){for(var n,r=0;r<t;++r)s[(n=l[r]).i]=n.x(e);return s.join("")})}var Tn,Pn=180/Math.PI,Dn={translateX:0,translateY:0,rotate:0,skewX:0,scaleX:1,scaleY:1};function jn(e,t,n,r,o,i){var a,s,l;return(a=Math.sqrt(e*e+t*t))&&(e/=a,t/=a),(l=e*n+t*r)&&(n-=e*l,r-=t*l),(s=Math.sqrt(n*n+r*r))&&(n/=s,r/=s,l/=s),e*r<t*n&&(e=-e,t=-t,l=-l,a=-a),{translateX:o,translateY:i,rotate:Math.atan2(t,e)*Pn,skewX:Math.atan(l)*Pn,scaleX:a,scaleY:s}}function Ln(e,t,n,r){function o(e){return e.length?e.pop()+" ":""}return function(i,a){var s=[],l=[];return i=e(i),a=e(a),function(e,r,o,i,a,s){if(e!==o||r!==i){var l=a.push("translate(",null,t,null,n);s.push({i:l-4,x:Nn(e,o)},{i:l-2,x:Nn(r,i)})}else(o||i)&&a.push("translate("+o+t+i+n)}(i.translateX,i.translateY,a.translateX,a.translateY,s,l),function(e,t,n,i){e!==t?(e-t>180?t+=360:t-e>180&&(e+=360),i.push({i:n.push(o(n)+"rotate(",null,r)-2,x:Nn(e,t)})):t&&n.push(o(n)+"rotate("+t+r)}(i.rotate,a.rotate,s,l),function(e,t,n,i){e!==t?i.push({i:n.push(o(n)+"skewX(",null,r)-2,x:Nn(e,t)}):t&&n.push(o(n)+"skewX("+t+r)}(i.skewX,a.skewX,s,l),function(e,t,n,r,i,a){if(e!==n||t!==r){var s=i.push(o(i)+"scale(",null,",",null,")");a.push({i:s-4,x:Nn(e,n)},{i:s-2,x:Nn(t,r)})}else 1===n&&1===r||i.push(o(i)+"scale("+n+","+r+")")}(i.scaleX,i.scaleY,a.scaleX,a.scaleY,s,l),i=a=null,function(e){for(var t,n=-1,r=l.length;++n<r;)s[(t=l[n]).i]=t.x(e);return s.join("")}}}var Fn=Ln((function(e){const t=new("function"==typeof DOMMatrix?DOMMatrix:WebKitCSSMatrix)(e+"");return t.isIdentity?Dn:jn(t.a,t.b,t.c,t.d,t.e,t.f)}),"px, ","px)","deg)"),zn=Ln((function(e){return null==e?Dn:(Tn||(Tn=document.createElementNS("http://www.w3.org/2000/svg","g")),Tn.setAttribute("transform",e),(e=Tn.transform.baseVal.consolidate())?jn((e=e.matrix).a,e.b,e.c,e.d,e.e,e.f):Dn)}),", ",")",")");function Bn(e){return((e=Math.exp(e))+1/e)/2}var Vn,Gn,Wn=function e(t,n,r){function o(e,o){var i,a,s=e[0],l=e[1],c=e[2],u=o[0],d=o[1],f=o[2],p=u-s,h=d-l,m=p*p+h*h;if(m<1e-12)a=Math.log(f/c)/t,i=function(e){return[s+e*p,l+e*h,c*Math.exp(t*e*a)]};else{var g=Math.sqrt(m),y=(f*f-c*c+r*m)/(2*c*n*g),b=(f*f-c*c-r*m)/(2*f*n*g),v=Math.log(Math.sqrt(y*y+1)-y),w=Math.log(Math.sqrt(b*b+1)-b);a=(w-v)/t,i=function(e){var r=e*a,o=Bn(v),i=c/(n*g)*(o*function(e){return((e=Math.exp(2*e))-1)/(e+1)}(t*r+v)-function(e){return((e=Math.exp(e))-1/e)/2}(v));return[s+i*p,l+i*h,c*o/Bn(t*r+v)]}}return i.duration=1e3*a*t/Math.SQRT2,i}return o.rho=function(t){var n=Math.max(.001,+t),r=n*n;return e(n,r,r*r)},o}(Math.SQRT2,2,4),Hn=0,Xn=0,$n=0,Zn=0,Yn=0,Un=0,Jn="object"==typeof performance&&performance.now?performance:Date,Kn="object"==typeof window&&window.requestAnimationFrame?window.requestAnimationFrame.bind(window):function(e){setTimeout(e,17)};function qn(){return Yn||(Kn(Qn),Yn=Jn.now()+Un)}function Qn(){Yn=0}function er(){this._call=this._time=this._next=null}function tr(e,t,n){var r=new er;return r.restart(e,t,n),r}function nr(){Yn=(Zn=Jn.now())+Un,Hn=Xn=0;try{!function(){qn(),++Hn;for(var e,t=Vn;t;)(e=Yn-t._time)>=0&&t._call.call(void 0,e),t=t._next;--Hn}()}finally{Hn=0,function(){var e,t,n=Vn,r=1/0;for(;n;)n._call?(r>n._time&&(r=n._time),e=n,n=n._next):(t=n._next,n._next=null,n=e?e._next=t:Vn=t);Gn=e,or(r)}(),Yn=0}}function rr(){var e=Jn.now(),t=e-Zn;t>1e3&&(Un-=t,Zn=e)}function or(e){Hn||(Xn&&(Xn=clearTimeout(Xn)),e-Yn>24?(e<1/0&&(Xn=setTimeout(nr,e-Jn.now()-Un)),$n&&($n=clearInterval($n))):($n||(Zn=Jn.now(),$n=setInterval(rr,1e3)),Hn=1,Kn(nr)))}function ir(e,t,n){var r=new er;return t=null==t?0:+t,r.restart((n=>{r.stop(),e(n+t)}),t,n),r}er.prototype=tr.prototype={constructor:er,restart:function(e,t,n){if("function"!=typeof e)throw new TypeError("callback is not a function");n=(null==n?qn():+n)+(null==t?0:+t),this._next||Gn===this||(Gn?Gn._next=this:Vn=this,Gn=this),this._call=e,this._time=n,or()},stop:function(){this._call&&(this._call=null,this._time=1/0,or())}};var ar=he("start","end","cancel","interrupt"),sr=[];function lr(e,t,n,r,o,i){var a=e.__transition;if(a){if(n in a)return}else e.__transition={};!function(e,t,n){var r,o=e.__transition;function i(e){n.state=1,n.timer.restart(a,n.delay,n.time),n.delay<=e&&a(e-n.delay)}function a(i){var c,u,d,f;if(1!==n.state)return l();for(c in o)if((f=o[c]).name===n.name){if(3===f.state)return ir(a);4===f.state?(f.state=6,f.timer.stop(),f.on.call("interrupt",e,e.__data__,f.index,f.group),delete o[c]):+c<t&&(f.state=6,f.timer.stop(),f.on.call("cancel",e,e.__data__,f.index,f.group),delete o[c])}if(ir((function(){3===n.state&&(n.state=4,n.timer.restart(s,n.delay,n.time),s(i))})),n.state=2,n.on.call("start",e,e.__data__,n.index,n.group),2===n.state){for(n.state=3,r=new Array(d=n.tween.length),c=0,u=-1;c<d;++c)(f=n.tween[c].value.call(e,e.__data__,n.index,n.group))&&(r[++u]=f);r.length=u+1}}function s(t){for(var o=t<n.duration?n.ease.call(null,t/n.duration):(n.timer.restart(l),n.state=5,1),i=-1,a=r.length;++i<a;)r[i].call(e,o);5===n.state&&(n.on.call("end",e,e.__data__,n.index,n.group),l())}function l(){for(var r in n.state=6,n.timer.stop(),delete o[t],o)return;delete e.__transition}o[t]=n,n.timer=tr(i,0,n.time)}(e,n,{name:t,index:r,group:o,on:ar,tween:sr,time:i.time,delay:i.delay,duration:i.duration,ease:i.ease,timer:null,state:0})}function cr(e,t){var n=dr(e,t);if(n.state>0)throw new Error("too late; already scheduled");return n}function ur(e,t){var n=dr(e,t);if(n.state>3)throw new Error("too late; already running");return n}function dr(e,t){var n=e.__transition;if(!n||!(n=n[t]))throw new Error("transition not found");return n}function fr(e,t){var n,r,o,i=e.__transition,a=!0;if(i){for(o in t=null==t?null:t+"",i)(n=i[o]).name===t?(r=n.state>2&&n.state<5,n.state=6,n.timer.stop(),n.on.call(r?"interrupt":"cancel",e,e.__data__,n.index,n.group),delete i[o]):a=!1;a&&delete e.__transition}}function pr(e,t){var n,r;return function(){var o=ur(this,e),i=o.tween;if(i!==n)for(var a=0,s=(r=n=i).length;a<s;++a)if(r[a].name===t){(r=r.slice()).splice(a,1);break}o.tween=r}}function hr(e,t,n){var r,o;if("function"!=typeof n)throw new Error;return function(){var i=ur(this,e),a=i.tween;if(a!==r){o=(r=a).slice();for(var s={name:t,value:n},l=0,c=o.length;l<c;++l)if(o[l].name===t){o[l]=s;break}l===c&&o.push(s)}i.tween=o}}function mr(e,t,n){var r=e._id;return e.each((function(){var e=ur(this,r);(e.value||(e.value={}))[t]=n.apply(this,arguments)})),function(e){return dr(e,r).value[t]}}function gr(e,t){var n;return("number"==typeof t?Nn:t instanceof cn?An:(n=cn(t))?(t=n,An):Mn)(e,t)}function yr(e){return function(){this.removeAttribute(e)}}function br(e){return function(){this.removeAttributeNS(e.space,e.local)}}function vr(e,t,n){var r,o,i=n+"";return function(){var a=this.getAttribute(e);return a===i?null:a===r?o:o=t(r=a,n)}}function wr(e,t,n){var r,o,i=n+"";return function(){var a=this.getAttributeNS(e.space,e.local);return a===i?null:a===r?o:o=t(r=a,n)}}function xr(e,t,n){var r,o,i;return function(){var a,s,l=n(this);if(null!=l)return(a=this.getAttribute(e))===(s=l+"")?null:a===r&&s===o?i:(o=s,i=t(r=a,l));this.removeAttribute(e)}}function Cr(e,t,n){var r,o,i;return function(){var a,s,l=n(this);if(null!=l)return(a=this.getAttributeNS(e.space,e.local))===(s=l+"")?null:a===r&&s===o?i:(o=s,i=t(r=a,l));this.removeAttributeNS(e.space,e.local)}}function kr(e,t){var n,r;function o(){var o=t.apply(this,arguments);return o!==r&&(n=(r=o)&&function(e,t){return function(n){this.setAttributeNS(e.space,e.local,t.call(this,n))}}(e,o)),n}return o._value=t,o}function Er(e,t){var n,r;function o(){var o=t.apply(this,arguments);return o!==r&&(n=(r=o)&&function(e,t){return function(n){this.setAttribute(e,t.call(this,n))}}(e,o)),n}return o._value=t,o}function Sr(e,t){return function(){cr(this,e).delay=+t.apply(this,arguments)}}function Ir(e,t){return t=+t,function(){cr(this,e).delay=t}}function _r(e,t){return function(){ur(this,e).duration=+t.apply(this,arguments)}}function Ar(e,t){return t=+t,function(){ur(this,e).duration=t}}var Nr=Nt.prototype.constructor;function Or(e){return function(){this.style.removeProperty(e)}}var Rr=0;function Mr(e,t,n,r){this._groups=e,this._parents=t,this._name=n,this._id=r}function Tr(){return++Rr}var Pr=Nt.prototype;Mr.prototype={constructor:Mr,select:function(e){var t=this._name,n=this._id;"function"!=typeof e&&(e=Se(e));for(var r=this._groups,o=r.length,i=new Array(o),a=0;a<o;++a)for(var s,l,c=r[a],u=c.length,d=i[a]=new Array(u),f=0;f<u;++f)(s=c[f])&&(l=e.call(s,s.__data__,f,c))&&("__data__"in s&&(l.__data__=s.__data__),d[f]=l,lr(d[f],t,n,f,d,dr(s,n)));return new Mr(i,this._parents,t,n)},selectAll:function(e){var t=this._name,n=this._id;"function"!=typeof e&&(e=_e(e));for(var r=this._groups,o=r.length,i=[],a=[],s=0;s<o;++s)for(var l,c=r[s],u=c.length,d=0;d<u;++d)if(l=c[d]){for(var f,p=e.call(l,l.__data__,d,c),h=dr(l,n),m=0,g=p.length;m<g;++m)(f=p[m])&&lr(f,t,n,m,p,h);i.push(p),a.push(l)}return new Mr(i,a,t,n)},selectChild:Pr.selectChild,selectChildren:Pr.selectChildren,filter:function(e){"function"!=typeof e&&(e=Ne(e));for(var t=this._groups,n=t.length,r=new Array(n),o=0;o<n;++o)for(var i,a=t[o],s=a.length,l=r[o]=[],c=0;c<s;++c)(i=a[c])&&e.call(i,i.__data__,c,a)&&l.push(i);return new Mr(r,this._parents,this._name,this._id)},merge:function(e){if(e._id!==this._id)throw new Error;for(var t=this._groups,n=e._groups,r=t.length,o=n.length,i=Math.min(r,o),a=new Array(r),s=0;s<i;++s)for(var l,c=t[s],u=n[s],d=c.length,f=a[s]=new Array(d),p=0;p<d;++p)(l=c[p]||u[p])&&(f[p]=l);for(;s<r;++s)a[s]=t[s];return new Mr(a,this._parents,this._name,this._id)},selection:function(){return new Nr(this._groups,this._parents)},transition:function(){for(var e=this._name,t=this._id,n=Tr(),r=this._groups,o=r.length,i=0;i<o;++i)for(var a,s=r[i],l=s.length,c=0;c<l;++c)if(a=s[c]){var u=dr(a,t);lr(a,e,n,c,s,{time:u.time+u.delay+u.duration,delay:0,duration:u.duration,ease:u.ease})}return new Mr(r,this._parents,e,n)},call:Pr.call,nodes:Pr.nodes,node:Pr.node,size:Pr.size,empty:Pr.empty,each:Pr.each,on:function(e,t){var n=this._id;return arguments.length<2?dr(this.node(),n).on.on(e):this.each(function(e,t,n){var r,o,i=function(e){return(e+"").trim().split(/^|\s+/).every((function(e){var t=e.indexOf(".");return t>=0&&(e=e.slice(0,t)),!e||"start"===e}))}(t)?cr:ur;return function(){var a=i(this,e),s=a.on;s!==r&&(o=(r=s).copy()).on(t,n),a.on=o}}(n,e,t))},attr:function(e,t){var n=we(e),r="transform"===n?zn:gr;return this.attrTween(e,"function"==typeof t?(n.local?Cr:xr)(n,r,mr(this,"attr."+e,t)):null==t?(n.local?br:yr)(n):(n.local?wr:vr)(n,r,t))},attrTween:function(e,t){var n="attr."+e;if(arguments.length<2)return(n=this.tween(n))&&n._value;if(null==t)return this.tween(n,null);if("function"!=typeof t)throw new Error;var r=we(e);return this.tween(n,(r.local?kr:Er)(r,t))},style:function(e,t,n){var r="transform"==(e+="")?Fn:gr;return null==t?this.styleTween(e,function(e,t){var n,r,o;return function(){var i=qe(this,e),a=(this.style.removeProperty(e),qe(this,e));return i===a?null:i===n&&a===r?o:o=t(n=i,r=a)}}(e,r)).on("end.style."+e,Or(e)):"function"==typeof t?this.styleTween(e,function(e,t,n){var r,o,i;return function(){var a=qe(this,e),s=n(this),l=s+"";return null==s&&(this.style.removeProperty(e),l=s=qe(this,e)),a===l?null:a===r&&l===o?i:(o=l,i=t(r=a,s))}}(e,r,mr(this,"style."+e,t))).each(function(e,t){var n,r,o,i,a="style."+t,s="end."+a;return function(){var l=ur(this,e),c=l.on,u=null==l.value[a]?i||(i=Or(t)):void 0;c===n&&o===u||(r=(n=c).copy()).on(s,o=u),l.on=r}}(this._id,e)):this.styleTween(e,function(e,t,n){var r,o,i=n+"";return function(){var a=qe(this,e);return a===i?null:a===r?o:o=t(r=a,n)}}(e,r,t),n).on("end.style."+e,null)},styleTween:function(e,t,n){var r="style."+(e+="");if(arguments.length<2)return(r=this.tween(r))&&r._value;if(null==t)return this.tween(r,null);if("function"!=typeof t)throw new Error;return this.tween(r,function(e,t,n){var r,o;function i(){var i=t.apply(this,arguments);return i!==o&&(r=(o=i)&&function(e,t,n){return function(r){this.style.setProperty(e,t.call(this,r),n)}}(e,i,n)),r}return i._value=t,i}(e,t,null==n?"":n))},text:function(e){return this.tween("text","function"==typeof e?function(e){return function(){var t=e(this);this.textContent=null==t?"":t}}(mr(this,"text",e)):function(e){return function(){this.textContent=e}}(null==e?"":e+""))},textTween:function(e){var t="text";if(arguments.length<1)return(t=this.tween(t))&&t._value;if(null==e)return this.tween(t,null);if("function"!=typeof e)throw new Error;return this.tween(t,function(e){var t,n;function r(){var r=e.apply(this,arguments);return r!==n&&(t=(n=r)&&function(e){return function(t){this.textContent=e.call(this,t)}}(r)),t}return r._value=e,r}(e))},remove:function(){return this.on("end.remove",function(e){return function(){var t=this.parentNode;for(var n in this.__transition)if(+n!==e)return;t&&t.removeChild(this)}}(this._id))},tween:function(e,t){var n=this._id;if(e+="",arguments.length<2){for(var r,o=dr(this.node(),n).tween,i=0,a=o.length;i<a;++i)if((r=o[i]).name===e)return r.value;return null}return this.each((null==t?pr:hr)(n,e,t))},delay:function(e){var t=this._id;return arguments.length?this.each(("function"==typeof e?Sr:Ir)(t,e)):dr(this.node(),t).delay},duration:function(e){var t=this._id;return arguments.length?this.each(("function"==typeof e?_r:Ar)(t,e)):dr(this.node(),t).duration},ease:function(e){var t=this._id;return arguments.length?this.each(function(e,t){if("function"!=typeof t)throw new Error;return function(){ur(this,e).ease=t}}(t,e)):dr(this.node(),t).ease},easeVarying:function(e){if("function"!=typeof e)throw new Error;return this.each(function(e,t){return function(){var n=t.apply(this,arguments);if("function"!=typeof n)throw new Error;ur(this,e).ease=n}}(this._id,e))},end:function(){var e,t,n=this,r=n._id,o=n.size();return new Promise((function(i,a){var s={value:a},l={value:function(){0==--o&&i()}};n.each((function(){var n=ur(this,r),o=n.on;o!==e&&((t=(e=o).copy())._.cancel.push(s),t._.interrupt.push(s),t._.end.push(l)),n.on=t})),0===o&&i()}))},[Symbol.iterator]:Pr[Symbol.iterator]};var Dr={time:null,delay:0,duration:250,ease:function(e){return((e*=2)<=1?e*e*e:(e-=2)*e*e+2)/2}};function jr(e,t){for(var n;!(n=e.__transition)||!(n=n[t]);)if(!(e=e.parentNode))throw new Error(`transition ${t} not found`);return n}Nt.prototype.interrupt=function(e){return this.each((function(){fr(this,e)}))},Nt.prototype.transition=function(e){var t,n;e instanceof Mr?(t=e._id,e=e._name):(t=Tr(),(n=Dr).time=qn(),e=null==e?null:e+"");for(var r=this._groups,o=r.length,i=0;i<o;++i)for(var a,s=r[i],l=s.length,c=0;c<l;++c)(a=s[c])&&lr(a,e,t,c,s,n||jr(a,t));return new Mr(r,this._parents,e,t)};var Lr=e=>()=>e;function Fr(e,{sourceEvent:t,target:n,transform:r,dispatch:o}){Object.defineProperties(this,{type:{value:e,enumerable:!0,configurable:!0},sourceEvent:{value:t,enumerable:!0,configurable:!0},target:{value:n,enumerable:!0,configurable:!0},transform:{value:r,enumerable:!0,configurable:!0},_:{value:o}})}function zr(e,t,n){this.k=e,this.x=t,this.y=n}zr.prototype={constructor:zr,scale:function(e){return 1===e?this:new zr(this.k*e,this.x,this.y)},translate:function(e,t){return 0===e&0===t?this:new zr(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 Br=new zr(1,0,0);function Vr(e){e.stopImmediatePropagation()}function Gr(e){e.preventDefault(),e.stopImmediatePropagation()}function Wr(e){return!(e.ctrlKey&&"wheel"!==e.type||e.button)}function Hr(){var e=this;return e instanceof SVGElement?(e=e.ownerSVGElement||e).hasAttribute("viewBox")?[[(e=e.viewBox.baseVal).x,e.y],[e.x+e.width,e.y+e.height]]:[[0,0],[e.width.baseVal.value,e.height.baseVal.value]]:[[0,0],[e.clientWidth,e.clientHeight]]}function Xr(){return this.__zoom||Br}function $r(e){return-e.deltaY*(1===e.deltaMode?.05:e.deltaMode?1:.002)*(e.ctrlKey?10:1)}function Zr(){return navigator.maxTouchPoints||"ontouchstart"in this}function Yr(e,t,n){var r=e.invertX(t[0][0])-n[0][0],o=e.invertX(t[1][0])-n[1][0],i=e.invertY(t[0][1])-n[0][1],a=e.invertY(t[1][1])-n[1][1];return e.translate(o>r?(r+o)/2:Math.min(0,r)||Math.max(0,o),a>i?(i+a)/2:Math.min(0,i)||Math.max(0,a))}function Ur(){var e,t,n,r=Wr,o=Hr,i=Yr,a=$r,s=Zr,l=[0,1/0],c=[[-1/0,-1/0],[1/0,1/0]],u=250,d=Wn,f=he("start","zoom","end"),p=0,h=10;function m(e){e.property("__zoom",Xr).on("wheel.zoom",C,{passive:!1}).on("mousedown.zoom",k).on("dblclick.zoom",E).filter(s).on("touchstart.zoom",S).on("touchmove.zoom",I).on("touchend.zoom touchcancel.zoom",_).style("-webkit-tap-highlight-color","rgba(0,0,0,0)")}function g(e,t){return(t=Math.max(l[0],Math.min(l[1],t)))===e.k?e:new zr(t,e.x,e.y)}function y(e,t,n){var r=t[0]-n[0]*e.k,o=t[1]-n[1]*e.k;return r===e.x&&o===e.y?e:new zr(e.k,r,o)}function b(e){return[(+e[0][0]+ +e[1][0])/2,(+e[0][1]+ +e[1][1])/2]}function v(e,t,n,r){e.on("start.zoom",(function(){w(this,arguments).event(r).start()})).on("interrupt.zoom end.zoom",(function(){w(this,arguments).event(r).end()})).tween("zoom",(function(){var e=this,i=arguments,a=w(e,i).event(r),s=o.apply(e,i),l=null==n?b(s):"function"==typeof n?n.apply(e,i):n,c=Math.max(s[1][0]-s[0][0],s[1][1]-s[0][1]),u=e.__zoom,f="function"==typeof t?t.apply(e,i):t,p=d(u.invert(l).concat(c/u.k),f.invert(l).concat(c/f.k));return function(e){if(1===e)e=f;else{var t=p(e),n=c/t[2];e=new zr(n,l[0]-t[0]*n,l[1]-t[1]*n)}a.zoom(null,e)}}))}function w(e,t,n){return!n&&e.__zooming||new x(e,t)}function x(e,t){this.that=e,this.args=t,this.active=0,this.sourceEvent=null,this.extent=o.apply(e,t),this.taps=0}function C(e,...t){if(r.apply(this,arguments)){var n=w(this,t).event(e),o=this.__zoom,s=Math.max(l[0],Math.min(l[1],o.k*Math.pow(2,a.apply(this,arguments)))),u=Rt(e);if(n.wheel)n.mouse[0][0]===u[0]&&n.mouse[0][1]===u[1]||(n.mouse[1]=o.invert(n.mouse[0]=u)),clearTimeout(n.wheel);else{if(o.k===s)return;n.mouse=[u,o.invert(u)],fr(this),n.start()}Gr(e),n.wheel=setTimeout((function(){n.wheel=null,n.end()}),150),n.zoom("mouse",i(y(g(o,s),n.mouse[0],n.mouse[1]),n.extent,c))}}function k(e,...t){if(!n&&r.apply(this,arguments)){var o=e.currentTarget,a=w(this,t,!0).event(e),s=Ot(e.view).on("mousemove.zoom",(function(e){if(Gr(e),!a.moved){var t=e.clientX-u,n=e.clientY-d;a.moved=t*t+n*n>p}a.event(e).zoom("mouse",i(y(a.that.__zoom,a.mouse[0]=Rt(e,o),a.mouse[1]),a.extent,c))}),!0).on("mouseup.zoom",(function(e){s.on("mousemove.zoom mouseup.zoom",null),Lt(e.view,a.moved),Gr(e),a.event(e).end()}),!0),l=Rt(e,o),u=e.clientX,d=e.clientY;jt(e.view),Vr(e),a.mouse=[l,this.__zoom.invert(l)],fr(this),a.start()}}function E(e,...t){if(r.apply(this,arguments)){var n=this.__zoom,a=Rt(e.changedTouches?e.changedTouches[0]:e,this),s=n.invert(a),l=n.k*(e.shiftKey?.5:2),d=i(y(g(n,l),a,s),o.apply(this,t),c);Gr(e),u>0?Ot(this).transition().duration(u).call(v,d,a,e):Ot(this).call(m.transform,d,a,e)}}function S(n,...o){if(r.apply(this,arguments)){var i,a,s,l,c=n.touches,u=c.length,d=w(this,o,n.changedTouches.length===u).event(n);for(Vr(n),a=0;a<u;++a)l=[l=Rt(s=c[a],this),this.__zoom.invert(l),s.identifier],d.touch0?d.touch1||d.touch0[2]===l[2]||(d.touch1=l,d.taps=0):(d.touch0=l,i=!0,d.taps=1+!!e);e&&(e=clearTimeout(e)),i&&(d.taps<2&&(t=l[0],e=setTimeout((function(){e=null}),500)),fr(this),d.start())}}function I(e,...t){if(this.__zooming){var n,r,o,a,s=w(this,t).event(e),l=e.changedTouches,u=l.length;for(Gr(e),n=0;n<u;++n)o=Rt(r=l[n],this),s.touch0&&s.touch0[2]===r.identifier?s.touch0[0]=o:s.touch1&&s.touch1[2]===r.identifier&&(s.touch1[0]=o);if(r=s.that.__zoom,s.touch1){var d=s.touch0[0],f=s.touch0[1],p=s.touch1[0],h=s.touch1[1],m=(m=p[0]-d[0])*m+(m=p[1]-d[1])*m,b=(b=h[0]-f[0])*b+(b=h[1]-f[1])*b;r=g(r,Math.sqrt(m/b)),o=[(d[0]+p[0])/2,(d[1]+p[1])/2],a=[(f[0]+h[0])/2,(f[1]+h[1])/2]}else{if(!s.touch0)return;o=s.touch0[0],a=s.touch0[1]}s.zoom("touch",i(y(r,o,a),s.extent,c))}}function _(e,...r){if(this.__zooming){var o,i,a=w(this,r).event(e),s=e.changedTouches,l=s.length;for(Vr(e),n&&clearTimeout(n),n=setTimeout((function(){n=null}),500),o=0;o<l;++o)i=s[o],a.touch0&&a.touch0[2]===i.identifier?delete a.touch0:a.touch1&&a.touch1[2]===i.identifier&&delete a.touch1;if(a.touch1&&!a.touch0&&(a.touch0=a.touch1,delete a.touch1),a.touch0)a.touch0[1]=this.__zoom.invert(a.touch0[0]);else if(a.end(),2===a.taps&&(i=Rt(i,this),Math.hypot(t[0]-i[0],t[1]-i[1])<h)){var c=Ot(this).on("dblclick.zoom");c&&c.apply(this,arguments)}}}return m.transform=function(e,t,n,r){var o=e.selection?e.selection():e;o.property("__zoom",Xr),e!==o?v(e,t,n,r):o.interrupt().each((function(){w(this,arguments).event(r).start().zoom(null,"function"==typeof t?t.apply(this,arguments):t).end()}))},m.scaleBy=function(e,t,n,r){m.scaleTo(e,(function(){return this.__zoom.k*("function"==typeof t?t.apply(this,arguments):t)}),n,r)},m.scaleTo=function(e,t,n,r){m.transform(e,(function(){var e=o.apply(this,arguments),r=this.__zoom,a=null==n?b(e):"function"==typeof n?n.apply(this,arguments):n,s=r.invert(a),l="function"==typeof t?t.apply(this,arguments):t;return i(y(g(r,l),a,s),e,c)}),n,r)},m.translateBy=function(e,t,n,r){m.transform(e,(function(){return i(this.__zoom.translate("function"==typeof t?t.apply(this,arguments):t,"function"==typeof n?n.apply(this,arguments):n),o.apply(this,arguments),c)}),null,r)},m.translateTo=function(e,t,n,r,a){m.transform(e,(function(){var e=o.apply(this,arguments),a=this.__zoom,s=null==r?b(e):"function"==typeof r?r.apply(this,arguments):r;return i(Br.translate(s[0],s[1]).scale(a.k).translate("function"==typeof t?-t.apply(this,arguments):-t,"function"==typeof n?-n.apply(this,arguments):-n),e,c)}),r,a)},x.prototype={event:function(e){return e&&(this.sourceEvent=e),this},start:function(){return 1==++this.active&&(this.that.__zooming=this,this.emit("start")),this},zoom:function(e,t){return this.mouse&&"mouse"!==e&&(this.mouse[1]=t.invert(this.mouse[0])),this.touch0&&"touch"!==e&&(this.touch0[1]=t.invert(this.touch0[0])),this.touch1&&"touch"!==e&&(this.touch1[1]=t.invert(this.touch1[0])),this.that.__zoom=t,this.emit("zoom"),this},end:function(){return 0==--this.active&&(delete this.that.__zooming,this.emit("end")),this},emit:function(e){var t=Ot(this.that).datum();f.call(e,this.that,new Fr(e,{sourceEvent:this.sourceEvent,target:m,transform:this.that.__zoom,dispatch:f}),t)}},m.wheelDelta=function(e){return arguments.length?(a="function"==typeof e?e:Lr(+e),m):a},m.filter=function(e){return arguments.length?(r="function"==typeof e?e:Lr(!!e),m):r},m.touchable=function(e){return arguments.length?(s="function"==typeof e?e:Lr(!!e),m):s},m.extent=function(e){return arguments.length?(o="function"==typeof e?e:Lr([[+e[0][0],+e[0][1]],[+e[1][0],+e[1][1]]]),m):o},m.scaleExtent=function(e){return arguments.length?(l[0]=+e[0],l[1]=+e[1],m):[l[0],l[1]]},m.translateExtent=function(e){return arguments.length?(c[0][0]=+e[0][0],c[1][0]=+e[1][0],c[0][1]=+e[0][1],c[1][1]=+e[1][1],m):[[c[0][0],c[0][1]],[c[1][0],c[1][1]]]},m.constrain=function(e){return arguments.length?(i=e,m):i},m.duration=function(e){return arguments.length?(u=+e,m):u},m.interpolate=function(e){return arguments.length?(d=e,m):d},m.on=function(){var e=f.on.apply(f,arguments);return e===f?m:e},m.clickDistance=function(e){return arguments.length?(p=(e=+e)*e,m):Math.sqrt(p)},m.tapDistance=function(e){return arguments.length?(h=+e,m):h},m}zr.prototype;const Jr=i(null),Kr=Jr.Provider,qr=()=>"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.",Qr=e=>`Node type "${e}" not found. Using fallback type "default".`,eo=()=>"The React Flow parent container needs a width and a height to render the graph.",to=()=>"Only child nodes can use a parent extent.",no=()=>"Can't create edge. An edge needs a source and a target.",ro=e=>`Marker type "${e}" doesn't exist.`,oo=(e,t)=>`Couldn't create edge for ${e?"target":"source"} handle id: "${e?t.targetHandle:t.sourceHandle}", edge id: ${t.id}.`,io=()=>"Handle: No node id found. Make sure to only use a Handle inside a custom Node.",ao=e=>`Edge type "${e}" not found. Using fallback type "default".`,so=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.`,lo=(()=>"[React Flow]: Seems like you have not used zustand provider as an ancestor. Help: https://reactflow.dev/error#001")();function co(e,t){const n=o(Jr);if(null===n)throw new Error(lo);return ue(n,e,t)}const uo=()=>{const e=o(Jr);if(null===e)throw new Error(lo);return a((()=>({getState:e.getState,setState:e.setState,subscribe:e.subscribe,destroy:e.destroy})),[e])},fo=e=>e.userSelectionActive?"none":"all";function po({position:e,children:n,className:r,style:o,...i}){const a=co(fo),s=`${e}`.split("-");return t.createElement("div",{className:ae(["react-flow__panel",r,...s]),style:{...o,pointerEvents:a},...i},n)}function ho({proOptions:e,position:n="bottom-right"}){return e?.hideAttribution?null:t.createElement(po,{position:n,className:"react-flow__attribution","data-message":"Please only hide this attribution when you are subscribed to React Flow Pro: https://reactflow.dev/pro"},t.createElement("a",{href:"https://reactflow.dev",target:"_blank",rel:"noopener noreferrer","aria-label":"React Flow attribution"},"React Flow"))}var mo=r((({x:e,y:n,label:r,labelStyle:o={},labelShowBg:i=!0,labelBgStyle:a={},labelBgPadding:l=[2,4],labelBgBorderRadius:d=2,children:f,className:p,...h})=>{const m=u(null),[g,y]=c({x:0,y:0,width:0,height:0}),b=ae(["react-flow__edge-textwrapper",p]);return s((()=>{if(m.current){const e=m.current.getBBox();y({x:e.x,y:e.y,width:e.width,height:e.height})}}),[r]),void 0!==r&&r?t.createElement("g",{transform:`translate(${e-g.width/2} ${n-g.height/2})`,className:b,visibility:g.width?"visible":"hidden",...h},i&&t.createElement("rect",{width:g.width+2*l[0],x:-l[0],y:-l[1],height:g.height+2*l[1],className:"react-flow__edge-textbg",style:a,rx:d,ry:d}),t.createElement("text",{className:"react-flow__edge-text",y:g.height/2,dy:"0.3em",ref:m,style:o},r),f):null}));const go=e=>({width:e.offsetWidth,height:e.offsetHeight}),yo=(e,t=0,n=1)=>Math.min(Math.max(e,t),n),bo=(e={x:0,y:0},t)=>({x:yo(e.x,t[0][0],t[1][0]),y:yo(e.y,t[0][1],t[1][1])}),vo=(e,t,n)=>e<t?yo(Math.abs(e-t),1,50)/50:e>n?-yo(Math.abs(e-n),1,50)/50:0,wo=(e,t)=>[20*vo(e.x,35,t.width-35),20*vo(e.y,35,t.height-35)],xo=e=>e.getRootNode?.()||window?.document,Co=(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)}),ko=({x:e,y:t,width:n,height:r})=>({x:e,y:t,x2:e+n,y2:t+r}),Eo=({x:e,y:t,x2:n,y2:r})=>({x:e,y:t,width:n-e,height:r-t}),So=e=>({...e.positionAbsolute||{x:0,y:0},width:e.width||0,height:e.height||0}),Io=(e,t)=>{const n=Math.max(0,Math.min(e.x+e.width,t.x+t.width)-Math.max(e.x,t.x)),r=Math.max(0,Math.min(e.y+e.height,t.y+t.height)-Math.max(e.y,t.y));return Math.ceil(n*r)},_o=e=>!isNaN(e)&&isFinite(e),Ao=Symbol.for("internals"),No=["Enter"," ","Escape"],Oo=(e,t)=>{"development"===process.env.NODE_ENV&&console.warn(`[React Flow]: ${t} Help: https://reactflow.dev/error#${e}`)};function Ro(e){const t=(e=>"nativeEvent"in e)(e)?e.nativeEvent:e,n=t.composedPath?.()?.[0]||e.target;return["INPUT","SELECT","TEXTAREA"].includes(n?.nodeName)||n?.hasAttribute("contenteditable")||!!n?.closest(".nokey")}const Mo=e=>"clientX"in e,To=(e,t)=>{const n=Mo(e),r=n?e.clientX:e.touches?.[0].clientX,o=n?e.clientY:e.touches?.[0].clientY;return{x:r-(t?.left??0),y:o-(t?.top??0)}},Po=()=>"undefined"!=typeof navigator&&navigator?.userAgent?.indexOf("Mac")>=0,Do=({id:e,path:n,labelX:r,labelY:o,label:i,labelStyle:a,labelShowBg:s,labelBgStyle:l,labelBgPadding:c,labelBgBorderRadius:u,style:d,markerEnd:f,markerStart:p,interactionWidth:h=20})=>t.createElement(t.Fragment,null,t.createElement("path",{id:e,style:d,d:n,fill:"none",className:"react-flow__edge-path",markerEnd:f,markerStart:p}),h&&t.createElement("path",{d:n,fill:"none",strokeOpacity:0,strokeWidth:h,className:"react-flow__edge-interaction"}),i&&_o(r)&&_o(o)?t.createElement(mo,{x:r,y:o,label:i,labelStyle:a,labelShowBg:s,labelBgStyle:l,labelBgPadding:c,labelBgBorderRadius:u}):null);function jo(e,t,n){return void 0===n?n:r=>{const o=t().edges.find((t=>t.id===e));o&&n(r,{...o})}}function Lo({sourceX:e,sourceY:t,targetX:n,targetY:r}){const o=Math.abs(n-e)/2,i=n<e?n+o:n-o,a=Math.abs(r-t)/2;return[i,r<t?r+a:r-a,o,a]}function Fo({sourceX:e,sourceY:t,targetX:n,targetY:r,sourceControlX:o,sourceControlY:i,targetControlX:a,targetControlY:s}){const l=.125*e+.375*o+.375*a+.125*n,c=.125*t+.375*i+.375*s+.125*r;return[l,c,Math.abs(l-e),Math.abs(c-t)]}var zo,Bo,Vo,Go,Wo,Ho;function Xo({pos:e,x1:t,y1:n,x2:r,y2:o}){return e===Ho.Left||e===Ho.Right?[.5*(t+r),n]:[t,.5*(n+o)]}function $o({sourceX:e,sourceY:t,sourcePosition:n=Ho.Bottom,targetX:r,targetY:o,targetPosition:i=Ho.Top}){const[a,s]=Xo({pos:n,x1:e,y1:t,x2:r,y2:o}),[l,c]=Xo({pos:i,x1:r,y1:o,x2:e,y2:t}),[u,d,f,p]=Fo({sourceX:e,sourceY:t,targetX:r,targetY:o,sourceControlX:a,sourceControlY:s,targetControlX:l,targetControlY:c});return[`M${e},${t} C${a},${s} ${l},${c} ${r},${o}`,u,d,f,p]}Do.displayName="BaseEdge",function(e){e.Strict="strict",e.Loose="loose"}(zo||(zo={})),function(e){e.Free="free",e.Vertical="vertical",e.Horizontal="horizontal"}(Bo||(Bo={})),function(e){e.Partial="partial",e.Full="full"}(Vo||(Vo={})),function(e){e.Bezier="default",e.Straight="straight",e.Step="step",e.SmoothStep="smoothstep",e.SimpleBezier="simplebezier"}(Go||(Go={})),function(e){e.Arrow="arrow",e.ArrowClosed="arrowclosed"}(Wo||(Wo={})),function(e){e.Left="left",e.Top="top",e.Right="right",e.Bottom="bottom"}(Ho||(Ho={}));const Zo=r((({sourceX:e,sourceY:n,targetX:r,targetY:o,sourcePosition:i=Ho.Bottom,targetPosition:a=Ho.Top,label:s,labelStyle:l,labelShowBg:c,labelBgStyle:u,labelBgPadding:d,labelBgBorderRadius:f,style:p,markerEnd:h,markerStart:m,interactionWidth:g})=>{const[y,b,v]=$o({sourceX:e,sourceY:n,sourcePosition:i,targetX:r,targetY:o,targetPosition:a});return t.createElement(Do,{path:y,labelX:b,labelY:v,label:s,labelStyle:l,labelShowBg:c,labelBgStyle:u,labelBgPadding:d,labelBgBorderRadius:f,style:p,markerEnd:h,markerStart:m,interactionWidth:g})}));Zo.displayName="SimpleBezierEdge";const Yo={[Ho.Left]:{x:-1,y:0},[Ho.Right]:{x:1,y:0},[Ho.Top]:{x:0,y:-1},[Ho.Bottom]:{x:0,y:1}},Uo=(e,t)=>Math.sqrt(Math.pow(t.x-e.x,2)+Math.pow(t.y-e.y,2));function Jo({source:e,sourcePosition:t=Ho.Bottom,target:n,targetPosition:r=Ho.Top,center:o,offset:i}){const a=Yo[t],s=Yo[r],l={x:e.x+a.x*i,y:e.y+a.y*i},c={x:n.x+s.x*i,y:n.y+s.y*i},u=(({source:e,sourcePosition:t=Ho.Bottom,target:n})=>t===Ho.Left||t===Ho.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})({source:l,sourcePosition:t,target:c}),d=0!==u.x?"x":"y",f=u[d];let p,h,m=[];const g={x:0,y:0},y={x:0,y:0},[b,v,w,x]=Lo({sourceX:e.x,sourceY:e.y,targetX:n.x,targetY:n.y});if(a[d]*s[d]==-1){p=o.x??b,h=o.y??v;const e=[{x:p,y:l.y},{x:p,y:c.y}],t=[{x:l.x,y:h},{x:c.x,y:h}];m=a[d]===f?"x"===d?e:t:"x"===d?t:e}else{const o=[{x:l.x,y:c.y}],u=[{x:c.x,y:l.y}];if(m="x"===d?a.x===f?u:o:a.y===f?o:u,t===r){const t=Math.abs(e[d]-n[d]);if(t<=i){const r=Math.min(i-1,i-t);a[d]===f?g[d]=(l[d]>e[d]?-1:1)*r:y[d]=(c[d]>n[d]?-1:1)*r}}if(t!==r){const e="x"===d?"y":"x",t=a[d]===s[e],n=l[e]>c[e],r=l[e]<c[e];(1===a[d]&&(!t&&n||t&&r)||1!==a[d]&&(!t&&r||t&&n))&&(m="x"===d?o:u)}const b={x:l.x+g.x,y:l.y+g.y},v={x:c.x+y.x,y:c.y+y.y};Math.max(Math.abs(b.x-m[0].x),Math.abs(v.x-m[0].x))>=Math.max(Math.abs(b.y-m[0].y),Math.abs(v.y-m[0].y))?(p=(b.x+v.x)/2,h=m[0].y):(p=m[0].x,h=(b.y+v.y)/2)}return[[e,{x:l.x+g.x,y:l.y+g.y},...m,{x:c.x+y.x,y:c.y+y.y},n],p,h,w,x]}function Ko({sourceX:e,sourceY:t,sourcePosition:n=Ho.Bottom,targetX:r,targetY:o,targetPosition:i=Ho.Top,borderRadius:a=5,centerX:s,centerY:l,offset:c=20}){const[u,d,f,p,h]=Jo({source:{x:e,y:t},sourcePosition:n,target:{x:r,y:o},targetPosition:i,center:{x:s,y:l},offset:c}),m=u.reduce(((e,t,n)=>{let r="";return r=n>0&&n<u.length-1?function(e,t,n,r){const o=Math.min(Uo(e,t)/2,Uo(t,n)/2,r),{x:i,y:a}=t;if(e.x===i&&i===n.x||e.y===a&&a===n.y)return`L${i} ${a}`;if(e.y===a)return`L ${i+o*(e.x<n.x?-1:1)},${a}Q ${i},${a} ${i},${a+o*(e.y<n.y?1:-1)}`;const s=e.x<n.x?1:-1;return`L ${i},${a+o*(e.y<n.y?-1:1)}Q ${i},${a} ${i+o*s},${a}`}(u[n-1],t,u[n+1],a):`${0===n?"M":"L"}${t.x} ${t.y}`,e+=r}),"");return[m,d,f,p,h]}const qo=r((({sourceX:e,sourceY:n,targetX:r,targetY:o,label:i,labelStyle:a,labelShowBg:s,labelBgStyle:l,labelBgPadding:c,labelBgBorderRadius:u,style:d,sourcePosition:f=Ho.Bottom,targetPosition:p=Ho.Top,markerEnd:h,markerStart:m,pathOptions:g,interactionWidth:y})=>{const[b,v,w]=Ko({sourceX:e,sourceY:n,sourcePosition:f,targetX:r,targetY:o,targetPosition:p,borderRadius:g?.borderRadius,offset:g?.offset});return t.createElement(Do,{path:b,labelX:v,labelY:w,label:i,labelStyle:a,labelShowBg:s,labelBgStyle:l,labelBgPadding:c,labelBgBorderRadius:u,style:d,markerEnd:h,markerStart:m,interactionWidth:y})}));qo.displayName="SmoothStepEdge";const Qo=r((e=>t.createElement(qo,{...e,pathOptions:a((()=>({borderRadius:0,offset:e.pathOptions?.offset})),[e.pathOptions?.offset])})));Qo.displayName="StepEdge";const ei=r((({sourceX:e,sourceY:n,targetX:r,targetY:o,label:i,labelStyle:a,labelShowBg:s,labelBgStyle:l,labelBgPadding:c,labelBgBorderRadius:u,style:d,markerEnd:f,markerStart:p,interactionWidth:h})=>{const[m,g,y]=function({sourceX:e,sourceY:t,targetX:n,targetY:r}){const[o,i,a,s]=Lo({sourceX:e,sourceY:t,targetX:n,targetY:r});return[`M ${e},${t}L ${n},${r}`,o,i,a,s]}({sourceX:e,sourceY:n,targetX:r,targetY:o});return t.createElement(Do,{path:m,labelX:g,labelY:y,label:i,labelStyle:a,labelShowBg:s,labelBgStyle:l,labelBgPadding:c,labelBgBorderRadius:u,style:d,markerEnd:f,markerStart:p,interactionWidth:h})}));function ti(e,t){return e>=0?.5*e:25*t*Math.sqrt(-e)}function ni({pos:e,x1:t,y1:n,x2:r,y2:o,c:i}){switch(e){case Ho.Left:return[t-ti(t-r,i),n];case Ho.Right:return[t+ti(r-t,i),n];case Ho.Top:return[t,n-ti(n-o,i)];case Ho.Bottom:return[t,n+ti(o-n,i)]}}function ri({sourceX:e,sourceY:t,sourcePosition:n=Ho.Bottom,targetX:r,targetY:o,targetPosition:i=Ho.Top,curvature:a=.25}){const[s,l]=ni({pos:n,x1:e,y1:t,x2:r,y2:o,c:a}),[c,u]=ni({pos:i,x1:r,y1:o,x2:e,y2:t,c:a}),[d,f,p,h]=Fo({sourceX:e,sourceY:t,targetX:r,targetY:o,sourceControlX:s,sourceControlY:l,targetControlX:c,targetControlY:u});return[`M${e},${t} C${s},${l} ${c},${u} ${r},${o}`,d,f,p,h]}ei.displayName="StraightEdge";const oi=r((({sourceX:e,sourceY:n,targetX:r,targetY:o,sourcePosition:i=Ho.Bottom,targetPosition:a=Ho.Top,label:s,labelStyle:l,labelShowBg:c,labelBgStyle:u,labelBgPadding:d,labelBgBorderRadius:f,style:p,markerEnd:h,markerStart:m,pathOptions:g,interactionWidth:y})=>{const[b,v,w]=ri({sourceX:e,sourceY:n,sourcePosition:i,targetX:r,targetY:o,targetPosition:a,curvature:g?.curvature});return t.createElement(Do,{path:b,labelX:v,labelY:w,label:s,labelStyle:l,labelShowBg:c,labelBgStyle:u,labelBgPadding:d,labelBgBorderRadius:f,style:p,markerEnd:h,markerStart:m,interactionWidth:y})}));oi.displayName="BezierEdge";const ii=i(null),ai=ii.Provider;ii.Consumer;const si=({source:e,sourceHandle:t,target:n,targetHandle:r})=>`reactflow__edge-${e}${t||""}-${n}${r||""}`,li=(e,t)=>{if(void 0===e)return"";if("string"==typeof e)return e;return`${t?`${t}__`:""}${Object.keys(e).sort().map((t=>`${t}=${e[t]}`)).join("&")}`},ci=({x:e,y:t},[n,r,o],i,[a,s])=>{const l={x:(e-n)/o,y:(t-r)/o};return i?{x:a*Math.round(l.x/a),y:s*Math.round(l.y/s)}:l},ui=({x:e,y:t},[n,r,o])=>({x:e*o+n,y:t*o+r}),di=(e,t=[0,0])=>{if(!e)return{x:0,y:0,positionAbsolute:{x:0,y:0}};const n=(e.width??0)*t[0],r=(e.height??0)*t[1],o={x:e.position.x-n,y:e.position.y-r};return{...o,positionAbsolute:e.positionAbsolute?{x:e.positionAbsolute.x-n,y:e.positionAbsolute.y-r}:o}},fi=(e,t=[0,0])=>{if(0===e.length)return{x:0,y:0,width:0,height:0};const n=e.reduce(((e,n)=>{const{x:r,y:o}=di(n,t).positionAbsolute;return Co(e,ko({x:r,y:o,width:n.width||0,height:n.height||0}))}),{x:1/0,y:1/0,x2:-1/0,y2:-1/0});return Eo(n)},pi=(e,t,[n,r,o]=[0,0,1],i=!1,a=!1,s=[0,0])=>{const l={x:(t.x-n)/o,y:(t.y-r)/o,width:t.width/o,height:t.height/o},c=[];return e.forEach((e=>{const{width:t,height:n,selectable:r=!0,hidden:o=!1}=e;if(a&&!r||o)return!1;const{positionAbsolute:u}=di(e,s),d={x:u.x,y:u.y,width:t||0,height:n||0},f=Io(l,d);(void 0===t||void 0===n||null===t||null===n||i&&f>0||f>=(t||0)*(n||0)||e.dragging)&&c.push(e)})),c},hi=(e,t)=>{const n=e.map((e=>e.id));return t.filter((e=>n.includes(e.source)||n.includes(e.target)))},mi=(e,t,n,r,o,i=.1)=>{const a=t/(e.width*(1+i)),s=n/(e.height*(1+i)),l=Math.min(a,s),c=yo(l,r,o);return{x:t/2-(e.x+e.width/2)*c,y:n/2-(e.y+e.height/2)*c,zoom:c}},gi=(e,t=0)=>e.transition().duration(t);function yi(e,t,n,r){return(t[n]||[]).reduce(((t,o)=>(`${e.id}-${o.id}-${n}`!==r&&t.push({id:o.id||null,type:n,nodeId:e.id,x:(e.positionAbsolute?.x??0)+o.x+o.width/2,y:(e.positionAbsolute?.y??0)+o.y+o.height/2}),t)),[])}const bi={source:null,target:null,sourceHandle:null,targetHandle:null},vi=()=>({handleDomNode:null,isValid:!1,connection:bi,endHandle:null});function wi(e,t,n,r,o,i,a){const s="target"===o,l=a.querySelector(`.react-flow__handle[data-id="${e?.nodeId}-${e?.id}-${e?.type}"]`),c={...vi(),handleDomNode:l};if(l){const e=xi(void 0,l),o=l.getAttribute("data-nodeid"),a=l.getAttribute("data-handleid"),u=l.classList.contains("connectable"),d=l.classList.contains("connectableend"),f={source:s?o:n,sourceHandle:s?a:r,target:s?n:o,targetHandle:s?r:a};c.connection=f;u&&d&&(t===zo.Strict?s&&"source"===e||!s&&"target"===e:o!==n||a!==r)&&(c.endHandle={nodeId:o,handleId:a,type:e},c.isValid=i(f))}return c}function xi(e,t){return e||(t?.classList.contains("target")?"target":t?.classList.contains("source")?"source":null)}function Ci(e){e?.classList.remove("valid","connecting","react-flow__handle-valid","react-flow__handle-connecting")}function ki(e,t){let n=null;return t?n="valid":e&&!t&&(n="invalid"),n}function Ei({event:e,handleId:t,nodeId:n,onConnect:r,isTarget:o,getState:i,setState:a,isValidConnection:s,edgeUpdaterType:l,onReconnectEnd:c}){const u=xo(e.target),{connectionMode:d,domNode:f,autoPanOnConnect:p,connectionRadius:h,onConnectStart:m,panBy:g,getNodes:y,cancelConnection:b}=i();let v,w=0;const{x:x,y:C}=To(e),k=u?.elementFromPoint(x,C),E=xi(l,k),S=f?.getBoundingClientRect();if(!S||!E)return;let I,_=To(e,S),A=!1,N=null,O=!1,R=null;const M=function({nodes:e,nodeId:t,handleId:n,handleType:r}){return e.reduce(((e,o)=>{if(o[Ao]){const{handleBounds:i}=o[Ao];let a=[],s=[];i&&(a=yi(o,i,"source",`${t}-${n}-${r}`),s=yi(o,i,"target",`${t}-${n}-${r}`)),e.push(...a,...s)}return e}),[])}({nodes:y(),nodeId:n,handleId:t,handleType:E}),T=()=>{if(!p)return;const[e,t]=wo(_,S);g({x:e,y:t}),w=requestAnimationFrame(T)};function P(e){const{transform:r}=i();_=To(e,S);const{handle:l,validHandleResult:c}=function(e,t,n,r,o,i){const{x:a,y:s}=To(e),l=t.elementsFromPoint(a,s).find((e=>e.classList.contains("react-flow__handle")));if(l){const e=l.getAttribute("data-nodeid");if(e){const t=xi(void 0,l),r=l.getAttribute("data-handleid"),a=i({nodeId:e,id:r,type:t});if(a){const i=o.find((n=>n.nodeId===e&&n.type===t&&n.id===r));return{handle:{id:r,type:t,nodeId:e,x:i?.x||n.x,y:i?.y||n.y},validHandleResult:a}}}}let c=[],u=1/0;if(o.forEach((e=>{const t=Math.sqrt((e.x-n.x)**2+(e.y-n.y)**2);if(t<=r){const n=i(e);t<=u&&(t<u?c=[{handle:e,validHandleResult:n}]:t===u&&c.push({handle:e,validHandleResult:n}),u=t)}})),!c.length)return{handle:null,validHandleResult:vi()};if(1===c.length)return c[0];const d=c.some((({validHandleResult:e})=>e.isValid)),f=c.some((({handle:e})=>"target"===e.type));return c.find((({handle:e,validHandleResult:t})=>f?"target"===e.type:!d||t.isValid))||c[0]}(e,u,ci(_,r,!1,[1,1]),h,M,(e=>wi(e,d,n,t,o?"target":"source",s,u)));if(v=l,A||(T(),A=!0),R=c.handleDomNode,N=c.connection,O=c.isValid,a({connectionPosition:v&&O?ui({x:v.x,y:v.y},r):_,connectionStatus:ki(!!v,O),connectionEndHandle:c.endHandle}),!v&&!O&&!R)return Ci(I);N.source!==N.target&&R&&(Ci(I),I=R,R.classList.add("connecting","react-flow__handle-connecting"),R.classList.toggle("valid",O),R.classList.toggle("react-flow__handle-valid",O))}function D(e){(v||R)&&N&&O&&r?.(N),i().onConnectEnd?.(e),l&&c?.(e),Ci(I),b(),cancelAnimationFrame(w),A=!1,O=!1,N=null,R=null,u.removeEventListener("mousemove",P),u.removeEventListener("mouseup",D),u.removeEventListener("touchmove",P),u.removeEventListener("touchend",D)}a({connectionPosition:_,connectionStatus:null,connectionNodeId:n,connectionHandleId:t,connectionHandleType:E,connectionStartHandle:{nodeId:n,handleId:t,type:E},connectionEndHandle:null}),m?.(e,{nodeId:n,handleId:t,handleType:E}),u.addEventListener("mousemove",P),u.addEventListener("mouseup",D),u.addEventListener("touchmove",P),u.addEventListener("touchend",D)}const Si=()=>!0,Ii=e=>({connectionStartHandle:e.connectionStartHandle,connectOnClick:e.connectOnClick,noPanClassName:e.noPanClassName}),_i=n((({type:e="source",position:n=Ho.Top,isValidConnection:r,isConnectable:i=!0,isConnectableStart:a=!0,isConnectableEnd:s=!0,id:l,onConnect:c,children:u,className:d,onMouseDown:f,onTouchStart:p,...h},m)=>{const g=l||null,y="target"===e,b=uo(),v=o(ii),{connectOnClick:w,noPanClassName:x}=co(Ii,fe),{connecting:C,clickConnecting:k}=co(((e,t,n)=>r=>{const{connectionStartHandle:o,connectionEndHandle:i,connectionClickStartHandle:a}=r;return{connecting:o?.nodeId===e&&o?.handleId===t&&o?.type===n||i?.nodeId===e&&i?.handleId===t&&i?.type===n,clickConnecting:a?.nodeId===e&&a?.handleId===t&&a?.type===n}})(v,g,e),fe);v||b.getState().onError?.("010",io());const E=e=>{const{defaultEdgeOptions:t,onConnect:n,hasDefaultEdges:r}=b.getState(),o={...t,...e};if(r){const{edges:e,setEdges:t}=b.getState();t(((e,t)=>{if(!e.source||!e.target)return Oo("006",no()),t;let n;return n=(e=>"id"in e&&"source"in e&&"target"in e)(e)?{...e}:{...e,id:si(e)},((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)))))(n,t)?t:t.concat(n)})(o,e))}n?.(o),c?.(o)},S=e=>{if(!v)return;const t=Mo(e);a&&(t&&0===e.button||!t)&&Ei({event:e,handleId:g,nodeId:v,onConnect:E,isTarget:y,getState:b.getState,setState:b.setState,isValidConnection:r||b.getState().isValidConnection||Si}),t?f?.(e):p?.(e)};return t.createElement("div",{"data-handleid":g,"data-nodeid":v,"data-handlepos":n,"data-id":`${v}-${g}-${e}`,className:ae(["react-flow__handle",`react-flow__handle-${n}`,"nodrag",x,d,{source:!y,target:y,connectable:i,connectablestart:a,connectableend:s,connecting:k,connectionindicator:i&&(a&&!C||s&&C)}]),onMouseDown:S,onTouchStart:S,onClick:w?t=>{const{onClickConnectStart:n,onClickConnectEnd:o,connectionClickStartHandle:i,connectionMode:s,isValidConnection:l}=b.getState();if(!v||!i&&!a)return;if(!i)return n?.(t,{nodeId:v,handleId:g,handleType:e}),void b.setState({connectionClickStartHandle:{nodeId:v,type:e,handleId:g}});const c=xo(t.target),u=r||l||Si,{connection:d,isValid:f}=wi({nodeId:v,id:g,type:e},s,i.nodeId,i.handleId||null,i.type,u,c);f&&E(d),o?.(t),b.setState({connectionClickStartHandle:null})}:void 0,ref:m,...h},u)}));_i.displayName="Handle";var Ai=r(_i);const Ni=({data:e,isConnectable:n,targetPosition:r=Ho.Top,sourcePosition:o=Ho.Bottom})=>t.createElement(t.Fragment,null,t.createElement(Ai,{type:"target",position:r,isConnectable:n}),e?.label,t.createElement(Ai,{type:"source",position:o,isConnectable:n}));Ni.displayName="DefaultNode";var Oi=r(Ni);const Ri=({data:e,isConnectable:n,sourcePosition:r=Ho.Bottom})=>t.createElement(t.Fragment,null,e?.label,t.createElement(Ai,{type:"source",position:r,isConnectable:n}));Ri.displayName="InputNode";var Mi=r(Ri);const Ti=({data:e,isConnectable:n,targetPosition:r=Ho.Top})=>t.createElement(t.Fragment,null,t.createElement(Ai,{type:"target",position:r,isConnectable:n}),e?.label);Ti.displayName="OutputNode";var Pi=r(Ti);const Di=()=>null;Di.displayName="GroupNode";const ji=e=>({selectedNodes:e.getNodes().filter((e=>e.selected)),selectedEdges:e.edges.filter((e=>e.selected)).map((e=>({...e})))}),Li=e=>e.id;function Fi(e,t){return fe(e.selectedNodes.map(Li),t.selectedNodes.map(Li))&&fe(e.selectedEdges.map(Li),t.selectedEdges.map(Li))}const zi=r((({onSelectionChange:e})=>{const t=uo(),{selectedNodes:n,selectedEdges:r}=co(ji,Fi);return s((()=>{const o={nodes:n,edges:r};e?.(o),t.getState().onSelectionChange.forEach((e=>e(o)))}),[n,r,e]),null}));zi.displayName="SelectionListener";const Bi=e=>!!e.onSelectionChange;function Vi({onSelectionChange:e}){const n=co(Bi);return e||n?t.createElement(zi,{onSelectionChange:e}):null}const Gi=e=>({setNodes:e.setNodes,setEdges:e.setEdges,setDefaultNodesAndEdges:e.setDefaultNodesAndEdges,setMinZoom:e.setMinZoom,setMaxZoom:e.setMaxZoom,setTranslateExtent:e.setTranslateExtent,setNodeExtent:e.setNodeExtent,reset:e.reset});function Wi(e,t){s((()=>{void 0!==e&&t(e)}),[e])}function Hi(e,t,n){s((()=>{void 0!==t&&n({[e]:t})}),[t])}const Xi=({nodes:e,edges:t,defaultNodes:n,defaultEdges:r,onConnect:o,onConnectStart:i,onConnectEnd:a,onClickConnectStart:l,onClickConnectEnd:c,nodesDraggable:u,nodesConnectable:d,nodesFocusable:f,edgesFocusable:p,edgesUpdatable:h,elevateNodesOnSelect:m,minZoom:g,maxZoom:y,nodeExtent:b,onNodesChange:v,onEdgesChange:w,elementsSelectable:x,connectionMode:C,snapGrid:k,snapToGrid:E,translateExtent:S,connectOnClick:I,defaultEdgeOptions:_,fitView:A,fitViewOptions:N,onNodesDelete:O,onEdgesDelete:R,onNodeDrag:M,onNodeDragStart:T,onNodeDragStop:P,onSelectionDrag:D,onSelectionDragStart:j,onSelectionDragStop:L,noPanClassName:F,nodeOrigin:z,rfId:B,autoPanOnConnect:V,autoPanOnNodeDrag:G,onError:W,connectionRadius:H,isValidConnection:X,nodeDragThreshold:$})=>{const{setNodes:Z,setEdges:Y,setDefaultNodesAndEdges:U,setMinZoom:J,setMaxZoom:K,setTranslateExtent:q,setNodeExtent:Q,reset:ee}=co(Gi,fe),te=uo();return s((()=>{const e=r?.map((e=>({...e,..._})));return U(n,e),()=>{ee()}}),[]),Hi("defaultEdgeOptions",_,te.setState),Hi("connectionMode",C,te.setState),Hi("onConnect",o,te.setState),Hi("onConnectStart",i,te.setState),Hi("onConnectEnd",a,te.setState),Hi("onClickConnectStart",l,te.setState),Hi("onClickConnectEnd",c,te.setState),Hi("nodesDraggable",u,te.setState),Hi("nodesConnectable",d,te.setState),Hi("nodesFocusable",f,te.setState),Hi("edgesFocusable",p,te.setState),Hi("edgesUpdatable",h,te.setState),Hi("elementsSelectable",x,te.setState),Hi("elevateNodesOnSelect",m,te.setState),Hi("snapToGrid",E,te.setState),Hi("snapGrid",k,te.setState),Hi("onNodesChange",v,te.setState),Hi("onEdgesChange",w,te.setState),Hi("connectOnClick",I,te.setState),Hi("fitViewOnInit",A,te.setState),Hi("fitViewOnInitOptions",N,te.setState),Hi("onNodesDelete",O,te.setState),Hi("onEdgesDelete",R,te.setState),Hi("onNodeDrag",M,te.setState),Hi("onNodeDragStart",T,te.setState),Hi("onNodeDragStop",P,te.setState),Hi("onSelectionDrag",D,te.setState),Hi("onSelectionDragStart",j,te.setState),Hi("onSelectionDragStop",L,te.setState),Hi("noPanClassName",F,te.setState),Hi("nodeOrigin",z,te.setState),Hi("rfId",B,te.setState),Hi("autoPanOnConnect",V,te.setState),Hi("autoPanOnNodeDrag",G,te.setState),Hi("onError",W,te.setState),Hi("connectionRadius",H,te.setState),Hi("isValidConnection",X,te.setState),Hi("nodeDragThreshold",$,te.setState),Wi(e,Z),Wi(t,Y),Wi(g,J),Wi(y,K),Wi(S,q),Wi(b,Q),null},$i={display:"none"},Zi={position:"absolute",width:1,height:1,margin:-1,border:0,padding:0,overflow:"hidden",clip:"rect(0px, 0px, 0px, 0px)",clipPath:"inset(100%)"},Yi="react-flow__node-desc",Ui="react-flow__edge-desc",Ji=e=>e.ariaLiveMessage;function Ki({rfId:e}){const n=co(Ji);return t.createElement("div",{id:`react-flow__aria-live-${e}`,"aria-live":"assertive","aria-atomic":"true",style:Zi},n)}function qi({rfId:e,disableKeyboardA11y:n}){return t.createElement(t.Fragment,null,t.createElement("div",{id:`${Yi}-${e}`,style:$i},"Press enter or space to select a node.",!n&&"You can then use the arrow keys to move the node around."," Press delete to remove it and escape to cancel."," "),t.createElement("div",{id:`${Ui}-${e}`,style:$i},"Press enter or space to select an edge. You can then press delete to remove it or escape to cancel."),!n&&t.createElement(Ki,{rfId:e}))}var Qi=(e=null,t={actInsideInputWithModifier:!0})=>{const[n,r]=c(!1),o=u(!1),i=u(new Set([])),[l,d]=a((()=>{if(null!==e){const t=(Array.isArray(e)?e:[e]).filter((e=>"string"==typeof e)).map((e=>e.split("+"))),n=t.reduce(((e,t)=>e.concat(...t)),[]);return[t,n]}return[[],[]]}),[e]);return s((()=>{const n="undefined"!=typeof document?document:null,a=t?.target||n;if(null!==e){const e=e=>{o.current=e.ctrlKey||e.metaKey||e.shiftKey;if((!o.current||o.current&&!t.actInsideInputWithModifier)&&Ro(e))return!1;const n=ta(e.code,d);i.current.add(e[n]),ea(l,i.current,!1)&&(e.preventDefault(),r(!0))},n=e=>{if((!o.current||o.current&&!t.actInsideInputWithModifier)&&Ro(e))return!1;const n=ta(e.code,d);ea(l,i.current,!0)?(r(!1),i.current.clear()):i.current.delete(e[n]),"Meta"===e.key&&i.current.clear(),o.current=!1},s=()=>{i.current.clear(),r(!1)};return a?.addEventListener("keydown",e),a?.addEventListener("keyup",n),window.addEventListener("blur",s),()=>{a?.removeEventListener("keydown",e),a?.removeEventListener("keyup",n),window.removeEventListener("blur",s)}}}),[e,r]),n};function ea(e,t,n){return e.filter((e=>n||e.length===t.size)).some((e=>e.every((e=>t.has(e)))))}function ta(e,t){return t.includes(e)?"code":"key"}function na(e,t,n,r){const o=e.parentNode||e.parentId;if(!o)return n;const i=t.get(o),a=di(i,r);return na(i,t,{x:(n.x??0)+a.x,y:(n.y??0)+a.y,z:(i[Ao]?.z??0)>(n.z??0)?i[Ao]?.z??0:n.z??0},r)}function ra(e,t,n){e.forEach((r=>{const o=r.parentNode||r.parentId;if(o&&!e.has(o))throw new Error(`Parent node ${o} not found`);if(o||n?.[r.id]){const{x:o,y:i,z:a}=na(r,e,{...r.position,z:r[Ao]?.z??0},t);r.positionAbsolute={x:o,y:i},r[Ao].z=a,n?.[r.id]&&(r[Ao].isParent=!0)}}))}function oa(e,t,n,r){const o=new Map,i={},a=r?1e3:0;return e.forEach((e=>{const n=(_o(e.zIndex)?e.zIndex:0)+(e.selected?a:0),r=t.get(e.id),s={...e,positionAbsolute:{x:e.position.x,y:e.position.y}},l=e.parentNode||e.parentId;l&&(i[l]=!0);const c=r?.type&&r?.type!==e.type;Object.defineProperty(s,Ao,{enumerable:!1,value:{handleBounds:c?void 0:r?.[Ao]?.handleBounds,z:n}}),o.set(e.id,s)})),ra(o,n,i),o}function ia(e,t={}){const{getNodes:n,width:r,height:o,minZoom:i,maxZoom:a,d3Zoom:s,d3Selection:l,fitViewOnInitDone:c,fitViewOnInit:u,nodeOrigin:d}=e(),f=t.initial&&!c&&u;if(s&&l&&(f||!t.initial)){const e=n().filter((e=>{const n=t.includeHiddenNodes?e.width&&e.height:!e.hidden;return t.nodes?.length?n&&t.nodes.some((t=>t.id===e.id)):n})),c=e.every((e=>e.width&&e.height));if(e.length>0&&c){const n=fi(e,d),{x:c,y:u,zoom:f}=mi(n,r,o,t.minZoom??i,t.maxZoom??a,t.padding??.1),p=Br.translate(c,u).scale(f);return"number"==typeof t.duration&&t.duration>0?s.transform(gi(l,t.duration),p):s.transform(l,p),!0}}return!1}function aa(e,t){return e.forEach((e=>{const n=t.get(e.id);n&&t.set(n.id,{...n,[Ao]:n[Ao],selected:e.selected})})),new Map(t)}function sa(e,t){return t.map((t=>{const n=e.find((e=>e.id===t.id));return n&&(t.selected=n.selected),t}))}function la({changedNodes:e,changedEdges:t,get:n,set:r}){const{nodeInternals:o,edges:i,onNodesChange:a,onEdgesChange:s,hasDefaultNodes:l,hasDefaultEdges:c}=n();e?.length&&(l&&r({nodeInternals:aa(e,o)}),a?.(e)),t?.length&&(c&&r({edges:sa(t,i)}),s?.(t))}const ca=()=>{},ua={zoomIn:ca,zoomOut:ca,zoomTo:ca,getZoom:()=>1,setViewport:ca,getViewport:()=>({x:0,y:0,zoom:1}),fitView:()=>!1,setCenter:ca,fitBounds:ca,project:e=>e,screenToFlowPosition:e=>e,flowToScreenPosition:e=>e,viewportInitialized:!1},da=e=>({d3Zoom:e.d3Zoom,d3Selection:e.d3Selection});function fa(){const e=(()=>{const e=uo(),{d3Zoom:t,d3Selection:n}=co(da,fe),r=a((()=>n&&t?{zoomIn:e=>t.scaleBy(gi(n,e?.duration),1.2),zoomOut:e=>t.scaleBy(gi(n,e?.duration),1/1.2),zoomTo:(e,r)=>t.scaleTo(gi(n,r?.duration),e),getZoom:()=>e.getState().transform[2],setViewport:(r,o)=>{const[i,a,s]=e.getState().transform,l=Br.translate(r.x??i,r.y??a).scale(r.zoom??s);t.transform(gi(n,o?.duration),l)},getViewport:()=>{const[t,n,r]=e.getState().transform;return{x:t,y:n,zoom:r}},fitView:t=>ia(e.getState,t),setCenter:(r,o,i)=>{const{width:a,height:s,maxZoom:l}=e.getState(),c=void 0!==i?.zoom?i.zoom:l,u=a/2-r*c,d=s/2-o*c,f=Br.translate(u,d).scale(c);t.transform(gi(n,i?.duration),f)},fitBounds:(r,o)=>{const{width:i,height:a,minZoom:s,maxZoom:l}=e.getState(),{x:c,y:u,zoom:d}=mi(r,i,a,s,l,o?.padding??.1),f=Br.translate(c,u).scale(d);t.transform(gi(n,o?.duration),f)},project:t=>{const{transform:n,snapToGrid:r,snapGrid:o}=e.getState();return console.warn("[DEPRECATED] `project` is deprecated. Instead use `screenToFlowPosition`. There is no need to subtract the react flow bounds anymore! https://reactflow.dev/api-reference/types/react-flow-instance#screen-to-flow-position"),ci(t,n,r,o)},screenToFlowPosition:t=>{const{transform:n,snapToGrid:r,snapGrid:o,domNode:i}=e.getState();if(!i)return t;const{x:a,y:s}=i.getBoundingClientRect(),l={x:t.x-a,y:t.y-s};return ci(l,n,r,o)},flowToScreenPosition:t=>{const{transform:n,domNode:r}=e.getState();if(!r)return t;const{x:o,y:i}=r.getBoundingClientRect(),a=ui(t,n);return{x:a.x+o,y:a.y+i}},viewportInitialized:!0}:ua),[t,n]);return r})(),t=uo(),n=l((()=>t.getState().getNodes().map((e=>({...e})))),[]),r=l((e=>t.getState().nodeInternals.get(e)),[]),o=l((()=>{const{edges:e=[]}=t.getState();return e.map((e=>({...e})))}),[]),i=l((e=>{const{edges:n=[]}=t.getState();return n.find((t=>t.id===e))}),[]),s=l((e=>{const{getNodes:n,setNodes:r,hasDefaultNodes:o,onNodesChange:i}=t.getState(),a=n(),s="function"==typeof e?e(a):e;if(o)r(s);else if(i){const e=0===s.length?a.map((e=>({type:"remove",id:e.id}))):s.map((e=>({item:e,type:"reset"})));i(e)}}),[]),c=l((e=>{const{edges:n=[],setEdges:r,hasDefaultEdges:o,onEdgesChange:i}=t.getState(),a="function"==typeof e?e(n):e;if(o)r(a);else if(i){i(0===a.length?n.map((e=>({type:"remove",id:e.id}))):a.map((e=>({item:e,type:"reset"}))))}}),[]),u=l((e=>{const n=Array.isArray(e)?e:[e],{getNodes:r,setNodes:o,hasDefaultNodes:i,onNodesChange:a}=t.getState();if(i){o([...r(),...n])}else if(a){const e=n.map((e=>({item:e,type:"add"})));a(e)}}),[]),d=l((e=>{const n=Array.isArray(e)?e:[e],{edges:r=[],setEdges:o,hasDefaultEdges:i,onEdgesChange:a}=t.getState();if(i)o([...r,...n]);else if(a){a(n.map((e=>({item:e,type:"add"}))))}}),[]),f=l((()=>{const{getNodes:e,edges:n=[],transform:r}=t.getState(),[o,i,a]=r;return{nodes:e().map((e=>({...e}))),edges:n.map((e=>({...e}))),viewport:{x:o,y:i,zoom:a}}}),[]),p=l((({nodes:e,edges:n})=>{const{nodeInternals:r,getNodes:o,edges:i,hasDefaultNodes:a,hasDefaultEdges:s,onNodesDelete:l,onEdgesDelete:c,onNodesChange:u,onEdgesChange:d}=t.getState(),f=(e||[]).map((e=>e.id)),p=(n||[]).map((e=>e.id)),h=o().reduce(((e,t)=>{const n=t.parentNode||t.parentId,r=!f.includes(t.id)&&n&&e.find((e=>e.id===n));return("boolean"!=typeof t.deletable||t.deletable)&&(f.includes(t.id)||r)&&e.push(t),e}),[]),m=i.filter((e=>"boolean"!=typeof e.deletable||e.deletable)),g=m.filter((e=>p.includes(e.id)));if(h||g){const e=hi(h,m),n=[...g,...e],o=n.reduce(((e,t)=>(e.includes(t.id)||e.push(t.id),e)),[]);if((s||a)&&(s&&t.setState({edges:i.filter((e=>!o.includes(e.id)))}),a&&(h.forEach((e=>{r.delete(e.id)})),t.setState({nodeInternals:new Map(r)}))),o.length>0&&(c?.(n),d&&d(o.map((e=>({id:e,type:"remove"}))))),h.length>0&&(l?.(h),u)){u(h.map((e=>({id:e.id,type:"remove"}))))}}}),[]),h=l((e=>{const n=_o((r=e).width)&&_o(r.height)&&_o(r.x)&&_o(r.y);var r;const o=n?null:t.getState().nodeInternals.get(e.id);if(!n&&!o)return[null,null,n];return[n?e:So(o),o,n]}),[]),m=l(((e,n=!0,r)=>{const[o,i,a]=h(e);return o?(r||t.getState().getNodes()).filter((e=>{if(!(a||e.id!==i.id&&e.positionAbsolute))return!1;const t=So(e),r=Io(t,o);return n&&r>0||r>=o.width*o.height})):[]}),[]),g=l(((e,t,n=!0)=>{const[r]=h(e);if(!r)return!1;const o=Io(r,t);return n&&o>0||o>=r.width*r.height}),[]);return a((()=>({...e,getNodes:n,getNode:r,getEdges:o,getEdge:i,setNodes:s,setEdges:c,addNodes:u,addEdges:d,toObject:f,deleteElements:p,getIntersectingNodes:m,isNodeIntersecting:g})),[e,n,r,o,i,s,c,u,d,f,p,m,g])}const pa={actInsideInputWithModifier:!1};const ha={position:"absolute",width:"100%",height:"100%",top:0,left:0},ma=e=>({x:e.x,y:e.y,zoom:e.k}),ga=(e,t)=>e.target.closest(`.${t}`),ya=(e,t)=>2===t&&Array.isArray(e)&&e.includes(2),ba=e=>{const t=e.ctrlKey&&Po()?10:1;return-e.deltaY*(1===e.deltaMode?.05:e.deltaMode?1:.002)*t},va=e=>({d3Zoom:e.d3Zoom,d3Selection:e.d3Selection,d3ZoomHandler:e.d3ZoomHandler,userSelectionActive:e.userSelectionActive}),wa=({onMove:e,onMoveStart:n,onMoveEnd:r,onPaneContextMenu:o,zoomOnScroll:i=!0,zoomOnPinch:a=!0,panOnScroll:l=!1,panOnScrollSpeed:c=.5,panOnScrollMode:d=Bo.Free,zoomOnDoubleClick:f=!0,elementsSelectable:p,panOnDrag:h=!0,defaultViewport:m,translateExtent:g,minZoom:y,maxZoom:b,zoomActivationKeyCode:v,preventScrolling:w=!0,children:x,noWheelClassName:C,noPanClassName:k})=>{const E=u(),S=uo(),I=u(!1),_=u(!1),A=u(null),N=u({x:0,y:0,zoom:0}),{d3Zoom:O,d3Selection:R,d3ZoomHandler:M,userSelectionActive:T}=co(va,fe),P=Qi(v),D=u(0),j=u(!1),L=u();return function(e){const t=uo();s((()=>{let n;const r=()=>{if(!e.current)return;const n=go(e.current);0!==n.height&&0!==n.width||t.getState().onError?.("004",eo()),t.setState({width:n.width||500,height:n.height||500})};return r(),window.addEventListener("resize",r),e.current&&(n=new ResizeObserver((()=>r())),n.observe(e.current)),()=>{window.removeEventListener("resize",r),n&&e.current&&n.unobserve(e.current)}}),[])}(A),s((()=>{if(A.current){const e=A.current.getBoundingClientRect(),t=Ur().scaleExtent([y,b]).translateExtent(g),n=Ot(A.current).call(t),r=Br.translate(m.x,m.y).scale(yo(m.zoom,y,b)),o=[[0,0],[e.width,e.height]],i=t.constrain()(r,o,g);t.transform(n,i),t.wheelDelta(ba),S.setState({d3Zoom:t,d3Selection:n,d3ZoomHandler:n.on("wheel.zoom"),transform:[i.x,i.y,i.k],domNode:A.current.closest(".react-flow")})}}),[]),s((()=>{R&&O&&(!l||P||T?void 0!==M&&R.on("wheel.zoom",(function(e,t){if(!w&&"wheel"===e.type&&!e.ctrlKey||ga(e,C))return null;e.preventDefault(),M.call(this,e,t)}),{passive:!1}):R.on("wheel.zoom",(t=>{if(ga(t,C))return!1;t.preventDefault(),t.stopImmediatePropagation();const o=R.property("__zoom").k||1;if(t.ctrlKey&&a){const e=Rt(t),n=ba(t),r=o*Math.pow(2,n);return void O.scaleTo(R,r,e,t)}const i=1===t.deltaMode?20:1;let s=d===Bo.Vertical?0:t.deltaX*i,l=d===Bo.Horizontal?0:t.deltaY*i;!Po()&&t.shiftKey&&d!==Bo.Vertical&&(s=t.deltaY*i,l=0),O.translateBy(R,-s/o*c,-l/o*c,{internal:!0});const u=ma(R.property("__zoom")),{onViewportChangeStart:f,onViewportChange:p,onViewportChangeEnd:h}=S.getState();clearTimeout(L.current),j.current||(j.current=!0,n?.(t,u),f?.(u)),j.current&&(e?.(t,u),p?.(u),L.current=setTimeout((()=>{r?.(t,u),h?.(u),j.current=!1}),150))}),{passive:!1}))}),[T,l,d,R,O,M,P,a,w,C,n,e,r]),s((()=>{O&&O.on("start",(e=>{if(!e.sourceEvent||e.sourceEvent.internal)return null;D.current=e.sourceEvent?.button;const{onViewportChangeStart:t}=S.getState(),r=ma(e.transform);I.current=!0,N.current=r,"mousedown"===e.sourceEvent?.type&&S.setState({paneDragging:!0}),t?.(r),n?.(e.sourceEvent,r)}))}),[O,n]),s((()=>{O&&(T&&!I.current?O.on("zoom",null):T||O.on("zoom",(t=>{const{onViewportChange:n}=S.getState();if(S.setState({transform:[t.transform.x,t.transform.y,t.transform.k]}),_.current=!(!o||!ya(h,D.current??0)),(e||n)&&!t.sourceEvent?.internal){const r=ma(t.transform);n?.(r),e?.(t.sourceEvent,r)}})))}),[T,O,e,h,o]),s((()=>{O&&O.on("end",(e=>{if(!e.sourceEvent||e.sourceEvent.internal)return null;const{onViewportChangeEnd:t}=S.getState();if(I.current=!1,S.setState({paneDragging:!1}),o&&ya(h,D.current??0)&&!_.current&&o(e.sourceEvent),_.current=!1,(r||t)&&(n=N.current,i=e.transform,n.x!==i.x||n.y!==i.y||n.zoom!==i.k)){const n=ma(e.transform);N.current=n,clearTimeout(E.current),E.current=setTimeout((()=>{t?.(n),r?.(e.sourceEvent,n)}),l?150:0)}var n,i}))}),[O,l,h,r,o]),s((()=>{O&&O.filter((e=>{const t=P||i,n=a&&e.ctrlKey;if((!0===h||Array.isArray(h)&&h.includes(1))&&1===e.button&&"mousedown"===e.type&&(ga(e,"react-flow__node")||ga(e,"react-flow__edge")))return!0;if(!(h||t||l||f||a))return!1;if(T)return!1;if(!f&&"dblclick"===e.type)return!1;if(ga(e,C)&&"wheel"===e.type)return!1;if(ga(e,k)&&("wheel"!==e.type||l&&"wheel"===e.type&&!P))return!1;if(!a&&e.ctrlKey&&"wheel"===e.type)return!1;if(!t&&!l&&!n&&"wheel"===e.type)return!1;if(!h&&("mousedown"===e.type||"touchstart"===e.type))return!1;if(Array.isArray(h)&&!h.includes(e.button)&&"mousedown"===e.type)return!1;const r=Array.isArray(h)&&h.includes(e.button)||!e.button||e.button<=1;return(!e.ctrlKey||"wheel"===e.type)&&r}))}),[T,O,i,a,l,f,h,p,P]),t.createElement("div",{className:"react-flow__renderer",ref:A,style:ha},x)},xa=e=>({userSelectionActive:e.userSelectionActive,userSelectionRect:e.userSelectionRect});function Ca(){const{userSelectionActive:e,userSelectionRect:n}=co(xa,fe);return e&&n?t.createElement("div",{className:"react-flow__selection react-flow__container",style:{width:n.width,height:n.height,transform:`translate(${n.x}px, ${n.y}px)`}}):null}function ka(e,t){const n=t.parentNode||t.parentId,r=e.find((e=>e.id===n));if(r){const e=t.position.x+t.width-r.width,n=t.position.y+t.height-r.height;if(e>0||n>0||t.position.x<0||t.position.y<0){if(r.style={...r.style}||{},r.style.width=r.style.width??r.width,r.style.height=r.style.height??r.height,e>0&&(r.style.width+=e),n>0&&(r.style.height+=n),t.position.x<0){const e=Math.abs(t.position.x);r.position.x=r.position.x-e,r.style.width+=e,t.position.x=0}if(t.position.y<0){const e=Math.abs(t.position.y);r.position.y=r.position.y-e,r.style.height+=e,t.position.y=0}r.width=r.style.width,r.height=r.style.height}}}function Ea(e,t){if(e.some((e=>"reset"===e.type)))return e.filter((e=>"reset"===e.type)).map((e=>e.item));const n=e.filter((e=>"add"===e.type)).map((e=>e.item));return t.reduce(((t,n)=>{const r=e.filter((e=>e.id===n.id));if(0===r.length)return t.push(n),t;const o={...n};for(const e of r)if(e)switch(e.type){case"select":o.selected=e.selected;break;case"position":void 0!==e.position&&(o.position=e.position),void 0!==e.positionAbsolute&&(o.positionAbsolute=e.positionAbsolute),void 0!==e.dragging&&(o.dragging=e.dragging),o.expandParent&&ka(t,o);break;case"dimensions":void 0!==e.dimensions&&(o.width=e.dimensions.width,o.height=e.dimensions.height),void 0!==e.updateStyle&&(o.style={...o.style||{},...e.dimensions}),"boolean"==typeof e.resizing&&(o.resizing=e.resizing),o.expandParent&&ka(t,o);break;case"remove":return t}return t.push(o),t}),n)}function Sa(e,t){return Ea(e,t)}function Ia(e,t){return Ea(e,t)}const _a=(e,t)=>({id:e,type:"select",selected:t});function Aa(e,t){return e.reduce(((e,n)=>{const r=t.includes(n.id);return!n.selected&&r?(n.selected=!0,e.push(_a(n.id,!0))):n.selected&&!r&&(n.selected=!1,e.push(_a(n.id,!1))),e}),[])}const Na=(e,t)=>n=>{n.target===t.current&&e?.(n)},Oa=e=>({userSelectionActive:e.userSelectionActive,elementsSelectable:e.elementsSelectable,dragging:e.paneDragging}),Ra=r((({isSelecting:e,selectionMode:n=Vo.Full,panOnDrag:r,onSelectionStart:o,onSelectionEnd:i,onPaneClick:a,onPaneContextMenu:s,onPaneScroll:l,onPaneMouseEnter:c,onPaneMouseMove:d,onPaneMouseLeave:f,children:p})=>{const h=u(null),m=uo(),g=u(0),y=u(0),b=u(),{userSelectionActive:v,elementsSelectable:w,dragging:x}=co(Oa,fe),C=()=>{m.setState({userSelectionActive:!1,userSelectionRect:null}),g.current=0,y.current=0},k=e=>{a?.(e),m.getState().resetSelectedElements(),m.setState({nodesSelectionActive:!1})},E=l?e=>l(e):void 0,S=w&&(e||v);return t.createElement("div",{className:ae(["react-flow__pane",{dragging:x,selection:e}]),onClick:S?void 0:Na(k,h),onContextMenu:Na((e=>{Array.isArray(r)&&r?.includes(2)?e.preventDefault():s?.(e)}),h),onWheel:Na(E,h),onMouseEnter:S?void 0:c,onMouseDown:S?t=>{const{resetSelectedElements:n,domNode:r}=m.getState();if(b.current=r?.getBoundingClientRect(),!w||!e||0!==t.button||t.target!==h.current||!b.current)return;const{x:i,y:a}=To(t,b.current);n(),m.setState({userSelectionRect:{width:0,height:0,startX:i,startY:a,x:i,y:a}}),o?.(t)}:void 0,onMouseMove:S?t=>{const{userSelectionRect:r,nodeInternals:o,edges:i,transform:a,onNodesChange:s,onEdgesChange:l,nodeOrigin:c,getNodes:u}=m.getState();if(!e||!b.current||!r)return;m.setState({userSelectionActive:!0,nodesSelectionActive:!1});const d=To(t,b.current),f=r.startX??0,p=r.startY??0,h={...r,x:d.x<f?d.x:f,y:d.y<p?d.y:p,width:Math.abs(d.x-f),height:Math.abs(d.y-p)},v=u(),w=pi(o,h,a,n===Vo.Partial,!0,c),x=hi(w,i).map((e=>e.id)),C=w.map((e=>e.id));if(g.current!==C.length){g.current=C.length;const e=Aa(v,C);e.length&&s?.(e)}if(y.current!==x.length){y.current=x.length;const e=Aa(i,x);e.length&&l?.(e)}m.setState({userSelectionRect:h})}:d,onMouseUp:S?e=>{if(0!==e.button)return;const{userSelectionRect:t}=m.getState();!v&&t&&e.target===h.current&&k?.(e),m.setState({nodesSelectionActive:g.current>0}),C(),i?.(e)}:void 0,onMouseLeave:S?e=>{v&&(m.setState({nodesSelectionActive:g.current>0}),i?.(e)),C()}:f,ref:h,style:ha},p,t.createElement(Ca,null))}));function Ma(e,t){const n=e.parentNode||e.parentId;if(!n)return!1;const r=t.get(n);return!!r&&(!!r.selected||Ma(r,t))}function Ta(e,t,n){let r=e;do{if(r?.matches(t))return!0;if(r===n.current)return!1;r=r.parentElement}while(r);return!1}function Pa(e,t,n,r){return Array.from(e.values()).filter((n=>(n.selected||n.id===r)&&(!n.parentNode||n.parentId||!Ma(n,e))&&(n.draggable||t&&void 0===n.draggable))).map((e=>({id:e.id,position:e.position||{x:0,y:0},positionAbsolute:e.positionAbsolute||{x:0,y:0},distance:{x:n.x-(e.positionAbsolute?.x??0),y:n.y-(e.positionAbsolute?.y??0)},delta:{x:0,y:0},extent:e.extent,parentNode:e.parentNode||e.parentId,parentId:e.parentNode||e.parentId,width:e.width,height:e.height,expandParent:e.expandParent})))}function Da(e,t,n,r,o=[0,0],i){const a=function(e,t){return t&&"parent"!==t?[t[0],[t[1][0]-(e.width||0),t[1][1]-(e.height||0)]]:t}(e,e.extent||r);let s=a;const l=e.parentNode||e.parentId;if("parent"!==e.extent||e.expandParent){if(e.extent&&l&&"parent"!==e.extent){const t=n.get(l),{x:r,y:i}=di(t,o).positionAbsolute;s=[[e.extent[0][0]+r,e.extent[0][1]+i],[e.extent[1][0]+r,e.extent[1][1]+i]]}}else if(l&&e.width&&e.height){const t=n.get(l),{x:r,y:i}=di(t,o).positionAbsolute;s=t&&_o(r)&&_o(i)&&_o(t.width)&&_o(t.height)?[[r+e.width*o[0],i+e.height*o[1]],[r+t.width-e.width+e.width*o[0],i+t.height-e.height+e.height*o[1]]]:s}else i?.("005",to()),s=a;let c={x:0,y:0};if(l){const e=n.get(l);c=di(e,o).positionAbsolute}const u=s&&"parent"!==s?bo(t,s):t;return{position:{x:u.x-c.x,y:u.y-c.y},positionAbsolute:u}}function ja({nodeId:e,dragItems:t,nodeInternals:n}){const r=t.map((e=>({...n.get(e.id),position:e.position,positionAbsolute:e.positionAbsolute})));return[e?r.find((t=>t.id===e)):r[0],r]}Ra.displayName="Pane";const La=(e,t,n,r)=>{const o=t.querySelectorAll(e);if(!o||!o.length)return null;const i=Array.from(o),a=t.getBoundingClientRect(),s=a.width*r[0],l=a.height*r[1];return i.map((e=>{const t=e.getBoundingClientRect();return{id:e.getAttribute("data-handleid"),position:e.getAttribute("data-handlepos"),x:(t.left-a.left-s)/n,y:(t.top-a.top-l)/n,...go(e)}}))};function Fa(e,t,n){return void 0===n?n:r=>{const o=t().nodeInternals.get(e);o&&n(r,{...o})}}function za({id:e,store:t,unselect:n=!1,nodeRef:r}){const{addSelectedNodes:o,unselectNodesAndEdges:i,multiSelectionActive:a,nodeInternals:s,onError:l}=t.getState(),c=s.get(e);c?(t.setState({nodesSelectionActive:!1}),c.selected?(n||c.selected&&a)&&(i({nodes:[c],edges:[]}),requestAnimationFrame((()=>r?.current?.blur()))):o([e])):l?.("012",so(e))}function Ba(e){return(t,n,r)=>e?.(t,r)}function Va({nodeRef:e,disabled:t=!1,noDragClassName:n,handleSelector:r,nodeId:o,isSelectable:i,selectNodesOnDrag:a}){const d=uo(),[f,p]=c(!1),h=u([]),m=u({x:null,y:null}),g=u(0),y=u(null),b=u({x:0,y:0}),v=u(null),w=u(!1),x=u(!1),C=u(!1),k=function(){const e=uo(),t=l((({sourceEvent:t})=>{const{transform:n,snapGrid:r,snapToGrid:o}=e.getState(),i=t.touches?t.touches[0].clientX:t.clientX,a=t.touches?t.touches[0].clientY:t.clientY,s={x:(i-n[0])/n[2],y:(a-n[1])/n[2]};return{xSnapped:o?r[0]*Math.round(s.x/r[0]):s.x,ySnapped:o?r[1]*Math.round(s.y/r[1]):s.y,...s}}),[]);return t}();return s((()=>{if(e?.current){const s=Ot(e.current),l=({x:e,y:t})=>{const{nodeInternals:n,onNodeDrag:r,onSelectionDrag:i,updateNodePositions:a,nodeExtent:s,snapGrid:l,snapToGrid:c,nodeOrigin:u,onError:f}=d.getState();m.current={x:e,y:t};let g=!1,y={x:0,y:0,x2:0,y2:0};if(h.current.length>1&&s){const e=fi(h.current,u);y=ko(e)}if(h.current=h.current.map((r=>{const o={x:e-r.distance.x,y:t-r.distance.y};c&&(o.x=l[0]*Math.round(o.x/l[0]),o.y=l[1]*Math.round(o.y/l[1]));const i=[[s[0][0],s[0][1]],[s[1][0],s[1][1]]];h.current.length>1&&s&&!r.extent&&(i[0][0]=r.positionAbsolute.x-y.x+s[0][0],i[1][0]=r.positionAbsolute.x+(r.width??0)-y.x2+s[1][0],i[0][1]=r.positionAbsolute.y-y.y+s[0][1],i[1][1]=r.positionAbsolute.y+(r.height??0)-y.y2+s[1][1]);const a=Da(r,o,n,i,u,f);return g=g||r.position.x!==a.position.x||r.position.y!==a.position.y,r.position=a.position,r.positionAbsolute=a.positionAbsolute,r})),!g)return;a(h.current,!0,!0),p(!0);const b=o?r:Ba(i);if(b&&v.current){const[e,t]=ja({nodeId:o,dragItems:h.current,nodeInternals:n});b(v.current,e,t)}},c=()=>{if(!y.current)return;const[e,t]=wo(b.current,y.current);if(0!==e||0!==t){const{transform:n,panBy:r}=d.getState();m.current.x=(m.current.x??0)-e/n[2],m.current.y=(m.current.y??0)-t/n[2],r({x:e,y:t})&&l(m.current)}g.current=requestAnimationFrame(c)},u=t=>{const{nodeInternals:n,multiSelectionActive:r,nodesDraggable:s,unselectNodesAndEdges:l,onNodeDragStart:c,onSelectionDragStart:u}=d.getState();x.current=!0;const f=o?c:Ba(u);a&&i||r||!o||n.get(o)?.selected||l(),o&&i&&a&&za({id:o,store:d,nodeRef:e});const p=k(t);if(m.current=p,h.current=Pa(n,s,p,o),f&&h.current){const[e,r]=ja({nodeId:o,dragItems:h.current,nodeInternals:n});f(t.sourceEvent,e,r)}};if(!t){const t=function(){var e,t,n,r,o=Bt,i=Vt,a=Gt,s=Wt,l={},c=he("start","drag","end"),u=0,d=0;function f(e){e.on("mousedown.drag",p).filter(s).on("touchstart.drag",g).on("touchmove.drag",y,Mt).on("touchend.drag touchcancel.drag",b).style("touch-action","none").style("-webkit-tap-highlight-color","rgba(0,0,0,0)")}function p(a,s){if(!r&&o.call(this,a,s)){var l=v(this,i.call(this,a,s),a,s,"mouse");l&&(Ot(a.view).on("mousemove.drag",h,Tt).on("mouseup.drag",m,Tt),jt(a.view),Pt(a),n=!1,e=a.clientX,t=a.clientY,l("start",a))}}function h(r){if(Dt(r),!n){var o=r.clientX-e,i=r.clientY-t;n=o*o+i*i>d}l.mouse("drag",r)}function m(e){Ot(e.view).on("mousemove.drag mouseup.drag",null),Lt(e.view,n),Dt(e),l.mouse("end",e)}function g(e,t){if(o.call(this,e,t)){var n,r,a=e.changedTouches,s=i.call(this,e,t),l=a.length;for(n=0;n<l;++n)(r=v(this,s,e,t,a[n].identifier,a[n]))&&(Pt(e),r("start",e,a[n]))}}function y(e){var t,n,r=e.changedTouches,o=r.length;for(t=0;t<o;++t)(n=l[r[t].identifier])&&(Dt(e),n("drag",e,r[t]))}function b(e){var t,n,o=e.changedTouches,i=o.length;for(r&&clearTimeout(r),r=setTimeout((function(){r=null}),500),t=0;t<i;++t)(n=l[o[t].identifier])&&(Pt(e),n("end",e,o[t]))}function v(e,t,n,r,o,i){var s,d,p,h=c.copy(),m=Rt(i||n,t);if(null!=(p=a.call(e,new zt("beforestart",{sourceEvent:n,target:f,identifier:o,active:u,x:m[0],y:m[1],dx:0,dy:0,dispatch:h}),r)))return s=p.x-m[0]||0,d=p.y-m[1]||0,function n(i,a,c){var g,y=m;switch(i){case"start":l[o]=n,g=u++;break;case"end":delete l[o],--u;case"drag":m=Rt(c||a,t),g=u}h.call(i,e,new zt(i,{sourceEvent:a,subject:p,target:f,identifier:o,active:g,x:m[0]+s,y:m[1]+d,dx:m[0]-y[0],dy:m[1]-y[1],dispatch:h}),r)}}return f.filter=function(e){return arguments.length?(o="function"==typeof e?e:Ft(!!e),f):o},f.container=function(e){return arguments.length?(i="function"==typeof e?e:Ft(e),f):i},f.subject=function(e){return arguments.length?(a="function"==typeof e?e:Ft(e),f):a},f.touchable=function(e){return arguments.length?(s="function"==typeof e?e:Ft(!!e),f):s},f.on=function(){var e=c.on.apply(c,arguments);return e===c?f:e},f.clickDistance=function(e){return arguments.length?(d=(e=+e)*e,f):Math.sqrt(d)},f}().on("start",(e=>{const{domNode:t,nodeDragThreshold:n}=d.getState();0===n&&u(e),C.current=!1;const r=k(e);m.current=r,y.current=t?.getBoundingClientRect()||null,b.current=To(e.sourceEvent,y.current)})).on("drag",(e=>{const t=k(e),{autoPanOnNodeDrag:n,nodeDragThreshold:r}=d.getState();if("touchmove"===e.sourceEvent.type&&e.sourceEvent.touches.length>1&&(C.current=!0),!C.current){if(!w.current&&x.current&&n&&(w.current=!0,c()),!x.current){const n=t.xSnapped-(m?.current?.x??0),o=t.ySnapped-(m?.current?.y??0);Math.sqrt(n*n+o*o)>r&&u(e)}(m.current.x!==t.xSnapped||m.current.y!==t.ySnapped)&&h.current&&x.current&&(v.current=e.sourceEvent,b.current=To(e.sourceEvent,y.current),l(t))}})).on("end",(e=>{if(x.current&&!C.current&&(p(!1),w.current=!1,x.current=!1,cancelAnimationFrame(g.current),h.current)){const{updateNodePositions:t,nodeInternals:n,onNodeDragStop:r,onSelectionDragStop:i}=d.getState(),a=o?r:Ba(i);if(t(h.current,!1,!1),a){const[t,r]=ja({nodeId:o,dragItems:h.current,nodeInternals:n});a(e.sourceEvent,t,r)}}})).filter((t=>{const o=t.target;return!t.button&&(!n||!Ta(o,`.${n}`,e))&&(!r||Ta(o,r,e))}));return s.call(t),()=>{s.on(".drag",null)}}s.on(".drag",null)}}),[e,t,n,r,i,d,o,a,k]),f}function Ga(){const e=uo(),t=l((t=>{const{nodeInternals:n,nodeExtent:r,updateNodePositions:o,getNodes:i,snapToGrid:a,snapGrid:s,onError:l,nodesDraggable:c}=e.getState(),u=i().filter((e=>e.selected&&(e.draggable||c&&void 0===e.draggable))),d=a?s[0]:5,f=a?s[1]:5,p=t.isShiftPressed?4:1,h=t.x*d*p,m=t.y*f*p,g=u.map((e=>{if(e.positionAbsolute){const t={x:e.positionAbsolute.x+h,y:e.positionAbsolute.y+m};a&&(t.x=s[0]*Math.round(t.x/s[0]),t.y=s[1]*Math.round(t.y/s[1]));const{positionAbsolute:o,position:i}=Da(e,t,n,r,void 0,l);e.position=i,e.positionAbsolute=o}return e}));o(g,!0,!1)}),[]);return t}const Wa={ArrowUp:{x:0,y:-1},ArrowDown:{x:0,y:1},ArrowLeft:{x:-1,y:0},ArrowRight:{x:1,y:0}};var Ha=e=>{const n=({id:n,type:r,data:o,xPos:i,yPos:a,xPosOrigin:l,yPosOrigin:c,selected:d,onClick:f,onMouseEnter:p,onMouseMove:h,onMouseLeave:m,onContextMenu:g,onDoubleClick:y,style:b,className:v,isDraggable:w,isSelectable:x,isConnectable:C,isFocusable:k,selectNodesOnDrag:E,sourcePosition:S,targetPosition:I,hidden:_,resizeObserver:A,dragHandle:N,zIndex:O,isParent:R,noDragClassName:M,noPanClassName:T,initialized:P,disableKeyboardA11y:D,ariaLabel:j,rfId:L,hasHandleBounds:F})=>{const z=uo(),B=u(null),V=u(null),G=u(S),W=u(I),H=u(r),X=x||w||f||p||h||m,$=Ga(),Z=Fa(n,z.getState,p),Y=Fa(n,z.getState,h),U=Fa(n,z.getState,m),J=Fa(n,z.getState,g),K=Fa(n,z.getState,y);s((()=>()=>{V.current&&(A?.unobserve(V.current),V.current=null)}),[]),s((()=>{if(B.current&&!_){const e=B.current;P&&F&&V.current===e||(V.current&&A?.unobserve(V.current),A?.observe(e),V.current=e)}}),[_,P,F]),s((()=>{const e=H.current!==r,t=G.current!==S,o=W.current!==I;B.current&&(e||t||o)&&(e&&(H.current=r),t&&(G.current=S),o&&(W.current=I),z.getState().updateNodeDimensions([{id:n,nodeElement:B.current,forceUpdate:!0}]))}),[n,r,S,I]);const q=Va({nodeRef:B,disabled:_||!w,noDragClassName:M,handleSelector:N,nodeId:n,isSelectable:x,selectNodesOnDrag:E});return _?null:t.createElement("div",{className:ae(["react-flow__node",`react-flow__node-${r}`,{[T]:w},v,{selected:d,selectable:x,parent:R,dragging:q}]),ref:B,style:{zIndex:O,transform:`translate(${l}px,${c}px)`,pointerEvents:X?"all":"none",visibility:P?"visible":"hidden",...b},"data-id":n,"data-testid":`rf__node-${n}`,onMouseEnter:Z,onMouseMove:Y,onMouseLeave:U,onContextMenu:J,onClick:e=>{const{nodeDragThreshold:t}=z.getState();if(x&&(!E||!w||t>0)&&za({id:n,store:z,nodeRef:B}),f){const t=z.getState().nodeInternals.get(n);t&&f(e,{...t})}},onDoubleClick:K,onKeyDown:k?e=>{if(!Ro(e)&&!D)if(No.includes(e.key)&&x){const t="Escape"===e.key;za({id:n,store:z,unselect:t,nodeRef:B})}else w&&d&&Object.prototype.hasOwnProperty.call(Wa,e.key)&&(z.setState({ariaLiveMessage:`Moved selected node ${e.key.replace("Arrow","").toLowerCase()}. New position, x: ${~~i}, y: ${~~a}`}),$({x:Wa[e.key].x,y:Wa[e.key].y,isShiftPressed:e.shiftKey}))}:void 0,tabIndex:k?0:void 0,role:k?"button":void 0,"aria-describedby":D?void 0:`${Yi}-${L}`,"aria-label":j},t.createElement(ai,{value:n},t.createElement(e,{id:n,data:o,type:r,xPos:i,yPos:a,selected:d,isConnectable:C,sourcePosition:S,targetPosition:I,dragging:q,dragHandle:N,zIndex:O})))};return n.displayName="NodeWrapper",r(n)};const Xa=e=>{const t=e.getNodes().filter((e=>e.selected));return{...fi(t,e.nodeOrigin),transformString:`translate(${e.transform[0]}px,${e.transform[1]}px) scale(${e.transform[2]})`,userSelectionActive:e.userSelectionActive}};var $a=r((function({onSelectionContextMenu:e,noPanClassName:n,disableKeyboardA11y:r}){const o=uo(),{width:i,height:a,x:l,y:c,transformString:d,userSelectionActive:f}=co(Xa,fe),p=Ga(),h=u(null);if(s((()=>{r||h.current?.focus({preventScroll:!0})}),[r]),Va({nodeRef:h}),f||!i||!a)return null;const m=e?t=>{const n=o.getState().getNodes().filter((e=>e.selected));e(t,n)}:void 0;return t.createElement("div",{className:ae(["react-flow__nodesselection","react-flow__container",n]),style:{transform:d}},t.createElement("div",{ref:h,className:"react-flow__nodesselection-rect",onContextMenu:m,tabIndex:r?void 0:-1,onKeyDown:r?void 0:e=>{Object.prototype.hasOwnProperty.call(Wa,e.key)&&p({x:Wa[e.key].x,y:Wa[e.key].y,isShiftPressed:e.shiftKey})},style:{width:i,height:a,top:c,left:l}}))}));const Za=e=>e.nodesSelectionActive,Ya=({children:e,onPaneClick:n,onPaneMouseEnter:r,onPaneMouseMove:o,onPaneMouseLeave:i,onPaneContextMenu:a,onPaneScroll:l,deleteKeyCode:c,onMove:u,onMoveStart:d,onMoveEnd:f,selectionKeyCode:p,selectionOnDrag:h,selectionMode:m,onSelectionStart:g,onSelectionEnd:y,multiSelectionKeyCode:b,panActivationKeyCode:v,zoomActivationKeyCode:w,elementsSelectable:x,zoomOnScroll:C,zoomOnPinch:k,panOnScroll:E,panOnScrollSpeed:S,panOnScrollMode:I,zoomOnDoubleClick:_,panOnDrag:A,defaultViewport:N,translateExtent:O,minZoom:R,maxZoom:M,preventScrolling:T,onSelectionContextMenu:P,noWheelClassName:D,noPanClassName:j,disableKeyboardA11y:L})=>{const F=co(Za),z=Qi(p),B=Qi(v),V=B||A,G=B||E,W=z||h&&!0!==V;return(({deleteKeyCode:e,multiSelectionKeyCode:t})=>{const n=uo(),{deleteElements:r}=fa(),o=Qi(e,pa),i=Qi(t);s((()=>{if(o){const{edges:e,getNodes:t}=n.getState(),o=t().filter((e=>e.selected)),i=e.filter((e=>e.selected));r({nodes:o,edges:i}),n.setState({nodesSelectionActive:!1})}}),[o]),s((()=>{n.setState({multiSelectionActive:i})}),[i])})({deleteKeyCode:c,multiSelectionKeyCode:b}),t.createElement(wa,{onMove:u,onMoveStart:d,onMoveEnd:f,onPaneContextMenu:a,elementsSelectable:x,zoomOnScroll:C,zoomOnPinch:k,panOnScroll:G,panOnScrollSpeed:S,panOnScrollMode:I,zoomOnDoubleClick:_,panOnDrag:!z&&V,defaultViewport:N,translateExtent:O,minZoom:R,maxZoom:M,zoomActivationKeyCode:w,preventScrolling:T,noWheelClassName:D,noPanClassName:j},t.createElement(Ra,{onSelectionStart:g,onSelectionEnd:y,onPaneClick:n,onPaneMouseEnter:r,onPaneMouseMove:o,onPaneMouseLeave:i,onPaneContextMenu:a,onPaneScroll:l,panOnDrag:V,isSelecting:!!W,selectionMode:m},e,F&&t.createElement($a,{onSelectionContextMenu:P,noPanClassName:j,disableKeyboardA11y:L})))};Ya.displayName="FlowRenderer";var Ua=r(Ya);function Ja(e){return{...{input:Ha(e.input||Mi),default:Ha(e.default||Oi),output:Ha(e.output||Pi),group:Ha(e.group||Di)},...Object.keys(e).filter((e=>!["input","default","output","group"].includes(e))).reduce(((t,n)=>(t[n]=Ha(e[n]||Oi),t)),{})}}const Ka=e=>({nodesDraggable:e.nodesDraggable,nodesConnectable:e.nodesConnectable,nodesFocusable:e.nodesFocusable,elementsSelectable:e.elementsSelectable,updateNodeDimensions:e.updateNodeDimensions,onError:e.onError}),qa=e=>{const{nodesDraggable:n,nodesConnectable:r,nodesFocusable:o,elementsSelectable:i,updateNodeDimensions:c,onError:d}=co(Ka,fe),f=function(e){const t=co(l((t=>e?pi(t.nodeInternals,{x:0,y:0,width:t.width,height:t.height},t.transform,!0):t.getNodes()),[e]));return t}(e.onlyRenderVisibleElements),p=u(),h=a((()=>{if("undefined"==typeof ResizeObserver)return null;const e=new ResizeObserver((e=>{const t=e.map((e=>({id:e.target.getAttribute("data-id"),nodeElement:e.target,forceUpdate:!0})));c(t)}));return p.current=e,e}),[]);return s((()=>()=>{p?.current?.disconnect()}),[]),t.createElement("div",{className:"react-flow__nodes",style:ha},f.map((a=>{let s=a.type||"default";e.nodeTypes[s]||(d?.("003",Qr(s)),s="default");const l=e.nodeTypes[s]||e.nodeTypes.default,c=!!(a.draggable||n&&void 0===a.draggable),u=!!(a.selectable||i&&void 0===a.selectable),f=!!(a.connectable||r&&void 0===a.connectable),p=!!(a.focusable||o&&void 0===a.focusable),m=e.nodeExtent?bo(a.positionAbsolute,e.nodeExtent):a.positionAbsolute,g=m?.x??0,y=m?.y??0,b=(({x:e,y:t,width:n,height:r,origin:o})=>n&&r?o[0]<0||o[1]<0||o[0]>1||o[1]>1?{x:e,y:t}:{x:e-n*o[0],y:t-r*o[1]}:{x:e,y:t})({x:g,y:y,width:a.width??0,height:a.height??0,origin:e.nodeOrigin});return t.createElement(l,{key:a.id,id:a.id,className:a.className,style:a.style,type:s,data:a.data,sourcePosition:a.sourcePosition||Ho.Bottom,targetPosition:a.targetPosition||Ho.Top,hidden:a.hidden,xPos:g,yPos:y,xPosOrigin:b.x,yPosOrigin:b.y,selectNodesOnDrag:e.selectNodesOnDrag,onClick:e.onNodeClick,onMouseEnter:e.onNodeMouseEnter,onMouseMove:e.onNodeMouseMove,onMouseLeave:e.onNodeMouseLeave,onContextMenu:e.onNodeContextMenu,onDoubleClick:e.onNodeDoubleClick,selected:!!a.selected,isDraggable:c,isSelectable:u,isConnectable:f,isFocusable:p,resizeObserver:h,dragHandle:a.dragHandle,zIndex:a[Ao]?.z??0,isParent:!!a[Ao]?.isParent,noDragClassName:e.noDragClassName,noPanClassName:e.noPanClassName,initialized:!!a.width&&!!a.height,rfId:e.rfId,disableKeyboardA11y:e.disableKeyboardA11y,ariaLabel:a.ariaLabel,hasHandleBounds:!!a[Ao]?.handleBounds})})))};qa.displayName="NodeRenderer";var Qa=r(qa);const es=(e,t,n)=>n===Ho.Left?e-t:n===Ho.Right?e+t:e,ts=(e,t,n)=>n===Ho.Top?e-t:n===Ho.Bottom?e+t:e,ns="react-flow__edgeupdater",rs=({position:e,centerX:n,centerY:r,radius:o=10,onMouseDown:i,onMouseEnter:a,onMouseOut:s,type:l})=>t.createElement("circle",{onMouseDown:i,onMouseEnter:a,onMouseOut:s,className:ae([ns,`${ns}-${l}`]),cx:es(n,o,e),cy:ts(r,o,e),r:o,stroke:"transparent",fill:"transparent"}),os=()=>!0;var is=e=>{const n=({id:n,className:r,type:o,data:i,onClick:s,onEdgeDoubleClick:l,selected:d,animated:f,label:p,labelStyle:h,labelShowBg:m,labelBgStyle:g,labelBgPadding:y,labelBgBorderRadius:b,style:v,source:w,target:x,sourceX:C,sourceY:k,targetX:E,targetY:S,sourcePosition:I,targetPosition:_,elementsSelectable:A,hidden:N,sourceHandleId:O,targetHandleId:R,onContextMenu:M,onMouseEnter:T,onMouseMove:P,onMouseLeave:D,reconnectRadius:j,onReconnect:L,onReconnectStart:F,onReconnectEnd:z,markerEnd:B,markerStart:V,rfId:G,ariaLabel:W,isFocusable:H,isReconnectable:X,pathOptions:$,interactionWidth:Z,disableKeyboardA11y:Y})=>{const U=u(null),[J,K]=c(!1),[q,Q]=c(!1),ee=uo(),te=a((()=>`url('#${li(V,G)}')`),[V,G]),ne=a((()=>`url('#${li(B,G)}')`),[B,G]);if(N)return null;const re=jo(n,ee.getState,l),oe=jo(n,ee.getState,M),ie=jo(n,ee.getState,T),se=jo(n,ee.getState,P),le=jo(n,ee.getState,D),ce=(e,t)=>{if(0!==e.button)return;const{edges:r,isValidConnection:o}=ee.getState(),i=t?x:w,a=(t?R:O)||null,s=t?"target":"source",l=o||os,c=t,u=r.find((e=>e.id===n));Q(!0),F?.(e,u,s);Ei({event:e,handleId:a,nodeId:i,onConnect:e=>L?.(u,e),isTarget:c,getState:ee.getState,setState:ee.setState,isValidConnection:l,edgeUpdaterType:s,onReconnectEnd:e=>{Q(!1),z?.(e,u,s)}})},ue=()=>K(!0),de=()=>K(!1),fe=!A&&!s;return t.createElement("g",{className:ae(["react-flow__edge",`react-flow__edge-${o}`,r,{selected:d,animated:f,inactive:fe,updating:J}]),onClick:e=>{const{edges:t,addSelectedEdges:r,unselectNodesAndEdges:o,multiSelectionActive:i}=ee.getState(),a=t.find((e=>e.id===n));a&&(A&&(ee.setState({nodesSelectionActive:!1}),a.selected&&i?(o({nodes:[],edges:[a]}),U.current?.blur()):r([n])),s&&s(e,a))},onDoubleClick:re,onContextMenu:oe,onMouseEnter:ie,onMouseMove:se,onMouseLeave:le,onKeyDown:H?e=>{if(!Y&&No.includes(e.key)&&A){const{unselectNodesAndEdges:t,addSelectedEdges:r,edges:o}=ee.getState();"Escape"===e.key?(U.current?.blur(),t({edges:[o.find((e=>e.id===n))]})):r([n])}}:void 0,tabIndex:H?0:void 0,role:H?"button":"img","data-testid":`rf__edge-${n}`,"aria-label":null===W?void 0:W||`Edge from ${w} to ${x}`,"aria-describedby":H?`${Ui}-${G}`:void 0,ref:U},!q&&t.createElement(e,{id:n,source:w,target:x,selected:d,animated:f,label:p,labelStyle:h,labelShowBg:m,labelBgStyle:g,labelBgPadding:y,labelBgBorderRadius:b,data:i,style:v,sourceX:C,sourceY:k,targetX:E,targetY:S,sourcePosition:I,targetPosition:_,sourceHandleId:O,targetHandleId:R,markerStart:te,markerEnd:ne,pathOptions:$,interactionWidth:Z}),X&&t.createElement(t.Fragment,null,("source"===X||!0===X)&&t.createElement(rs,{position:I,centerX:C,centerY:k,radius:j,onMouseDown:e=>ce(e,!0),onMouseEnter:ue,onMouseOut:de,type:"source"}),("target"===X||!0===X)&&t.createElement(rs,{position:_,centerX:E,centerY:S,radius:j,onMouseDown:e=>ce(e,!1),onMouseEnter:ue,onMouseOut:de,type:"target"})))};return n.displayName="EdgeWrapper",r(n)};function as(e){return{...{default:is(e.default||oi),straight:is(e.bezier||ei),step:is(e.step||Qo),smoothstep:is(e.step||qo),simplebezier:is(e.simplebezier||Zo)},...Object.keys(e).filter((e=>!["default","bezier"].includes(e))).reduce(((t,n)=>(t[n]=is(e[n]||oi),t)),{})}}function ss(e,t,n=null){const r=(n?.x||0)+t.x,o=(n?.y||0)+t.y,i=n?.width||t.width,a=n?.height||t.height;switch(e){case Ho.Top:return{x:r+i/2,y:o};case Ho.Right:return{x:r+i,y:o+a/2};case Ho.Bottom:return{x:r+i/2,y:o+a};case Ho.Left:return{x:r,y:o+a/2}}}function ls(e,t){return e?1!==e.length&&t?t&&e.find((e=>e.id===t))||null:e[0]:null}function cs(e){const t=e?.[Ao]?.handleBounds||null,n=t&&e?.width&&e?.height&&void 0!==e?.positionAbsolute?.x&&void 0!==e?.positionAbsolute?.y;return[{x:e?.positionAbsolute?.x||0,y:e?.positionAbsolute?.y||0,width:e?.width||0,height:e?.height||0},t,!!n]}const us=[{level:0,isMaxLevel:!0,edges:[]}];function ds(e,t,n){const r=co(l((n=>e?n.edges.filter((e=>{const r=t.get(e.source),o=t.get(e.target);return r?.width&&r?.height&&o?.width&&o?.height&&function({sourcePos:e,targetPos:t,sourceWidth:n,sourceHeight:r,targetWidth:o,targetHeight:i,width:a,height:s,transform:l}){const c={x:Math.min(e.x,t.x),y:Math.min(e.y,t.y),x2:Math.max(e.x+n,t.x+o),y2:Math.max(e.y+r,t.y+i)};c.x===c.x2&&(c.x2+=1),c.y===c.y2&&(c.y2+=1);const u=ko({x:(0-l[0])/l[2],y:(0-l[1])/l[2],width:a/l[2],height:s/l[2]}),d=Math.max(0,Math.min(u.x2,c.x2)-Math.max(u.x,c.x)),f=Math.max(0,Math.min(u.y2,c.y2)-Math.max(u.y,c.y));return Math.ceil(d*f)>0}({sourcePos:r.positionAbsolute||{x:0,y:0},targetPos:o.positionAbsolute||{x:0,y:0},sourceWidth:r.width,sourceHeight:r.height,targetWidth:o.width,targetHeight:o.height,width:n.width,height:n.height,transform:n.transform})})):n.edges),[e,t]));return function(e,t,n=!1){let r=-1;const o=e.reduce(((e,o)=>{const i=_o(o.zIndex);let a=i?o.zIndex:0;if(n){const e=t.get(o.target),n=t.get(o.source),r=o.selected||e?.selected||n?.selected,s=Math.max(n?.[Ao]?.z||0,e?.[Ao]?.z||0,1e3);a=(i?o.zIndex:0)+(r?s:0)}return e[a]?e[a].push(o):e[a]=[o],r=a>r?a:r,e}),{}),i=Object.entries(o).map((([e,t])=>{const n=+e;return{edges:t,level:n,isMaxLevel:n===r}}));return 0===i.length?us:i}(r,t,n)}const fs={[Wo.Arrow]:({color:e="none",strokeWidth:n=1})=>t.createElement("polyline",{style:{stroke:e,strokeWidth:n},strokeLinecap:"round",strokeLinejoin:"round",fill:"none",points:"-5,-4 0,0 -5,4"}),[Wo.ArrowClosed]:({color:e="none",strokeWidth:n=1})=>t.createElement("polyline",{style:{stroke:e,fill:e,strokeWidth:n},strokeLinecap:"round",strokeLinejoin:"round",points:"-5,-4 0,0 -5,4 -5,-4"})};const ps=({id:e,type:n,color:r,width:o=12.5,height:i=12.5,markerUnits:s="strokeWidth",strokeWidth:l,orient:c="auto-start-reverse"})=>{const u=function(e){const t=uo();return a((()=>Object.prototype.hasOwnProperty.call(fs,e)?fs[e]:(t.getState().onError?.("009",ro(e)),null)),[e])}(n);return u?t.createElement("marker",{className:"react-flow__arrowhead",id:e,markerWidth:`${o}`,markerHeight:`${i}`,viewBox:"-10 -10 20 20",markerUnits:s,orient:c,refX:"0",refY:"0"},t.createElement(u,{color:r,strokeWidth:l})):null},hs=({defaultColor:e,rfId:n})=>{const r=co(l((({defaultColor:e,rfId:t})=>n=>{const r=[];return n.edges.reduce(((n,o)=>([o.markerStart,o.markerEnd].forEach((o=>{if(o&&"object"==typeof o){const i=li(o,t);r.includes(i)||(n.push({id:i,color:o.color||e,...o}),r.push(i))}})),n)),[]).sort(((e,t)=>e.id.localeCompare(t.id)))})({defaultColor:e,rfId:n}),[e,n]),((e,t)=>!(e.length!==t.length||e.some(((e,n)=>e.id!==t[n].id)))));return t.createElement("defs",null,r.map((e=>t.createElement(ps,{id:e.id,key:e.id,type:e.type,color:e.color,width:e.width,height:e.height,markerUnits:e.markerUnits,strokeWidth:e.strokeWidth,orient:e.orient}))))};hs.displayName="MarkerDefinitions";var ms=r(hs);const gs=e=>({nodesConnectable:e.nodesConnectable,edgesFocusable:e.edgesFocusable,edgesUpdatable:e.edgesUpdatable,elementsSelectable:e.elementsSelectable,width:e.width,height:e.height,connectionMode:e.connectionMode,nodeInternals:e.nodeInternals,onError:e.onError}),ys=({defaultMarkerColor:e,onlyRenderVisibleElements:n,elevateEdgesOnSelect:r,rfId:o,edgeTypes:i,noPanClassName:a,onEdgeContextMenu:s,onEdgeMouseEnter:l,onEdgeMouseMove:c,onEdgeMouseLeave:u,onEdgeClick:d,onEdgeDoubleClick:f,onReconnect:p,onReconnectStart:h,onReconnectEnd:m,reconnectRadius:g,children:y,disableKeyboardA11y:b})=>{const{edgesFocusable:v,edgesUpdatable:w,elementsSelectable:x,width:C,height:k,connectionMode:E,nodeInternals:S,onError:I}=co(gs,fe),_=ds(n,S,r);return C?t.createElement(t.Fragment,null,_.map((({level:n,edges:r,isMaxLevel:y})=>t.createElement("svg",{key:n,style:{zIndex:n},width:C,height:k,className:"react-flow__edges react-flow__container"},y&&t.createElement(ms,{defaultColor:e,rfId:o}),t.createElement("g",null,r.map((e=>{const[n,r,y]=cs(S.get(e.source)),[C,k,_]=cs(S.get(e.target));if(!y||!_)return null;let A=e.type||"default";i[A]||(I?.("011",ao(A)),A="default");const N=i[A]||i.default,O=E===zo.Strict?k.target:(k.target??[]).concat(k.source??[]),R=ls(r.source,e.sourceHandle),M=ls(O,e.targetHandle),T=R?.position||Ho.Bottom,P=M?.position||Ho.Top,D=!!(e.focusable||v&&void 0===e.focusable),j=e.reconnectable||e.updatable,L=void 0!==p&&(j||w&&void 0===j);if(!R||!M)return I?.("008",oo(R,e)),null;const{sourceX:F,sourceY:z,targetX:B,targetY:V}=((e,t,n,r,o,i)=>{const a=ss(n,e,t),s=ss(i,r,o);return{sourceX:a.x,sourceY:a.y,targetX:s.x,targetY:s.y}})(n,R,T,C,M,P);return t.createElement(N,{key:e.id,id:e.id,className:ae([e.className,a]),type:A,data:e.data,selected:!!e.selected,animated:!!e.animated,hidden:!!e.hidden,label:e.label,labelStyle:e.labelStyle,labelShowBg:e.labelShowBg,labelBgStyle:e.labelBgStyle,labelBgPadding:e.labelBgPadding,labelBgBorderRadius:e.labelBgBorderRadius,style:e.style,source:e.source,target:e.target,sourceHandleId:e.sourceHandle,targetHandleId:e.targetHandle,markerEnd:e.markerEnd,markerStart:e.markerStart,sourceX:F,sourceY:z,targetX:B,targetY:V,sourcePosition:T,targetPosition:P,elementsSelectable:x,onContextMenu:s,onMouseEnter:l,onMouseMove:c,onMouseLeave:u,onClick:d,onEdgeDoubleClick:f,onReconnect:p,onReconnectStart:h,onReconnectEnd:m,reconnectRadius:g,rfId:o,ariaLabel:e.ariaLabel,isFocusable:D,isReconnectable:L,pathOptions:"pathOptions"in e?e.pathOptions:void 0,interactionWidth:e.interactionWidth,disableKeyboardA11y:b})})))))),y):null};ys.displayName="EdgeRenderer";var bs=r(ys);const vs=e=>`translate(${e.transform[0]}px,${e.transform[1]}px) scale(${e.transform[2]})`;function ws({children:e}){const n=co(vs);return t.createElement("div",{className:"react-flow__viewport react-flow__container",style:{transform:n}},e)}const xs={[Ho.Left]:Ho.Right,[Ho.Right]:Ho.Left,[Ho.Top]:Ho.Bottom,[Ho.Bottom]:Ho.Top},Cs=({nodeId:e,handleType:n,style:r,type:o=Go.Bezier,CustomComponent:i,connectionStatus:a})=>{const{fromNode:s,handleId:c,toX:u,toY:d,connectionMode:f}=co(l((t=>({fromNode:t.nodeInternals.get(e),handleId:t.connectionHandleId,toX:(t.connectionPosition.x-t.transform[0])/t.transform[2],toY:(t.connectionPosition.y-t.transform[1])/t.transform[2],connectionMode:t.connectionMode})),[e]),fe),p=s?.[Ao]?.handleBounds;let h=p?.[n];if(f===zo.Loose&&(h=h||p?.["source"===n?"target":"source"]),!s||!h)return null;const m=c?h.find((e=>e.id===c)):h[0],g=m?m.x+m.width/2:(s.width??0)/2,y=m?m.y+m.height/2:s.height??0,b=(s.positionAbsolute?.x??0)+g,v=(s.positionAbsolute?.y??0)+y,w=m?.position,x=w?xs[w]:null;if(!w||!x)return null;if(i)return t.createElement(i,{connectionLineType:o,connectionLineStyle:r,fromNode:s,fromHandle:m,fromX:b,fromY:v,toX:u,toY:d,fromPosition:w,toPosition:x,connectionStatus:a});let C="";const k={sourceX:b,sourceY:v,sourcePosition:w,targetX:u,targetY:d,targetPosition:x};return o===Go.Bezier?[C]=ri(k):o===Go.Step?[C]=Ko({...k,borderRadius:0}):o===Go.SmoothStep?[C]=Ko(k):o===Go.SimpleBezier?[C]=$o(k):C=`M${b},${v} ${u},${d}`,t.createElement("path",{d:C,fill:"none",className:"react-flow__connection-path",style:r})};Cs.displayName="ConnectionLine";const ks=e=>({nodeId:e.connectionNodeId,handleType:e.connectionHandleType,nodesConnectable:e.nodesConnectable,connectionStatus:e.connectionStatus,width:e.width,height:e.height});function Es({containerStyle:e,style:n,type:r,component:o}){const{nodeId:i,handleType:a,nodesConnectable:s,width:l,height:c,connectionStatus:u}=co(ks,fe);return!!(i&&a&&l&&s)?t.createElement("svg",{style:e,width:l,height:c,className:"react-flow__edges react-flow__connectionline react-flow__container"},t.createElement("g",{className:ae(["react-flow__connection",u])},t.createElement(Cs,{nodeId:i,handleType:a,style:n,type:r,CustomComponent:o,connectionStatus:u}))):null}function Ss(e,t){const n=u(null),r=uo();return a((()=>{if("development"===process.env.NODE_ENV){const t=Object.keys(e);fe(n.current,t)&&r.getState().onError?.("002",qr()),n.current=t}return t(e)}),[e])}const Is=({nodeTypes:e,edgeTypes:n,onMove:r,onMoveStart:o,onMoveEnd:i,onInit:a,onNodeClick:l,onEdgeClick:c,onNodeDoubleClick:d,onEdgeDoubleClick:f,onNodeMouseEnter:p,onNodeMouseMove:h,onNodeMouseLeave:m,onNodeContextMenu:g,onSelectionContextMenu:y,onSelectionStart:b,onSelectionEnd:v,connectionLineType:w,connectionLineStyle:x,connectionLineComponent:C,connectionLineContainerStyle:k,selectionKeyCode:E,selectionOnDrag:S,selectionMode:I,multiSelectionKeyCode:_,panActivationKeyCode:A,zoomActivationKeyCode:N,deleteKeyCode:O,onlyRenderVisibleElements:R,elementsSelectable:M,selectNodesOnDrag:T,defaultViewport:P,translateExtent:D,minZoom:j,maxZoom:L,preventScrolling:F,defaultMarkerColor:z,zoomOnScroll:B,zoomOnPinch:V,panOnScroll:G,panOnScrollSpeed:W,panOnScrollMode:H,zoomOnDoubleClick:X,panOnDrag:$,onPaneClick:Z,onPaneMouseEnter:Y,onPaneMouseMove:U,onPaneMouseLeave:J,onPaneScroll:K,onPaneContextMenu:q,onEdgeContextMenu:Q,onEdgeMouseEnter:ee,onEdgeMouseMove:te,onEdgeMouseLeave:ne,onReconnect:re,onReconnectStart:oe,onReconnectEnd:ie,reconnectRadius:ae,noDragClassName:se,noWheelClassName:le,noPanClassName:ce,elevateEdgesOnSelect:ue,disableKeyboardA11y:de,nodeOrigin:fe,nodeExtent:pe,rfId:he})=>{const me=Ss(e,Ja),ge=Ss(n,as);return function(e){const t=fa(),n=u(!1);s((()=>{!n.current&&t.viewportInitialized&&e&&(setTimeout((()=>e(t)),1),n.current=!0)}),[e,t.viewportInitialized])}(a),t.createElement(Ua,{onPaneClick:Z,onPaneMouseEnter:Y,onPaneMouseMove:U,onPaneMouseLeave:J,onPaneContextMenu:q,onPaneScroll:K,deleteKeyCode:O,selectionKeyCode:E,selectionOnDrag:S,selectionMode:I,onSelectionStart:b,onSelectionEnd:v,multiSelectionKeyCode:_,panActivationKeyCode:A,zoomActivationKeyCode:N,elementsSelectable:M,onMove:r,onMoveStart:o,onMoveEnd:i,zoomOnScroll:B,zoomOnPinch:V,zoomOnDoubleClick:X,panOnScroll:G,panOnScrollSpeed:W,panOnScrollMode:H,panOnDrag:$,defaultViewport:P,translateExtent:D,minZoom:j,maxZoom:L,onSelectionContextMenu:y,preventScrolling:F,noDragClassName:se,noWheelClassName:le,noPanClassName:ce,disableKeyboardA11y:de},t.createElement(ws,null,t.createElement(bs,{edgeTypes:ge,onEdgeClick:c,onEdgeDoubleClick:f,onlyRenderVisibleElements:R,onEdgeContextMenu:Q,onEdgeMouseEnter:ee,onEdgeMouseMove:te,onEdgeMouseLeave:ne,onReconnect:re,onReconnectStart:oe,onReconnectEnd:ie,reconnectRadius:ae,defaultMarkerColor:z,noPanClassName:ce,elevateEdgesOnSelect:!!ue,disableKeyboardA11y:de,rfId:he},t.createElement(Es,{style:x,type:w,component:C,containerStyle:k})),t.createElement("div",{className:"react-flow__edgelabel-renderer"}),t.createElement(Qa,{nodeTypes:me,onNodeClick:l,onNodeDoubleClick:d,onNodeMouseEnter:p,onNodeMouseMove:h,onNodeMouseLeave:m,onNodeContextMenu:g,selectNodesOnDrag:T,onlyRenderVisibleElements:R,noPanClassName:ce,noDragClassName:se,disableKeyboardA11y:de,nodeOrigin:fe,nodeExtent:pe,rfId:he})))};Is.displayName="GraphView";var _s=r(Is);const As=[[Number.NEGATIVE_INFINITY,Number.NEGATIVE_INFINITY],[Number.POSITIVE_INFINITY,Number.POSITIVE_INFINITY]],Ns={rfId:"1",width:0,height:0,transform:[0,0,1],nodeInternals:new Map,edges:[],onNodesChange:null,onEdgesChange:null,hasDefaultNodes:!1,hasDefaultEdges:!1,d3Zoom:null,d3Selection:null,d3ZoomHandler:void 0,minZoom:.5,maxZoom:2,translateExtent:As,nodeExtent:As,nodesSelectionActive:!1,userSelectionActive:!1,userSelectionRect:null,connectionNodeId:null,connectionHandleId:null,connectionHandleType:"source",connectionPosition:{x:0,y:0},connectionStatus:null,connectionMode:zo.Strict,domNode:null,paneDragging:!1,noPanClassName:"nopan",nodeOrigin:[0,0],nodeDragThreshold:0,snapGrid:[15,15],snapToGrid:!1,nodesDraggable:!0,nodesConnectable:!0,nodesFocusable:!0,edgesFocusable:!0,edgesUpdatable:!0,elementsSelectable:!0,elevateNodesOnSelect:!0,fitViewOnInit:!1,fitViewOnInitDone:!1,fitViewOnInitOptions:void 0,onSelectionChange:[],multiSelectionActive:!1,connectionStartHandle:null,connectionEndHandle:null,connectionClickStartHandle:null,connectOnClick:!0,ariaLiveMessage:"",autoPanOnConnect:!0,autoPanOnNodeDrag:!0,connectionRadius:20,onError:Oo,isValidConnection:void 0},Os=()=>((e,t)=>e?de(e,t):de)(((e,t)=>({...Ns,setNodes:n=>{const{nodeInternals:r,nodeOrigin:o,elevateNodesOnSelect:i}=t();e({nodeInternals:oa(n,r,o,i)})},getNodes:()=>Array.from(t().nodeInternals.values()),setEdges:n=>{const{defaultEdgeOptions:r={}}=t();e({edges:n.map((e=>({...r,...e})))})},setDefaultNodesAndEdges:(n,r)=>{const o=void 0!==n,i=void 0!==r,a=o?oa(n,new Map,t().nodeOrigin,t().elevateNodesOnSelect):new Map;e({nodeInternals:a,edges:i?r:[],hasDefaultNodes:o,hasDefaultEdges:i})},updateNodeDimensions:n=>{const{onNodesChange:r,nodeInternals:o,fitViewOnInit:i,fitViewOnInitDone:a,fitViewOnInitOptions:s,domNode:l,nodeOrigin:c}=t(),u=l?.querySelector(".react-flow__viewport");if(!u)return;const d=window.getComputedStyle(u),{m22:f}=new window.DOMMatrixReadOnly(d.transform),p=n.reduce(((e,t)=>{const n=o.get(t.id);if(n?.hidden)o.set(n.id,{...n,[Ao]:{...n[Ao],handleBounds:void 0}});else if(n){const r=go(t.nodeElement);!(!r.width||!r.height||n.width===r.width&&n.height===r.height&&!t.forceUpdate)&&(o.set(n.id,{...n,[Ao]:{...n[Ao],handleBounds:{source:La(".source",t.nodeElement,f,c),target:La(".target",t.nodeElement,f,c)}},...r}),e.push({id:n.id,type:"dimensions",dimensions:r}))}return e}),[]);ra(o,c);const h=a||i&&!a&&ia(t,{initial:!0,...s});e({nodeInternals:new Map(o),fitViewOnInitDone:h}),p?.length>0&&r?.(p)},updateNodePositions:(e,n=!0,r=!1)=>{const{triggerNodeChanges:o}=t(),i=e.map((e=>{const t={id:e.id,type:"position",dragging:r};return n&&(t.positionAbsolute=e.positionAbsolute,t.position=e.position),t}));o(i)},triggerNodeChanges:n=>{const{onNodesChange:r,nodeInternals:o,hasDefaultNodes:i,nodeOrigin:a,getNodes:s,elevateNodesOnSelect:l}=t();if(n?.length){if(i){const t=oa(Sa(n,s()),o,a,l);e({nodeInternals:t})}r?.(n)}},addSelectedNodes:n=>{const{multiSelectionActive:r,edges:o,getNodes:i}=t();let a,s=null;r?a=n.map((e=>_a(e,!0))):(a=Aa(i(),n),s=Aa(o,[])),la({changedNodes:a,changedEdges:s,get:t,set:e})},addSelectedEdges:n=>{const{multiSelectionActive:r,edges:o,getNodes:i}=t();let a,s=null;r?a=n.map((e=>_a(e,!0))):(a=Aa(o,n),s=Aa(i(),[])),la({changedNodes:s,changedEdges:a,get:t,set:e})},unselectNodesAndEdges:({nodes:n,edges:r}={})=>{const{edges:o,getNodes:i}=t(),a=r||o;la({changedNodes:(n||i()).map((e=>(e.selected=!1,_a(e.id,!1)))),changedEdges:a.map((e=>_a(e.id,!1))),get:t,set:e})},setMinZoom:n=>{const{d3Zoom:r,maxZoom:o}=t();r?.scaleExtent([n,o]),e({minZoom:n})},setMaxZoom:n=>{const{d3Zoom:r,minZoom:o}=t();r?.scaleExtent([o,n]),e({maxZoom:n})},setTranslateExtent:n=>{t().d3Zoom?.translateExtent(n),e({translateExtent:n})},resetSelectedElements:()=>{const{edges:n,getNodes:r}=t();la({changedNodes:r().filter((e=>e.selected)).map((e=>_a(e.id,!1))),changedEdges:n.filter((e=>e.selected)).map((e=>_a(e.id,!1))),get:t,set:e})},setNodeExtent:n=>{const{nodeInternals:r}=t();r.forEach((e=>{e.positionAbsolute=bo(e.position,n)})),e({nodeExtent:n,nodeInternals:new Map(r)})},panBy:e=>{const{transform:n,width:r,height:o,d3Zoom:i,d3Selection:a,translateExtent:s}=t();if(!i||!a||!e.x&&!e.y)return!1;const l=Br.translate(n[0]+e.x,n[1]+e.y).scale(n[2]),c=[[0,0],[r,o]],u=i?.constrain()(l,c,s);i.transform(a,u);return n[0]!==u.x||n[1]!==u.y||n[2]!==u.k},cancelConnection:()=>e({connectionNodeId:Ns.connectionNodeId,connectionHandleId:Ns.connectionHandleId,connectionHandleType:Ns.connectionHandleType,connectionStatus:Ns.connectionStatus,connectionStartHandle:Ns.connectionStartHandle,connectionEndHandle:Ns.connectionEndHandle}),reset:()=>e({...Ns})})),Object.is),Rs=({children:e})=>{const n=u(null);return n.current||(n.current=Os()),t.createElement(Kr,{value:n.current},e)};Rs.displayName="ReactFlowProvider";const Ms=({children:e})=>o(Jr)?t.createElement(t.Fragment,null,e):t.createElement(Rs,null,e);Ms.displayName="ReactFlowWrapper";const Ts={input:Mi,default:Oi,output:Pi,group:Di},Ps={default:oi,straight:ei,step:Qo,smoothstep:qo,simplebezier:Zo},Ds=[0,0],js=[15,15],Ls={x:0,y:0,zoom:1},Fs={width:"100%",height:"100%",overflow:"hidden",position:"relative",zIndex:0},zs=n((({nodes:e,edges:n,defaultNodes:r,defaultEdges:o,className:i,nodeTypes:a=Ts,edgeTypes:s=Ps,onNodeClick:l,onEdgeClick:c,onInit:u,onMove:d,onMoveStart:f,onMoveEnd:p,onConnect:h,onConnectStart:m,onConnectEnd:g,onClickConnectStart:y,onClickConnectEnd:b,onNodeMouseEnter:v,onNodeMouseMove:w,onNodeMouseLeave:x,onNodeContextMenu:C,onNodeDoubleClick:k,onNodeDragStart:E,onNodeDrag:S,onNodeDragStop:I,onNodesDelete:_,onEdgesDelete:A,onSelectionChange:N,onSelectionDragStart:O,onSelectionDrag:R,onSelectionDragStop:M,onSelectionContextMenu:T,onSelectionStart:P,onSelectionEnd:D,connectionMode:j=zo.Strict,connectionLineType:L=Go.Bezier,connectionLineStyle:F,connectionLineComponent:z,connectionLineContainerStyle:B,deleteKeyCode:V="Backspace",selectionKeyCode:G="Shift",selectionOnDrag:W=!1,selectionMode:H=Vo.Full,panActivationKeyCode:X="Space",multiSelectionKeyCode:$=(Po()?"Meta":"Control"),zoomActivationKeyCode:Z=(Po()?"Meta":"Control"),snapToGrid:Y=!1,snapGrid:U=js,onlyRenderVisibleElements:J=!1,selectNodesOnDrag:K=!0,nodesDraggable:q,nodesConnectable:Q,nodesFocusable:ee,nodeOrigin:te=Ds,edgesFocusable:ne,edgesUpdatable:re,elementsSelectable:oe,defaultViewport:ie=Ls,minZoom:se=.5,maxZoom:le=2,translateExtent:ce=As,preventScrolling:ue=!0,nodeExtent:de,defaultMarkerColor:fe="#b1b1b7",zoomOnScroll:pe=!0,zoomOnPinch:he=!0,panOnScroll:me=!1,panOnScrollSpeed:ge=.5,panOnScrollMode:ye=Bo.Free,zoomOnDoubleClick:be=!0,panOnDrag:ve=!0,onPaneClick:we,onPaneMouseEnter:xe,onPaneMouseMove:Ce,onPaneMouseLeave:ke,onPaneScroll:Ee,onPaneContextMenu:Se,children:Ie,onEdgeContextMenu:_e,onEdgeDoubleClick:Ae,onEdgeMouseEnter:Ne,onEdgeMouseMove:Oe,onEdgeMouseLeave:Re,onEdgeUpdate:Me,onEdgeUpdateStart:Te,onEdgeUpdateEnd:Pe,onReconnect:De,onReconnectStart:je,onReconnectEnd:Le,reconnectRadius:Fe=10,edgeUpdaterRadius:ze=10,onNodesChange:Be,onEdgesChange:Ve,noDragClassName:Ge="nodrag",noWheelClassName:We="nowheel",noPanClassName:He="nopan",fitView:Xe=!1,fitViewOptions:$e,connectOnClick:Ze=!0,attributionPosition:Ye,proOptions:Ue,defaultEdgeOptions:Je,elevateNodesOnSelect:Ke=!0,elevateEdgesOnSelect:qe=!1,disableKeyboardA11y:Qe=!1,autoPanOnConnect:et=!0,autoPanOnNodeDrag:tt=!0,connectionRadius:nt=20,isValidConnection:rt,onError:ot,style:it,id:at,nodeDragThreshold:st,...lt},ct)=>{const ut=at||"1";return t.createElement("div",{...lt,style:{...it,...Fs},ref:ct,className:ae(["react-flow",i]),"data-testid":"rf__wrapper",id:at},t.createElement(Ms,null,t.createElement(_s,{onInit:u,onMove:d,onMoveStart:f,onMoveEnd:p,onNodeClick:l,onEdgeClick:c,onNodeMouseEnter:v,onNodeMouseMove:w,onNodeMouseLeave:x,onNodeContextMenu:C,onNodeDoubleClick:k,nodeTypes:a,edgeTypes:s,connectionLineType:L,connectionLineStyle:F,connectionLineComponent:z,connectionLineContainerStyle:B,selectionKeyCode:G,selectionOnDrag:W,selectionMode:H,deleteKeyCode:V,multiSelectionKeyCode:$,panActivationKeyCode:X,zoomActivationKeyCode:Z,onlyRenderVisibleElements:J,selectNodesOnDrag:K,defaultViewport:ie,translateExtent:ce,minZoom:se,maxZoom:le,preventScrolling:ue,zoomOnScroll:pe,zoomOnPinch:he,zoomOnDoubleClick:be,panOnScroll:me,panOnScrollSpeed:ge,panOnScrollMode:ye,panOnDrag:ve,onPaneClick:we,onPaneMouseEnter:xe,onPaneMouseMove:Ce,onPaneMouseLeave:ke,onPaneScroll:Ee,onPaneContextMenu:Se,onSelectionContextMenu:T,onSelectionStart:P,onSelectionEnd:D,onEdgeContextMenu:_e,onEdgeDoubleClick:Ae,onEdgeMouseEnter:Ne,onEdgeMouseMove:Oe,onEdgeMouseLeave:Re,onReconnect:De??Me,onReconnectStart:je??Te,onReconnectEnd:Le??Pe,reconnectRadius:Fe??ze,defaultMarkerColor:fe,noDragClassName:Ge,noWheelClassName:We,noPanClassName:He,elevateEdgesOnSelect:qe,rfId:ut,disableKeyboardA11y:Qe,nodeOrigin:te,nodeExtent:de}),t.createElement(Xi,{nodes:e,edges:n,defaultNodes:r,defaultEdges:o,onConnect:h,onConnectStart:m,onConnectEnd:g,onClickConnectStart:y,onClickConnectEnd:b,nodesDraggable:q,nodesConnectable:Q,nodesFocusable:ee,edgesFocusable:ne,edgesUpdatable:re,elementsSelectable:oe,elevateNodesOnSelect:Ke,minZoom:se,maxZoom:le,nodeExtent:de,onNodesChange:Be,onEdgesChange:Ve,snapToGrid:Y,snapGrid:U,connectionMode:j,translateExtent:ce,connectOnClick:Ze,defaultEdgeOptions:Je,fitView:Xe,fitViewOptions:$e,onNodesDelete:_,onEdgesDelete:A,onNodeDragStart:E,onNodeDrag:S,onNodeDragStop:I,onSelectionDrag:R,onSelectionDragStart:O,onSelectionDragStop:M,noPanClassName:He,nodeOrigin:te,rfId:ut,autoPanOnConnect:et,autoPanOnNodeDrag:tt,onError:ot,connectionRadius:nt,isValidConnection:rt,nodeDragThreshold:st}),t.createElement(Vi,{onSelectionChange:N}),Ie,t.createElement(ho,{proOptions:Ue,position:Ye}),t.createElement(qi,{rfId:ut,disableKeyboardA11y:Qe})))}));zs.displayName="ReactFlow";const Bs=e=>e.getNodes();const Vs=e=>e.edges;const Gs=({id:e,x:n,y:r,width:o,height:i,style:a,color:s,strokeColor:l,strokeWidth:c,className:u,borderRadius:d,shapeRendering:f,onClick:p,selected:h})=>{const{background:m,backgroundColor:g}=a||{},y=s||m||g;return t.createElement("rect",{className:ae(["react-flow__minimap-node",{selected:h},u]),x:n,y:r,rx:d,ry:d,width:o,height:i,fill:y,stroke:l,strokeWidth:c,shapeRendering:f,onClick:p?t=>p(t,e):void 0})};Gs.displayName="MiniMapNode";var Ws=r(Gs);const Hs=e=>e.nodeOrigin,Xs=e=>e.getNodes().filter((e=>!e.hidden&&e.width&&e.height)),$s=e=>e instanceof Function?e:()=>e;var Zs=r((function({nodeStrokeColor:e="transparent",nodeColor:n="#e2e2e2",nodeClassName:r="",nodeBorderRadius:o=5,nodeStrokeWidth:i=2,nodeComponent:a=Ws,onClick:s}){const l=co(Xs,fe),c=co(Hs),u=$s(n),d=$s(e),f=$s(r),p="undefined"==typeof window||window.chrome?"crispEdges":"geometricPrecision";return t.createElement(t.Fragment,null,l.map((e=>{const{x:n,y:r}=di(e,c).positionAbsolute;return t.createElement(a,{key:e.id,x:n,y:r,width:e.width,height:e.height,style:e.style,selected:e.selected,className:f(e),color:u(e),borderRadius:o,strokeColor:d(e),strokeWidth:i,shapeRendering:p,onClick:s,id:e.id})})))}));const Ys=e=>{const t=e.getNodes(),n={x:-e.transform[0]/e.transform[2],y:-e.transform[1]/e.transform[2],width:e.width/e.transform[2],height:e.height/e.transform[2]};return{viewBB:n,boundingRect:t.length>0?(r=fi(t,e.nodeOrigin),o=n,Eo(Co(ko(r),ko(o)))):n,rfId:e.rfId};var r,o};function Us({style:e,className:n,nodeStrokeColor:r="transparent",nodeColor:o="#e2e2e2",nodeClassName:i="",nodeBorderRadius:a=5,nodeStrokeWidth:l=2,nodeComponent:c,maskColor:d="rgb(240, 240, 240, 0.6)",maskStrokeColor:f="none",maskStrokeWidth:p=1,position:h="bottom-right",onClick:m,onNodeClick:g,pannable:y=!1,zoomable:b=!1,ariaLabel:v="React Flow mini map",inversePan:w=!1,zoomStep:x=10,offsetScale:C=5}){const k=uo(),E=u(null),{boundingRect:S,viewBB:I,rfId:_}=co(Ys,fe),A=e?.width??200,N=e?.height??150,O=S.width/A,R=S.height/N,M=Math.max(O,R),T=M*A,P=M*N,D=C*M,j=S.x-(T-S.width)/2-D,L=S.y-(P-S.height)/2-D,F=T+2*D,z=P+2*D,B=`react-flow__minimap-desc-${_}`,V=u(0);V.current=M,s((()=>{if(E.current){const e=Ot(E.current),t=e=>{const{transform:t,d3Selection:n,d3Zoom:r}=k.getState();if("wheel"!==e.sourceEvent.type||!n||!r)return;const o=-e.sourceEvent.deltaY*(1===e.sourceEvent.deltaMode?.05:e.sourceEvent.deltaMode?1:.002)*x,i=t[2]*Math.pow(2,o);r.scaleTo(n,i)},n=e=>{const{transform:t,d3Selection:n,d3Zoom:r,translateExtent:o,width:i,height:a}=k.getState();if("mousemove"!==e.sourceEvent.type||!n||!r)return;const s=V.current*Math.max(1,t[2])*(w?-1:1),l={x:t[0]-e.sourceEvent.movementX*s,y:t[1]-e.sourceEvent.movementY*s},c=[[0,0],[i,a]],u=Br.translate(l.x,l.y).scale(t[2]),d=r.constrain()(u,c,o);r.transform(n,d)},r=Ur().on("zoom",y?n:null).on("zoom.wheel",b?t:null);return e.call(r),()=>{e.on("zoom",null)}}}),[y,b,w,x]);const G=m?e=>{const t=Rt(e);m(e,{x:t[0],y:t[1]})}:void 0,W=g?(e,t)=>{const n=k.getState().nodeInternals.get(t);g(e,n)}:void 0;return t.createElement(po,{position:h,style:e,className:ae(["react-flow__minimap",n]),"data-testid":"rf__minimap"},t.createElement("svg",{width:A,height:N,viewBox:`${j} ${L} ${F} ${z}`,role:"img","aria-labelledby":B,ref:E,onClick:G},v&&t.createElement("title",{id:B},v),t.createElement(Zs,{onClick:W,nodeColor:o,nodeStrokeColor:r,nodeBorderRadius:a,nodeClassName:i,nodeStrokeWidth:l,nodeComponent:c}),t.createElement("path",{className:"react-flow__minimap-mask",d:`M${j-D},${L-D}h${F+2*D}v${z+2*D}h${-F-2*D}z\n M${I.x},${I.y}h${I.width}v${I.height}h${-I.width}z`,fill:d,fillRule:"evenodd",stroke:f,strokeWidth:p,pointerEvents:"none"})))}Us.displayName="MiniMap";var Js,Ks=r(Us);function qs({color:e,dimensions:n,lineWidth:r}){return t.createElement("path",{stroke:e,strokeWidth:r,d:`M${n[0]/2} 0 V${n[1]} M0 ${n[1]/2} H${n[0]}`})}function Qs({color:e,radius:n}){return t.createElement("circle",{cx:n,cy:n,r:n,fill:e})}!function(e){e.Lines="lines",e.Dots="dots",e.Cross="cross"}(Js||(Js={}));const el={[Js.Dots]:"#91919a",[Js.Lines]:"#eee",[Js.Cross]:"#e2e2e2"},tl={[Js.Dots]:1,[Js.Lines]:1,[Js.Cross]:6},nl=e=>({transform:e.transform,patternId:`pattern-${e.rfId}`});function rl({id:e,variant:n=Js.Dots,gap:r=20,size:o,lineWidth:i=1,offset:a=2,color:s,style:l,className:c}){const d=u(null),{transform:f,patternId:p}=co(nl,fe),h=s||el[n],m=o||tl[n],g=n===Js.Dots,y=n===Js.Cross,b=Array.isArray(r)?r:[r,r],v=[b[0]*f[2]||1,b[1]*f[2]||1],w=m*f[2],x=y?[w,w]:v,C=g?[w/a,w/a]:[x[0]/a,x[1]/a];return t.createElement("svg",{className:ae(["react-flow__background",c]),style:{...l,position:"absolute",width:"100%",height:"100%",top:0,left:0},ref:d,"data-testid":"rf__background"},t.createElement("pattern",{id:p+e,x:f[0]%v[0],y:f[1]%v[1],width:v[0],height:v[1],patternUnits:"userSpaceOnUse",patternTransform:`translate(-${C[0]},-${C[1]})`},g?t.createElement(Qs,{color:h,radius:w/a}):t.createElement(qs,{dimensions:x,color:h,lineWidth:i})),t.createElement("rect",{x:"0",y:"0",width:"100%",height:"100%",fill:`url(#${p+e})`}))}rl.displayName="Background";var ol=r(rl);const il=({src_nid:e,src_ioid:t,trg_nid:n,trg_ioid:r})=>[`${e}:${t}`,`${n}:${r}`].sort().join("--"),al=0,sl=10,ll=20,cl=30,ul=sl,dl=e=>"string"==typeof e?e:e===al?"DEBUG":e===sl?"INFO":e===ll?"WARN":e===cl?"ERROR":"UNKNOWN";class fl{constructor(e,t=sl){this.name=e,this.level=(e=>{if("number"==typeof e)return e;const t=e.toLowerCase();if("debug"===t)return al;if("info"===t)return sl;if("warn"===t||"warning"===t)return ll;if("error"===t)return cl;throw new Error(`Unknown log level: ${e}`)})(t),this._level_name=dl(t)}set_level(e){this.level=e,this._level_name=dl(e)}_fomat_message(e,...t){return`[${this.name}] ${this._level_name}: ${e} ${t.map((e=>JSON.stringify(e,function(){const e=[];return function(t,n){if("object"!=typeof n||null===n)return n;for(;e.length>0&&e.at(-1)!==this;)e.pop();return e.includes(n)?"[Circular]":(e.push(n),n)}}()))).join(" ")}`}debug(e,...t){this.level<=al&&console.debug(this._fomat_message(e,...t))}info(e,...t){this.level<=sl&&console.info(this._fomat_message(e,...t))}warn(e,...t){this.level<=ll&&console.warn(this._fomat_message(e,...t))}error(e,...t){this.level<=cl&&console.error(this._fomat_message(e,...t))}}const pl=(e,t)=>("<NoValue>"===e.value&&(e.value=void 0),"<NoValue>"===e.fullvalue&&(e.fullvalue=void 0),void 0===e.try_get_full_value&&(e.try_get_full_value=()=>{t&&void 0!==e.node&&void 0!==e.id&&t.worker?.get_io_full_value({nid:e.node,ioid:e.id})}),void 0===e.hidden&&(e.hidden=!1),void 0===e.set_hidden&&(e.set_hidden=n=>{t&&void 0!==e.node&&void 0!==e.id&&t.worker?.update_io_options({nid:e.node,ioid:e.id,options:{hidden:n}})}),e),hl=(e,t,n)=>{if(((e,t)=>{const n=e.properties||{};n["frontend:size"]||(n["frontend:size"]=[200,100]);const r=n["frontend:pos"];if(!r||2!==r.length||isNaN(r[0])||null===r[0]||isNaN(r[1])||null===r[1])if(t&&t.rf_instance&&null!==t.reactflowRef){const e=t.reactflowRef.getBoundingClientRect(),r=e.left+e.width/2,o=e.top+e.height/2,i=t.rf_instance.screenToFlowPosition({x:r,y:o});n["frontend:pos"]=[i.x-n["frontend:size"][0]/2,i.y-n["frontend:size"][0]/2]}else n["frontend:pos"]=[0,0];n["frontend:collapsed"]||(n["frontend:collapsed"]=!1),e.properties=n})(e,n),void 0===(e=oe(e)).id)throw new Error("Node must have an id");for(const t in e.io)e.io[t].node=e.id,pl(e.io[t],n);return{position:{x:e.properties["frontend:pos"][0],y:e.properties["frontend:pos"][1]},data:{UseNodeStore:t},type:"default",...e}},ml=e=>{const t={...e},n=e=>{const t=o.getState();if(e.from_remote){let n=i.get_node(e.node.id,!1);if(!n)try{n=(e=>Y(((t,n)=>oe(ie(e)))))(e.node),i.nodesstates.set(e.node.id,n)}catch(e){return void s.logger.error(`Failed to create node store ${e}`)}const r=n.getState();s.logger.info("Add node",r.id,r.name);const a=[...t.nodes,hl(r,n,s)];o.setState({nodes:a});for(const t in e.node.io){const n=e.node.io[t].id;void 0!==n&&s.worker?.get_io_value({nid:e.node.id,ioid:n})}setTimeout((()=>{s.worker?.call_hooks("node_added",{node:r.id})}),0)}},r=e=>{switch(e.type){case"add":n(e);break;case"update":(e=>{if(e.node.in_trigger&&(e.node.error=void 0),e.from_remote){const t=i.get_node(e.id,!1);if(!t)return;ie(e.node);const n=t.getState(),{new_obj:r,change:o}=K(n,e.node);if(o){if(e.node.io)for(const t in e.node.io){r.io[t].fullvalue=e.node.io[t]?.fullvalue;for(const t in e.node.io){const n=e.node.io[t],o=r.io[t];n.hasOwnProperty("value")&&(void 0===n.value?o.value=null:"<NoValue>"===n.value?o.value=void 0:o.value=n.value)}}hl(r,t,s),s.logger.debug("update_action",r),t.setState(oe(r))}}else s.worker&&s.worker.locally_update_node(e)})(e);break;case"delete":(e=>{s.logger.info("Deleting node",e.id),e.from_remote?o.getState().onNodesChange([{type:"remove",id:e.id}]):s.worker?.remove_node(e.id)})(e);break;case"error":(e=>{s.logger.error("Error",e),r({type:"update",id:e.id,node:{in_trigger:!1,error:e.error},from_remote:!0})})(e);break;case"trigger":(e=>{e.from_remote?r({type:"update",id:e.id,node:{in_trigger:!0,error:void 0},from_remote:!0}):s.worker?.trigger_node(e.id)})(e);break;default:s.logger.error("Unknown node action",e)}},o=(({on_node_change:e,on_edge_change:t,on_connect:n})=>{const r=e||(e=>{}),o=n||(e=>{}),i=Y(((e,t)=>({nodes:[],edges:[],onNodesChange:n=>{e({nodes:Sa(n,t().nodes)}),r(n)},onEdgesChange:n=>{e({edges:Ia(n,t().edges)})},onConnect:e=>{null!=e.source&&null!=e.target&&o(e)}})));return i})({on_node_change:e=>{for(const t of e)switch(t.type){case"position":t.position&&r({type:"update",id:t.id,node:{properties:{"frontend:pos":[t.position.x,t.position.y]}},from_remote:!1});break;case"dimensions":t.dimensions&&r({type:"update",id:t.id,node:{properties:{"frontend:size":[t.dimensions.width,t.dimensions.height]}},from_remote:!1})}},on_edge_change:e=>{},on_connect:e=>{null!==e.source&&null!==e.target&&null!==e.sourceHandle&&null!==e.targetHandle&&s.worker&&s.worker.add_edge({src_nid:e.source,src_ioid:e.sourceHandle,trg_nid:e.target,trg_ioid:e.targetHandle,replace:!0})}}),i=(({})=>{const e=new Map;return{nodesstates:e,get_node:(t,n=!0)=>{const r=e.get(t);if(!r&&n){const n=e.keys();throw new Error(`Node ${t} not found, available nodes: ${Array.from(n)}`)}return r}}})({}),a={libstate:Y(((e,t)=>({lib:{shelves:[]},external_worker:[],set:t=>e((e=>({...e,...t}))),get_lib:()=>t().lib,get_external_worker:()=>t().external_worker})))},s={local_settings:Y(((e,t)=>({view_settings:{},update_view_settings:e=>{const t=s.local_settings.getState().view_settings,{new_obj:n,change:r}=K(t,e);r&&s.local_settings.setState((e=>({...e,view_settings:n})))}}))),local_state:Y(((e,t)=>({selected_nodes:[],selected_edges:[],funcnodescontainerRef:null}))),options:t,lib:a,workermanager:void 0,workers:Y(((e,t)=>({}))),workerstate:Y(((e,t)=>({is_open:!1}))),render_options:Y(((e,t)=>({}))),progress_state:Y(((e,t)=>({message:"please select worker",status:"info",progress:0,blocking:!1}))),update_render_options:e=>{const t=s.render_options.getState(),{new_obj:n,change:r}=K(t,e);r&&s.render_options.setState(n)},worker:void 0,_unsubscribeFromWorker:void 0,set_worker:e=>{e!==s.worker&&(s._unsubscribeFromWorker&&(s._unsubscribeFromWorker(),s._unsubscribeFromWorker=void 0),e&&(s._unsubscribeFromWorker=e.state.subscribe((e=>{s.workerstate.setState(e)})),s.workerstate.setState(e.state.getState())),s.worker=e,e?.set_zustand(s))},nodespace:i,useReactFlowStore:o,on_node_action:r,on_edge_action:e=>{const t=o.getState();switch(e.type){case"add":if(e.from_remote){const n=t.edges,r=il(e);if(n.some((e=>e.id===r)))return;const i={id:r,source:e.src_nid,target:e.trg_nid,sourceHandle:e.src_ioid,targetHandle:e.trg_ioid,className:"funcnodes-edge animated"};s.logger.info("Adding edge",i),o.setState({edges:[...n,i]}),s.worker?.get_remote_node_state(e.src_nid),s.worker?.get_remote_node_state(e.trg_nid)}break;case"delete":if(e.from_remote){const n=t.edges,r=il(e);s.logger.info("Deleting edge",r);const i=n.filter((e=>e.id!==r));o.setState({edges:i}),s.worker?.get_remote_node_state(e.src_nid),s.worker?.get_remote_node_state(e.trg_nid)}break;default:s.logger.error("Unknown edge action",e)}},reactflowRef:null,clear_all:()=>{s.worker?.disconnect(),s.set_worker(void 0),s.workermanager?.setWorker(void 0),s.lib.libstate.getState().set({lib:{shelves:[]},external_worker:[]}),s.nodespace.nodesstates.clear(),s.useReactFlowStore.setState({nodes:[],edges:[]}),s.auto_progress()},center_node:e=>{if(!s.rf_instance)return;e=Array.isArray(e)?e:[e];const t=s.useReactFlowStore.getState().nodes.filter((t=>e.includes(t.id)));t.length>0&&s.rf_instance?.fitView({padding:.2,nodes:t})},set_progress:e=>{if(""===e.message)return s.auto_progress();const t=s.progress_state.getState(),{new_obj:n,change:r}=K(t,e);r&&s.progress_state.setState(n)},auto_progress:()=>void 0===s.workermanager||s.workermanager.open?void 0===s.worker?s.set_progress({progress:0,message:"please select worker",status:"error",blocking:!1}):s.worker.is_open?void s.set_progress({progress:1,message:"running",status:"info",blocking:!1}):s.set_progress({progress:0,message:"connecting to worker",status:"info",blocking:!0}):s.set_progress({progress:0,message:"connecting to worker manager",status:"error",blocking:!1}),plugins:Y(((e,t)=>({}))),add_plugin:(e,t)=>{void 0!==t&&s.plugins.setState((n=>({...n,[e]:t})))},dev_settings:{debug:!0},logger:new fl("fn",ul)};return s};function gl(e,t){return function(){return e.apply(t,arguments)}}const{toString:yl}=Object.prototype,{getPrototypeOf:bl}=Object,vl=(e=>t=>{const n=yl.call(t);return e[n]||(e[n]=n.slice(8,-1).toLowerCase())})(Object.create(null)),wl=e=>(e=e.toLowerCase(),t=>vl(t)===e),xl=e=>t=>typeof t===e,{isArray:Cl}=Array,kl=xl("undefined");const El=wl("ArrayBuffer");const Sl=xl("string"),Il=xl("function"),_l=xl("number"),Al=e=>null!==e&&"object"==typeof e,Nl=e=>{if("object"!==vl(e))return!1;const t=bl(e);return!(null!==t&&t!==Object.prototype&&null!==Object.getPrototypeOf(t)||Symbol.toStringTag in e||Symbol.iterator in e)},Ol=wl("Date"),Rl=wl("File"),Ml=wl("Blob"),Tl=wl("FileList"),Pl=wl("URLSearchParams"),[Dl,jl,Ll,Fl]=["ReadableStream","Request","Response","Headers"].map(wl);function zl(e,t,{allOwnKeys:n=!1}={}){if(null==e)return;let r,o;if("object"!=typeof e&&(e=[e]),Cl(e))for(r=0,o=e.length;r<o;r++)t.call(null,e[r],r,e);else{const o=n?Object.getOwnPropertyNames(e):Object.keys(e),i=o.length;let a;for(r=0;r<i;r++)a=o[r],t.call(null,e[a],a,e)}}function Bl(e,t){t=t.toLowerCase();const n=Object.keys(e);let r,o=n.length;for(;o-- >0;)if(r=n[o],t===r.toLowerCase())return r;return null}const Vl="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:"undefined"!=typeof window?window:global,Gl=e=>!kl(e)&&e!==Vl;const Wl=(Hl="undefined"!=typeof Uint8Array&&bl(Uint8Array),e=>Hl&&e instanceof Hl);var Hl;const Xl=wl("HTMLFormElement"),$l=(({hasOwnProperty:e})=>(t,n)=>e.call(t,n))(Object.prototype),Zl=wl("RegExp"),Yl=(e,t)=>{const n=Object.getOwnPropertyDescriptors(e),r={};zl(n,((n,o)=>{let i;!1!==(i=t(n,o,e))&&(r[o]=i||n)})),Object.defineProperties(e,r)},Ul="abcdefghijklmnopqrstuvwxyz",Jl="0123456789",Kl={DIGIT:Jl,ALPHA:Ul,ALPHA_DIGIT:Ul+Ul.toUpperCase()+Jl};const ql=wl("AsyncFunction"),Ql=(ec="function"==typeof setImmediate,tc=Il(Vl.postMessage),ec?setImmediate:tc?((e,t)=>(Vl.addEventListener("message",(({source:n,data:r})=>{n===Vl&&r===e&&t.length&&t.shift()()}),!1),n=>{t.push(n),Vl.postMessage(e,"*")}))(`axios@${Math.random()}`,[]):e=>setTimeout(e));var ec,tc;const nc="undefined"!=typeof queueMicrotask?queueMicrotask.bind(Vl):"undefined"!=typeof process&&process.nextTick||Ql;var rc={isArray:Cl,isArrayBuffer:El,isBuffer:function(e){return null!==e&&!kl(e)&&null!==e.constructor&&!kl(e.constructor)&&Il(e.constructor.isBuffer)&&e.constructor.isBuffer(e)},isFormData:e=>{let t;return e&&("function"==typeof FormData&&e instanceof FormData||Il(e.append)&&("formdata"===(t=vl(e))||"object"===t&&Il(e.toString)&&"[object FormData]"===e.toString()))},isArrayBufferView:function(e){let t;return t="undefined"!=typeof ArrayBuffer&&ArrayBuffer.isView?ArrayBuffer.isView(e):e&&e.buffer&&El(e.buffer),t},isString:Sl,isNumber:_l,isBoolean:e=>!0===e||!1===e,isObject:Al,isPlainObject:Nl,isReadableStream:Dl,isRequest:jl,isResponse:Ll,isHeaders:Fl,isUndefined:kl,isDate:Ol,isFile:Rl,isBlob:Ml,isRegExp:Zl,isFunction:Il,isStream:e=>Al(e)&&Il(e.pipe),isURLSearchParams:Pl,isTypedArray:Wl,isFileList:Tl,forEach:zl,merge:function e(){const{caseless:t}=Gl(this)&&this||{},n={},r=(r,o)=>{const i=t&&Bl(n,o)||o;Nl(n[i])&&Nl(r)?n[i]=e(n[i],r):Nl(r)?n[i]=e({},r):Cl(r)?n[i]=r.slice():n[i]=r};for(let e=0,t=arguments.length;e<t;e++)arguments[e]&&zl(arguments[e],r);return n},extend:(e,t,n,{allOwnKeys:r}={})=>(zl(t,((t,r)=>{n&&Il(t)?e[r]=gl(t,n):e[r]=t}),{allOwnKeys:r}),e),trim:e=>e.trim?e.trim():e.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,""),stripBOM:e=>(65279===e.charCodeAt(0)&&(e=e.slice(1)),e),inherits:(e,t,n,r)=>{e.prototype=Object.create(t.prototype,r),e.prototype.constructor=e,Object.defineProperty(e,"super",{value:t.prototype}),n&&Object.assign(e.prototype,n)},toFlatObject:(e,t,n,r)=>{let o,i,a;const s={};if(t=t||{},null==e)return t;do{for(o=Object.getOwnPropertyNames(e),i=o.length;i-- >0;)a=o[i],r&&!r(a,e,t)||s[a]||(t[a]=e[a],s[a]=!0);e=!1!==n&&bl(e)}while(e&&(!n||n(e,t))&&e!==Object.prototype);return t},kindOf:vl,kindOfTest:wl,endsWith:(e,t,n)=>{e=String(e),(void 0===n||n>e.length)&&(n=e.length),n-=t.length;const r=e.indexOf(t,n);return-1!==r&&r===n},toArray:e=>{if(!e)return null;if(Cl(e))return e;let t=e.length;if(!_l(t))return null;const n=new Array(t);for(;t-- >0;)n[t]=e[t];return n},forEachEntry:(e,t)=>{const n=(e&&e[Symbol.iterator]).call(e);let r;for(;(r=n.next())&&!r.done;){const n=r.value;t.call(e,n[0],n[1])}},matchAll:(e,t)=>{let n;const r=[];for(;null!==(n=e.exec(t));)r.push(n);return r},isHTMLForm:Xl,hasOwnProperty:$l,hasOwnProp:$l,reduceDescriptors:Yl,freezeMethods:e=>{Yl(e,((t,n)=>{if(Il(e)&&-1!==["arguments","caller","callee"].indexOf(n))return!1;const r=e[n];Il(r)&&(t.enumerable=!1,"writable"in t?t.writable=!1:t.set||(t.set=()=>{throw Error("Can not rewrite read-only method '"+n+"'")}))}))},toObjectSet:(e,t)=>{const n={},r=e=>{e.forEach((e=>{n[e]=!0}))};return Cl(e)?r(e):r(String(e).split(t)),n},toCamelCase:e=>e.toLowerCase().replace(/[-_\s]([a-z\d])(\w*)/g,(function(e,t,n){return t.toUpperCase()+n})),noop:()=>{},toFiniteNumber:(e,t)=>null!=e&&Number.isFinite(e=+e)?e:t,findKey:Bl,global:Vl,isContextDefined:Gl,ALPHABET:Kl,generateString:(e=16,t=Kl.ALPHA_DIGIT)=>{let n="";const{length:r}=t;for(;e--;)n+=t[Math.random()*r|0];return n},isSpecCompliantForm:function(e){return!!(e&&Il(e.append)&&"FormData"===e[Symbol.toStringTag]&&e[Symbol.iterator])},toJSONObject:e=>{const t=new Array(10),n=(e,r)=>{if(Al(e)){if(t.indexOf(e)>=0)return;if(!("toJSON"in e)){t[r]=e;const o=Cl(e)?[]:{};return zl(e,((e,t)=>{const i=n(e,r+1);!kl(i)&&(o[t]=i)})),t[r]=void 0,o}}return e};return n(e,0)},isAsyncFn:ql,isThenable:e=>e&&(Al(e)||Il(e))&&Il(e.then)&&Il(e.catch),setImmediate:Ql,asap:nc};function oc(e,t,n,r,o){Error.call(this),Error.captureStackTrace?Error.captureStackTrace(this,this.constructor):this.stack=(new Error).stack,this.message=e,this.name="AxiosError",t&&(this.code=t),n&&(this.config=n),r&&(this.request=r),o&&(this.response=o,this.status=o.status?o.status:null)}rc.inherits(oc,Error,{toJSON:function(){return{message:this.message,name:this.name,description:this.description,number:this.number,fileName:this.fileName,lineNumber:this.lineNumber,columnNumber:this.columnNumber,stack:this.stack,config:rc.toJSONObject(this.config),code:this.code,status:this.status}}});const ic=oc.prototype,ac={};["ERR_BAD_OPTION_VALUE","ERR_BAD_OPTION","ECONNABORTED","ETIMEDOUT","ERR_NETWORK","ERR_FR_TOO_MANY_REDIRECTS","ERR_DEPRECATED","ERR_BAD_RESPONSE","ERR_BAD_REQUEST","ERR_CANCELED","ERR_NOT_SUPPORT","ERR_INVALID_URL"].forEach((e=>{ac[e]={value:e}})),Object.defineProperties(oc,ac),Object.defineProperty(ic,"isAxiosError",{value:!0}),oc.from=(e,t,n,r,o,i)=>{const a=Object.create(ic);return rc.toFlatObject(e,a,(function(e){return e!==Error.prototype}),(e=>"isAxiosError"!==e)),oc.call(a,e.message,t,n,r,o),a.cause=e,a.name=e.name,i&&Object.assign(a,i),a};function sc(e){return rc.isPlainObject(e)||rc.isArray(e)}function lc(e){return rc.endsWith(e,"[]")?e.slice(0,-2):e}function cc(e,t,n){return e?e.concat(t).map((function(e,t){return e=lc(e),!n&&t?"["+e+"]":e})).join(n?".":""):t}const uc=rc.toFlatObject(rc,{},null,(function(e){return/^is[A-Z]/.test(e)}));function dc(e,t,n){if(!rc.isObject(e))throw new TypeError("target must be an object");t=t||new FormData;const r=(n=rc.toFlatObject(n,{metaTokens:!0,dots:!1,indexes:!1},!1,(function(e,t){return!rc.isUndefined(t[e])}))).metaTokens,o=n.visitor||c,i=n.dots,a=n.indexes,s=(n.Blob||"undefined"!=typeof Blob&&Blob)&&rc.isSpecCompliantForm(t);if(!rc.isFunction(o))throw new TypeError("visitor must be a function");function l(e){if(null===e)return"";if(rc.isDate(e))return e.toISOString();if(!s&&rc.isBlob(e))throw new oc("Blob is not supported. Use a Buffer instead.");return rc.isArrayBuffer(e)||rc.isTypedArray(e)?s&&"function"==typeof Blob?new Blob([e]):Buffer.from(e):e}function c(e,n,o){let s=e;if(e&&!o&&"object"==typeof e)if(rc.endsWith(n,"{}"))n=r?n:n.slice(0,-2),e=JSON.stringify(e);else if(rc.isArray(e)&&function(e){return rc.isArray(e)&&!e.some(sc)}(e)||(rc.isFileList(e)||rc.endsWith(n,"[]"))&&(s=rc.toArray(e)))return n=lc(n),s.forEach((function(e,r){!rc.isUndefined(e)&&null!==e&&t.append(!0===a?cc([n],r,i):null===a?n:n+"[]",l(e))})),!1;return!!sc(e)||(t.append(cc(o,n,i),l(e)),!1)}const u=[],d=Object.assign(uc,{defaultVisitor:c,convertValue:l,isVisitable:sc});if(!rc.isObject(e))throw new TypeError("data must be an object");return function e(n,r){if(!rc.isUndefined(n)){if(-1!==u.indexOf(n))throw Error("Circular reference detected in "+r.join("."));u.push(n),rc.forEach(n,(function(n,i){!0===(!(rc.isUndefined(n)||null===n)&&o.call(t,n,rc.isString(i)?i.trim():i,r,d))&&e(n,r?r.concat(i):[i])})),u.pop()}}(e),t}function fc(e){const t={"!":"%21","'":"%27","(":"%28",")":"%29","~":"%7E","%20":"+","%00":"\0"};return encodeURIComponent(e).replace(/[!'()~]|%20|%00/g,(function(e){return t[e]}))}function pc(e,t){this._pairs=[],e&&dc(e,this,t)}const hc=pc.prototype;function mc(e){return encodeURIComponent(e).replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%20/g,"+").replace(/%5B/gi,"[").replace(/%5D/gi,"]")}function gc(e,t,n){if(!t)return e;const r=n&&n.encode||mc;rc.isFunction(n)&&(n={serialize:n});const o=n&&n.serialize;let i;if(i=o?o(t,n):rc.isURLSearchParams(t)?t.toString():new pc(t,n).toString(r),i){const t=e.indexOf("#");-1!==t&&(e=e.slice(0,t)),e+=(-1===e.indexOf("?")?"?":"&")+i}return e}hc.append=function(e,t){this._pairs.push([e,t])},hc.toString=function(e){const t=e?function(t){return e.call(this,t,fc)}:fc;return this._pairs.map((function(e){return t(e[0])+"="+t(e[1])}),"").join("&")};class yc{constructor(){this.handlers=[]}use(e,t,n){return this.handlers.push({fulfilled:e,rejected:t,synchronous:!!n&&n.synchronous,runWhen:n?n.runWhen:null}),this.handlers.length-1}eject(e){this.handlers[e]&&(this.handlers[e]=null)}clear(){this.handlers&&(this.handlers=[])}forEach(e){rc.forEach(this.handlers,(function(t){null!==t&&e(t)}))}}var bc={silentJSONParsing:!0,forcedJSONParsing:!0,clarifyTimeoutError:!1},vc={isBrowser:!0,classes:{URLSearchParams:"undefined"!=typeof URLSearchParams?URLSearchParams:pc,FormData:"undefined"!=typeof FormData?FormData:null,Blob:"undefined"!=typeof Blob?Blob:null},protocols:["http","https","file","blob","url","data"]};const wc="undefined"!=typeof window&&"undefined"!=typeof document,xc="object"==typeof navigator&&navigator||void 0,Cc=wc&&(!xc||["ReactNative","NativeScript","NS"].indexOf(xc.product)<0),kc="undefined"!=typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope&&"function"==typeof self.importScripts,Ec=wc&&window.location.href||"http://localhost";var Sc={...Object.freeze({__proto__:null,hasBrowserEnv:wc,hasStandardBrowserEnv:Cc,hasStandardBrowserWebWorkerEnv:kc,navigator:xc,origin:Ec}),...vc};function Ic(e){function t(e,n,r,o){let i=e[o++];if("__proto__"===i)return!0;const a=Number.isFinite(+i),s=o>=e.length;if(i=!i&&rc.isArray(r)?r.length:i,s)return rc.hasOwnProp(r,i)?r[i]=[r[i],n]:r[i]=n,!a;r[i]&&rc.isObject(r[i])||(r[i]=[]);return t(e,n,r[i],o)&&rc.isArray(r[i])&&(r[i]=function(e){const t={},n=Object.keys(e);let r;const o=n.length;let i;for(r=0;r<o;r++)i=n[r],t[i]=e[i];return t}(r[i])),!a}if(rc.isFormData(e)&&rc.isFunction(e.entries)){const n={};return rc.forEachEntry(e,((e,r)=>{t(function(e){return rc.matchAll(/\w+|\[(\w*)]/g,e).map((e=>"[]"===e[0]?"":e[1]||e[0]))}(e),r,n,0)})),n}return null}const _c={transitional:bc,adapter:["xhr","http","fetch"],transformRequest:[function(e,t){const n=t.getContentType()||"",r=n.indexOf("application/json")>-1,o=rc.isObject(e);o&&rc.isHTMLForm(e)&&(e=new FormData(e));if(rc.isFormData(e))return r?JSON.stringify(Ic(e)):e;if(rc.isArrayBuffer(e)||rc.isBuffer(e)||rc.isStream(e)||rc.isFile(e)||rc.isBlob(e)||rc.isReadableStream(e))return e;if(rc.isArrayBufferView(e))return e.buffer;if(rc.isURLSearchParams(e))return t.setContentType("application/x-www-form-urlencoded;charset=utf-8",!1),e.toString();let i;if(o){if(n.indexOf("application/x-www-form-urlencoded")>-1)return function(e,t){return dc(e,new Sc.classes.URLSearchParams,Object.assign({visitor:function(e,t,n,r){return Sc.isNode&&rc.isBuffer(e)?(this.append(t,e.toString("base64")),!1):r.defaultVisitor.apply(this,arguments)}},t))}(e,this.formSerializer).toString();if((i=rc.isFileList(e))||n.indexOf("multipart/form-data")>-1){const t=this.env&&this.env.FormData;return dc(i?{"files[]":e}:e,t&&new t,this.formSerializer)}}return o||r?(t.setContentType("application/json",!1),function(e,t,n){if(rc.isString(e))try{return(t||JSON.parse)(e),rc.trim(e)}catch(e){if("SyntaxError"!==e.name)throw e}return(n||JSON.stringify)(e)}(e)):e}],transformResponse:[function(e){const t=this.transitional||_c.transitional,n=t&&t.forcedJSONParsing,r="json"===this.responseType;if(rc.isResponse(e)||rc.isReadableStream(e))return e;if(e&&rc.isString(e)&&(n&&!this.responseType||r)){const n=!(t&&t.silentJSONParsing)&&r;try{return JSON.parse(e)}catch(e){if(n){if("SyntaxError"===e.name)throw oc.from(e,oc.ERR_BAD_RESPONSE,this,null,this.response);throw e}}}return e}],timeout:0,xsrfCookieName:"XSRF-TOKEN",xsrfHeaderName:"X-XSRF-TOKEN",maxContentLength:-1,maxBodyLength:-1,env:{FormData:Sc.classes.FormData,Blob:Sc.classes.Blob},validateStatus:function(e){return e>=200&&e<300},headers:{common:{Accept:"application/json, text/plain, */*","Content-Type":void 0}}};rc.forEach(["delete","get","head","post","put","patch"],(e=>{_c.headers[e]={}}));const Ac=rc.toObjectSet(["age","authorization","content-length","content-type","etag","expires","from","host","if-modified-since","if-unmodified-since","last-modified","location","max-forwards","proxy-authorization","referer","retry-after","user-agent"]);const Nc=Symbol("internals");function Oc(e){return e&&String(e).trim().toLowerCase()}function Rc(e){return!1===e||null==e?e:rc.isArray(e)?e.map(Rc):String(e)}function Mc(e,t,n,r,o){return rc.isFunction(r)?r.call(this,t,n):(o&&(t=n),rc.isString(t)?rc.isString(r)?-1!==t.indexOf(r):rc.isRegExp(r)?r.test(t):void 0:void 0)}let Tc=class{constructor(e){e&&this.set(e)}set(e,t,n){const r=this;function o(e,t,n){const o=Oc(t);if(!o)throw new Error("header name must be a non-empty string");const i=rc.findKey(r,o);(!i||void 0===r[i]||!0===n||void 0===n&&!1!==r[i])&&(r[i||t]=Rc(e))}const i=(e,t)=>rc.forEach(e,((e,n)=>o(e,n,t)));if(rc.isPlainObject(e)||e instanceof this.constructor)i(e,t);else if(rc.isString(e)&&(e=e.trim())&&!/^[-_a-zA-Z0-9^`|~,!#$%&'*+.]+$/.test(e.trim()))i((e=>{const t={};let n,r,o;return e&&e.split("\n").forEach((function(e){o=e.indexOf(":"),n=e.substring(0,o).trim().toLowerCase(),r=e.substring(o+1).trim(),!n||t[n]&&Ac[n]||("set-cookie"===n?t[n]?t[n].push(r):t[n]=[r]:t[n]=t[n]?t[n]+", "+r:r)})),t})(e),t);else if(rc.isHeaders(e))for(const[t,r]of e.entries())o(r,t,n);else null!=e&&o(t,e,n);return this}get(e,t){if(e=Oc(e)){const n=rc.findKey(this,e);if(n){const e=this[n];if(!t)return e;if(!0===t)return function(e){const t=Object.create(null),n=/([^\s,;=]+)\s*(?:=\s*([^,;]+))?/g;let r;for(;r=n.exec(e);)t[r[1]]=r[2];return t}(e);if(rc.isFunction(t))return t.call(this,e,n);if(rc.isRegExp(t))return t.exec(e);throw new TypeError("parser must be boolean|regexp|function")}}}has(e,t){if(e=Oc(e)){const n=rc.findKey(this,e);return!(!n||void 0===this[n]||t&&!Mc(0,this[n],n,t))}return!1}delete(e,t){const n=this;let r=!1;function o(e){if(e=Oc(e)){const o=rc.findKey(n,e);!o||t&&!Mc(0,n[o],o,t)||(delete n[o],r=!0)}}return rc.isArray(e)?e.forEach(o):o(e),r}clear(e){const t=Object.keys(this);let n=t.length,r=!1;for(;n--;){const o=t[n];e&&!Mc(0,this[o],o,e,!0)||(delete this[o],r=!0)}return r}normalize(e){const t=this,n={};return rc.forEach(this,((r,o)=>{const i=rc.findKey(n,o);if(i)return t[i]=Rc(r),void delete t[o];const a=e?function(e){return e.trim().toLowerCase().replace(/([a-z\d])(\w*)/g,((e,t,n)=>t.toUpperCase()+n))}(o):String(o).trim();a!==o&&delete t[o],t[a]=Rc(r),n[a]=!0})),this}concat(...e){return this.constructor.concat(this,...e)}toJSON(e){const t=Object.create(null);return rc.forEach(this,((n,r)=>{null!=n&&!1!==n&&(t[r]=e&&rc.isArray(n)?n.join(", "):n)})),t}[Symbol.iterator](){return Object.entries(this.toJSON())[Symbol.iterator]()}toString(){return Object.entries(this.toJSON()).map((([e,t])=>e+": "+t)).join("\n")}get[Symbol.toStringTag](){return"AxiosHeaders"}static from(e){return e instanceof this?e:new this(e)}static concat(e,...t){const n=new this(e);return t.forEach((e=>n.set(e))),n}static accessor(e){const t=(this[Nc]=this[Nc]={accessors:{}}).accessors,n=this.prototype;function r(e){const r=Oc(e);t[r]||(!function(e,t){const n=rc.toCamelCase(" "+t);["get","set","has"].forEach((r=>{Object.defineProperty(e,r+n,{value:function(e,n,o){return this[r].call(this,t,e,n,o)},configurable:!0})}))}(n,e),t[r]=!0)}return rc.isArray(e)?e.forEach(r):r(e),this}};function Pc(e,t){const n=this||_c,r=t||n,o=Tc.from(r.headers);let i=r.data;return rc.forEach(e,(function(e){i=e.call(n,i,o.normalize(),t?t.status:void 0)})),o.normalize(),i}function Dc(e){return!(!e||!e.__CANCEL__)}function jc(e,t,n){oc.call(this,null==e?"canceled":e,oc.ERR_CANCELED,t,n),this.name="CanceledError"}function Lc(e,t,n){const r=n.config.validateStatus;n.status&&r&&!r(n.status)?t(new oc("Request failed with status code "+n.status,[oc.ERR_BAD_REQUEST,oc.ERR_BAD_RESPONSE][Math.floor(n.status/100)-4],n.config,n.request,n)):e(n)}Tc.accessor(["Content-Type","Content-Length","Accept","Accept-Encoding","User-Agent","Authorization"]),rc.reduceDescriptors(Tc.prototype,(({value:e},t)=>{let n=t[0].toUpperCase()+t.slice(1);return{get:()=>e,set(e){this[n]=e}}})),rc.freezeMethods(Tc),rc.inherits(jc,oc,{__CANCEL__:!0});const Fc=(e,t,n=3)=>{let r=0;const o=function(e,t){e=e||10;const n=new Array(e),r=new Array(e);let o,i=0,a=0;return t=void 0!==t?t:1e3,function(s){const l=Date.now(),c=r[a];o||(o=l),n[i]=s,r[i]=l;let u=a,d=0;for(;u!==i;)d+=n[u++],u%=e;if(i=(i+1)%e,i===a&&(a=(a+1)%e),l-o<t)return;const f=c&&l-c;return f?Math.round(1e3*d/f):void 0}}(50,250);return function(e,t){let n,r,o=0,i=1e3/t;const a=(t,i=Date.now())=>{o=i,n=null,r&&(clearTimeout(r),r=null),e.apply(null,t)};return[(...e)=>{const t=Date.now(),s=t-o;s>=i?a(e,t):(n=e,r||(r=setTimeout((()=>{r=null,a(n)}),i-s)))},()=>n&&a(n)]}((n=>{const i=n.loaded,a=n.lengthComputable?n.total:void 0,s=i-r,l=o(s);r=i;e({loaded:i,total:a,progress:a?i/a:void 0,bytes:s,rate:l||void 0,estimated:l&&a&&i<=a?(a-i)/l:void 0,event:n,lengthComputable:null!=a,[t?"download":"upload"]:!0})}),n)},zc=(e,t)=>{const n=null!=e;return[r=>t[0]({lengthComputable:n,total:e,loaded:r}),t[1]]},Bc=e=>(...t)=>rc.asap((()=>e(...t)));var Vc=Sc.hasStandardBrowserEnv?((e,t)=>n=>(n=new URL(n,Sc.origin),e.protocol===n.protocol&&e.host===n.host&&(t||e.port===n.port)))(new URL(Sc.origin),Sc.navigator&&/(msie|trident)/i.test(Sc.navigator.userAgent)):()=>!0,Gc=Sc.hasStandardBrowserEnv?{write(e,t,n,r,o,i){const a=[e+"="+encodeURIComponent(t)];rc.isNumber(n)&&a.push("expires="+new Date(n).toGMTString()),rc.isString(r)&&a.push("path="+r),rc.isString(o)&&a.push("domain="+o),!0===i&&a.push("secure"),document.cookie=a.join("; ")},read(e){const t=document.cookie.match(new RegExp("(^|;\\s*)("+e+")=([^;]*)"));return t?decodeURIComponent(t[3]):null},remove(e){this.write(e,"",Date.now()-864e5)}}:{write(){},read:()=>null,remove(){}};function Wc(e,t){return e&&!/^([a-z][a-z\d+\-.]*:)?\/\//i.test(t)?function(e,t){return t?e.replace(/\/?\/$/,"")+"/"+t.replace(/^\/+/,""):e}(e,t):t}const Hc=e=>e instanceof Tc?{...e}:e;function Xc(e,t){t=t||{};const n={};function r(e,t,n,r){return rc.isPlainObject(e)&&rc.isPlainObject(t)?rc.merge.call({caseless:r},e,t):rc.isPlainObject(t)?rc.merge({},t):rc.isArray(t)?t.slice():t}function o(e,t,n,o){return rc.isUndefined(t)?rc.isUndefined(e)?void 0:r(void 0,e,0,o):r(e,t,0,o)}function i(e,t){if(!rc.isUndefined(t))return r(void 0,t)}function a(e,t){return rc.isUndefined(t)?rc.isUndefined(e)?void 0:r(void 0,e):r(void 0,t)}function s(n,o,i){return i in t?r(n,o):i in e?r(void 0,n):void 0}const l={url:i,method:i,data:i,baseURL:a,transformRequest:a,transformResponse:a,paramsSerializer:a,timeout:a,timeoutMessage:a,withCredentials:a,withXSRFToken:a,adapter:a,responseType:a,xsrfCookieName:a,xsrfHeaderName:a,onUploadProgress:a,onDownloadProgress:a,decompress:a,maxContentLength:a,maxBodyLength:a,beforeRedirect:a,transport:a,httpAgent:a,httpsAgent:a,cancelToken:a,socketPath:a,responseEncoding:a,validateStatus:s,headers:(e,t,n)=>o(Hc(e),Hc(t),0,!0)};return rc.forEach(Object.keys(Object.assign({},e,t)),(function(r){const i=l[r]||o,a=i(e[r],t[r],r);rc.isUndefined(a)&&i!==s||(n[r]=a)})),n}var $c=e=>{const t=Xc({},e);let n,{data:r,withXSRFToken:o,xsrfHeaderName:i,xsrfCookieName:a,headers:s,auth:l}=t;if(t.headers=s=Tc.from(s),t.url=gc(Wc(t.baseURL,t.url),e.params,e.paramsSerializer),l&&s.set("Authorization","Basic "+btoa((l.username||"")+":"+(l.password?unescape(encodeURIComponent(l.password)):""))),rc.isFormData(r))if(Sc.hasStandardBrowserEnv||Sc.hasStandardBrowserWebWorkerEnv)s.setContentType(void 0);else if(!1!==(n=s.getContentType())){const[e,...t]=n?n.split(";").map((e=>e.trim())).filter(Boolean):[];s.setContentType([e||"multipart/form-data",...t].join("; "))}if(Sc.hasStandardBrowserEnv&&(o&&rc.isFunction(o)&&(o=o(t)),o||!1!==o&&Vc(t.url))){const e=i&&a&&Gc.read(a);e&&s.set(i,e)}return t};var Zc="undefined"!=typeof XMLHttpRequest&&function(e){return new Promise((function(t,n){const r=$c(e);let o=r.data;const i=Tc.from(r.headers).normalize();let a,s,l,c,u,{responseType:d,onUploadProgress:f,onDownloadProgress:p}=r;function h(){c&&c(),u&&u(),r.cancelToken&&r.cancelToken.unsubscribe(a),r.signal&&r.signal.removeEventListener("abort",a)}let m=new XMLHttpRequest;function g(){if(!m)return;const r=Tc.from("getAllResponseHeaders"in m&&m.getAllResponseHeaders());Lc((function(e){t(e),h()}),(function(e){n(e),h()}),{data:d&&"text"!==d&&"json"!==d?m.response:m.responseText,status:m.status,statusText:m.statusText,headers:r,config:e,request:m}),m=null}m.open(r.method.toUpperCase(),r.url,!0),m.timeout=r.timeout,"onloadend"in m?m.onloadend=g:m.onreadystatechange=function(){m&&4===m.readyState&&(0!==m.status||m.responseURL&&0===m.responseURL.indexOf("file:"))&&setTimeout(g)},m.onabort=function(){m&&(n(new oc("Request aborted",oc.ECONNABORTED,e,m)),m=null)},m.onerror=function(){n(new oc("Network Error",oc.ERR_NETWORK,e,m)),m=null},m.ontimeout=function(){let t=r.timeout?"timeout of "+r.timeout+"ms exceeded":"timeout exceeded";const o=r.transitional||bc;r.timeoutErrorMessage&&(t=r.timeoutErrorMessage),n(new oc(t,o.clarifyTimeoutError?oc.ETIMEDOUT:oc.ECONNABORTED,e,m)),m=null},void 0===o&&i.setContentType(null),"setRequestHeader"in m&&rc.forEach(i.toJSON(),(function(e,t){m.setRequestHeader(t,e)})),rc.isUndefined(r.withCredentials)||(m.withCredentials=!!r.withCredentials),d&&"json"!==d&&(m.responseType=r.responseType),p&&([l,u]=Fc(p,!0),m.addEventListener("progress",l)),f&&m.upload&&([s,c]=Fc(f),m.upload.addEventListener("progress",s),m.upload.addEventListener("loadend",c)),(r.cancelToken||r.signal)&&(a=t=>{m&&(n(!t||t.type?new jc(null,e,m):t),m.abort(),m=null)},r.cancelToken&&r.cancelToken.subscribe(a),r.signal&&(r.signal.aborted?a():r.signal.addEventListener("abort",a)));const y=function(e){const t=/^([-+\w]{1,25})(:?\/\/|:)/.exec(e);return t&&t[1]||""}(r.url);y&&-1===Sc.protocols.indexOf(y)?n(new oc("Unsupported protocol "+y+":",oc.ERR_BAD_REQUEST,e)):m.send(o||null)}))};const Yc=(e,t)=>{const{length:n}=e=e?e.filter(Boolean):[];if(t||n){let n,r=new AbortController;const o=function(e){if(!n){n=!0,a();const t=e instanceof Error?e:this.reason;r.abort(t instanceof oc?t:new jc(t instanceof Error?t.message:t))}};let i=t&&setTimeout((()=>{i=null,o(new oc(`timeout ${t} of ms exceeded`,oc.ETIMEDOUT))}),t);const a=()=>{e&&(i&&clearTimeout(i),i=null,e.forEach((e=>{e.unsubscribe?e.unsubscribe(o):e.removeEventListener("abort",o)})),e=null)};e.forEach((e=>e.addEventListener("abort",o)));const{signal:s}=r;return s.unsubscribe=()=>rc.asap(a),s}},Uc=function*(e,t){let n=e.byteLength;if(n<t)return void(yield e);let r,o=0;for(;o<n;)r=o+t,yield e.slice(o,r),o=r},Jc=async function*(e){if(e[Symbol.asyncIterator])return void(yield*e);const t=e.getReader();try{for(;;){const{done:e,value:n}=await t.read();if(e)break;yield n}}finally{await t.cancel()}},Kc=(e,t,n,r)=>{const o=async function*(e,t){for await(const n of Jc(e))yield*Uc(n,t)}(e,t);let i,a=0,s=e=>{i||(i=!0,r&&r(e))};return new ReadableStream({async pull(e){try{const{done:t,value:r}=await o.next();if(t)return s(),void e.close();let i=r.byteLength;if(n){let e=a+=i;n(e)}e.enqueue(new Uint8Array(r))}catch(e){throw s(e),e}},cancel:e=>(s(e),o.return())},{highWaterMark:2})},qc="function"==typeof fetch&&"function"==typeof Request&&"function"==typeof Response,Qc=qc&&"function"==typeof ReadableStream,eu=qc&&("function"==typeof TextEncoder?(tu=new TextEncoder,e=>tu.encode(e)):async e=>new Uint8Array(await new Response(e).arrayBuffer()));var tu;const nu=(e,...t)=>{try{return!!e(...t)}catch(e){return!1}},ru=Qc&&nu((()=>{let e=!1;const t=new Request(Sc.origin,{body:new ReadableStream,method:"POST",get duplex(){return e=!0,"half"}}).headers.has("Content-Type");return e&&!t})),ou=Qc&&nu((()=>rc.isReadableStream(new Response("").body))),iu={stream:ou&&(e=>e.body)};var au;qc&&(au=new Response,["text","arrayBuffer","blob","formData","stream"].forEach((e=>{!iu[e]&&(iu[e]=rc.isFunction(au[e])?t=>t[e]():(t,n)=>{throw new oc(`Response type '${e}' is not supported`,oc.ERR_NOT_SUPPORT,n)})})));const su=async(e,t)=>{const n=rc.toFiniteNumber(e.getContentLength());return null==n?(async e=>{if(null==e)return 0;if(rc.isBlob(e))return e.size;if(rc.isSpecCompliantForm(e)){const t=new Request(Sc.origin,{method:"POST",body:e});return(await t.arrayBuffer()).byteLength}return rc.isArrayBufferView(e)||rc.isArrayBuffer(e)?e.byteLength:(rc.isURLSearchParams(e)&&(e+=""),rc.isString(e)?(await eu(e)).byteLength:void 0)})(t):n};var lu=qc&&(async e=>{let{url:t,method:n,data:r,signal:o,cancelToken:i,timeout:a,onDownloadProgress:s,onUploadProgress:l,responseType:c,headers:u,withCredentials:d="same-origin",fetchOptions:f}=$c(e);c=c?(c+"").toLowerCase():"text";let p,h=Yc([o,i&&i.toAbortSignal()],a);const m=h&&h.unsubscribe&&(()=>{h.unsubscribe()});let g;try{if(l&&ru&&"get"!==n&&"head"!==n&&0!==(g=await su(u,r))){let e,n=new Request(t,{method:"POST",body:r,duplex:"half"});if(rc.isFormData(r)&&(e=n.headers.get("content-type"))&&u.setContentType(e),n.body){const[e,t]=zc(g,Fc(Bc(l)));r=Kc(n.body,65536,e,t)}}rc.isString(d)||(d=d?"include":"omit");const o="credentials"in Request.prototype;p=new Request(t,{...f,signal:h,method:n.toUpperCase(),headers:u.normalize().toJSON(),body:r,duplex:"half",credentials:o?d:void 0});let i=await fetch(p);const a=ou&&("stream"===c||"response"===c);if(ou&&(s||a&&m)){const e={};["status","statusText","headers"].forEach((t=>{e[t]=i[t]}));const t=rc.toFiniteNumber(i.headers.get("content-length")),[n,r]=s&&zc(t,Fc(Bc(s),!0))||[];i=new Response(Kc(i.body,65536,n,(()=>{r&&r(),m&&m()})),e)}c=c||"text";let y=await iu[rc.findKey(iu,c)||"text"](i,e);return!a&&m&&m(),await new Promise(((t,n)=>{Lc(t,n,{data:y,headers:Tc.from(i.headers),status:i.status,statusText:i.statusText,config:e,request:p})}))}catch(t){if(m&&m(),t&&"TypeError"===t.name&&/fetch/i.test(t.message))throw Object.assign(new oc("Network Error",oc.ERR_NETWORK,e,p),{cause:t.cause||t});throw oc.from(t,t&&t.code,e,p)}});const cu={http:null,xhr:Zc,fetch:lu};rc.forEach(cu,((e,t)=>{if(e){try{Object.defineProperty(e,"name",{value:t})}catch(e){}Object.defineProperty(e,"adapterName",{value:t})}}));const uu=e=>`- ${e}`,du=e=>rc.isFunction(e)||null===e||!1===e;var fu=e=>{e=rc.isArray(e)?e:[e];const{length:t}=e;let n,r;const o={};for(let i=0;i<t;i++){let t;if(n=e[i],r=n,!du(n)&&(r=cu[(t=String(n)).toLowerCase()],void 0===r))throw new oc(`Unknown adapter '${t}'`);if(r)break;o[t||"#"+i]=r}if(!r){const e=Object.entries(o).map((([e,t])=>`adapter ${e} `+(!1===t?"is not supported by the environment":"is not available in the build")));throw new oc("There is no suitable adapter to dispatch the request "+(t?e.length>1?"since :\n"+e.map(uu).join("\n"):" "+uu(e[0]):"as no adapter specified"),"ERR_NOT_SUPPORT")}return r};function pu(e){if(e.cancelToken&&e.cancelToken.throwIfRequested(),e.signal&&e.signal.aborted)throw new jc(null,e)}function hu(e){pu(e),e.headers=Tc.from(e.headers),e.data=Pc.call(e,e.transformRequest),-1!==["post","put","patch"].indexOf(e.method)&&e.headers.setContentType("application/x-www-form-urlencoded",!1);return fu(e.adapter||_c.adapter)(e).then((function(t){return pu(e),t.data=Pc.call(e,e.transformResponse,t),t.headers=Tc.from(t.headers),t}),(function(t){return Dc(t)||(pu(e),t&&t.response&&(t.response.data=Pc.call(e,e.transformResponse,t.response),t.response.headers=Tc.from(t.response.headers))),Promise.reject(t)}))}const mu="1.7.9",gu={};["object","boolean","number","function","string","symbol"].forEach(((e,t)=>{gu[e]=function(n){return typeof n===e||"a"+(t<1?"n ":" ")+e}}));const yu={};gu.transitional=function(e,t,n){function r(e,t){return"[Axios v1.7.9] Transitional option '"+e+"'"+t+(n?". "+n:"")}return(n,o,i)=>{if(!1===e)throw new oc(r(o," has been removed"+(t?" in "+t:"")),oc.ERR_DEPRECATED);return t&&!yu[o]&&(yu[o]=!0,console.warn(r(o," has been deprecated since v"+t+" and will be removed in the near future"))),!e||e(n,o,i)}},gu.spelling=function(e){return(t,n)=>(console.warn(`${n} is likely a misspelling of ${e}`),!0)};var bu={assertOptions:function(e,t,n){if("object"!=typeof e)throw new oc("options must be an object",oc.ERR_BAD_OPTION_VALUE);const r=Object.keys(e);let o=r.length;for(;o-- >0;){const i=r[o],a=t[i];if(a){const t=e[i],n=void 0===t||a(t,i,e);if(!0!==n)throw new oc("option "+i+" must be "+n,oc.ERR_BAD_OPTION_VALUE)}else if(!0!==n)throw new oc("Unknown option "+i,oc.ERR_BAD_OPTION)}},validators:gu};const vu=bu.validators;let wu=class{constructor(e){this.defaults=e,this.interceptors={request:new yc,response:new yc}}async request(e,t){try{return await this._request(e,t)}catch(e){if(e instanceof Error){let t={};Error.captureStackTrace?Error.captureStackTrace(t):t=new Error;const n=t.stack?t.stack.replace(/^.+\n/,""):"";try{e.stack?n&&!String(e.stack).endsWith(n.replace(/^.+\n.+\n/,""))&&(e.stack+="\n"+n):e.stack=n}catch(e){}}throw e}}_request(e,t){"string"==typeof e?(t=t||{}).url=e:t=e||{},t=Xc(this.defaults,t);const{transitional:n,paramsSerializer:r,headers:o}=t;void 0!==n&&bu.assertOptions(n,{silentJSONParsing:vu.transitional(vu.boolean),forcedJSONParsing:vu.transitional(vu.boolean),clarifyTimeoutError:vu.transitional(vu.boolean)},!1),null!=r&&(rc.isFunction(r)?t.paramsSerializer={serialize:r}:bu.assertOptions(r,{encode:vu.function,serialize:vu.function},!0)),bu.assertOptions(t,{baseUrl:vu.spelling("baseURL"),withXsrfToken:vu.spelling("withXSRFToken")},!0),t.method=(t.method||this.defaults.method||"get").toLowerCase();let i=o&&rc.merge(o.common,o[t.method]);o&&rc.forEach(["delete","get","head","post","put","patch","common"],(e=>{delete o[e]})),t.headers=Tc.concat(i,o);const a=[];let s=!0;this.interceptors.request.forEach((function(e){"function"==typeof e.runWhen&&!1===e.runWhen(t)||(s=s&&e.synchronous,a.unshift(e.fulfilled,e.rejected))}));const l=[];let c;this.interceptors.response.forEach((function(e){l.push(e.fulfilled,e.rejected)}));let u,d=0;if(!s){const e=[hu.bind(this),void 0];for(e.unshift.apply(e,a),e.push.apply(e,l),u=e.length,c=Promise.resolve(t);d<u;)c=c.then(e[d++],e[d++]);return c}u=a.length;let f=t;for(d=0;d<u;){const e=a[d++],t=a[d++];try{f=e(f)}catch(e){t.call(this,e);break}}try{c=hu.call(this,f)}catch(e){return Promise.reject(e)}for(d=0,u=l.length;d<u;)c=c.then(l[d++],l[d++]);return c}getUri(e){return gc(Wc((e=Xc(this.defaults,e)).baseURL,e.url),e.params,e.paramsSerializer)}};rc.forEach(["delete","get","head","options"],(function(e){wu.prototype[e]=function(t,n){return this.request(Xc(n||{},{method:e,url:t,data:(n||{}).data}))}})),rc.forEach(["post","put","patch"],(function(e){function t(t){return function(n,r,o){return this.request(Xc(o||{},{method:e,headers:t?{"Content-Type":"multipart/form-data"}:{},url:n,data:r}))}}wu.prototype[e]=t(),wu.prototype[e+"Form"]=t(!0)}));const xu={Continue:100,SwitchingProtocols:101,Processing:102,EarlyHints:103,Ok:200,Created:201,Accepted:202,NonAuthoritativeInformation:203,NoContent:204,ResetContent:205,PartialContent:206,MultiStatus:207,AlreadyReported:208,ImUsed:226,MultipleChoices:300,MovedPermanently:301,Found:302,SeeOther:303,NotModified:304,UseProxy:305,Unused:306,TemporaryRedirect:307,PermanentRedirect:308,BadRequest:400,Unauthorized:401,PaymentRequired:402,Forbidden:403,NotFound:404,MethodNotAllowed:405,NotAcceptable:406,ProxyAuthenticationRequired:407,RequestTimeout:408,Conflict:409,Gone:410,LengthRequired:411,PreconditionFailed:412,PayloadTooLarge:413,UriTooLong:414,UnsupportedMediaType:415,RangeNotSatisfiable:416,ExpectationFailed:417,ImATeapot:418,MisdirectedRequest:421,UnprocessableEntity:422,Locked:423,FailedDependency:424,TooEarly:425,UpgradeRequired:426,PreconditionRequired:428,TooManyRequests:429,RequestHeaderFieldsTooLarge:431,UnavailableForLegalReasons:451,InternalServerError:500,NotImplemented:501,BadGateway:502,ServiceUnavailable:503,GatewayTimeout:504,HttpVersionNotSupported:505,VariantAlsoNegotiates:506,InsufficientStorage:507,LoopDetected:508,NotExtended:510,NetworkAuthenticationRequired:511};Object.entries(xu).forEach((([e,t])=>{xu[t]=e}));const Cu=function e(t){const n=new wu(t),r=gl(wu.prototype.request,n);return rc.extend(r,wu.prototype,n,{allOwnKeys:!0}),rc.extend(r,n,null,{allOwnKeys:!0}),r.create=function(n){return e(Xc(t,n))},r}(_c);Cu.Axios=wu,Cu.CanceledError=jc,Cu.CancelToken=class e{constructor(e){if("function"!=typeof e)throw new TypeError("executor must be a function.");let t;this.promise=new Promise((function(e){t=e}));const n=this;this.promise.then((e=>{if(!n._listeners)return;let t=n._listeners.length;for(;t-- >0;)n._listeners[t](e);n._listeners=null})),this.promise.then=e=>{let t;const r=new Promise((e=>{n.subscribe(e),t=e})).then(e);return r.cancel=function(){n.unsubscribe(t)},r},e((function(e,r,o){n.reason||(n.reason=new jc(e,r,o),t(n.reason))}))}throwIfRequested(){if(this.reason)throw this.reason}subscribe(e){this.reason?e(this.reason):this._listeners?this._listeners.push(e):this._listeners=[e]}unsubscribe(e){if(!this._listeners)return;const t=this._listeners.indexOf(e);-1!==t&&this._listeners.splice(t,1)}toAbortSignal(){const e=new AbortController,t=t=>{e.abort(t)};return this.subscribe(t),e.signal.unsubscribe=()=>this.unsubscribe(t),e.signal}static source(){let t;return{token:new e((function(e){t=e})),cancel:t}}},Cu.isCancel=Dc,Cu.VERSION=mu,Cu.toFormData=dc,Cu.AxiosError=oc,Cu.Cancel=Cu.CanceledError,Cu.all=function(e){return Promise.all(e)},Cu.spread=function(e){return function(t){return e.apply(null,t)}},Cu.isAxiosError=function(e){return rc.isObject(e)&&!0===e.isAxiosError},Cu.mergeConfig=Xc,Cu.AxiosHeaders=Tc,Cu.formToJSON=e=>Ic(rc.isHTMLForm(e)?new FormData(e):e),Cu.getAdapter=fu,Cu.HttpStatusCode=xu,Cu.default=Cu;const{Axios:ku,AxiosError:Eu,CanceledError:Su,isCancel:Iu,CancelToken:_u,VERSION:Au,all:Nu,Cancel:Ou,isAxiosError:Ru,spread:Mu,toFormData:Tu,AxiosHeaders:Pu,HttpStatusCode:Du,formToJSON:ju,getAdapter:Lu,mergeConfig:Fu}=Cu;let zu;const Bu=new Uint8Array(16);function Vu(){if(!zu&&(zu="undefined"!=typeof crypto&&crypto.getRandomValues&&crypto.getRandomValues.bind(crypto),!zu))throw new Error("crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported");return zu(Bu)}const Gu=[];for(let e=0;e<256;++e)Gu.push((e+256).toString(16).slice(1));var Wu={randomUUID:"undefined"!=typeof crypto&&crypto.randomUUID&&crypto.randomUUID.bind(crypto)};function Hu(e,t,n){if(Wu.randomUUID&&!e)return Wu.randomUUID();const r=(e=e||{}).random||(e.rng||Vu)();return r[6]=15&r[6]|64,r[8]=63&r[8]|128,function(e,t=0){return Gu[e[t+0]]+Gu[e[t+1]]+Gu[e[t+2]]+Gu[e[t+3]]+"-"+Gu[e[t+4]]+Gu[e[t+5]]+"-"+Gu[e[t+6]]+Gu[e[t+7]]+"-"+Gu[e[t+8]]+Gu[e[t+9]]+"-"+Gu[e[t+10]]+Gu[e[t+11]]+Gu[e[t+12]]+Gu[e[t+13]]+Gu[e[t+14]]+Gu[e[t+15]]}(r)}class Xu{constructor(e){this._hooks=new Map,this._ns_event_intercepts=new Map,this.uuid=e.uuid,this.on_error=e.on_error||(e=>{this._zustand?.logger.error(e)}),this.messagePromises=new Map,this._local_nodeupdates=new Map,this._nodeupdatetimer=setTimeout((()=>{this.sync_local_node_updates()}),5e3),this.state=Y(((e,t)=>({is_open:!1}))),e.zustand&&this.set_zustand(e.zustand),e.on_sync_complete?this.on_sync_complete=e.on_sync_complete:this.on_sync_complete=async()=>{}}set_zustand(e){e!==this._zustand&&(this._zustand=e,e.set_worker(this),this._zustand.auto_progress(),this.stepwise_fullsync())}add_hook(e,t){const n=this._hooks.get(e)||[];n.push(t),this._hooks.set(e,n);return()=>{const n=this._hooks.get(e)||[],r=n.indexOf(t);r>=0&&n.splice(r,1)}}async call_hooks(e,t){const n=[];for(const r of this._hooks.get(e)||[]){const e=r({worker:this,data:t});e instanceof Promise&&n.push(e)}await Promise.all(n)}add_ns_event_intercept(e,t){const n=this._ns_event_intercepts.get(e)||[];n.push(t),this._ns_event_intercepts.set(e,n);return()=>{const n=this._ns_event_intercepts.get(e)||[],r=n.indexOf(t);r>=0&&n.splice(r,1)}}async intercept_ns_event(e){let t=e;for(const n of this._ns_event_intercepts.get(e.event)||[])t=await n(t);return t}get is_open(){return this.state.getState().is_open}set is_open(e){this.state.setState({is_open:e})}async stepwise_fullsync(){this._zustand&&this.is_open&&(await this.sync_lib(),await this.sync_external_worker(),await this.sync_funcnodes_plugins(),await this.sync_nodespace(),await this.sync_view_state(),await this.on_sync_complete(this))}async sync_lib(){if(!this._zustand)return;if(!this.is_open)return;const e=await this._send_cmd({cmd:"get_library",wait_for_response:!0,retries:2});this._zustand.lib.libstate.getState().set({lib:e})}async sync_external_worker(){if(!this._zustand)return;if(!this.is_open)return;const e=await this._send_cmd({cmd:"get_worker_dependencies",wait_for_response:!0});this._zustand.lib.libstate.getState().set({external_worker:e})}async sync_funcnodes_plugins(){if(!this._zustand)return;if(!this.is_open)return;const e=await this._send_cmd({cmd:"get_plugin_keys",wait_for_response:!0,kwargs:{type:"react"}});for(const t of e){const e=await this._send_cmd({cmd:"get_plugin",wait_for_response:!0,kwargs:{key:t,type:"react"}});if(e.js)for(const t of e.js){const e=document.createElement("script");e.text=atob(t),document.body.appendChild(e)}if(e.css)for(const t of e.css){const e=document.createElement("style");e.innerHTML=atob(t),document.head.appendChild(e)}if(void 0!==e.module){const n=atob(e.module),r=n.length,o=new Uint8Array(r);for(let e=0;e<r;e++)o[e]=n.charCodeAt(e);const i=new Blob([o],{type:"application/javascript"}),a=URL.createObjectURL(i),s=await import(a);URL.revokeObjectURL(a),this._zustand.add_plugin(t,s.default)}}}async sync_view_state(){if(!this._zustand)return;if(!this.is_open)return;const e=await this._send_cmd({cmd:"view_state",wait_for_response:!0});e.renderoptions&&this._zustand.update_render_options(e.renderoptions);const t=e.nodes;if(t)for(const e in t){const n={};ne(n,t[e]),this._zustand.on_node_action({type:"update",node:n,id:e,from_remote:!0})}}async sync_nodespace(){if(!this._zustand)return;if(!this.is_open)return;const e=await this._send_cmd({cmd:"get_nodes",kwargs:{with_frontend:!0},wait_for_response:!0});for(const t of e)this._receive_node_added(t);const t=await this._send_cmd({cmd:"get_edges",wait_for_response:!0});for(const e of t)this._receive_edge_added(...e)}async fullsync(){if(!this._zustand)return;if(!this.is_open)return;let e;for(;;)try{e=await this._send_cmd({cmd:"full_state"});break}catch(e){this._zustand.logger.error("Error in fullsync",e)}this._zustand.logger.debug("Full state",e),this._zustand.lib.libstate.getState().set({lib:e.backend.lib,external_worker:e.worker_dependencies}),e.view.renderoptions&&this._zustand.update_render_options(e.view.renderoptions);const t=e.view.nodes;for(const n of e.backend.nodes)void 0!==t[n.id]&&ne(n,t[n.id]),this._receive_node_added(n);for(const t of e.backend.edges)this._receive_edge_added(...t)}async _receive_edge_added(e,t,n,r){this._zustand&&this._zustand.on_edge_action({type:"add",from_remote:!0,src_nid:e,src_ioid:t,trg_nid:n,trg_ioid:r})}async trigger_node(e){await this._send_cmd({cmd:"trigger_node",kwargs:{nid:e},wait_for_response:!1})}async add_node(e){const t=await this._send_cmd({cmd:"add_node",kwargs:{id:e}});this._receive_node_added(t)}async remove_node(e){await this._send_cmd({cmd:"remove_node",kwargs:{id:e}})}async _receive_node_added(e){this._zustand&&this._zustand.on_node_action({type:"add",node:e,id:e.id,from_remote:!0})}add_edge({src_nid:e,src_ioid:t,trg_nid:n,trg_ioid:r,replace:o=!1}){return this._send_cmd({cmd:"add_edge",kwargs:{src_nid:e,src_ioid:t,trg_nid:n,trg_ioid:r,replace:o}})}remove_edge({src_nid:e,src_ioid:t,trg_nid:n,trg_ioid:r}){return this._send_cmd({cmd:"remove_edge",kwargs:{src_nid:e,src_ioid:t,trg_nid:n,trg_ioid:r}})}async add_external_worker({module:e,cls_module:t,cls_name:n}){return await this._send_cmd({cmd:"add_external_worker",kwargs:{module:e,cls_module:t,cls_name:n}})}sync_local_node_updates(){clearTimeout(this._nodeupdatetimer),this._local_nodeupdates.forEach((async(e,t)=>{const n=await this._send_cmd({cmd:"update_node",kwargs:{nid:t,data:e},wait_for_response:!0});this._zustand&&this._zustand.on_node_action({type:"update",node:n,id:t,from_remote:!0})})),this._local_nodeupdates.clear(),this._nodeupdatetimer=setTimeout((()=>{this.sync_local_node_updates()}),200)}locally_update_node(e){const t=this._local_nodeupdates.get(e.id);if(t){const{new_obj:n,change:r}=K(t,e.node);r&&this._local_nodeupdates.set(e.id,n)}else this._local_nodeupdates.set(e.id,e.node);e.immediate&&this.sync_local_node_updates()}async get_remote_node_state(e){const t=await this._send_cmd({cmd:"get_node_state",kwargs:{nid:e},wait_for_response:!0});this._zustand&&this._zustand.on_node_action({type:"update",node:t,id:t.id,from_remote:!0})}set_io_value({nid:e,ioid:t,value:n,set_default:r=!1}){return this._send_cmd({cmd:"set_io_value",kwargs:{nid:e,ioid:t,value:n,set_default:r},wait_for_response:!0})}clear(){return this._send_cmd({cmd:"clear"})}save(){return this._send_cmd({cmd:"save",wait_for_response:!0})}load(e){return this._send_cmd({cmd:"load_data",kwargs:{data:e},wait_for_response:!0}).then((()=>{this.stepwise_fullsync()}))}async get_io_value({nid:e,ioid:t}){const n=await this._send_cmd({cmd:"get_io_value",kwargs:{nid:e,ioid:t},wait_for_response:!0});return this._zustand?(this._zustand.on_node_action({type:"update",node:{io:{[t]:{value:n}}},id:e,from_remote:!0}),n):n}async get_ios_values({nid:e}){const t=await this._send_cmd({cmd:"get_ios_values",kwargs:{nid:e},wait_for_response:!0});if(!this._zustand)return t;const n={};for(const e in t)n[e]={value:t[e]};return this._zustand.on_node_action({type:"update",node:{io:n},id:e,from_remote:!0}),t}async get_runstate(){return await this._send_cmd({cmd:"get_runstate",wait_for_response:!0})}async _send_cmd({cmd:e,kwargs:t,wait_for_response:n=!0,response_timeout:r=5e3,retries:o=2}){const i={type:"cmd",cmd:e,kwargs:t||{}};if(n){o<0&&(o=0);const t=async()=>{let t;for(;o>=0;){const n=i.id||Hu();i.id=n;const a=new Promise(((t,o)=>{const i=setTimeout((()=>{o("Timeout@wait_for_response for "+e)}),r);this.messagePromises.set(n,{resolve:e=>{clearTimeout(i),t(e),this.messagePromises.delete(n)},reject:e=>{clearTimeout(i),o(e),this.messagePromises.delete(n)}})}));await this.send(i);try{t=await a;break}catch(e){if(0===o)throw e;o-=1;continue}}return t};return t()}return this.send(i)}async send(e){throw new Error("async send(data: any) not implemented")}async upload_file({files:e,onProgressCallback:t,root:n}){throw new Error("upload_file not implemented ")}async handle_large_message_hint({}){throw new Error("async handle_large_message_hint({}: LargeMessageHint) not implemented ")}async receive_workerevent({event:e,data:t}){switch(e){case"worker_error":if(!this._zustand)return;return this._zustand.logger.error(t.error);case"update_worker_dependencies":if(!this._zustand)return;return this._zustand.lib.libstate.getState().set({external_worker:t.worker_dependencies});case"lib_update":return void await this.sync_lib();case"fullsync":return void await this.stepwise_fullsync();case"external_worker_update":return await this.sync_lib(),void await this.sync_external_worker();case"starting":return void this.call_hooks("starting");case"stopping":return void this.call_hooks("stopping");default:console.warn("Unhandled worker event",e,t)}}async receive_nodespace_event(e){const{event:t,data:n}=await this.intercept_ns_event(e);switch(t){case"after_set_value":if(!this._zustand)return;return this._zustand.on_node_action({type:"update",node:{id:n.node,io:{[n.io]:{value:n.result}}},id:n.node,from_remote:!0});case"after_update_value_options":if(!this._zustand)return;return this._zustand.on_node_action({type:"update",node:{id:n.node,io:{[n.io]:{value_options:n.result}}},id:n.node,from_remote:!0});case"triggerstart":if(!this._zustand)return;return this._zustand.on_node_action({type:"update",node:{id:n.node,in_trigger:!0},id:n.node,from_remote:!0});case"triggerdone":if(!this._zustand)return;return this._zustand.on_node_action({type:"update",node:{id:n.node,in_trigger:!1},id:n.node,from_remote:!0});case"node_trigger_error":if(!this._zustand)return;return this._zustand.on_node_action({type:"error",errortype:"trigger",error:n.error,id:n.node,tb:n.tb,from_remote:!0});case"node_removed":if(!this._zustand)return;return this._zustand.on_node_action({type:"delete",id:n.node,from_remote:!0}),void this.call_hooks("node_removed",{node:n.node});case"node_added":return void this._receive_node_added(n.node);case"after_disconnect":case"after_unforward":if(!n.result)return;if(!Array.isArray(n.result))return;if(4!==n.result.length)return;if(!this._zustand)return;return this._zustand.on_edge_action({type:"delete",from_remote:!0,src_nid:n.result[0],src_ioid:n.result[1],trg_nid:n.result[2],trg_ioid:n.result[3]});case"after_connect":case"after_forward":if(!n.result)return;if(!Array.isArray(n.result))return;if(4!==n.result.length)return;return this._receive_edge_added(...n.result);case"after_add_shelf":case"after_remove_shelf":if(!n.result)return;if(!this._zustand)return;return this._zustand.lib.libstate.getState().set({lib:n.result});case"progress":if(!this._zustand)return;if(n.node)return this._zustand.on_node_action({type:"update",node:{id:n.node,progress:n.info},id:n.node,from_remote:!0});console.warn("Unhandled nodepsace event",t,n);break;default:console.warn("Unhandled nodepsace event",t,n)}}async add_lib(e,t){return await this._send_cmd({cmd:"add_package_dependency",kwargs:{name:e,version:t},wait_for_response:!1})}async remove_lib(e){return await this._send_cmd({cmd:"remove_package_dependency",kwargs:{name:e},wait_for_response:!1})}async receive(e){let t;switch(e.type){case"nsevent":return await this.receive_nodespace_event(e);case"result":if(t=e.id&&this.messagePromises.get(e.id),t)return t.resolve(e.result);break;case"error":if(this.on_error(e.tb+"\n"+e.error),t=e.id&&this.messagePromises.get(e.id),t)return t.reject(e.error);break;case"progress":if(!this._zustand)return;this._zustand.set_progress(e);break;case"workerevent":return await this.receive_workerevent(e);case"large_message":return await this.handle_large_message_hint(e);default:console.warn("Unhandled message",e)}}disconnect(){}onclose(){this.is_open=!1,this._zustand&&this._zustand.auto_progress()}async reconnect(){}async stop(){await this._send_cmd({cmd:"stop_worker",wait_for_response:!1});const e=this.onclose.bind(this);this.onclose=()=>{e(),this._zustand&&(this._zustand.worker===this&&this._zustand.clear_all(),this.onclose=e)}}async get_io_full_value({nid:e,ioid:t}){const n=await this._send_cmd({cmd:"get_io_full_value",kwargs:{nid:e,ioid:t},wait_for_response:!0});return this._zustand?(this._zustand.on_node_action({type:"update",node:{io:{[t]:{fullvalue:n}}},id:e,from_remote:!0}),n):n}async update_io_options({nid:e,ioid:t,options:n}){const r=await this._send_cmd({cmd:"update_io_options",kwargs:{nid:e,ioid:t,...n},wait_for_response:!0});if(!this._zustand)return r;this._zustand.on_node_action({type:"update",node:{io:{[t]:{...n}}},id:e,from_remote:!0})}async get_node_status(e){return await this._send_cmd({cmd:"get_node_state",kwargs:{nid:e},wait_for_response:!0})}async get_available_modules(){return await this._send_cmd({cmd:"get_available_modules",wait_for_response:!0})}async update_external_worker(e,t,n){return await this._send_cmd({cmd:"update_external_worker",kwargs:{worker_id:e,class_id:t,...n},wait_for_response:!0})}async remove_external_worker(e,t){return await this._send_cmd({cmd:"remove_external_worker",kwargs:{worker_id:e,class_id:t},wait_for_response:!0})}async export({withFiles:e=!1}){return await this._send_cmd({cmd:"export_worker",wait_for_response:!0,kwargs:{with_files:e}})}async update_from_export(e){const t=await this._send_cmd({cmd:"update_from_export",kwargs:{data:e},wait_for_response:!0});return this.stepwise_fullsync(),t}}class $u extends Xu{constructor(e){super(e),this._websocket=null,this.reconnectAttempts=0,this.maxReconnectAttempts=999,this.initialTimeout=200,this.maxTimeout=5e3,this._reconnect=!0,this._url=e.url,new Promise((e=>{this.connect(),e(null)})),this._zustand&&this._zustand.auto_progress()}connect(){this._zustand?.logger.info("Connecting to websocket"),this.is_open=!1,this._websocket=new WebSocket(this._url),this._websocket.onopen=()=>{this.onopen()},this._websocket.onclose=()=>{this.onclose()},this._websocket.onerror=()=>{this.on_ws_error()},this._websocket.onmessage=e=>{this.onmessage(e.data)}}calculateReconnectTimeout(){return Math.min(this.initialTimeout*Math.pow(2,this.reconnectAttempts),this.maxTimeout)}auto_reconnect(){if(this.reconnectAttempts<this.maxReconnectAttempts){let e=this.calculateReconnectTimeout();this._zustand?.logger.info(`Attempting to reconnect in ${e} ms`),setTimeout((()=>{this._websocket&&this._websocket.readyState===WebSocket.OPEN||(this.reconnectAttempts++,this.connect())}),e)}else this._zustand?.logger.warn("Maximum reconnect attempts reached. Giving up.")}async onmessage(e){const t=JSON.parse(e);this._zustand?.logger.debug(`Recieved data of length: ${e.length} and data"`,t),await this.receive(t)}get http_protocol(){return this.secure_url?"https":"http"}get secure_url(){return this._url.startsWith("wss")}get url_wo_protocol(){return this._url.substring(this.secure_url?6:5)}get http_url(){var e=this.http_protocol+"://"+this.url_wo_protocol;return"/"!==e[e.length-1]&&(e+="/"),e}async upload_file({files:e,onProgressCallback:t,root:n}){const r=`${this.http_url}upload/`,o=new FormData,i=Array.isArray(e)?e:Array.from(e);for(const e of i){const t=e.webkitRelativePath||e.name,r=n?`${n}/${t}`:t;o.append("file",e,r)}try{return(await Cu.post(r,o,{headers:{"Content-Type":"multipart/form-data"},onUploadProgress:e=>{t&&t(e.loaded,e.total)}})).data.file}catch(e){throw new Error("Failed to upload file")}}async handle_large_message_hint({msg_id:e}){const t=this.http_url+"message/"+e,n=await fetch(t,{method:"GET",headers:{"Content-Type":"application/json","Access-Control-Allow-Origin":"*"}}),r=await n.json();this.receive(r)}onopen(){this._zustand?.logger.info("Websocket opened"),this.is_open=!0,this._zustand&&this._zustand.auto_progress(),this.reconnectAttempts=0,this.stepwise_fullsync()}onclose(){this._zustand?.logger.info("Websocket closed"),super.onclose(),this._reconnect&&(this._zustand?.logger.info("Websocket closed,reconnecting"),this.auto_reconnect())}on_ws_error(){this._zustand?.logger.warn("Websocket error"),this._websocket?this._websocket.close():this.auto_reconnect()}async send_large_message(e){const t=`${this.http_url}message/`;await fetch(t,{method:"POST",headers:{"Content-Type":"application/json"},body:e})}async send(e){if(!this._websocket||this._websocket.readyState!==WebSocket.OPEN)return void this._zustand?.logger.warn("Websocket not connected");const t=JSON.stringify(e);if(new Blob([t]).size>1e6)return this._zustand?.logger.info("Data too large, sending via http"),await this.send_large_message(t);this._zustand?.logger.debug("Sending data",e),this._websocket.send(t)}async stop(){await super.stop(),this._reconnect=!1}close(){this._websocket&&this._websocket.close()}disconnect(){super.disconnect(),this._reconnect=!1,this.close()}async reconnect(){await super.reconnect(),this._reconnect=!0,!this._websocket||(this._zustand?.logger.info("Reconnecting"),this._websocket.readyState!==WebSocket.OPEN&&this._websocket.readyState!==WebSocket.CONNECTING||(this._websocket.readyState===WebSocket.CONNECTING&&await new Promise(((e,t)=>{if(null===this._websocket)return;let n=setTimeout((()=>{t("Timeout@reconnect")}),2e3);this._websocket.addEventListener("open",(()=>{clearTimeout(n),e(null)}),{once:!0}),this._websocket.readyState===WebSocket.OPEN&&(clearTimeout(n),e(null))})),this._websocket.readyState!==WebSocket.OPEN))?this.connect():this.stepwise_fullsync()}}class Zu{constructor(e,t){this.ws=null,this.reconnectAttempts=0,this.maxReconnectAttempts=999,this.initialTimeout=200,this.maxTimeout=2e3,this.wsuri=e,this.zustand=t,this.workers={},this.on_setWorker=e=>{this.zustand.set_worker(e)},this.connect()}get open(){return this.ws?.readyState===WebSocket.OPEN}connect(){this.zustand.set_progress({progress:0,message:"connecting to worker manager",status:"info",blocking:!0}),this.zustand.logger.info("Connecting to websocket:",this.wsuri),this.ws=new WebSocket(this.wsuri),this.ws.onopen=()=>{this.onopen()},this.ws.onclose=()=>{this.onclose()},this.ws.onerror=()=>{this.on_ws_error()},this.ws.onmessage=e=>{this.onmessage(e.data)},this.connectionTimeout=setTimeout((()=>{this.ws?.readyState!==WebSocket.OPEN&&this.on_ws_error()}),5e3)}on_ws_error(){console.warn("Websocket error"),this.ws?this.ws.close():this.reconnect()}onopen(){this.connectionTimeout&&(clearTimeout(this.connectionTimeout),this.connectionTimeout=void 0),this.zustand.auto_progress(),this.ws&&this.ws.send("worker_status");const e=window.localStorage.getItem("funcnodes__active_worker");e&&this.set_active(e)}onmessage(e){let t=JSON.parse(e);if("worker_status"!==t.type)if("set_worker"!==t.type)"progress"!==t.type?this.zustand.logger.error("WorkerManager: unknown message",t):this.zustand.set_progress(t);else if("WSWorker"===t.data.type){let e="ws"+(t.data.ssl?"s":"")+"://"+t.data.host+":"+t.data.port;this.setWorker(this.workers[t.data.uuid]||new $u({url:e,zustand:this.zustand,uuid:t.data.uuid,on_sync_complete:this.zustand.options.on_sync_complete}))}else this.zustand.logger.error("WorkerManager: unknown worker type",t);else{const e={};for(let n of t.active)n.active=!0,e[n.uuid]=n;for(let n of t.inactive)n.active=!1,e[n.uuid]=n;this.zustand.workers.setState(e)}}setWorker(e){for(let t in this.workers)t!==e?.uuid&&this.workers[t].disconnect();void 0!==e&&(this.workers[e.uuid]=e,e.reconnect()),window.localStorage.setItem("funcnodes__active_worker",e?.uuid||""),void 0!==this.zustand.worker&&this.zustand.clear_all(),this.zustand.set_worker(e),this.on_setWorker(e)}async restart_worker(e){this.ws?.send(JSON.stringify({type:"restart_worker",workerid:e}))}calculateReconnectTimeout(){return Math.min(this.initialTimeout*Math.pow(2,this.reconnectAttempts),this.maxTimeout)}reconnect(){if(this.reconnectAttempts<this.maxReconnectAttempts){let e=this.calculateReconnectTimeout();this.zustand.logger.info(`Attempting to reconnect in ${e} ms`),setTimeout((()=>{this.ws&&this.ws.readyState===WebSocket.OPEN||(this.reconnectAttempts++,this.connect())}),e)}else this.zustand.logger.warn("Maximum reconnect attempts reached. Giving up.")}onclose(){this.zustand.logger.warn("WorkerManager: onclose"),this.reconnect()}set_active(e){this.ws&&this.ws.send(JSON.stringify({type:"set_active",workerid:e}))}new_worker({name:e,reference:t,copyLib:n,copyNS:r}){e||(e=void 0),n||(n=!1),r||(r=!1),t||(t=void 0,n=!1,r=!1),this.ws&&this.ws.send(JSON.stringify({type:"new_worker",kwargs:{name:e,reference:t,copyLib:n,copyNS:r}}))}}function Yu(e,t,{checkForDefaultPrevented:n=!0}={}){return function(r){if(e?.(r),!1===n||!r.defaultPrevented)return t?.(r)}}function Uu(e,t){if("function"==typeof e)return e(t);null!=e&&(e.current=t)}function Ju(...e){return t=>{let n=!1;const r=e.map((e=>{const r=Uu(e,t);return n||"function"!=typeof r||(n=!0),r}));if(n)return()=>{for(let t=0;t<r.length;t++){const n=r[t];"function"==typeof n?n():Uu(e[t],null)}}}}function Ku(...t){return e.useCallback(Ju(...t),t)}var qu,Qu={exports:{}},ed={};var td,nd,rd={};
28
+ */var V=(z||(z=1,"production"===process.env.NODE_ENV?N.exports=function(){if(D)return O;D=1;var e=t,n=L(),r="function"==typeof Object.is?Object.is:function(e,t){return e===t&&(0!==e||1/e==1/t)||e!=e&&t!=t},o=n.useSyncExternalStore,i=e.useRef,a=e.useEffect,s=e.useMemo,l=e.useDebugValue;return O.useSyncExternalStoreWithSelector=function(e,t,n,c,u){var d=i(null);if(null===d.current){var f={hasValue:!1,value:null};d.current=f}else f=d.current;d=s((function(){function e(e){if(!a){if(a=!0,o=e,e=c(e),void 0!==u&&f.hasValue){var t=f.value;if(u(t,e))return i=t}return i=e}if(t=i,r(o,e))return t;var n=c(e);return void 0!==u&&u(t,n)?(o=e,t):(o=e,i=n)}var o,i,a=!1,s=void 0===n?null:n;return[function(){return e(t())},null===s?void 0:function(){return e(s())}]}),[t,n,c,u]);var p=o(e,d[0],d[1]);return a((function(){f.hasValue=!0,f.value=p}),[p]),l(p),p},O}():N.exports=(F||(F=1,"production"!==process.env.NODE_ENV&&function(){"undefined"!=typeof __REACT_DEVTOOLS_GLOBAL_HOOK__&&"function"==typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStart&&__REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStart(Error());var e=t,n=L(),r="function"==typeof Object.is?Object.is:function(e,t){return e===t&&(0!==e||1/e==1/t)||e!=e&&t!=t},o=n.useSyncExternalStore,i=e.useRef,a=e.useEffect,s=e.useMemo,l=e.useDebugValue;B.useSyncExternalStoreWithSelector=function(e,t,n,c,u){var d=i(null);if(null===d.current){var f={hasValue:!1,value:null};d.current=f}else f=d.current;d=s((function(){function e(e){if(!a){if(a=!0,o=e,e=c(e),void 0!==u&&f.hasValue){var t=f.value;if(u(t,e))return i=t}return i=e}if(t=i,r(o,e))return t;var n=c(e);return void 0!==u&&u(t,n)?(o=e,t):(o=e,i=n)}var o,i,a=!1,s=void 0===n?null:n;return[function(){return e(t())},null===s?void 0:function(){return e(s())}]}),[t,n,c,u]);var p=o(e,d[0],d[1]);return a((function(){f.hasValue=!0,f.value=p}),[p]),l(p),p},"undefined"!=typeof __REACT_DEVTOOLS_GLOBAL_HOOK__&&"function"==typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop&&__REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop(Error())}()),B)),N.exports),G=_(V);const{useDebugValue:W}=t,{useSyncExternalStoreWithSelector:H}=G;let X=!1;const $=e=>e;const Z=e=>{"production"!==(import.meta.env?import.meta.env.MODE:void 0)&&"function"!=typeof e&&console.warn("[DEPRECATED] Passing a vanilla store will be unsupported in a future version. Instead use `import { useStore } from 'zustand'`.");const t="function"==typeof e?I(e):e,n=(e,n)=>function(e,t=$,n){"production"!==(import.meta.env?import.meta.env.MODE:void 0)&&n&&!X&&(console.warn("[DEPRECATED] Use `createWithEqualityFn` instead of `create` or use `useStoreWithEqualityFn` instead of `useStore`. They can be imported from 'zustand/traditional'. https://github.com/pmndrs/zustand/discussions/1937"),X=!0);const r=H(e.subscribe,e.getState,e.getServerState||e.getInitialState,t,n);return W(r),r}(t,e,n);return Object.assign(n,t),n},Y=e=>e?Z(e):Z;function U(e){return"[object Object]"===Object.prototype.toString.call(e)}function J(e,t){if(e===t)return!0;if("object"!=typeof e||null===e||"object"!=typeof t||null===t)return!1;if(e.constructor!==t.constructor)return!1;if(e.constructor===Object||e.constructor===Array){const n=Object.keys(e),r=Object.keys(t);if(n.length!==r.length)return!1;for(const o of n){if(!r.includes(o))return!1;if(!J(e[o],t[o]))return!1}}return!(e instanceof Date&&t instanceof Date)||e.getTime()===t.getTime()}const K=(e,t)=>{let n=!1;if(!U(e))throw new Error("Target must be a plain object");if(!U(t))throw new Error("Source must be a plain object");const r={...e};return Object.keys(t).forEach((o=>{const i=t[o],a=e[o];if(U(i)&&U(a)){const{new_obj:e,change:t}=K(a,i);t&&(n=!0,r[o]=e)}else J(a,i)||(n=!0,r[o]=i)})),{new_obj:r,change:n}},q=(e,t)=>{let n=!1;if(!U(e))throw new Error("Target must be a plain object");if(!U(t))throw new Error("Source must be a plain object");const r={...e};return Object.keys(t).forEach((o=>{const i=t[o],a=e[o];if(void 0!==a||void 0!==i){if(void 0===a)return n=!0,void(r[o]=i);if(U(i)&&U(a)){const{new_obj:e,change:t}=q(a,i);t&&(n=!0,r[o]=e)}}})),{new_obj:r,change:n}},Q={id:"dummy",name:"dummy",node:"dummy",full_id:"dummy",type:"any",value:void 0,is_input:!1,connected:!1,does_trigger:!0,fullvalue:void 0,try_get_full_value:void 0,render_options:{set_default:!0,type:"any"},set_hidden:void 0,hidden:!1},ee=e=>{if(!e.id)throw new Error("IO must have an id but is missing for "+JSON.stringify(e));void 0===e.name&&(e.name=e.id);const{new_obj:t}=q(e,Q);return"any"!==t.render_options.type&&void 0!==t.render_options.type||(t.render_options.type=t.type),t},te={id:"dummy",node_name:"dummy",properties:{"frontend:size":[200,100],"frontend:pos":[NaN,NaN],"frontend:collapsed":!1},io:{},name:"dummy",in_trigger:!1,io_order:[],progress:{ascii:!1,elapsed:0,initial:0,n:0,prefix:"idle",unit:"it",unit_divisor:1e3,unit_scale:!1}},ne=(e,t)=>{e.properties=e.properties||{},t.pos&&(e.properties["frontend:pos"]=t.pos),t.size&&(e.properties["frontend:size"]=t.size),void 0!==t.collapsed&&(e.properties["frontend:collapsed"]=!!t.collapsed)},re=JSON.stringify(te),oe=e=>{if(!e.id)throw new Error("Node must have an id");const t=JSON.parse(re),{new_obj:n}=q(e,t);for(const e in n.io){if(void 0===n.io[e])continue;void 0===n.io[e].id&&(n.io[e].id=e);const t=ee(n.io[e]);n.io[e]=t}return n},ie=e=>{if(void 0===e.io&&(e.io={}),void 0===e.io_order)if(Array.isArray(e.io)){e.io_order=e.io.map((e=>e.id));const t={};for(const n of e.io)t[n.id]=n;e.io=t}else e.io_order=Object.keys(e.io);else if(Array.isArray(e.io)){const t={};for(const n of e.io)t[n.id]=n,e.io_order.includes(n.id)||e.io_order.push(n.id);e.io=t}else for(const t in e.io)e.io_order.includes(t)||e.io_order.push(t);return e};function ae(e){if("string"==typeof e||"number"==typeof e)return""+e;let t="";if(Array.isArray(e))for(let n,r=0;r<e.length;r++)""!==(n=ae(e[r]))&&(t+=(t&&" ")+n);else for(let n in e)e[n]&&(t+=(t&&" ")+n);return t}const{useDebugValue:se}=t,{useSyncExternalStoreWithSelector:le}=G,ce=e=>e;function ue(e,t=ce,n){const r=le(e.subscribe,e.getState,e.getServerState||e.getInitialState,t,n);return se(r),r}const de=(e,t)=>{const n=I(e),r=(e,r=t)=>ue(n,e,r);return Object.assign(r,n),r};function fe(e,t){if(Object.is(e,t))return!0;if("object"!=typeof e||null===e||"object"!=typeof t||null===t)return!1;if(e instanceof Map&&t instanceof Map){if(e.size!==t.size)return!1;for(const[n,r]of e)if(!Object.is(r,t.get(n)))return!1;return!0}if(e instanceof Set&&t instanceof Set){if(e.size!==t.size)return!1;for(const n of e)if(!t.has(n))return!1;return!0}const n=Object.keys(e);if(n.length!==Object.keys(t).length)return!1;for(const r of n)if(!Object.prototype.hasOwnProperty.call(t,r)||!Object.is(e[r],t[r]))return!1;return!0}var pe={value:()=>{}};function he(){for(var e,t=0,n=arguments.length,r={};t<n;++t){if(!(e=arguments[t]+"")||e in r||/[\s.]/.test(e))throw new Error("illegal type: "+e);r[e]=[]}return new me(r)}function me(e){this._=e}function ge(e,t){for(var n,r=0,o=e.length;r<o;++r)if((n=e[r]).name===t)return n.value}function ye(e,t,n){for(var r=0,o=e.length;r<o;++r)if(e[r].name===t){e[r]=pe,e=e.slice(0,r).concat(e.slice(r+1));break}return null!=n&&e.push({name:t,value:n}),e}me.prototype=he.prototype={constructor:me,on:function(e,t){var n,r=this._,o=function(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 new Error("unknown type: "+e);return{type:e,name:n}}))}(e+"",r),i=-1,a=o.length;if(!(arguments.length<2)){if(null!=t&&"function"!=typeof t)throw new Error("invalid callback: "+t);for(;++i<a;)if(n=(e=o[i]).type)r[n]=ye(r[n],e.name,t);else if(null==t)for(n in r)r[n]=ye(r[n],e.name,null);return this}for(;++i<a;)if((n=(e=o[i]).type)&&(n=ge(r[n],e.name)))return n},copy:function(){var e={},t=this._;for(var n in t)e[n]=t[n].slice();return new me(e)},call:function(e,t){if((n=arguments.length-2)>0)for(var n,r,o=new Array(n),i=0;i<n;++i)o[i]=arguments[i+2];if(!this._.hasOwnProperty(e))throw new Error("unknown type: "+e);for(i=0,n=(r=this._[e]).length;i<n;++i)r[i].value.apply(t,o)},apply:function(e,t,n){if(!this._.hasOwnProperty(e))throw new Error("unknown type: "+e);for(var r=this._[e],o=0,i=r.length;o<i;++o)r[o].value.apply(t,n)}};var be="http://www.w3.org/1999/xhtml",ve={svg:"http://www.w3.org/2000/svg",xhtml:be,xlink:"http://www.w3.org/1999/xlink",xml:"http://www.w3.org/XML/1998/namespace",xmlns:"http://www.w3.org/2000/xmlns/"};function we(e){var t=e+="",n=t.indexOf(":");return n>=0&&"xmlns"!==(t=e.slice(0,n))&&(e=e.slice(n+1)),ve.hasOwnProperty(t)?{space:ve[t],local:e}:e}function xe(e){return function(){var t=this.ownerDocument,n=this.namespaceURI;return n===be&&t.documentElement.namespaceURI===be?t.createElement(e):t.createElementNS(n,e)}}function Ce(e){return function(){return this.ownerDocument.createElementNS(e.space,e.local)}}function ke(e){var t=we(e);return(t.local?Ce:xe)(t)}function Ee(){}function Se(e){return null==e?Ee:function(){return this.querySelector(e)}}function Ie(){return[]}function _e(e){return null==e?Ie:function(){return this.querySelectorAll(e)}}function Ae(e){return function(){return function(e){return null==e?[]:Array.isArray(e)?e:Array.from(e)}(e.apply(this,arguments))}}function Ne(e){return function(){return this.matches(e)}}function Oe(e){return function(t){return t.matches(e)}}var Re=Array.prototype.find;function Me(){return this.firstElementChild}var Te=Array.prototype.filter;function Pe(){return Array.from(this.children)}function De(e){return new Array(e.length)}function je(e,t){this.ownerDocument=e.ownerDocument,this.namespaceURI=e.namespaceURI,this._next=null,this._parent=e,this.__data__=t}function Le(e,t,n,r,o,i){for(var a,s=0,l=t.length,c=i.length;s<c;++s)(a=t[s])?(a.__data__=i[s],r[s]=a):n[s]=new je(e,i[s]);for(;s<l;++s)(a=t[s])&&(o[s]=a)}function Fe(e,t,n,r,o,i,a){var s,l,c,u=new Map,d=t.length,f=i.length,p=new Array(d);for(s=0;s<d;++s)(l=t[s])&&(p[s]=c=a.call(l,l.__data__,s,t)+"",u.has(c)?o[s]=l:u.set(c,l));for(s=0;s<f;++s)c=a.call(e,i[s],s,i)+"",(l=u.get(c))?(r[s]=l,l.__data__=i[s],u.delete(c)):n[s]=new je(e,i[s]);for(s=0;s<d;++s)(l=t[s])&&u.get(p[s])===l&&(o[s]=l)}function ze(e){return e.__data__}function Be(e){return"object"==typeof e&&"length"in e?e:Array.from(e)}function Ve(e,t){return e<t?-1:e>t?1:e>=t?0:NaN}function Ge(e){return function(){this.removeAttribute(e)}}function We(e){return function(){this.removeAttributeNS(e.space,e.local)}}function He(e,t){return function(){this.setAttribute(e,t)}}function Xe(e,t){return function(){this.setAttributeNS(e.space,e.local,t)}}function $e(e,t){return function(){var n=t.apply(this,arguments);null==n?this.removeAttribute(e):this.setAttribute(e,n)}}function Ze(e,t){return function(){var n=t.apply(this,arguments);null==n?this.removeAttributeNS(e.space,e.local):this.setAttributeNS(e.space,e.local,n)}}function Ye(e){return e.ownerDocument&&e.ownerDocument.defaultView||e.document&&e||e.defaultView}function Ue(e){return function(){this.style.removeProperty(e)}}function Je(e,t,n){return function(){this.style.setProperty(e,t,n)}}function Ke(e,t,n){return function(){var r=t.apply(this,arguments);null==r?this.style.removeProperty(e):this.style.setProperty(e,r,n)}}function qe(e,t){return e.style.getPropertyValue(t)||Ye(e).getComputedStyle(e,null).getPropertyValue(t)}function Qe(e){return function(){delete this[e]}}function et(e,t){return function(){this[e]=t}}function tt(e,t){return function(){var n=t.apply(this,arguments);null==n?delete this[e]:this[e]=n}}function nt(e){return e.trim().split(/^|\s+/)}function rt(e){return e.classList||new ot(e)}function ot(e){this._node=e,this._names=nt(e.getAttribute("class")||"")}function it(e,t){for(var n=rt(e),r=-1,o=t.length;++r<o;)n.add(t[r])}function at(e,t){for(var n=rt(e),r=-1,o=t.length;++r<o;)n.remove(t[r])}function st(e){return function(){it(this,e)}}function lt(e){return function(){at(this,e)}}function ct(e,t){return function(){(t.apply(this,arguments)?it:at)(this,e)}}function ut(){this.textContent=""}function dt(e){return function(){this.textContent=e}}function ft(e){return function(){var t=e.apply(this,arguments);this.textContent=null==t?"":t}}function pt(){this.innerHTML=""}function ht(e){return function(){this.innerHTML=e}}function mt(e){return function(){var t=e.apply(this,arguments);this.innerHTML=null==t?"":t}}function gt(){this.nextSibling&&this.parentNode.appendChild(this)}function yt(){this.previousSibling&&this.parentNode.insertBefore(this,this.parentNode.firstChild)}function bt(){return null}function vt(){var e=this.parentNode;e&&e.removeChild(this)}function wt(){var e=this.cloneNode(!1),t=this.parentNode;return t?t.insertBefore(e,this.nextSibling):e}function xt(){var e=this.cloneNode(!0),t=this.parentNode;return t?t.insertBefore(e,this.nextSibling):e}function Ct(e){return function(){var t=this.__on;if(t){for(var n,r=0,o=-1,i=t.length;r<i;++r)n=t[r],e.type&&n.type!==e.type||n.name!==e.name?t[++o]=n:this.removeEventListener(n.type,n.listener,n.options);++o?t.length=o:delete this.__on}}}function kt(e,t,n){return function(){var r,o=this.__on,i=function(e){return function(t){e.call(this,t,this.__data__)}}(t);if(o)for(var a=0,s=o.length;a<s;++a)if((r=o[a]).type===e.type&&r.name===e.name)return this.removeEventListener(r.type,r.listener,r.options),this.addEventListener(r.type,r.listener=i,r.options=n),void(r.value=t);this.addEventListener(e.type,i,n),r={type:e.type,name:e.name,value:t,listener:i,options:n},o?o.push(r):this.__on=[r]}}function Et(e,t,n){var r=Ye(e),o=r.CustomEvent;"function"==typeof o?o=new o(t,n):(o=r.document.createEvent("Event"),n?(o.initEvent(t,n.bubbles,n.cancelable),o.detail=n.detail):o.initEvent(t,!1,!1)),e.dispatchEvent(o)}function St(e,t){return function(){return Et(this,e,t)}}function It(e,t){return function(){return Et(this,e,t.apply(this,arguments))}}je.prototype={constructor:je,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)}},ot.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}};var _t=[null];function At(e,t){this._groups=e,this._parents=t}function Nt(){return new At([[document.documentElement]],_t)}function Ot(e){return"string"==typeof e?new At([[document.querySelector(e)]],[document.documentElement]):new At([[e]],_t)}function Rt(e,t){if(e=function(e){let t;for(;t=e.sourceEvent;)e=t;return e}(e),void 0===t&&(t=e.currentTarget),t){var n=t.ownerSVGElement||t;if(n.createSVGPoint){var r=n.createSVGPoint();return r.x=e.clientX,r.y=e.clientY,[(r=r.matrixTransform(t.getScreenCTM().inverse())).x,r.y]}if(t.getBoundingClientRect){var o=t.getBoundingClientRect();return[e.clientX-o.left-t.clientLeft,e.clientY-o.top-t.clientTop]}}return[e.pageX,e.pageY]}At.prototype=Nt.prototype={constructor:At,select:function(e){"function"!=typeof e&&(e=Se(e));for(var t=this._groups,n=t.length,r=new Array(n),o=0;o<n;++o)for(var i,a,s=t[o],l=s.length,c=r[o]=new Array(l),u=0;u<l;++u)(i=s[u])&&(a=e.call(i,i.__data__,u,s))&&("__data__"in i&&(a.__data__=i.__data__),c[u]=a);return new At(r,this._parents)},selectAll:function(e){e="function"==typeof e?Ae(e):_e(e);for(var t=this._groups,n=t.length,r=[],o=[],i=0;i<n;++i)for(var a,s=t[i],l=s.length,c=0;c<l;++c)(a=s[c])&&(r.push(e.call(a,a.__data__,c,s)),o.push(a));return new At(r,o)},selectChild:function(e){return this.select(null==e?Me:function(e){return function(){return Re.call(this.children,e)}}("function"==typeof e?e:Oe(e)))},selectChildren:function(e){return this.selectAll(null==e?Pe:function(e){return function(){return Te.call(this.children,e)}}("function"==typeof e?e:Oe(e)))},filter:function(e){"function"!=typeof e&&(e=Ne(e));for(var t=this._groups,n=t.length,r=new Array(n),o=0;o<n;++o)for(var i,a=t[o],s=a.length,l=r[o]=[],c=0;c<s;++c)(i=a[c])&&e.call(i,i.__data__,c,a)&&l.push(i);return new At(r,this._parents)},data:function(e,t){if(!arguments.length)return Array.from(this,ze);var n=t?Fe:Le,r=this._parents,o=this._groups;"function"!=typeof e&&(e=function(e){return function(){return e}}(e));for(var i=o.length,a=new Array(i),s=new Array(i),l=new Array(i),c=0;c<i;++c){var u=r[c],d=o[c],f=d.length,p=Be(e.call(u,u&&u.__data__,c,r)),h=p.length,m=s[c]=new Array(h),g=a[c]=new Array(h);n(u,d,m,g,l[c]=new Array(f),p,t);for(var y,b,v=0,w=0;v<h;++v)if(y=m[v]){for(v>=w&&(w=v+1);!(b=g[w])&&++w<h;);y._next=b||null}}return(a=new At(a,r))._enter=s,a._exit=l,a},enter:function(){return new At(this._enter||this._groups.map(De),this._parents)},exit:function(){return new At(this._exit||this._groups.map(De),this._parents)},join:function(e,t,n){var r=this.enter(),o=this,i=this.exit();return"function"==typeof e?(r=e(r))&&(r=r.selection()):r=r.append(e+""),null!=t&&(o=t(o))&&(o=o.selection()),null==n?i.remove():n(i),r&&o?r.merge(o).order():o},merge:function(e){for(var t=e.selection?e.selection():e,n=this._groups,r=t._groups,o=n.length,i=r.length,a=Math.min(o,i),s=new Array(o),l=0;l<a;++l)for(var c,u=n[l],d=r[l],f=u.length,p=s[l]=new Array(f),h=0;h<f;++h)(c=u[h]||d[h])&&(p[h]=c);for(;l<o;++l)s[l]=n[l];return new At(s,this._parents)},selection:function(){return this},order:function(){for(var e=this._groups,t=-1,n=e.length;++t<n;)for(var r,o=e[t],i=o.length-1,a=o[i];--i>=0;)(r=o[i])&&(a&&4^r.compareDocumentPosition(a)&&a.parentNode.insertBefore(r,a),a=r);return this},sort:function(e){function t(t,n){return t&&n?e(t.__data__,n.__data__):!t-!n}e||(e=Ve);for(var n=this._groups,r=n.length,o=new Array(r),i=0;i<r;++i){for(var a,s=n[i],l=s.length,c=o[i]=new Array(l),u=0;u<l;++u)(a=s[u])&&(c[u]=a);c.sort(t)}return new At(o,this._parents).order()},call:function(){var e=arguments[0];return arguments[0]=this,e.apply(null,arguments),this},nodes:function(){return Array.from(this)},node:function(){for(var e=this._groups,t=0,n=e.length;t<n;++t)for(var r=e[t],o=0,i=r.length;o<i;++o){var a=r[o];if(a)return a}return null},size:function(){let e=0;for(const t of this)++e;return e},empty:function(){return!this.node()},each:function(e){for(var t=this._groups,n=0,r=t.length;n<r;++n)for(var o,i=t[n],a=0,s=i.length;a<s;++a)(o=i[a])&&e.call(o,o.__data__,a,i);return this},attr:function(e,t){var n=we(e);if(arguments.length<2){var r=this.node();return n.local?r.getAttributeNS(n.space,n.local):r.getAttribute(n)}return this.each((null==t?n.local?We:Ge:"function"==typeof t?n.local?Ze:$e:n.local?Xe:He)(n,t))},style:function(e,t,n){return arguments.length>1?this.each((null==t?Ue:"function"==typeof t?Ke:Je)(e,t,null==n?"":n)):qe(this.node(),e)},property:function(e,t){return arguments.length>1?this.each((null==t?Qe:"function"==typeof t?tt:et)(e,t)):this.node()[e]},classed:function(e,t){var n=nt(e+"");if(arguments.length<2){for(var r=rt(this.node()),o=-1,i=n.length;++o<i;)if(!r.contains(n[o]))return!1;return!0}return this.each(("function"==typeof t?ct:t?st:lt)(n,t))},text:function(e){return arguments.length?this.each(null==e?ut:("function"==typeof e?ft:dt)(e)):this.node().textContent},html:function(e){return arguments.length?this.each(null==e?pt:("function"==typeof e?mt:ht)(e)):this.node().innerHTML},raise:function(){return this.each(gt)},lower:function(){return this.each(yt)},append:function(e){var t="function"==typeof e?e:ke(e);return this.select((function(){return this.appendChild(t.apply(this,arguments))}))},insert:function(e,t){var n="function"==typeof e?e:ke(e),r=null==t?bt:"function"==typeof t?t:Se(t);return this.select((function(){return this.insertBefore(n.apply(this,arguments),r.apply(this,arguments)||null)}))},remove:function(){return this.each(vt)},clone:function(e){return this.select(e?xt:wt)},datum:function(e){return arguments.length?this.property("__data__",e):this.node().__data__},on:function(e,t,n){var r,o,i=function(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}}))}(e+""),a=i.length;if(!(arguments.length<2)){for(s=t?kt:Ct,r=0;r<a;++r)this.each(s(i[r],t,n));return this}var s=this.node().__on;if(s)for(var l,c=0,u=s.length;c<u;++c)for(r=0,l=s[c];r<a;++r)if((o=i[r]).type===l.type&&o.name===l.name)return l.value},dispatch:function(e,t){return this.each(("function"==typeof t?It:St)(e,t))},[Symbol.iterator]:function*(){for(var e=this._groups,t=0,n=e.length;t<n;++t)for(var r,o=e[t],i=0,a=o.length;i<a;++i)(r=o[i])&&(yield r)}};const Mt={passive:!1},Tt={capture:!0,passive:!1};function Pt(e){e.stopImmediatePropagation()}function Dt(e){e.preventDefault(),e.stopImmediatePropagation()}function jt(e){var t=e.document.documentElement,n=Ot(e).on("dragstart.drag",Dt,Tt);"onselectstart"in t?n.on("selectstart.drag",Dt,Tt):(t.__noselect=t.style.MozUserSelect,t.style.MozUserSelect="none")}function Lt(e,t){var n=e.document.documentElement,r=Ot(e).on("dragstart.drag",null);t&&(r.on("click.drag",Dt,Tt),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 Ft=e=>()=>e;function zt(e,{sourceEvent:t,subject:n,target:r,identifier:o,active:i,x:a,y:s,dx:l,dy:c,dispatch:u}){Object.defineProperties(this,{type:{value:e,enumerable:!0,configurable:!0},sourceEvent:{value:t,enumerable:!0,configurable:!0},subject:{value:n,enumerable:!0,configurable:!0},target:{value:r,enumerable:!0,configurable:!0},identifier:{value:o,enumerable:!0,configurable:!0},active:{value:i,enumerable:!0,configurable:!0},x:{value:a,enumerable:!0,configurable:!0},y:{value:s,enumerable:!0,configurable:!0},dx:{value:l,enumerable:!0,configurable:!0},dy:{value:c,enumerable:!0,configurable:!0},_:{value:u}})}function Bt(e){return!e.ctrlKey&&!e.button}function Vt(){return this.parentNode}function Gt(e,t){return null==t?{x:e.x,y:e.y}:t}function Wt(){return navigator.maxTouchPoints||"ontouchstart"in this}function Ht(e,t,n){e.prototype=t.prototype=n,n.constructor=e}function Xt(e,t){var n=Object.create(e.prototype);for(var r in t)n[r]=t[r];return n}function $t(){}zt.prototype.on=function(){var e=this._.on.apply(this._,arguments);return e===this._?this:e};var Zt=.7,Yt=1/Zt,Ut="\\s*([+-]?\\d+)\\s*",Jt="\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)\\s*",Kt="\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)%\\s*",qt=/^#([0-9a-f]{3,8})$/,Qt=new RegExp(`^rgb\\(${Ut},${Ut},${Ut}\\)$`),en=new RegExp(`^rgb\\(${Kt},${Kt},${Kt}\\)$`),tn=new RegExp(`^rgba\\(${Ut},${Ut},${Ut},${Jt}\\)$`),nn=new RegExp(`^rgba\\(${Kt},${Kt},${Kt},${Jt}\\)$`),rn=new RegExp(`^hsl\\(${Jt},${Kt},${Kt}\\)$`),on=new RegExp(`^hsla\\(${Jt},${Kt},${Kt},${Jt}\\)$`),an={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};function sn(){return this.rgb().formatHex()}function ln(){return this.rgb().formatRgb()}function cn(e){var t,n;return e=(e+"").trim().toLowerCase(),(t=qt.exec(e))?(n=t[1].length,t=parseInt(t[1],16),6===n?un(t):3===n?new pn(t>>8&15|t>>4&240,t>>4&15|240&t,(15&t)<<4|15&t,1):8===n?dn(t>>24&255,t>>16&255,t>>8&255,(255&t)/255):4===n?dn(t>>12&15|t>>8&240,t>>8&15|t>>4&240,t>>4&15|240&t,((15&t)<<4|15&t)/255):null):(t=Qt.exec(e))?new pn(t[1],t[2],t[3],1):(t=en.exec(e))?new pn(255*t[1]/100,255*t[2]/100,255*t[3]/100,1):(t=tn.exec(e))?dn(t[1],t[2],t[3],t[4]):(t=nn.exec(e))?dn(255*t[1]/100,255*t[2]/100,255*t[3]/100,t[4]):(t=rn.exec(e))?vn(t[1],t[2]/100,t[3]/100,1):(t=on.exec(e))?vn(t[1],t[2]/100,t[3]/100,t[4]):an.hasOwnProperty(e)?un(an[e]):"transparent"===e?new pn(NaN,NaN,NaN,0):null}function un(e){return new pn(e>>16&255,e>>8&255,255&e,1)}function dn(e,t,n,r){return r<=0&&(e=t=n=NaN),new pn(e,t,n,r)}function fn(e,t,n,r){return 1===arguments.length?function(e){return e instanceof $t||(e=cn(e)),e?new pn((e=e.rgb()).r,e.g,e.b,e.opacity):new pn}(e):new pn(e,t,n,null==r?1:r)}function pn(e,t,n,r){this.r=+e,this.g=+t,this.b=+n,this.opacity=+r}function hn(){return`#${bn(this.r)}${bn(this.g)}${bn(this.b)}`}function mn(){const e=gn(this.opacity);return`${1===e?"rgb(":"rgba("}${yn(this.r)}, ${yn(this.g)}, ${yn(this.b)}${1===e?")":`, ${e})`}`}function gn(e){return isNaN(e)?1:Math.max(0,Math.min(1,e))}function yn(e){return Math.max(0,Math.min(255,Math.round(e)||0))}function bn(e){return((e=yn(e))<16?"0":"")+e.toString(16)}function vn(e,t,n,r){return r<=0?e=t=n=NaN:n<=0||n>=1?e=t=NaN:t<=0&&(e=NaN),new xn(e,t,n,r)}function wn(e){if(e instanceof xn)return new xn(e.h,e.s,e.l,e.opacity);if(e instanceof $t||(e=cn(e)),!e)return new xn;if(e instanceof xn)return e;var t=(e=e.rgb()).r/255,n=e.g/255,r=e.b/255,o=Math.min(t,n,r),i=Math.max(t,n,r),a=NaN,s=i-o,l=(i+o)/2;return s?(a=t===i?(n-r)/s+6*(n<r):n===i?(r-t)/s+2:(t-n)/s+4,s/=l<.5?i+o:2-i-o,a*=60):s=l>0&&l<1?0:a,new xn(a,s,l,e.opacity)}function xn(e,t,n,r){this.h=+e,this.s=+t,this.l=+n,this.opacity=+r}function Cn(e){return(e=(e||0)%360)<0?e+360:e}function kn(e){return Math.max(0,Math.min(1,e||0))}function En(e,t,n){return 255*(e<60?t+(n-t)*e/60:e<180?n:e<240?t+(n-t)*(240-e)/60:t)}Ht($t,cn,{copy(e){return Object.assign(new this.constructor,this,e)},displayable(){return this.rgb().displayable()},hex:sn,formatHex:sn,formatHex8:function(){return this.rgb().formatHex8()},formatHsl:function(){return wn(this).formatHsl()},formatRgb:ln,toString:ln}),Ht(pn,fn,Xt($t,{brighter(e){return e=null==e?Yt:Math.pow(Yt,e),new pn(this.r*e,this.g*e,this.b*e,this.opacity)},darker(e){return e=null==e?Zt:Math.pow(Zt,e),new pn(this.r*e,this.g*e,this.b*e,this.opacity)},rgb(){return this},clamp(){return new pn(yn(this.r),yn(this.g),yn(this.b),gn(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:hn,formatHex:hn,formatHex8:function(){return`#${bn(this.r)}${bn(this.g)}${bn(this.b)}${bn(255*(isNaN(this.opacity)?1:this.opacity))}`},formatRgb:mn,toString:mn})),Ht(xn,(function(e,t,n,r){return 1===arguments.length?wn(e):new xn(e,t,n,null==r?1:r)}),Xt($t,{brighter(e){return e=null==e?Yt:Math.pow(Yt,e),new xn(this.h,this.s,this.l*e,this.opacity)},darker(e){return e=null==e?Zt:Math.pow(Zt,e),new xn(this.h,this.s,this.l*e,this.opacity)},rgb(){var e=this.h%360+360*(this.h<0),t=isNaN(e)||isNaN(this.s)?0:this.s,n=this.l,r=n+(n<.5?n:1-n)*t,o=2*n-r;return new pn(En(e>=240?e-240:e+120,o,r),En(e,o,r),En(e<120?e+240:e-120,o,r),this.opacity)},clamp(){return new xn(Cn(this.h),kn(this.s),kn(this.l),gn(this.opacity))},displayable(){return(0<=this.s&&this.s<=1||isNaN(this.s))&&0<=this.l&&this.l<=1&&0<=this.opacity&&this.opacity<=1},formatHsl(){const e=gn(this.opacity);return`${1===e?"hsl(":"hsla("}${Cn(this.h)}, ${100*kn(this.s)}%, ${100*kn(this.l)}%${1===e?")":`, ${e})`}`}}));var Sn=e=>()=>e;function In(e){return 1==(e=+e)?_n:function(t,n){return n-t?function(e,t,n){return e=Math.pow(e,n),t=Math.pow(t,n)-e,n=1/n,function(r){return Math.pow(e+r*t,n)}}(t,n,e):Sn(isNaN(t)?n:t)}}function _n(e,t){var n=t-e;return n?function(e,t){return function(n){return e+n*t}}(e,n):Sn(isNaN(e)?t:e)}var An=function e(t){var n=In(t);function r(e,t){var r=n((e=fn(e)).r,(t=fn(t)).r),o=n(e.g,t.g),i=n(e.b,t.b),a=_n(e.opacity,t.opacity);return function(t){return e.r=r(t),e.g=o(t),e.b=i(t),e.opacity=a(t),e+""}}return r.gamma=e,r}(1);function Nn(e,t){return e=+e,t=+t,function(n){return e*(1-n)+t*n}}var On=/[-+]?(?:\d+\.?\d*|\.?\d+)(?:[eE][-+]?\d+)?/g,Rn=new RegExp(On.source,"g");function Mn(e,t){var n,r,o,i=On.lastIndex=Rn.lastIndex=0,a=-1,s=[],l=[];for(e+="",t+="";(n=On.exec(e))&&(r=Rn.exec(t));)(o=r.index)>i&&(o=t.slice(i,o),s[a]?s[a]+=o:s[++a]=o),(n=n[0])===(r=r[0])?s[a]?s[a]+=r:s[++a]=r:(s[++a]=null,l.push({i:a,x:Nn(n,r)})),i=Rn.lastIndex;return i<t.length&&(o=t.slice(i),s[a]?s[a]+=o:s[++a]=o),s.length<2?l[0]?function(e){return function(t){return e(t)+""}}(l[0].x):function(e){return function(){return e}}(t):(t=l.length,function(e){for(var n,r=0;r<t;++r)s[(n=l[r]).i]=n.x(e);return s.join("")})}var Tn,Pn=180/Math.PI,Dn={translateX:0,translateY:0,rotate:0,skewX:0,scaleX:1,scaleY:1};function jn(e,t,n,r,o,i){var a,s,l;return(a=Math.sqrt(e*e+t*t))&&(e/=a,t/=a),(l=e*n+t*r)&&(n-=e*l,r-=t*l),(s=Math.sqrt(n*n+r*r))&&(n/=s,r/=s,l/=s),e*r<t*n&&(e=-e,t=-t,l=-l,a=-a),{translateX:o,translateY:i,rotate:Math.atan2(t,e)*Pn,skewX:Math.atan(l)*Pn,scaleX:a,scaleY:s}}function Ln(e,t,n,r){function o(e){return e.length?e.pop()+" ":""}return function(i,a){var s=[],l=[];return i=e(i),a=e(a),function(e,r,o,i,a,s){if(e!==o||r!==i){var l=a.push("translate(",null,t,null,n);s.push({i:l-4,x:Nn(e,o)},{i:l-2,x:Nn(r,i)})}else(o||i)&&a.push("translate("+o+t+i+n)}(i.translateX,i.translateY,a.translateX,a.translateY,s,l),function(e,t,n,i){e!==t?(e-t>180?t+=360:t-e>180&&(e+=360),i.push({i:n.push(o(n)+"rotate(",null,r)-2,x:Nn(e,t)})):t&&n.push(o(n)+"rotate("+t+r)}(i.rotate,a.rotate,s,l),function(e,t,n,i){e!==t?i.push({i:n.push(o(n)+"skewX(",null,r)-2,x:Nn(e,t)}):t&&n.push(o(n)+"skewX("+t+r)}(i.skewX,a.skewX,s,l),function(e,t,n,r,i,a){if(e!==n||t!==r){var s=i.push(o(i)+"scale(",null,",",null,")");a.push({i:s-4,x:Nn(e,n)},{i:s-2,x:Nn(t,r)})}else 1===n&&1===r||i.push(o(i)+"scale("+n+","+r+")")}(i.scaleX,i.scaleY,a.scaleX,a.scaleY,s,l),i=a=null,function(e){for(var t,n=-1,r=l.length;++n<r;)s[(t=l[n]).i]=t.x(e);return s.join("")}}}var Fn=Ln((function(e){const t=new("function"==typeof DOMMatrix?DOMMatrix:WebKitCSSMatrix)(e+"");return t.isIdentity?Dn:jn(t.a,t.b,t.c,t.d,t.e,t.f)}),"px, ","px)","deg)"),zn=Ln((function(e){return null==e?Dn:(Tn||(Tn=document.createElementNS("http://www.w3.org/2000/svg","g")),Tn.setAttribute("transform",e),(e=Tn.transform.baseVal.consolidate())?jn((e=e.matrix).a,e.b,e.c,e.d,e.e,e.f):Dn)}),", ",")",")");function Bn(e){return((e=Math.exp(e))+1/e)/2}var Vn,Gn,Wn=function e(t,n,r){function o(e,o){var i,a,s=e[0],l=e[1],c=e[2],u=o[0],d=o[1],f=o[2],p=u-s,h=d-l,m=p*p+h*h;if(m<1e-12)a=Math.log(f/c)/t,i=function(e){return[s+e*p,l+e*h,c*Math.exp(t*e*a)]};else{var g=Math.sqrt(m),y=(f*f-c*c+r*m)/(2*c*n*g),b=(f*f-c*c-r*m)/(2*f*n*g),v=Math.log(Math.sqrt(y*y+1)-y),w=Math.log(Math.sqrt(b*b+1)-b);a=(w-v)/t,i=function(e){var r=e*a,o=Bn(v),i=c/(n*g)*(o*function(e){return((e=Math.exp(2*e))-1)/(e+1)}(t*r+v)-function(e){return((e=Math.exp(e))-1/e)/2}(v));return[s+i*p,l+i*h,c*o/Bn(t*r+v)]}}return i.duration=1e3*a*t/Math.SQRT2,i}return o.rho=function(t){var n=Math.max(.001,+t),r=n*n;return e(n,r,r*r)},o}(Math.SQRT2,2,4),Hn=0,Xn=0,$n=0,Zn=0,Yn=0,Un=0,Jn="object"==typeof performance&&performance.now?performance:Date,Kn="object"==typeof window&&window.requestAnimationFrame?window.requestAnimationFrame.bind(window):function(e){setTimeout(e,17)};function qn(){return Yn||(Kn(Qn),Yn=Jn.now()+Un)}function Qn(){Yn=0}function er(){this._call=this._time=this._next=null}function tr(e,t,n){var r=new er;return r.restart(e,t,n),r}function nr(){Yn=(Zn=Jn.now())+Un,Hn=Xn=0;try{!function(){qn(),++Hn;for(var e,t=Vn;t;)(e=Yn-t._time)>=0&&t._call.call(void 0,e),t=t._next;--Hn}()}finally{Hn=0,function(){var e,t,n=Vn,r=1/0;for(;n;)n._call?(r>n._time&&(r=n._time),e=n,n=n._next):(t=n._next,n._next=null,n=e?e._next=t:Vn=t);Gn=e,or(r)}(),Yn=0}}function rr(){var e=Jn.now(),t=e-Zn;t>1e3&&(Un-=t,Zn=e)}function or(e){Hn||(Xn&&(Xn=clearTimeout(Xn)),e-Yn>24?(e<1/0&&(Xn=setTimeout(nr,e-Jn.now()-Un)),$n&&($n=clearInterval($n))):($n||(Zn=Jn.now(),$n=setInterval(rr,1e3)),Hn=1,Kn(nr)))}function ir(e,t,n){var r=new er;return t=null==t?0:+t,r.restart((n=>{r.stop(),e(n+t)}),t,n),r}er.prototype=tr.prototype={constructor:er,restart:function(e,t,n){if("function"!=typeof e)throw new TypeError("callback is not a function");n=(null==n?qn():+n)+(null==t?0:+t),this._next||Gn===this||(Gn?Gn._next=this:Vn=this,Gn=this),this._call=e,this._time=n,or()},stop:function(){this._call&&(this._call=null,this._time=1/0,or())}};var ar=he("start","end","cancel","interrupt"),sr=[];function lr(e,t,n,r,o,i){var a=e.__transition;if(a){if(n in a)return}else e.__transition={};!function(e,t,n){var r,o=e.__transition;function i(e){n.state=1,n.timer.restart(a,n.delay,n.time),n.delay<=e&&a(e-n.delay)}function a(i){var c,u,d,f;if(1!==n.state)return l();for(c in o)if((f=o[c]).name===n.name){if(3===f.state)return ir(a);4===f.state?(f.state=6,f.timer.stop(),f.on.call("interrupt",e,e.__data__,f.index,f.group),delete o[c]):+c<t&&(f.state=6,f.timer.stop(),f.on.call("cancel",e,e.__data__,f.index,f.group),delete o[c])}if(ir((function(){3===n.state&&(n.state=4,n.timer.restart(s,n.delay,n.time),s(i))})),n.state=2,n.on.call("start",e,e.__data__,n.index,n.group),2===n.state){for(n.state=3,r=new Array(d=n.tween.length),c=0,u=-1;c<d;++c)(f=n.tween[c].value.call(e,e.__data__,n.index,n.group))&&(r[++u]=f);r.length=u+1}}function s(t){for(var o=t<n.duration?n.ease.call(null,t/n.duration):(n.timer.restart(l),n.state=5,1),i=-1,a=r.length;++i<a;)r[i].call(e,o);5===n.state&&(n.on.call("end",e,e.__data__,n.index,n.group),l())}function l(){for(var r in n.state=6,n.timer.stop(),delete o[t],o)return;delete e.__transition}o[t]=n,n.timer=tr(i,0,n.time)}(e,n,{name:t,index:r,group:o,on:ar,tween:sr,time:i.time,delay:i.delay,duration:i.duration,ease:i.ease,timer:null,state:0})}function cr(e,t){var n=dr(e,t);if(n.state>0)throw new Error("too late; already scheduled");return n}function ur(e,t){var n=dr(e,t);if(n.state>3)throw new Error("too late; already running");return n}function dr(e,t){var n=e.__transition;if(!n||!(n=n[t]))throw new Error("transition not found");return n}function fr(e,t){var n,r,o,i=e.__transition,a=!0;if(i){for(o in t=null==t?null:t+"",i)(n=i[o]).name===t?(r=n.state>2&&n.state<5,n.state=6,n.timer.stop(),n.on.call(r?"interrupt":"cancel",e,e.__data__,n.index,n.group),delete i[o]):a=!1;a&&delete e.__transition}}function pr(e,t){var n,r;return function(){var o=ur(this,e),i=o.tween;if(i!==n)for(var a=0,s=(r=n=i).length;a<s;++a)if(r[a].name===t){(r=r.slice()).splice(a,1);break}o.tween=r}}function hr(e,t,n){var r,o;if("function"!=typeof n)throw new Error;return function(){var i=ur(this,e),a=i.tween;if(a!==r){o=(r=a).slice();for(var s={name:t,value:n},l=0,c=o.length;l<c;++l)if(o[l].name===t){o[l]=s;break}l===c&&o.push(s)}i.tween=o}}function mr(e,t,n){var r=e._id;return e.each((function(){var e=ur(this,r);(e.value||(e.value={}))[t]=n.apply(this,arguments)})),function(e){return dr(e,r).value[t]}}function gr(e,t){var n;return("number"==typeof t?Nn:t instanceof cn?An:(n=cn(t))?(t=n,An):Mn)(e,t)}function yr(e){return function(){this.removeAttribute(e)}}function br(e){return function(){this.removeAttributeNS(e.space,e.local)}}function vr(e,t,n){var r,o,i=n+"";return function(){var a=this.getAttribute(e);return a===i?null:a===r?o:o=t(r=a,n)}}function wr(e,t,n){var r,o,i=n+"";return function(){var a=this.getAttributeNS(e.space,e.local);return a===i?null:a===r?o:o=t(r=a,n)}}function xr(e,t,n){var r,o,i;return function(){var a,s,l=n(this);if(null!=l)return(a=this.getAttribute(e))===(s=l+"")?null:a===r&&s===o?i:(o=s,i=t(r=a,l));this.removeAttribute(e)}}function Cr(e,t,n){var r,o,i;return function(){var a,s,l=n(this);if(null!=l)return(a=this.getAttributeNS(e.space,e.local))===(s=l+"")?null:a===r&&s===o?i:(o=s,i=t(r=a,l));this.removeAttributeNS(e.space,e.local)}}function kr(e,t){var n,r;function o(){var o=t.apply(this,arguments);return o!==r&&(n=(r=o)&&function(e,t){return function(n){this.setAttributeNS(e.space,e.local,t.call(this,n))}}(e,o)),n}return o._value=t,o}function Er(e,t){var n,r;function o(){var o=t.apply(this,arguments);return o!==r&&(n=(r=o)&&function(e,t){return function(n){this.setAttribute(e,t.call(this,n))}}(e,o)),n}return o._value=t,o}function Sr(e,t){return function(){cr(this,e).delay=+t.apply(this,arguments)}}function Ir(e,t){return t=+t,function(){cr(this,e).delay=t}}function _r(e,t){return function(){ur(this,e).duration=+t.apply(this,arguments)}}function Ar(e,t){return t=+t,function(){ur(this,e).duration=t}}var Nr=Nt.prototype.constructor;function Or(e){return function(){this.style.removeProperty(e)}}var Rr=0;function Mr(e,t,n,r){this._groups=e,this._parents=t,this._name=n,this._id=r}function Tr(){return++Rr}var Pr=Nt.prototype;Mr.prototype={constructor:Mr,select:function(e){var t=this._name,n=this._id;"function"!=typeof e&&(e=Se(e));for(var r=this._groups,o=r.length,i=new Array(o),a=0;a<o;++a)for(var s,l,c=r[a],u=c.length,d=i[a]=new Array(u),f=0;f<u;++f)(s=c[f])&&(l=e.call(s,s.__data__,f,c))&&("__data__"in s&&(l.__data__=s.__data__),d[f]=l,lr(d[f],t,n,f,d,dr(s,n)));return new Mr(i,this._parents,t,n)},selectAll:function(e){var t=this._name,n=this._id;"function"!=typeof e&&(e=_e(e));for(var r=this._groups,o=r.length,i=[],a=[],s=0;s<o;++s)for(var l,c=r[s],u=c.length,d=0;d<u;++d)if(l=c[d]){for(var f,p=e.call(l,l.__data__,d,c),h=dr(l,n),m=0,g=p.length;m<g;++m)(f=p[m])&&lr(f,t,n,m,p,h);i.push(p),a.push(l)}return new Mr(i,a,t,n)},selectChild:Pr.selectChild,selectChildren:Pr.selectChildren,filter:function(e){"function"!=typeof e&&(e=Ne(e));for(var t=this._groups,n=t.length,r=new Array(n),o=0;o<n;++o)for(var i,a=t[o],s=a.length,l=r[o]=[],c=0;c<s;++c)(i=a[c])&&e.call(i,i.__data__,c,a)&&l.push(i);return new Mr(r,this._parents,this._name,this._id)},merge:function(e){if(e._id!==this._id)throw new Error;for(var t=this._groups,n=e._groups,r=t.length,o=n.length,i=Math.min(r,o),a=new Array(r),s=0;s<i;++s)for(var l,c=t[s],u=n[s],d=c.length,f=a[s]=new Array(d),p=0;p<d;++p)(l=c[p]||u[p])&&(f[p]=l);for(;s<r;++s)a[s]=t[s];return new Mr(a,this._parents,this._name,this._id)},selection:function(){return new Nr(this._groups,this._parents)},transition:function(){for(var e=this._name,t=this._id,n=Tr(),r=this._groups,o=r.length,i=0;i<o;++i)for(var a,s=r[i],l=s.length,c=0;c<l;++c)if(a=s[c]){var u=dr(a,t);lr(a,e,n,c,s,{time:u.time+u.delay+u.duration,delay:0,duration:u.duration,ease:u.ease})}return new Mr(r,this._parents,e,n)},call:Pr.call,nodes:Pr.nodes,node:Pr.node,size:Pr.size,empty:Pr.empty,each:Pr.each,on:function(e,t){var n=this._id;return arguments.length<2?dr(this.node(),n).on.on(e):this.each(function(e,t,n){var r,o,i=function(e){return(e+"").trim().split(/^|\s+/).every((function(e){var t=e.indexOf(".");return t>=0&&(e=e.slice(0,t)),!e||"start"===e}))}(t)?cr:ur;return function(){var a=i(this,e),s=a.on;s!==r&&(o=(r=s).copy()).on(t,n),a.on=o}}(n,e,t))},attr:function(e,t){var n=we(e),r="transform"===n?zn:gr;return this.attrTween(e,"function"==typeof t?(n.local?Cr:xr)(n,r,mr(this,"attr."+e,t)):null==t?(n.local?br:yr)(n):(n.local?wr:vr)(n,r,t))},attrTween:function(e,t){var n="attr."+e;if(arguments.length<2)return(n=this.tween(n))&&n._value;if(null==t)return this.tween(n,null);if("function"!=typeof t)throw new Error;var r=we(e);return this.tween(n,(r.local?kr:Er)(r,t))},style:function(e,t,n){var r="transform"==(e+="")?Fn:gr;return null==t?this.styleTween(e,function(e,t){var n,r,o;return function(){var i=qe(this,e),a=(this.style.removeProperty(e),qe(this,e));return i===a?null:i===n&&a===r?o:o=t(n=i,r=a)}}(e,r)).on("end.style."+e,Or(e)):"function"==typeof t?this.styleTween(e,function(e,t,n){var r,o,i;return function(){var a=qe(this,e),s=n(this),l=s+"";return null==s&&(this.style.removeProperty(e),l=s=qe(this,e)),a===l?null:a===r&&l===o?i:(o=l,i=t(r=a,s))}}(e,r,mr(this,"style."+e,t))).each(function(e,t){var n,r,o,i,a="style."+t,s="end."+a;return function(){var l=ur(this,e),c=l.on,u=null==l.value[a]?i||(i=Or(t)):void 0;c===n&&o===u||(r=(n=c).copy()).on(s,o=u),l.on=r}}(this._id,e)):this.styleTween(e,function(e,t,n){var r,o,i=n+"";return function(){var a=qe(this,e);return a===i?null:a===r?o:o=t(r=a,n)}}(e,r,t),n).on("end.style."+e,null)},styleTween:function(e,t,n){var r="style."+(e+="");if(arguments.length<2)return(r=this.tween(r))&&r._value;if(null==t)return this.tween(r,null);if("function"!=typeof t)throw new Error;return this.tween(r,function(e,t,n){var r,o;function i(){var i=t.apply(this,arguments);return i!==o&&(r=(o=i)&&function(e,t,n){return function(r){this.style.setProperty(e,t.call(this,r),n)}}(e,i,n)),r}return i._value=t,i}(e,t,null==n?"":n))},text:function(e){return this.tween("text","function"==typeof e?function(e){return function(){var t=e(this);this.textContent=null==t?"":t}}(mr(this,"text",e)):function(e){return function(){this.textContent=e}}(null==e?"":e+""))},textTween:function(e){var t="text";if(arguments.length<1)return(t=this.tween(t))&&t._value;if(null==e)return this.tween(t,null);if("function"!=typeof e)throw new Error;return this.tween(t,function(e){var t,n;function r(){var r=e.apply(this,arguments);return r!==n&&(t=(n=r)&&function(e){return function(t){this.textContent=e.call(this,t)}}(r)),t}return r._value=e,r}(e))},remove:function(){return this.on("end.remove",function(e){return function(){var t=this.parentNode;for(var n in this.__transition)if(+n!==e)return;t&&t.removeChild(this)}}(this._id))},tween:function(e,t){var n=this._id;if(e+="",arguments.length<2){for(var r,o=dr(this.node(),n).tween,i=0,a=o.length;i<a;++i)if((r=o[i]).name===e)return r.value;return null}return this.each((null==t?pr:hr)(n,e,t))},delay:function(e){var t=this._id;return arguments.length?this.each(("function"==typeof e?Sr:Ir)(t,e)):dr(this.node(),t).delay},duration:function(e){var t=this._id;return arguments.length?this.each(("function"==typeof e?_r:Ar)(t,e)):dr(this.node(),t).duration},ease:function(e){var t=this._id;return arguments.length?this.each(function(e,t){if("function"!=typeof t)throw new Error;return function(){ur(this,e).ease=t}}(t,e)):dr(this.node(),t).ease},easeVarying:function(e){if("function"!=typeof e)throw new Error;return this.each(function(e,t){return function(){var n=t.apply(this,arguments);if("function"!=typeof n)throw new Error;ur(this,e).ease=n}}(this._id,e))},end:function(){var e,t,n=this,r=n._id,o=n.size();return new Promise((function(i,a){var s={value:a},l={value:function(){0==--o&&i()}};n.each((function(){var n=ur(this,r),o=n.on;o!==e&&((t=(e=o).copy())._.cancel.push(s),t._.interrupt.push(s),t._.end.push(l)),n.on=t})),0===o&&i()}))},[Symbol.iterator]:Pr[Symbol.iterator]};var Dr={time:null,delay:0,duration:250,ease:function(e){return((e*=2)<=1?e*e*e:(e-=2)*e*e+2)/2}};function jr(e,t){for(var n;!(n=e.__transition)||!(n=n[t]);)if(!(e=e.parentNode))throw new Error(`transition ${t} not found`);return n}Nt.prototype.interrupt=function(e){return this.each((function(){fr(this,e)}))},Nt.prototype.transition=function(e){var t,n;e instanceof Mr?(t=e._id,e=e._name):(t=Tr(),(n=Dr).time=qn(),e=null==e?null:e+"");for(var r=this._groups,o=r.length,i=0;i<o;++i)for(var a,s=r[i],l=s.length,c=0;c<l;++c)(a=s[c])&&lr(a,e,t,c,s,n||jr(a,t));return new Mr(r,this._parents,e,t)};var Lr=e=>()=>e;function Fr(e,{sourceEvent:t,target:n,transform:r,dispatch:o}){Object.defineProperties(this,{type:{value:e,enumerable:!0,configurable:!0},sourceEvent:{value:t,enumerable:!0,configurable:!0},target:{value:n,enumerable:!0,configurable:!0},transform:{value:r,enumerable:!0,configurable:!0},_:{value:o}})}function zr(e,t,n){this.k=e,this.x=t,this.y=n}zr.prototype={constructor:zr,scale:function(e){return 1===e?this:new zr(this.k*e,this.x,this.y)},translate:function(e,t){return 0===e&0===t?this:new zr(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 Br=new zr(1,0,0);function Vr(e){e.stopImmediatePropagation()}function Gr(e){e.preventDefault(),e.stopImmediatePropagation()}function Wr(e){return!(e.ctrlKey&&"wheel"!==e.type||e.button)}function Hr(){var e=this;return e instanceof SVGElement?(e=e.ownerSVGElement||e).hasAttribute("viewBox")?[[(e=e.viewBox.baseVal).x,e.y],[e.x+e.width,e.y+e.height]]:[[0,0],[e.width.baseVal.value,e.height.baseVal.value]]:[[0,0],[e.clientWidth,e.clientHeight]]}function Xr(){return this.__zoom||Br}function $r(e){return-e.deltaY*(1===e.deltaMode?.05:e.deltaMode?1:.002)*(e.ctrlKey?10:1)}function Zr(){return navigator.maxTouchPoints||"ontouchstart"in this}function Yr(e,t,n){var r=e.invertX(t[0][0])-n[0][0],o=e.invertX(t[1][0])-n[1][0],i=e.invertY(t[0][1])-n[0][1],a=e.invertY(t[1][1])-n[1][1];return e.translate(o>r?(r+o)/2:Math.min(0,r)||Math.max(0,o),a>i?(i+a)/2:Math.min(0,i)||Math.max(0,a))}function Ur(){var e,t,n,r=Wr,o=Hr,i=Yr,a=$r,s=Zr,l=[0,1/0],c=[[-1/0,-1/0],[1/0,1/0]],u=250,d=Wn,f=he("start","zoom","end"),p=0,h=10;function m(e){e.property("__zoom",Xr).on("wheel.zoom",C,{passive:!1}).on("mousedown.zoom",k).on("dblclick.zoom",E).filter(s).on("touchstart.zoom",S).on("touchmove.zoom",I).on("touchend.zoom touchcancel.zoom",_).style("-webkit-tap-highlight-color","rgba(0,0,0,0)")}function g(e,t){return(t=Math.max(l[0],Math.min(l[1],t)))===e.k?e:new zr(t,e.x,e.y)}function y(e,t,n){var r=t[0]-n[0]*e.k,o=t[1]-n[1]*e.k;return r===e.x&&o===e.y?e:new zr(e.k,r,o)}function b(e){return[(+e[0][0]+ +e[1][0])/2,(+e[0][1]+ +e[1][1])/2]}function v(e,t,n,r){e.on("start.zoom",(function(){w(this,arguments).event(r).start()})).on("interrupt.zoom end.zoom",(function(){w(this,arguments).event(r).end()})).tween("zoom",(function(){var e=this,i=arguments,a=w(e,i).event(r),s=o.apply(e,i),l=null==n?b(s):"function"==typeof n?n.apply(e,i):n,c=Math.max(s[1][0]-s[0][0],s[1][1]-s[0][1]),u=e.__zoom,f="function"==typeof t?t.apply(e,i):t,p=d(u.invert(l).concat(c/u.k),f.invert(l).concat(c/f.k));return function(e){if(1===e)e=f;else{var t=p(e),n=c/t[2];e=new zr(n,l[0]-t[0]*n,l[1]-t[1]*n)}a.zoom(null,e)}}))}function w(e,t,n){return!n&&e.__zooming||new x(e,t)}function x(e,t){this.that=e,this.args=t,this.active=0,this.sourceEvent=null,this.extent=o.apply(e,t),this.taps=0}function C(e,...t){if(r.apply(this,arguments)){var n=w(this,t).event(e),o=this.__zoom,s=Math.max(l[0],Math.min(l[1],o.k*Math.pow(2,a.apply(this,arguments)))),u=Rt(e);if(n.wheel)n.mouse[0][0]===u[0]&&n.mouse[0][1]===u[1]||(n.mouse[1]=o.invert(n.mouse[0]=u)),clearTimeout(n.wheel);else{if(o.k===s)return;n.mouse=[u,o.invert(u)],fr(this),n.start()}Gr(e),n.wheel=setTimeout((function(){n.wheel=null,n.end()}),150),n.zoom("mouse",i(y(g(o,s),n.mouse[0],n.mouse[1]),n.extent,c))}}function k(e,...t){if(!n&&r.apply(this,arguments)){var o=e.currentTarget,a=w(this,t,!0).event(e),s=Ot(e.view).on("mousemove.zoom",(function(e){if(Gr(e),!a.moved){var t=e.clientX-u,n=e.clientY-d;a.moved=t*t+n*n>p}a.event(e).zoom("mouse",i(y(a.that.__zoom,a.mouse[0]=Rt(e,o),a.mouse[1]),a.extent,c))}),!0).on("mouseup.zoom",(function(e){s.on("mousemove.zoom mouseup.zoom",null),Lt(e.view,a.moved),Gr(e),a.event(e).end()}),!0),l=Rt(e,o),u=e.clientX,d=e.clientY;jt(e.view),Vr(e),a.mouse=[l,this.__zoom.invert(l)],fr(this),a.start()}}function E(e,...t){if(r.apply(this,arguments)){var n=this.__zoom,a=Rt(e.changedTouches?e.changedTouches[0]:e,this),s=n.invert(a),l=n.k*(e.shiftKey?.5:2),d=i(y(g(n,l),a,s),o.apply(this,t),c);Gr(e),u>0?Ot(this).transition().duration(u).call(v,d,a,e):Ot(this).call(m.transform,d,a,e)}}function S(n,...o){if(r.apply(this,arguments)){var i,a,s,l,c=n.touches,u=c.length,d=w(this,o,n.changedTouches.length===u).event(n);for(Vr(n),a=0;a<u;++a)l=[l=Rt(s=c[a],this),this.__zoom.invert(l),s.identifier],d.touch0?d.touch1||d.touch0[2]===l[2]||(d.touch1=l,d.taps=0):(d.touch0=l,i=!0,d.taps=1+!!e);e&&(e=clearTimeout(e)),i&&(d.taps<2&&(t=l[0],e=setTimeout((function(){e=null}),500)),fr(this),d.start())}}function I(e,...t){if(this.__zooming){var n,r,o,a,s=w(this,t).event(e),l=e.changedTouches,u=l.length;for(Gr(e),n=0;n<u;++n)o=Rt(r=l[n],this),s.touch0&&s.touch0[2]===r.identifier?s.touch0[0]=o:s.touch1&&s.touch1[2]===r.identifier&&(s.touch1[0]=o);if(r=s.that.__zoom,s.touch1){var d=s.touch0[0],f=s.touch0[1],p=s.touch1[0],h=s.touch1[1],m=(m=p[0]-d[0])*m+(m=p[1]-d[1])*m,b=(b=h[0]-f[0])*b+(b=h[1]-f[1])*b;r=g(r,Math.sqrt(m/b)),o=[(d[0]+p[0])/2,(d[1]+p[1])/2],a=[(f[0]+h[0])/2,(f[1]+h[1])/2]}else{if(!s.touch0)return;o=s.touch0[0],a=s.touch0[1]}s.zoom("touch",i(y(r,o,a),s.extent,c))}}function _(e,...r){if(this.__zooming){var o,i,a=w(this,r).event(e),s=e.changedTouches,l=s.length;for(Vr(e),n&&clearTimeout(n),n=setTimeout((function(){n=null}),500),o=0;o<l;++o)i=s[o],a.touch0&&a.touch0[2]===i.identifier?delete a.touch0:a.touch1&&a.touch1[2]===i.identifier&&delete a.touch1;if(a.touch1&&!a.touch0&&(a.touch0=a.touch1,delete a.touch1),a.touch0)a.touch0[1]=this.__zoom.invert(a.touch0[0]);else if(a.end(),2===a.taps&&(i=Rt(i,this),Math.hypot(t[0]-i[0],t[1]-i[1])<h)){var c=Ot(this).on("dblclick.zoom");c&&c.apply(this,arguments)}}}return m.transform=function(e,t,n,r){var o=e.selection?e.selection():e;o.property("__zoom",Xr),e!==o?v(e,t,n,r):o.interrupt().each((function(){w(this,arguments).event(r).start().zoom(null,"function"==typeof t?t.apply(this,arguments):t).end()}))},m.scaleBy=function(e,t,n,r){m.scaleTo(e,(function(){return this.__zoom.k*("function"==typeof t?t.apply(this,arguments):t)}),n,r)},m.scaleTo=function(e,t,n,r){m.transform(e,(function(){var e=o.apply(this,arguments),r=this.__zoom,a=null==n?b(e):"function"==typeof n?n.apply(this,arguments):n,s=r.invert(a),l="function"==typeof t?t.apply(this,arguments):t;return i(y(g(r,l),a,s),e,c)}),n,r)},m.translateBy=function(e,t,n,r){m.transform(e,(function(){return i(this.__zoom.translate("function"==typeof t?t.apply(this,arguments):t,"function"==typeof n?n.apply(this,arguments):n),o.apply(this,arguments),c)}),null,r)},m.translateTo=function(e,t,n,r,a){m.transform(e,(function(){var e=o.apply(this,arguments),a=this.__zoom,s=null==r?b(e):"function"==typeof r?r.apply(this,arguments):r;return i(Br.translate(s[0],s[1]).scale(a.k).translate("function"==typeof t?-t.apply(this,arguments):-t,"function"==typeof n?-n.apply(this,arguments):-n),e,c)}),r,a)},x.prototype={event:function(e){return e&&(this.sourceEvent=e),this},start:function(){return 1==++this.active&&(this.that.__zooming=this,this.emit("start")),this},zoom:function(e,t){return this.mouse&&"mouse"!==e&&(this.mouse[1]=t.invert(this.mouse[0])),this.touch0&&"touch"!==e&&(this.touch0[1]=t.invert(this.touch0[0])),this.touch1&&"touch"!==e&&(this.touch1[1]=t.invert(this.touch1[0])),this.that.__zoom=t,this.emit("zoom"),this},end:function(){return 0==--this.active&&(delete this.that.__zooming,this.emit("end")),this},emit:function(e){var t=Ot(this.that).datum();f.call(e,this.that,new Fr(e,{sourceEvent:this.sourceEvent,target:m,transform:this.that.__zoom,dispatch:f}),t)}},m.wheelDelta=function(e){return arguments.length?(a="function"==typeof e?e:Lr(+e),m):a},m.filter=function(e){return arguments.length?(r="function"==typeof e?e:Lr(!!e),m):r},m.touchable=function(e){return arguments.length?(s="function"==typeof e?e:Lr(!!e),m):s},m.extent=function(e){return arguments.length?(o="function"==typeof e?e:Lr([[+e[0][0],+e[0][1]],[+e[1][0],+e[1][1]]]),m):o},m.scaleExtent=function(e){return arguments.length?(l[0]=+e[0],l[1]=+e[1],m):[l[0],l[1]]},m.translateExtent=function(e){return arguments.length?(c[0][0]=+e[0][0],c[1][0]=+e[1][0],c[0][1]=+e[0][1],c[1][1]=+e[1][1],m):[[c[0][0],c[0][1]],[c[1][0],c[1][1]]]},m.constrain=function(e){return arguments.length?(i=e,m):i},m.duration=function(e){return arguments.length?(u=+e,m):u},m.interpolate=function(e){return arguments.length?(d=e,m):d},m.on=function(){var e=f.on.apply(f,arguments);return e===f?m:e},m.clickDistance=function(e){return arguments.length?(p=(e=+e)*e,m):Math.sqrt(p)},m.tapDistance=function(e){return arguments.length?(h=+e,m):h},m}zr.prototype;const Jr=i(null),Kr=Jr.Provider,qr=()=>"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.",Qr=e=>`Node type "${e}" not found. Using fallback type "default".`,eo=()=>"The React Flow parent container needs a width and a height to render the graph.",to=()=>"Only child nodes can use a parent extent.",no=()=>"Can't create edge. An edge needs a source and a target.",ro=e=>`Marker type "${e}" doesn't exist.`,oo=(e,t)=>`Couldn't create edge for ${e?"target":"source"} handle id: "${e?t.targetHandle:t.sourceHandle}", edge id: ${t.id}.`,io=()=>"Handle: No node id found. Make sure to only use a Handle inside a custom Node.",ao=e=>`Edge type "${e}" not found. Using fallback type "default".`,so=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.`,lo=(()=>"[React Flow]: Seems like you have not used zustand provider as an ancestor. Help: https://reactflow.dev/error#001")();function co(e,t){const n=o(Jr);if(null===n)throw new Error(lo);return ue(n,e,t)}const uo=()=>{const e=o(Jr);if(null===e)throw new Error(lo);return a((()=>({getState:e.getState,setState:e.setState,subscribe:e.subscribe,destroy:e.destroy})),[e])},fo=e=>e.userSelectionActive?"none":"all";function po({position:e,children:n,className:r,style:o,...i}){const a=co(fo),s=`${e}`.split("-");return t.createElement("div",{className:ae(["react-flow__panel",r,...s]),style:{...o,pointerEvents:a},...i},n)}function ho({proOptions:e,position:n="bottom-right"}){return e?.hideAttribution?null:t.createElement(po,{position:n,className:"react-flow__attribution","data-message":"Please only hide this attribution when you are subscribed to React Flow Pro: https://reactflow.dev/pro"},t.createElement("a",{href:"https://reactflow.dev",target:"_blank",rel:"noopener noreferrer","aria-label":"React Flow attribution"},"React Flow"))}var mo=r((({x:e,y:n,label:r,labelStyle:o={},labelShowBg:i=!0,labelBgStyle:a={},labelBgPadding:l=[2,4],labelBgBorderRadius:d=2,children:f,className:p,...h})=>{const m=u(null),[g,y]=c({x:0,y:0,width:0,height:0}),b=ae(["react-flow__edge-textwrapper",p]);return s((()=>{if(m.current){const e=m.current.getBBox();y({x:e.x,y:e.y,width:e.width,height:e.height})}}),[r]),void 0!==r&&r?t.createElement("g",{transform:`translate(${e-g.width/2} ${n-g.height/2})`,className:b,visibility:g.width?"visible":"hidden",...h},i&&t.createElement("rect",{width:g.width+2*l[0],x:-l[0],y:-l[1],height:g.height+2*l[1],className:"react-flow__edge-textbg",style:a,rx:d,ry:d}),t.createElement("text",{className:"react-flow__edge-text",y:g.height/2,dy:"0.3em",ref:m,style:o},r),f):null}));const go=e=>({width:e.offsetWidth,height:e.offsetHeight}),yo=(e,t=0,n=1)=>Math.min(Math.max(e,t),n),bo=(e={x:0,y:0},t)=>({x:yo(e.x,t[0][0],t[1][0]),y:yo(e.y,t[0][1],t[1][1])}),vo=(e,t,n)=>e<t?yo(Math.abs(e-t),1,50)/50:e>n?-yo(Math.abs(e-n),1,50)/50:0,wo=(e,t)=>[20*vo(e.x,35,t.width-35),20*vo(e.y,35,t.height-35)],xo=e=>e.getRootNode?.()||window?.document,Co=(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)}),ko=({x:e,y:t,width:n,height:r})=>({x:e,y:t,x2:e+n,y2:t+r}),Eo=({x:e,y:t,x2:n,y2:r})=>({x:e,y:t,width:n-e,height:r-t}),So=e=>({...e.positionAbsolute||{x:0,y:0},width:e.width||0,height:e.height||0}),Io=(e,t)=>{const n=Math.max(0,Math.min(e.x+e.width,t.x+t.width)-Math.max(e.x,t.x)),r=Math.max(0,Math.min(e.y+e.height,t.y+t.height)-Math.max(e.y,t.y));return Math.ceil(n*r)},_o=e=>!isNaN(e)&&isFinite(e),Ao=Symbol.for("internals"),No=["Enter"," ","Escape"],Oo=(e,t)=>{"development"===process.env.NODE_ENV&&console.warn(`[React Flow]: ${t} Help: https://reactflow.dev/error#${e}`)};function Ro(e){const t=(e=>"nativeEvent"in e)(e)?e.nativeEvent:e,n=t.composedPath?.()?.[0]||e.target;return["INPUT","SELECT","TEXTAREA"].includes(n?.nodeName)||n?.hasAttribute("contenteditable")||!!n?.closest(".nokey")}const Mo=e=>"clientX"in e,To=(e,t)=>{const n=Mo(e),r=n?e.clientX:e.touches?.[0].clientX,o=n?e.clientY:e.touches?.[0].clientY;return{x:r-(t?.left??0),y:o-(t?.top??0)}},Po=()=>"undefined"!=typeof navigator&&navigator?.userAgent?.indexOf("Mac")>=0,Do=({id:e,path:n,labelX:r,labelY:o,label:i,labelStyle:a,labelShowBg:s,labelBgStyle:l,labelBgPadding:c,labelBgBorderRadius:u,style:d,markerEnd:f,markerStart:p,interactionWidth:h=20})=>t.createElement(t.Fragment,null,t.createElement("path",{id:e,style:d,d:n,fill:"none",className:"react-flow__edge-path",markerEnd:f,markerStart:p}),h&&t.createElement("path",{d:n,fill:"none",strokeOpacity:0,strokeWidth:h,className:"react-flow__edge-interaction"}),i&&_o(r)&&_o(o)?t.createElement(mo,{x:r,y:o,label:i,labelStyle:a,labelShowBg:s,labelBgStyle:l,labelBgPadding:c,labelBgBorderRadius:u}):null);function jo(e,t,n){return void 0===n?n:r=>{const o=t().edges.find((t=>t.id===e));o&&n(r,{...o})}}function Lo({sourceX:e,sourceY:t,targetX:n,targetY:r}){const o=Math.abs(n-e)/2,i=n<e?n+o:n-o,a=Math.abs(r-t)/2;return[i,r<t?r+a:r-a,o,a]}function Fo({sourceX:e,sourceY:t,targetX:n,targetY:r,sourceControlX:o,sourceControlY:i,targetControlX:a,targetControlY:s}){const l=.125*e+.375*o+.375*a+.125*n,c=.125*t+.375*i+.375*s+.125*r;return[l,c,Math.abs(l-e),Math.abs(c-t)]}var zo,Bo,Vo,Go,Wo,Ho;function Xo({pos:e,x1:t,y1:n,x2:r,y2:o}){return e===Ho.Left||e===Ho.Right?[.5*(t+r),n]:[t,.5*(n+o)]}function $o({sourceX:e,sourceY:t,sourcePosition:n=Ho.Bottom,targetX:r,targetY:o,targetPosition:i=Ho.Top}){const[a,s]=Xo({pos:n,x1:e,y1:t,x2:r,y2:o}),[l,c]=Xo({pos:i,x1:r,y1:o,x2:e,y2:t}),[u,d,f,p]=Fo({sourceX:e,sourceY:t,targetX:r,targetY:o,sourceControlX:a,sourceControlY:s,targetControlX:l,targetControlY:c});return[`M${e},${t} C${a},${s} ${l},${c} ${r},${o}`,u,d,f,p]}Do.displayName="BaseEdge",function(e){e.Strict="strict",e.Loose="loose"}(zo||(zo={})),function(e){e.Free="free",e.Vertical="vertical",e.Horizontal="horizontal"}(Bo||(Bo={})),function(e){e.Partial="partial",e.Full="full"}(Vo||(Vo={})),function(e){e.Bezier="default",e.Straight="straight",e.Step="step",e.SmoothStep="smoothstep",e.SimpleBezier="simplebezier"}(Go||(Go={})),function(e){e.Arrow="arrow",e.ArrowClosed="arrowclosed"}(Wo||(Wo={})),function(e){e.Left="left",e.Top="top",e.Right="right",e.Bottom="bottom"}(Ho||(Ho={}));const Zo=r((({sourceX:e,sourceY:n,targetX:r,targetY:o,sourcePosition:i=Ho.Bottom,targetPosition:a=Ho.Top,label:s,labelStyle:l,labelShowBg:c,labelBgStyle:u,labelBgPadding:d,labelBgBorderRadius:f,style:p,markerEnd:h,markerStart:m,interactionWidth:g})=>{const[y,b,v]=$o({sourceX:e,sourceY:n,sourcePosition:i,targetX:r,targetY:o,targetPosition:a});return t.createElement(Do,{path:y,labelX:b,labelY:v,label:s,labelStyle:l,labelShowBg:c,labelBgStyle:u,labelBgPadding:d,labelBgBorderRadius:f,style:p,markerEnd:h,markerStart:m,interactionWidth:g})}));Zo.displayName="SimpleBezierEdge";const Yo={[Ho.Left]:{x:-1,y:0},[Ho.Right]:{x:1,y:0},[Ho.Top]:{x:0,y:-1},[Ho.Bottom]:{x:0,y:1}},Uo=(e,t)=>Math.sqrt(Math.pow(t.x-e.x,2)+Math.pow(t.y-e.y,2));function Jo({source:e,sourcePosition:t=Ho.Bottom,target:n,targetPosition:r=Ho.Top,center:o,offset:i}){const a=Yo[t],s=Yo[r],l={x:e.x+a.x*i,y:e.y+a.y*i},c={x:n.x+s.x*i,y:n.y+s.y*i},u=(({source:e,sourcePosition:t=Ho.Bottom,target:n})=>t===Ho.Left||t===Ho.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})({source:l,sourcePosition:t,target:c}),d=0!==u.x?"x":"y",f=u[d];let p,h,m=[];const g={x:0,y:0},y={x:0,y:0},[b,v,w,x]=Lo({sourceX:e.x,sourceY:e.y,targetX:n.x,targetY:n.y});if(a[d]*s[d]==-1){p=o.x??b,h=o.y??v;const e=[{x:p,y:l.y},{x:p,y:c.y}],t=[{x:l.x,y:h},{x:c.x,y:h}];m=a[d]===f?"x"===d?e:t:"x"===d?t:e}else{const o=[{x:l.x,y:c.y}],u=[{x:c.x,y:l.y}];if(m="x"===d?a.x===f?u:o:a.y===f?o:u,t===r){const t=Math.abs(e[d]-n[d]);if(t<=i){const r=Math.min(i-1,i-t);a[d]===f?g[d]=(l[d]>e[d]?-1:1)*r:y[d]=(c[d]>n[d]?-1:1)*r}}if(t!==r){const e="x"===d?"y":"x",t=a[d]===s[e],n=l[e]>c[e],r=l[e]<c[e];(1===a[d]&&(!t&&n||t&&r)||1!==a[d]&&(!t&&r||t&&n))&&(m="x"===d?o:u)}const b={x:l.x+g.x,y:l.y+g.y},v={x:c.x+y.x,y:c.y+y.y};Math.max(Math.abs(b.x-m[0].x),Math.abs(v.x-m[0].x))>=Math.max(Math.abs(b.y-m[0].y),Math.abs(v.y-m[0].y))?(p=(b.x+v.x)/2,h=m[0].y):(p=m[0].x,h=(b.y+v.y)/2)}return[[e,{x:l.x+g.x,y:l.y+g.y},...m,{x:c.x+y.x,y:c.y+y.y},n],p,h,w,x]}function Ko({sourceX:e,sourceY:t,sourcePosition:n=Ho.Bottom,targetX:r,targetY:o,targetPosition:i=Ho.Top,borderRadius:a=5,centerX:s,centerY:l,offset:c=20}){const[u,d,f,p,h]=Jo({source:{x:e,y:t},sourcePosition:n,target:{x:r,y:o},targetPosition:i,center:{x:s,y:l},offset:c}),m=u.reduce(((e,t,n)=>{let r="";return r=n>0&&n<u.length-1?function(e,t,n,r){const o=Math.min(Uo(e,t)/2,Uo(t,n)/2,r),{x:i,y:a}=t;if(e.x===i&&i===n.x||e.y===a&&a===n.y)return`L${i} ${a}`;if(e.y===a)return`L ${i+o*(e.x<n.x?-1:1)},${a}Q ${i},${a} ${i},${a+o*(e.y<n.y?1:-1)}`;const s=e.x<n.x?1:-1;return`L ${i},${a+o*(e.y<n.y?-1:1)}Q ${i},${a} ${i+o*s},${a}`}(u[n-1],t,u[n+1],a):`${0===n?"M":"L"}${t.x} ${t.y}`,e+=r}),"");return[m,d,f,p,h]}const qo=r((({sourceX:e,sourceY:n,targetX:r,targetY:o,label:i,labelStyle:a,labelShowBg:s,labelBgStyle:l,labelBgPadding:c,labelBgBorderRadius:u,style:d,sourcePosition:f=Ho.Bottom,targetPosition:p=Ho.Top,markerEnd:h,markerStart:m,pathOptions:g,interactionWidth:y})=>{const[b,v,w]=Ko({sourceX:e,sourceY:n,sourcePosition:f,targetX:r,targetY:o,targetPosition:p,borderRadius:g?.borderRadius,offset:g?.offset});return t.createElement(Do,{path:b,labelX:v,labelY:w,label:i,labelStyle:a,labelShowBg:s,labelBgStyle:l,labelBgPadding:c,labelBgBorderRadius:u,style:d,markerEnd:h,markerStart:m,interactionWidth:y})}));qo.displayName="SmoothStepEdge";const Qo=r((e=>t.createElement(qo,{...e,pathOptions:a((()=>({borderRadius:0,offset:e.pathOptions?.offset})),[e.pathOptions?.offset])})));Qo.displayName="StepEdge";const ei=r((({sourceX:e,sourceY:n,targetX:r,targetY:o,label:i,labelStyle:a,labelShowBg:s,labelBgStyle:l,labelBgPadding:c,labelBgBorderRadius:u,style:d,markerEnd:f,markerStart:p,interactionWidth:h})=>{const[m,g,y]=function({sourceX:e,sourceY:t,targetX:n,targetY:r}){const[o,i,a,s]=Lo({sourceX:e,sourceY:t,targetX:n,targetY:r});return[`M ${e},${t}L ${n},${r}`,o,i,a,s]}({sourceX:e,sourceY:n,targetX:r,targetY:o});return t.createElement(Do,{path:m,labelX:g,labelY:y,label:i,labelStyle:a,labelShowBg:s,labelBgStyle:l,labelBgPadding:c,labelBgBorderRadius:u,style:d,markerEnd:f,markerStart:p,interactionWidth:h})}));function ti(e,t){return e>=0?.5*e:25*t*Math.sqrt(-e)}function ni({pos:e,x1:t,y1:n,x2:r,y2:o,c:i}){switch(e){case Ho.Left:return[t-ti(t-r,i),n];case Ho.Right:return[t+ti(r-t,i),n];case Ho.Top:return[t,n-ti(n-o,i)];case Ho.Bottom:return[t,n+ti(o-n,i)]}}function ri({sourceX:e,sourceY:t,sourcePosition:n=Ho.Bottom,targetX:r,targetY:o,targetPosition:i=Ho.Top,curvature:a=.25}){const[s,l]=ni({pos:n,x1:e,y1:t,x2:r,y2:o,c:a}),[c,u]=ni({pos:i,x1:r,y1:o,x2:e,y2:t,c:a}),[d,f,p,h]=Fo({sourceX:e,sourceY:t,targetX:r,targetY:o,sourceControlX:s,sourceControlY:l,targetControlX:c,targetControlY:u});return[`M${e},${t} C${s},${l} ${c},${u} ${r},${o}`,d,f,p,h]}ei.displayName="StraightEdge";const oi=r((({sourceX:e,sourceY:n,targetX:r,targetY:o,sourcePosition:i=Ho.Bottom,targetPosition:a=Ho.Top,label:s,labelStyle:l,labelShowBg:c,labelBgStyle:u,labelBgPadding:d,labelBgBorderRadius:f,style:p,markerEnd:h,markerStart:m,pathOptions:g,interactionWidth:y})=>{const[b,v,w]=ri({sourceX:e,sourceY:n,sourcePosition:i,targetX:r,targetY:o,targetPosition:a,curvature:g?.curvature});return t.createElement(Do,{path:b,labelX:v,labelY:w,label:s,labelStyle:l,labelShowBg:c,labelBgStyle:u,labelBgPadding:d,labelBgBorderRadius:f,style:p,markerEnd:h,markerStart:m,interactionWidth:y})}));oi.displayName="BezierEdge";const ii=i(null),ai=ii.Provider;ii.Consumer;const si=({source:e,sourceHandle:t,target:n,targetHandle:r})=>`reactflow__edge-${e}${t||""}-${n}${r||""}`,li=(e,t)=>{if(void 0===e)return"";if("string"==typeof e)return e;return`${t?`${t}__`:""}${Object.keys(e).sort().map((t=>`${t}=${e[t]}`)).join("&")}`},ci=({x:e,y:t},[n,r,o],i,[a,s])=>{const l={x:(e-n)/o,y:(t-r)/o};return i?{x:a*Math.round(l.x/a),y:s*Math.round(l.y/s)}:l},ui=({x:e,y:t},[n,r,o])=>({x:e*o+n,y:t*o+r}),di=(e,t=[0,0])=>{if(!e)return{x:0,y:0,positionAbsolute:{x:0,y:0}};const n=(e.width??0)*t[0],r=(e.height??0)*t[1],o={x:e.position.x-n,y:e.position.y-r};return{...o,positionAbsolute:e.positionAbsolute?{x:e.positionAbsolute.x-n,y:e.positionAbsolute.y-r}:o}},fi=(e,t=[0,0])=>{if(0===e.length)return{x:0,y:0,width:0,height:0};const n=e.reduce(((e,n)=>{const{x:r,y:o}=di(n,t).positionAbsolute;return Co(e,ko({x:r,y:o,width:n.width||0,height:n.height||0}))}),{x:1/0,y:1/0,x2:-1/0,y2:-1/0});return Eo(n)},pi=(e,t,[n,r,o]=[0,0,1],i=!1,a=!1,s=[0,0])=>{const l={x:(t.x-n)/o,y:(t.y-r)/o,width:t.width/o,height:t.height/o},c=[];return e.forEach((e=>{const{width:t,height:n,selectable:r=!0,hidden:o=!1}=e;if(a&&!r||o)return!1;const{positionAbsolute:u}=di(e,s),d={x:u.x,y:u.y,width:t||0,height:n||0},f=Io(l,d);(void 0===t||void 0===n||null===t||null===n||i&&f>0||f>=(t||0)*(n||0)||e.dragging)&&c.push(e)})),c},hi=(e,t)=>{const n=e.map((e=>e.id));return t.filter((e=>n.includes(e.source)||n.includes(e.target)))},mi=(e,t,n,r,o,i=.1)=>{const a=t/(e.width*(1+i)),s=n/(e.height*(1+i)),l=Math.min(a,s),c=yo(l,r,o);return{x:t/2-(e.x+e.width/2)*c,y:n/2-(e.y+e.height/2)*c,zoom:c}},gi=(e,t=0)=>e.transition().duration(t);function yi(e,t,n,r){return(t[n]||[]).reduce(((t,o)=>(`${e.id}-${o.id}-${n}`!==r&&t.push({id:o.id||null,type:n,nodeId:e.id,x:(e.positionAbsolute?.x??0)+o.x+o.width/2,y:(e.positionAbsolute?.y??0)+o.y+o.height/2}),t)),[])}const bi={source:null,target:null,sourceHandle:null,targetHandle:null},vi=()=>({handleDomNode:null,isValid:!1,connection:bi,endHandle:null});function wi(e,t,n,r,o,i,a){const s="target"===o,l=a.querySelector(`.react-flow__handle[data-id="${e?.nodeId}-${e?.id}-${e?.type}"]`),c={...vi(),handleDomNode:l};if(l){const e=xi(void 0,l),o=l.getAttribute("data-nodeid"),a=l.getAttribute("data-handleid"),u=l.classList.contains("connectable"),d=l.classList.contains("connectableend"),f={source:s?o:n,sourceHandle:s?a:r,target:s?n:o,targetHandle:s?r:a};c.connection=f;u&&d&&(t===zo.Strict?s&&"source"===e||!s&&"target"===e:o!==n||a!==r)&&(c.endHandle={nodeId:o,handleId:a,type:e},c.isValid=i(f))}return c}function xi(e,t){return e||(t?.classList.contains("target")?"target":t?.classList.contains("source")?"source":null)}function Ci(e){e?.classList.remove("valid","connecting","react-flow__handle-valid","react-flow__handle-connecting")}function ki(e,t){let n=null;return t?n="valid":e&&!t&&(n="invalid"),n}function Ei({event:e,handleId:t,nodeId:n,onConnect:r,isTarget:o,getState:i,setState:a,isValidConnection:s,edgeUpdaterType:l,onReconnectEnd:c}){const u=xo(e.target),{connectionMode:d,domNode:f,autoPanOnConnect:p,connectionRadius:h,onConnectStart:m,panBy:g,getNodes:y,cancelConnection:b}=i();let v,w=0;const{x:x,y:C}=To(e),k=u?.elementFromPoint(x,C),E=xi(l,k),S=f?.getBoundingClientRect();if(!S||!E)return;let I,_=To(e,S),A=!1,N=null,O=!1,R=null;const M=function({nodes:e,nodeId:t,handleId:n,handleType:r}){return e.reduce(((e,o)=>{if(o[Ao]){const{handleBounds:i}=o[Ao];let a=[],s=[];i&&(a=yi(o,i,"source",`${t}-${n}-${r}`),s=yi(o,i,"target",`${t}-${n}-${r}`)),e.push(...a,...s)}return e}),[])}({nodes:y(),nodeId:n,handleId:t,handleType:E}),T=()=>{if(!p)return;const[e,t]=wo(_,S);g({x:e,y:t}),w=requestAnimationFrame(T)};function P(e){const{transform:r}=i();_=To(e,S);const{handle:l,validHandleResult:c}=function(e,t,n,r,o,i){const{x:a,y:s}=To(e),l=t.elementsFromPoint(a,s).find((e=>e.classList.contains("react-flow__handle")));if(l){const e=l.getAttribute("data-nodeid");if(e){const t=xi(void 0,l),r=l.getAttribute("data-handleid"),a=i({nodeId:e,id:r,type:t});if(a){const i=o.find((n=>n.nodeId===e&&n.type===t&&n.id===r));return{handle:{id:r,type:t,nodeId:e,x:i?.x||n.x,y:i?.y||n.y},validHandleResult:a}}}}let c=[],u=1/0;if(o.forEach((e=>{const t=Math.sqrt((e.x-n.x)**2+(e.y-n.y)**2);if(t<=r){const n=i(e);t<=u&&(t<u?c=[{handle:e,validHandleResult:n}]:t===u&&c.push({handle:e,validHandleResult:n}),u=t)}})),!c.length)return{handle:null,validHandleResult:vi()};if(1===c.length)return c[0];const d=c.some((({validHandleResult:e})=>e.isValid)),f=c.some((({handle:e})=>"target"===e.type));return c.find((({handle:e,validHandleResult:t})=>f?"target"===e.type:!d||t.isValid))||c[0]}(e,u,ci(_,r,!1,[1,1]),h,M,(e=>wi(e,d,n,t,o?"target":"source",s,u)));if(v=l,A||(T(),A=!0),R=c.handleDomNode,N=c.connection,O=c.isValid,a({connectionPosition:v&&O?ui({x:v.x,y:v.y},r):_,connectionStatus:ki(!!v,O),connectionEndHandle:c.endHandle}),!v&&!O&&!R)return Ci(I);N.source!==N.target&&R&&(Ci(I),I=R,R.classList.add("connecting","react-flow__handle-connecting"),R.classList.toggle("valid",O),R.classList.toggle("react-flow__handle-valid",O))}function D(e){(v||R)&&N&&O&&r?.(N),i().onConnectEnd?.(e),l&&c?.(e),Ci(I),b(),cancelAnimationFrame(w),A=!1,O=!1,N=null,R=null,u.removeEventListener("mousemove",P),u.removeEventListener("mouseup",D),u.removeEventListener("touchmove",P),u.removeEventListener("touchend",D)}a({connectionPosition:_,connectionStatus:null,connectionNodeId:n,connectionHandleId:t,connectionHandleType:E,connectionStartHandle:{nodeId:n,handleId:t,type:E},connectionEndHandle:null}),m?.(e,{nodeId:n,handleId:t,handleType:E}),u.addEventListener("mousemove",P),u.addEventListener("mouseup",D),u.addEventListener("touchmove",P),u.addEventListener("touchend",D)}const Si=()=>!0,Ii=e=>({connectionStartHandle:e.connectionStartHandle,connectOnClick:e.connectOnClick,noPanClassName:e.noPanClassName}),_i=n((({type:e="source",position:n=Ho.Top,isValidConnection:r,isConnectable:i=!0,isConnectableStart:a=!0,isConnectableEnd:s=!0,id:l,onConnect:c,children:u,className:d,onMouseDown:f,onTouchStart:p,...h},m)=>{const g=l||null,y="target"===e,b=uo(),v=o(ii),{connectOnClick:w,noPanClassName:x}=co(Ii,fe),{connecting:C,clickConnecting:k}=co(((e,t,n)=>r=>{const{connectionStartHandle:o,connectionEndHandle:i,connectionClickStartHandle:a}=r;return{connecting:o?.nodeId===e&&o?.handleId===t&&o?.type===n||i?.nodeId===e&&i?.handleId===t&&i?.type===n,clickConnecting:a?.nodeId===e&&a?.handleId===t&&a?.type===n}})(v,g,e),fe);v||b.getState().onError?.("010",io());const E=e=>{const{defaultEdgeOptions:t,onConnect:n,hasDefaultEdges:r}=b.getState(),o={...t,...e};if(r){const{edges:e,setEdges:t}=b.getState();t(((e,t)=>{if(!e.source||!e.target)return Oo("006",no()),t;let n;return n=(e=>"id"in e&&"source"in e&&"target"in e)(e)?{...e}:{...e,id:si(e)},((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)))))(n,t)?t:t.concat(n)})(o,e))}n?.(o),c?.(o)},S=e=>{if(!v)return;const t=Mo(e);a&&(t&&0===e.button||!t)&&Ei({event:e,handleId:g,nodeId:v,onConnect:E,isTarget:y,getState:b.getState,setState:b.setState,isValidConnection:r||b.getState().isValidConnection||Si}),t?f?.(e):p?.(e)};return t.createElement("div",{"data-handleid":g,"data-nodeid":v,"data-handlepos":n,"data-id":`${v}-${g}-${e}`,className:ae(["react-flow__handle",`react-flow__handle-${n}`,"nodrag",x,d,{source:!y,target:y,connectable:i,connectablestart:a,connectableend:s,connecting:k,connectionindicator:i&&(a&&!C||s&&C)}]),onMouseDown:S,onTouchStart:S,onClick:w?t=>{const{onClickConnectStart:n,onClickConnectEnd:o,connectionClickStartHandle:i,connectionMode:s,isValidConnection:l}=b.getState();if(!v||!i&&!a)return;if(!i)return n?.(t,{nodeId:v,handleId:g,handleType:e}),void b.setState({connectionClickStartHandle:{nodeId:v,type:e,handleId:g}});const c=xo(t.target),u=r||l||Si,{connection:d,isValid:f}=wi({nodeId:v,id:g,type:e},s,i.nodeId,i.handleId||null,i.type,u,c);f&&E(d),o?.(t),b.setState({connectionClickStartHandle:null})}:void 0,ref:m,...h},u)}));_i.displayName="Handle";var Ai=r(_i);const Ni=({data:e,isConnectable:n,targetPosition:r=Ho.Top,sourcePosition:o=Ho.Bottom})=>t.createElement(t.Fragment,null,t.createElement(Ai,{type:"target",position:r,isConnectable:n}),e?.label,t.createElement(Ai,{type:"source",position:o,isConnectable:n}));Ni.displayName="DefaultNode";var Oi=r(Ni);const Ri=({data:e,isConnectable:n,sourcePosition:r=Ho.Bottom})=>t.createElement(t.Fragment,null,e?.label,t.createElement(Ai,{type:"source",position:r,isConnectable:n}));Ri.displayName="InputNode";var Mi=r(Ri);const Ti=({data:e,isConnectable:n,targetPosition:r=Ho.Top})=>t.createElement(t.Fragment,null,t.createElement(Ai,{type:"target",position:r,isConnectable:n}),e?.label);Ti.displayName="OutputNode";var Pi=r(Ti);const Di=()=>null;Di.displayName="GroupNode";const ji=e=>({selectedNodes:e.getNodes().filter((e=>e.selected)),selectedEdges:e.edges.filter((e=>e.selected)).map((e=>({...e})))}),Li=e=>e.id;function Fi(e,t){return fe(e.selectedNodes.map(Li),t.selectedNodes.map(Li))&&fe(e.selectedEdges.map(Li),t.selectedEdges.map(Li))}const zi=r((({onSelectionChange:e})=>{const t=uo(),{selectedNodes:n,selectedEdges:r}=co(ji,Fi);return s((()=>{const o={nodes:n,edges:r};e?.(o),t.getState().onSelectionChange.forEach((e=>e(o)))}),[n,r,e]),null}));zi.displayName="SelectionListener";const Bi=e=>!!e.onSelectionChange;function Vi({onSelectionChange:e}){const n=co(Bi);return e||n?t.createElement(zi,{onSelectionChange:e}):null}const Gi=e=>({setNodes:e.setNodes,setEdges:e.setEdges,setDefaultNodesAndEdges:e.setDefaultNodesAndEdges,setMinZoom:e.setMinZoom,setMaxZoom:e.setMaxZoom,setTranslateExtent:e.setTranslateExtent,setNodeExtent:e.setNodeExtent,reset:e.reset});function Wi(e,t){s((()=>{void 0!==e&&t(e)}),[e])}function Hi(e,t,n){s((()=>{void 0!==t&&n({[e]:t})}),[t])}const Xi=({nodes:e,edges:t,defaultNodes:n,defaultEdges:r,onConnect:o,onConnectStart:i,onConnectEnd:a,onClickConnectStart:l,onClickConnectEnd:c,nodesDraggable:u,nodesConnectable:d,nodesFocusable:f,edgesFocusable:p,edgesUpdatable:h,elevateNodesOnSelect:m,minZoom:g,maxZoom:y,nodeExtent:b,onNodesChange:v,onEdgesChange:w,elementsSelectable:x,connectionMode:C,snapGrid:k,snapToGrid:E,translateExtent:S,connectOnClick:I,defaultEdgeOptions:_,fitView:A,fitViewOptions:N,onNodesDelete:O,onEdgesDelete:R,onNodeDrag:M,onNodeDragStart:T,onNodeDragStop:P,onSelectionDrag:D,onSelectionDragStart:j,onSelectionDragStop:L,noPanClassName:F,nodeOrigin:z,rfId:B,autoPanOnConnect:V,autoPanOnNodeDrag:G,onError:W,connectionRadius:H,isValidConnection:X,nodeDragThreshold:$})=>{const{setNodes:Z,setEdges:Y,setDefaultNodesAndEdges:U,setMinZoom:J,setMaxZoom:K,setTranslateExtent:q,setNodeExtent:Q,reset:ee}=co(Gi,fe),te=uo();return s((()=>{const e=r?.map((e=>({...e,..._})));return U(n,e),()=>{ee()}}),[]),Hi("defaultEdgeOptions",_,te.setState),Hi("connectionMode",C,te.setState),Hi("onConnect",o,te.setState),Hi("onConnectStart",i,te.setState),Hi("onConnectEnd",a,te.setState),Hi("onClickConnectStart",l,te.setState),Hi("onClickConnectEnd",c,te.setState),Hi("nodesDraggable",u,te.setState),Hi("nodesConnectable",d,te.setState),Hi("nodesFocusable",f,te.setState),Hi("edgesFocusable",p,te.setState),Hi("edgesUpdatable",h,te.setState),Hi("elementsSelectable",x,te.setState),Hi("elevateNodesOnSelect",m,te.setState),Hi("snapToGrid",E,te.setState),Hi("snapGrid",k,te.setState),Hi("onNodesChange",v,te.setState),Hi("onEdgesChange",w,te.setState),Hi("connectOnClick",I,te.setState),Hi("fitViewOnInit",A,te.setState),Hi("fitViewOnInitOptions",N,te.setState),Hi("onNodesDelete",O,te.setState),Hi("onEdgesDelete",R,te.setState),Hi("onNodeDrag",M,te.setState),Hi("onNodeDragStart",T,te.setState),Hi("onNodeDragStop",P,te.setState),Hi("onSelectionDrag",D,te.setState),Hi("onSelectionDragStart",j,te.setState),Hi("onSelectionDragStop",L,te.setState),Hi("noPanClassName",F,te.setState),Hi("nodeOrigin",z,te.setState),Hi("rfId",B,te.setState),Hi("autoPanOnConnect",V,te.setState),Hi("autoPanOnNodeDrag",G,te.setState),Hi("onError",W,te.setState),Hi("connectionRadius",H,te.setState),Hi("isValidConnection",X,te.setState),Hi("nodeDragThreshold",$,te.setState),Wi(e,Z),Wi(t,Y),Wi(g,J),Wi(y,K),Wi(S,q),Wi(b,Q),null},$i={display:"none"},Zi={position:"absolute",width:1,height:1,margin:-1,border:0,padding:0,overflow:"hidden",clip:"rect(0px, 0px, 0px, 0px)",clipPath:"inset(100%)"},Yi="react-flow__node-desc",Ui="react-flow__edge-desc",Ji=e=>e.ariaLiveMessage;function Ki({rfId:e}){const n=co(Ji);return t.createElement("div",{id:`react-flow__aria-live-${e}`,"aria-live":"assertive","aria-atomic":"true",style:Zi},n)}function qi({rfId:e,disableKeyboardA11y:n}){return t.createElement(t.Fragment,null,t.createElement("div",{id:`${Yi}-${e}`,style:$i},"Press enter or space to select a node.",!n&&"You can then use the arrow keys to move the node around."," Press delete to remove it and escape to cancel."," "),t.createElement("div",{id:`${Ui}-${e}`,style:$i},"Press enter or space to select an edge. You can then press delete to remove it or escape to cancel."),!n&&t.createElement(Ki,{rfId:e}))}var Qi=(e=null,t={actInsideInputWithModifier:!0})=>{const[n,r]=c(!1),o=u(!1),i=u(new Set([])),[l,d]=a((()=>{if(null!==e){const t=(Array.isArray(e)?e:[e]).filter((e=>"string"==typeof e)).map((e=>e.split("+"))),n=t.reduce(((e,t)=>e.concat(...t)),[]);return[t,n]}return[[],[]]}),[e]);return s((()=>{const n="undefined"!=typeof document?document:null,a=t?.target||n;if(null!==e){const e=e=>{o.current=e.ctrlKey||e.metaKey||e.shiftKey;if((!o.current||o.current&&!t.actInsideInputWithModifier)&&Ro(e))return!1;const n=ta(e.code,d);i.current.add(e[n]),ea(l,i.current,!1)&&(e.preventDefault(),r(!0))},n=e=>{if((!o.current||o.current&&!t.actInsideInputWithModifier)&&Ro(e))return!1;const n=ta(e.code,d);ea(l,i.current,!0)?(r(!1),i.current.clear()):i.current.delete(e[n]),"Meta"===e.key&&i.current.clear(),o.current=!1},s=()=>{i.current.clear(),r(!1)};return a?.addEventListener("keydown",e),a?.addEventListener("keyup",n),window.addEventListener("blur",s),()=>{a?.removeEventListener("keydown",e),a?.removeEventListener("keyup",n),window.removeEventListener("blur",s)}}}),[e,r]),n};function ea(e,t,n){return e.filter((e=>n||e.length===t.size)).some((e=>e.every((e=>t.has(e)))))}function ta(e,t){return t.includes(e)?"code":"key"}function na(e,t,n,r){const o=e.parentNode||e.parentId;if(!o)return n;const i=t.get(o),a=di(i,r);return na(i,t,{x:(n.x??0)+a.x,y:(n.y??0)+a.y,z:(i[Ao]?.z??0)>(n.z??0)?i[Ao]?.z??0:n.z??0},r)}function ra(e,t,n){e.forEach((r=>{const o=r.parentNode||r.parentId;if(o&&!e.has(o))throw new Error(`Parent node ${o} not found`);if(o||n?.[r.id]){const{x:o,y:i,z:a}=na(r,e,{...r.position,z:r[Ao]?.z??0},t);r.positionAbsolute={x:o,y:i},r[Ao].z=a,n?.[r.id]&&(r[Ao].isParent=!0)}}))}function oa(e,t,n,r){const o=new Map,i={},a=r?1e3:0;return e.forEach((e=>{const n=(_o(e.zIndex)?e.zIndex:0)+(e.selected?a:0),r=t.get(e.id),s={...e,positionAbsolute:{x:e.position.x,y:e.position.y}},l=e.parentNode||e.parentId;l&&(i[l]=!0);const c=r?.type&&r?.type!==e.type;Object.defineProperty(s,Ao,{enumerable:!1,value:{handleBounds:c?void 0:r?.[Ao]?.handleBounds,z:n}}),o.set(e.id,s)})),ra(o,n,i),o}function ia(e,t={}){const{getNodes:n,width:r,height:o,minZoom:i,maxZoom:a,d3Zoom:s,d3Selection:l,fitViewOnInitDone:c,fitViewOnInit:u,nodeOrigin:d}=e(),f=t.initial&&!c&&u;if(s&&l&&(f||!t.initial)){const e=n().filter((e=>{const n=t.includeHiddenNodes?e.width&&e.height:!e.hidden;return t.nodes?.length?n&&t.nodes.some((t=>t.id===e.id)):n})),c=e.every((e=>e.width&&e.height));if(e.length>0&&c){const n=fi(e,d),{x:c,y:u,zoom:f}=mi(n,r,o,t.minZoom??i,t.maxZoom??a,t.padding??.1),p=Br.translate(c,u).scale(f);return"number"==typeof t.duration&&t.duration>0?s.transform(gi(l,t.duration),p):s.transform(l,p),!0}}return!1}function aa(e,t){return e.forEach((e=>{const n=t.get(e.id);n&&t.set(n.id,{...n,[Ao]:n[Ao],selected:e.selected})})),new Map(t)}function sa(e,t){return t.map((t=>{const n=e.find((e=>e.id===t.id));return n&&(t.selected=n.selected),t}))}function la({changedNodes:e,changedEdges:t,get:n,set:r}){const{nodeInternals:o,edges:i,onNodesChange:a,onEdgesChange:s,hasDefaultNodes:l,hasDefaultEdges:c}=n();e?.length&&(l&&r({nodeInternals:aa(e,o)}),a?.(e)),t?.length&&(c&&r({edges:sa(t,i)}),s?.(t))}const ca=()=>{},ua={zoomIn:ca,zoomOut:ca,zoomTo:ca,getZoom:()=>1,setViewport:ca,getViewport:()=>({x:0,y:0,zoom:1}),fitView:()=>!1,setCenter:ca,fitBounds:ca,project:e=>e,screenToFlowPosition:e=>e,flowToScreenPosition:e=>e,viewportInitialized:!1},da=e=>({d3Zoom:e.d3Zoom,d3Selection:e.d3Selection});function fa(){const e=(()=>{const e=uo(),{d3Zoom:t,d3Selection:n}=co(da,fe),r=a((()=>n&&t?{zoomIn:e=>t.scaleBy(gi(n,e?.duration),1.2),zoomOut:e=>t.scaleBy(gi(n,e?.duration),1/1.2),zoomTo:(e,r)=>t.scaleTo(gi(n,r?.duration),e),getZoom:()=>e.getState().transform[2],setViewport:(r,o)=>{const[i,a,s]=e.getState().transform,l=Br.translate(r.x??i,r.y??a).scale(r.zoom??s);t.transform(gi(n,o?.duration),l)},getViewport:()=>{const[t,n,r]=e.getState().transform;return{x:t,y:n,zoom:r}},fitView:t=>ia(e.getState,t),setCenter:(r,o,i)=>{const{width:a,height:s,maxZoom:l}=e.getState(),c=void 0!==i?.zoom?i.zoom:l,u=a/2-r*c,d=s/2-o*c,f=Br.translate(u,d).scale(c);t.transform(gi(n,i?.duration),f)},fitBounds:(r,o)=>{const{width:i,height:a,minZoom:s,maxZoom:l}=e.getState(),{x:c,y:u,zoom:d}=mi(r,i,a,s,l,o?.padding??.1),f=Br.translate(c,u).scale(d);t.transform(gi(n,o?.duration),f)},project:t=>{const{transform:n,snapToGrid:r,snapGrid:o}=e.getState();return console.warn("[DEPRECATED] `project` is deprecated. Instead use `screenToFlowPosition`. There is no need to subtract the react flow bounds anymore! https://reactflow.dev/api-reference/types/react-flow-instance#screen-to-flow-position"),ci(t,n,r,o)},screenToFlowPosition:t=>{const{transform:n,snapToGrid:r,snapGrid:o,domNode:i}=e.getState();if(!i)return t;const{x:a,y:s}=i.getBoundingClientRect(),l={x:t.x-a,y:t.y-s};return ci(l,n,r,o)},flowToScreenPosition:t=>{const{transform:n,domNode:r}=e.getState();if(!r)return t;const{x:o,y:i}=r.getBoundingClientRect(),a=ui(t,n);return{x:a.x+o,y:a.y+i}},viewportInitialized:!0}:ua),[t,n]);return r})(),t=uo(),n=l((()=>t.getState().getNodes().map((e=>({...e})))),[]),r=l((e=>t.getState().nodeInternals.get(e)),[]),o=l((()=>{const{edges:e=[]}=t.getState();return e.map((e=>({...e})))}),[]),i=l((e=>{const{edges:n=[]}=t.getState();return n.find((t=>t.id===e))}),[]),s=l((e=>{const{getNodes:n,setNodes:r,hasDefaultNodes:o,onNodesChange:i}=t.getState(),a=n(),s="function"==typeof e?e(a):e;if(o)r(s);else if(i){const e=0===s.length?a.map((e=>({type:"remove",id:e.id}))):s.map((e=>({item:e,type:"reset"})));i(e)}}),[]),c=l((e=>{const{edges:n=[],setEdges:r,hasDefaultEdges:o,onEdgesChange:i}=t.getState(),a="function"==typeof e?e(n):e;if(o)r(a);else if(i){i(0===a.length?n.map((e=>({type:"remove",id:e.id}))):a.map((e=>({item:e,type:"reset"}))))}}),[]),u=l((e=>{const n=Array.isArray(e)?e:[e],{getNodes:r,setNodes:o,hasDefaultNodes:i,onNodesChange:a}=t.getState();if(i){o([...r(),...n])}else if(a){const e=n.map((e=>({item:e,type:"add"})));a(e)}}),[]),d=l((e=>{const n=Array.isArray(e)?e:[e],{edges:r=[],setEdges:o,hasDefaultEdges:i,onEdgesChange:a}=t.getState();if(i)o([...r,...n]);else if(a){a(n.map((e=>({item:e,type:"add"}))))}}),[]),f=l((()=>{const{getNodes:e,edges:n=[],transform:r}=t.getState(),[o,i,a]=r;return{nodes:e().map((e=>({...e}))),edges:n.map((e=>({...e}))),viewport:{x:o,y:i,zoom:a}}}),[]),p=l((({nodes:e,edges:n})=>{const{nodeInternals:r,getNodes:o,edges:i,hasDefaultNodes:a,hasDefaultEdges:s,onNodesDelete:l,onEdgesDelete:c,onNodesChange:u,onEdgesChange:d}=t.getState(),f=(e||[]).map((e=>e.id)),p=(n||[]).map((e=>e.id)),h=o().reduce(((e,t)=>{const n=t.parentNode||t.parentId,r=!f.includes(t.id)&&n&&e.find((e=>e.id===n));return("boolean"!=typeof t.deletable||t.deletable)&&(f.includes(t.id)||r)&&e.push(t),e}),[]),m=i.filter((e=>"boolean"!=typeof e.deletable||e.deletable)),g=m.filter((e=>p.includes(e.id)));if(h||g){const e=hi(h,m),n=[...g,...e],o=n.reduce(((e,t)=>(e.includes(t.id)||e.push(t.id),e)),[]);if((s||a)&&(s&&t.setState({edges:i.filter((e=>!o.includes(e.id)))}),a&&(h.forEach((e=>{r.delete(e.id)})),t.setState({nodeInternals:new Map(r)}))),o.length>0&&(c?.(n),d&&d(o.map((e=>({id:e,type:"remove"}))))),h.length>0&&(l?.(h),u)){u(h.map((e=>({id:e.id,type:"remove"}))))}}}),[]),h=l((e=>{const n=_o((r=e).width)&&_o(r.height)&&_o(r.x)&&_o(r.y);var r;const o=n?null:t.getState().nodeInternals.get(e.id);if(!n&&!o)return[null,null,n];return[n?e:So(o),o,n]}),[]),m=l(((e,n=!0,r)=>{const[o,i,a]=h(e);return o?(r||t.getState().getNodes()).filter((e=>{if(!(a||e.id!==i.id&&e.positionAbsolute))return!1;const t=So(e),r=Io(t,o);return n&&r>0||r>=o.width*o.height})):[]}),[]),g=l(((e,t,n=!0)=>{const[r]=h(e);if(!r)return!1;const o=Io(r,t);return n&&o>0||o>=r.width*r.height}),[]);return a((()=>({...e,getNodes:n,getNode:r,getEdges:o,getEdge:i,setNodes:s,setEdges:c,addNodes:u,addEdges:d,toObject:f,deleteElements:p,getIntersectingNodes:m,isNodeIntersecting:g})),[e,n,r,o,i,s,c,u,d,f,p,m,g])}const pa={actInsideInputWithModifier:!1};const ha={position:"absolute",width:"100%",height:"100%",top:0,left:0},ma=e=>({x:e.x,y:e.y,zoom:e.k}),ga=(e,t)=>e.target.closest(`.${t}`),ya=(e,t)=>2===t&&Array.isArray(e)&&e.includes(2),ba=e=>{const t=e.ctrlKey&&Po()?10:1;return-e.deltaY*(1===e.deltaMode?.05:e.deltaMode?1:.002)*t},va=e=>({d3Zoom:e.d3Zoom,d3Selection:e.d3Selection,d3ZoomHandler:e.d3ZoomHandler,userSelectionActive:e.userSelectionActive}),wa=({onMove:e,onMoveStart:n,onMoveEnd:r,onPaneContextMenu:o,zoomOnScroll:i=!0,zoomOnPinch:a=!0,panOnScroll:l=!1,panOnScrollSpeed:c=.5,panOnScrollMode:d=Bo.Free,zoomOnDoubleClick:f=!0,elementsSelectable:p,panOnDrag:h=!0,defaultViewport:m,translateExtent:g,minZoom:y,maxZoom:b,zoomActivationKeyCode:v,preventScrolling:w=!0,children:x,noWheelClassName:C,noPanClassName:k})=>{const E=u(),S=uo(),I=u(!1),_=u(!1),A=u(null),N=u({x:0,y:0,zoom:0}),{d3Zoom:O,d3Selection:R,d3ZoomHandler:M,userSelectionActive:T}=co(va,fe),P=Qi(v),D=u(0),j=u(!1),L=u();return function(e){const t=uo();s((()=>{let n;const r=()=>{if(!e.current)return;const n=go(e.current);0!==n.height&&0!==n.width||t.getState().onError?.("004",eo()),t.setState({width:n.width||500,height:n.height||500})};return r(),window.addEventListener("resize",r),e.current&&(n=new ResizeObserver((()=>r())),n.observe(e.current)),()=>{window.removeEventListener("resize",r),n&&e.current&&n.unobserve(e.current)}}),[])}(A),s((()=>{if(A.current){const e=A.current.getBoundingClientRect(),t=Ur().scaleExtent([y,b]).translateExtent(g),n=Ot(A.current).call(t),r=Br.translate(m.x,m.y).scale(yo(m.zoom,y,b)),o=[[0,0],[e.width,e.height]],i=t.constrain()(r,o,g);t.transform(n,i),t.wheelDelta(ba),S.setState({d3Zoom:t,d3Selection:n,d3ZoomHandler:n.on("wheel.zoom"),transform:[i.x,i.y,i.k],domNode:A.current.closest(".react-flow")})}}),[]),s((()=>{R&&O&&(!l||P||T?void 0!==M&&R.on("wheel.zoom",(function(e,t){if(!w&&"wheel"===e.type&&!e.ctrlKey||ga(e,C))return null;e.preventDefault(),M.call(this,e,t)}),{passive:!1}):R.on("wheel.zoom",(t=>{if(ga(t,C))return!1;t.preventDefault(),t.stopImmediatePropagation();const o=R.property("__zoom").k||1;if(t.ctrlKey&&a){const e=Rt(t),n=ba(t),r=o*Math.pow(2,n);return void O.scaleTo(R,r,e,t)}const i=1===t.deltaMode?20:1;let s=d===Bo.Vertical?0:t.deltaX*i,l=d===Bo.Horizontal?0:t.deltaY*i;!Po()&&t.shiftKey&&d!==Bo.Vertical&&(s=t.deltaY*i,l=0),O.translateBy(R,-s/o*c,-l/o*c,{internal:!0});const u=ma(R.property("__zoom")),{onViewportChangeStart:f,onViewportChange:p,onViewportChangeEnd:h}=S.getState();clearTimeout(L.current),j.current||(j.current=!0,n?.(t,u),f?.(u)),j.current&&(e?.(t,u),p?.(u),L.current=setTimeout((()=>{r?.(t,u),h?.(u),j.current=!1}),150))}),{passive:!1}))}),[T,l,d,R,O,M,P,a,w,C,n,e,r]),s((()=>{O&&O.on("start",(e=>{if(!e.sourceEvent||e.sourceEvent.internal)return null;D.current=e.sourceEvent?.button;const{onViewportChangeStart:t}=S.getState(),r=ma(e.transform);I.current=!0,N.current=r,"mousedown"===e.sourceEvent?.type&&S.setState({paneDragging:!0}),t?.(r),n?.(e.sourceEvent,r)}))}),[O,n]),s((()=>{O&&(T&&!I.current?O.on("zoom",null):T||O.on("zoom",(t=>{const{onViewportChange:n}=S.getState();if(S.setState({transform:[t.transform.x,t.transform.y,t.transform.k]}),_.current=!(!o||!ya(h,D.current??0)),(e||n)&&!t.sourceEvent?.internal){const r=ma(t.transform);n?.(r),e?.(t.sourceEvent,r)}})))}),[T,O,e,h,o]),s((()=>{O&&O.on("end",(e=>{if(!e.sourceEvent||e.sourceEvent.internal)return null;const{onViewportChangeEnd:t}=S.getState();if(I.current=!1,S.setState({paneDragging:!1}),o&&ya(h,D.current??0)&&!_.current&&o(e.sourceEvent),_.current=!1,(r||t)&&(n=N.current,i=e.transform,n.x!==i.x||n.y!==i.y||n.zoom!==i.k)){const n=ma(e.transform);N.current=n,clearTimeout(E.current),E.current=setTimeout((()=>{t?.(n),r?.(e.sourceEvent,n)}),l?150:0)}var n,i}))}),[O,l,h,r,o]),s((()=>{O&&O.filter((e=>{const t=P||i,n=a&&e.ctrlKey;if((!0===h||Array.isArray(h)&&h.includes(1))&&1===e.button&&"mousedown"===e.type&&(ga(e,"react-flow__node")||ga(e,"react-flow__edge")))return!0;if(!(h||t||l||f||a))return!1;if(T)return!1;if(!f&&"dblclick"===e.type)return!1;if(ga(e,C)&&"wheel"===e.type)return!1;if(ga(e,k)&&("wheel"!==e.type||l&&"wheel"===e.type&&!P))return!1;if(!a&&e.ctrlKey&&"wheel"===e.type)return!1;if(!t&&!l&&!n&&"wheel"===e.type)return!1;if(!h&&("mousedown"===e.type||"touchstart"===e.type))return!1;if(Array.isArray(h)&&!h.includes(e.button)&&"mousedown"===e.type)return!1;const r=Array.isArray(h)&&h.includes(e.button)||!e.button||e.button<=1;return(!e.ctrlKey||"wheel"===e.type)&&r}))}),[T,O,i,a,l,f,h,p,P]),t.createElement("div",{className:"react-flow__renderer",ref:A,style:ha},x)},xa=e=>({userSelectionActive:e.userSelectionActive,userSelectionRect:e.userSelectionRect});function Ca(){const{userSelectionActive:e,userSelectionRect:n}=co(xa,fe);return e&&n?t.createElement("div",{className:"react-flow__selection react-flow__container",style:{width:n.width,height:n.height,transform:`translate(${n.x}px, ${n.y}px)`}}):null}function ka(e,t){const n=t.parentNode||t.parentId,r=e.find((e=>e.id===n));if(r){const e=t.position.x+t.width-r.width,n=t.position.y+t.height-r.height;if(e>0||n>0||t.position.x<0||t.position.y<0){if(r.style={...r.style}||{},r.style.width=r.style.width??r.width,r.style.height=r.style.height??r.height,e>0&&(r.style.width+=e),n>0&&(r.style.height+=n),t.position.x<0){const e=Math.abs(t.position.x);r.position.x=r.position.x-e,r.style.width+=e,t.position.x=0}if(t.position.y<0){const e=Math.abs(t.position.y);r.position.y=r.position.y-e,r.style.height+=e,t.position.y=0}r.width=r.style.width,r.height=r.style.height}}}function Ea(e,t){if(e.some((e=>"reset"===e.type)))return e.filter((e=>"reset"===e.type)).map((e=>e.item));const n=e.filter((e=>"add"===e.type)).map((e=>e.item));return t.reduce(((t,n)=>{const r=e.filter((e=>e.id===n.id));if(0===r.length)return t.push(n),t;const o={...n};for(const e of r)if(e)switch(e.type){case"select":o.selected=e.selected;break;case"position":void 0!==e.position&&(o.position=e.position),void 0!==e.positionAbsolute&&(o.positionAbsolute=e.positionAbsolute),void 0!==e.dragging&&(o.dragging=e.dragging),o.expandParent&&ka(t,o);break;case"dimensions":void 0!==e.dimensions&&(o.width=e.dimensions.width,o.height=e.dimensions.height),void 0!==e.updateStyle&&(o.style={...o.style||{},...e.dimensions}),"boolean"==typeof e.resizing&&(o.resizing=e.resizing),o.expandParent&&ka(t,o);break;case"remove":return t}return t.push(o),t}),n)}function Sa(e,t){return Ea(e,t)}function Ia(e,t){return Ea(e,t)}const _a=(e,t)=>({id:e,type:"select",selected:t});function Aa(e,t){return e.reduce(((e,n)=>{const r=t.includes(n.id);return!n.selected&&r?(n.selected=!0,e.push(_a(n.id,!0))):n.selected&&!r&&(n.selected=!1,e.push(_a(n.id,!1))),e}),[])}const Na=(e,t)=>n=>{n.target===t.current&&e?.(n)},Oa=e=>({userSelectionActive:e.userSelectionActive,elementsSelectable:e.elementsSelectable,dragging:e.paneDragging}),Ra=r((({isSelecting:e,selectionMode:n=Vo.Full,panOnDrag:r,onSelectionStart:o,onSelectionEnd:i,onPaneClick:a,onPaneContextMenu:s,onPaneScroll:l,onPaneMouseEnter:c,onPaneMouseMove:d,onPaneMouseLeave:f,children:p})=>{const h=u(null),m=uo(),g=u(0),y=u(0),b=u(),{userSelectionActive:v,elementsSelectable:w,dragging:x}=co(Oa,fe),C=()=>{m.setState({userSelectionActive:!1,userSelectionRect:null}),g.current=0,y.current=0},k=e=>{a?.(e),m.getState().resetSelectedElements(),m.setState({nodesSelectionActive:!1})},E=l?e=>l(e):void 0,S=w&&(e||v);return t.createElement("div",{className:ae(["react-flow__pane",{dragging:x,selection:e}]),onClick:S?void 0:Na(k,h),onContextMenu:Na((e=>{Array.isArray(r)&&r?.includes(2)?e.preventDefault():s?.(e)}),h),onWheel:Na(E,h),onMouseEnter:S?void 0:c,onMouseDown:S?t=>{const{resetSelectedElements:n,domNode:r}=m.getState();if(b.current=r?.getBoundingClientRect(),!w||!e||0!==t.button||t.target!==h.current||!b.current)return;const{x:i,y:a}=To(t,b.current);n(),m.setState({userSelectionRect:{width:0,height:0,startX:i,startY:a,x:i,y:a}}),o?.(t)}:void 0,onMouseMove:S?t=>{const{userSelectionRect:r,nodeInternals:o,edges:i,transform:a,onNodesChange:s,onEdgesChange:l,nodeOrigin:c,getNodes:u}=m.getState();if(!e||!b.current||!r)return;m.setState({userSelectionActive:!0,nodesSelectionActive:!1});const d=To(t,b.current),f=r.startX??0,p=r.startY??0,h={...r,x:d.x<f?d.x:f,y:d.y<p?d.y:p,width:Math.abs(d.x-f),height:Math.abs(d.y-p)},v=u(),w=pi(o,h,a,n===Vo.Partial,!0,c),x=hi(w,i).map((e=>e.id)),C=w.map((e=>e.id));if(g.current!==C.length){g.current=C.length;const e=Aa(v,C);e.length&&s?.(e)}if(y.current!==x.length){y.current=x.length;const e=Aa(i,x);e.length&&l?.(e)}m.setState({userSelectionRect:h})}:d,onMouseUp:S?e=>{if(0!==e.button)return;const{userSelectionRect:t}=m.getState();!v&&t&&e.target===h.current&&k?.(e),m.setState({nodesSelectionActive:g.current>0}),C(),i?.(e)}:void 0,onMouseLeave:S?e=>{v&&(m.setState({nodesSelectionActive:g.current>0}),i?.(e)),C()}:f,ref:h,style:ha},p,t.createElement(Ca,null))}));function Ma(e,t){const n=e.parentNode||e.parentId;if(!n)return!1;const r=t.get(n);return!!r&&(!!r.selected||Ma(r,t))}function Ta(e,t,n){let r=e;do{if(r?.matches(t))return!0;if(r===n.current)return!1;r=r.parentElement}while(r);return!1}function Pa(e,t,n,r){return Array.from(e.values()).filter((n=>(n.selected||n.id===r)&&(!n.parentNode||n.parentId||!Ma(n,e))&&(n.draggable||t&&void 0===n.draggable))).map((e=>({id:e.id,position:e.position||{x:0,y:0},positionAbsolute:e.positionAbsolute||{x:0,y:0},distance:{x:n.x-(e.positionAbsolute?.x??0),y:n.y-(e.positionAbsolute?.y??0)},delta:{x:0,y:0},extent:e.extent,parentNode:e.parentNode||e.parentId,parentId:e.parentNode||e.parentId,width:e.width,height:e.height,expandParent:e.expandParent})))}function Da(e,t,n,r,o=[0,0],i){const a=function(e,t){return t&&"parent"!==t?[t[0],[t[1][0]-(e.width||0),t[1][1]-(e.height||0)]]:t}(e,e.extent||r);let s=a;const l=e.parentNode||e.parentId;if("parent"!==e.extent||e.expandParent){if(e.extent&&l&&"parent"!==e.extent){const t=n.get(l),{x:r,y:i}=di(t,o).positionAbsolute;s=[[e.extent[0][0]+r,e.extent[0][1]+i],[e.extent[1][0]+r,e.extent[1][1]+i]]}}else if(l&&e.width&&e.height){const t=n.get(l),{x:r,y:i}=di(t,o).positionAbsolute;s=t&&_o(r)&&_o(i)&&_o(t.width)&&_o(t.height)?[[r+e.width*o[0],i+e.height*o[1]],[r+t.width-e.width+e.width*o[0],i+t.height-e.height+e.height*o[1]]]:s}else i?.("005",to()),s=a;let c={x:0,y:0};if(l){const e=n.get(l);c=di(e,o).positionAbsolute}const u=s&&"parent"!==s?bo(t,s):t;return{position:{x:u.x-c.x,y:u.y-c.y},positionAbsolute:u}}function ja({nodeId:e,dragItems:t,nodeInternals:n}){const r=t.map((e=>({...n.get(e.id),position:e.position,positionAbsolute:e.positionAbsolute})));return[e?r.find((t=>t.id===e)):r[0],r]}Ra.displayName="Pane";const La=(e,t,n,r)=>{const o=t.querySelectorAll(e);if(!o||!o.length)return null;const i=Array.from(o),a=t.getBoundingClientRect(),s=a.width*r[0],l=a.height*r[1];return i.map((e=>{const t=e.getBoundingClientRect();return{id:e.getAttribute("data-handleid"),position:e.getAttribute("data-handlepos"),x:(t.left-a.left-s)/n,y:(t.top-a.top-l)/n,...go(e)}}))};function Fa(e,t,n){return void 0===n?n:r=>{const o=t().nodeInternals.get(e);o&&n(r,{...o})}}function za({id:e,store:t,unselect:n=!1,nodeRef:r}){const{addSelectedNodes:o,unselectNodesAndEdges:i,multiSelectionActive:a,nodeInternals:s,onError:l}=t.getState(),c=s.get(e);c?(t.setState({nodesSelectionActive:!1}),c.selected?(n||c.selected&&a)&&(i({nodes:[c],edges:[]}),requestAnimationFrame((()=>r?.current?.blur()))):o([e])):l?.("012",so(e))}function Ba(e){return(t,n,r)=>e?.(t,r)}function Va({nodeRef:e,disabled:t=!1,noDragClassName:n,handleSelector:r,nodeId:o,isSelectable:i,selectNodesOnDrag:a}){const d=uo(),[f,p]=c(!1),h=u([]),m=u({x:null,y:null}),g=u(0),y=u(null),b=u({x:0,y:0}),v=u(null),w=u(!1),x=u(!1),C=u(!1),k=function(){const e=uo(),t=l((({sourceEvent:t})=>{const{transform:n,snapGrid:r,snapToGrid:o}=e.getState(),i=t.touches?t.touches[0].clientX:t.clientX,a=t.touches?t.touches[0].clientY:t.clientY,s={x:(i-n[0])/n[2],y:(a-n[1])/n[2]};return{xSnapped:o?r[0]*Math.round(s.x/r[0]):s.x,ySnapped:o?r[1]*Math.round(s.y/r[1]):s.y,...s}}),[]);return t}();return s((()=>{if(e?.current){const s=Ot(e.current),l=({x:e,y:t})=>{const{nodeInternals:n,onNodeDrag:r,onSelectionDrag:i,updateNodePositions:a,nodeExtent:s,snapGrid:l,snapToGrid:c,nodeOrigin:u,onError:f}=d.getState();m.current={x:e,y:t};let g=!1,y={x:0,y:0,x2:0,y2:0};if(h.current.length>1&&s){const e=fi(h.current,u);y=ko(e)}if(h.current=h.current.map((r=>{const o={x:e-r.distance.x,y:t-r.distance.y};c&&(o.x=l[0]*Math.round(o.x/l[0]),o.y=l[1]*Math.round(o.y/l[1]));const i=[[s[0][0],s[0][1]],[s[1][0],s[1][1]]];h.current.length>1&&s&&!r.extent&&(i[0][0]=r.positionAbsolute.x-y.x+s[0][0],i[1][0]=r.positionAbsolute.x+(r.width??0)-y.x2+s[1][0],i[0][1]=r.positionAbsolute.y-y.y+s[0][1],i[1][1]=r.positionAbsolute.y+(r.height??0)-y.y2+s[1][1]);const a=Da(r,o,n,i,u,f);return g=g||r.position.x!==a.position.x||r.position.y!==a.position.y,r.position=a.position,r.positionAbsolute=a.positionAbsolute,r})),!g)return;a(h.current,!0,!0),p(!0);const b=o?r:Ba(i);if(b&&v.current){const[e,t]=ja({nodeId:o,dragItems:h.current,nodeInternals:n});b(v.current,e,t)}},c=()=>{if(!y.current)return;const[e,t]=wo(b.current,y.current);if(0!==e||0!==t){const{transform:n,panBy:r}=d.getState();m.current.x=(m.current.x??0)-e/n[2],m.current.y=(m.current.y??0)-t/n[2],r({x:e,y:t})&&l(m.current)}g.current=requestAnimationFrame(c)},u=t=>{const{nodeInternals:n,multiSelectionActive:r,nodesDraggable:s,unselectNodesAndEdges:l,onNodeDragStart:c,onSelectionDragStart:u}=d.getState();x.current=!0;const f=o?c:Ba(u);a&&i||r||!o||n.get(o)?.selected||l(),o&&i&&a&&za({id:o,store:d,nodeRef:e});const p=k(t);if(m.current=p,h.current=Pa(n,s,p,o),f&&h.current){const[e,r]=ja({nodeId:o,dragItems:h.current,nodeInternals:n});f(t.sourceEvent,e,r)}};if(!t){const t=function(){var e,t,n,r,o=Bt,i=Vt,a=Gt,s=Wt,l={},c=he("start","drag","end"),u=0,d=0;function f(e){e.on("mousedown.drag",p).filter(s).on("touchstart.drag",g).on("touchmove.drag",y,Mt).on("touchend.drag touchcancel.drag",b).style("touch-action","none").style("-webkit-tap-highlight-color","rgba(0,0,0,0)")}function p(a,s){if(!r&&o.call(this,a,s)){var l=v(this,i.call(this,a,s),a,s,"mouse");l&&(Ot(a.view).on("mousemove.drag",h,Tt).on("mouseup.drag",m,Tt),jt(a.view),Pt(a),n=!1,e=a.clientX,t=a.clientY,l("start",a))}}function h(r){if(Dt(r),!n){var o=r.clientX-e,i=r.clientY-t;n=o*o+i*i>d}l.mouse("drag",r)}function m(e){Ot(e.view).on("mousemove.drag mouseup.drag",null),Lt(e.view,n),Dt(e),l.mouse("end",e)}function g(e,t){if(o.call(this,e,t)){var n,r,a=e.changedTouches,s=i.call(this,e,t),l=a.length;for(n=0;n<l;++n)(r=v(this,s,e,t,a[n].identifier,a[n]))&&(Pt(e),r("start",e,a[n]))}}function y(e){var t,n,r=e.changedTouches,o=r.length;for(t=0;t<o;++t)(n=l[r[t].identifier])&&(Dt(e),n("drag",e,r[t]))}function b(e){var t,n,o=e.changedTouches,i=o.length;for(r&&clearTimeout(r),r=setTimeout((function(){r=null}),500),t=0;t<i;++t)(n=l[o[t].identifier])&&(Pt(e),n("end",e,o[t]))}function v(e,t,n,r,o,i){var s,d,p,h=c.copy(),m=Rt(i||n,t);if(null!=(p=a.call(e,new zt("beforestart",{sourceEvent:n,target:f,identifier:o,active:u,x:m[0],y:m[1],dx:0,dy:0,dispatch:h}),r)))return s=p.x-m[0]||0,d=p.y-m[1]||0,function n(i,a,c){var g,y=m;switch(i){case"start":l[o]=n,g=u++;break;case"end":delete l[o],--u;case"drag":m=Rt(c||a,t),g=u}h.call(i,e,new zt(i,{sourceEvent:a,subject:p,target:f,identifier:o,active:g,x:m[0]+s,y:m[1]+d,dx:m[0]-y[0],dy:m[1]-y[1],dispatch:h}),r)}}return f.filter=function(e){return arguments.length?(o="function"==typeof e?e:Ft(!!e),f):o},f.container=function(e){return arguments.length?(i="function"==typeof e?e:Ft(e),f):i},f.subject=function(e){return arguments.length?(a="function"==typeof e?e:Ft(e),f):a},f.touchable=function(e){return arguments.length?(s="function"==typeof e?e:Ft(!!e),f):s},f.on=function(){var e=c.on.apply(c,arguments);return e===c?f:e},f.clickDistance=function(e){return arguments.length?(d=(e=+e)*e,f):Math.sqrt(d)},f}().on("start",(e=>{const{domNode:t,nodeDragThreshold:n}=d.getState();0===n&&u(e),C.current=!1;const r=k(e);m.current=r,y.current=t?.getBoundingClientRect()||null,b.current=To(e.sourceEvent,y.current)})).on("drag",(e=>{const t=k(e),{autoPanOnNodeDrag:n,nodeDragThreshold:r}=d.getState();if("touchmove"===e.sourceEvent.type&&e.sourceEvent.touches.length>1&&(C.current=!0),!C.current){if(!w.current&&x.current&&n&&(w.current=!0,c()),!x.current){const n=t.xSnapped-(m?.current?.x??0),o=t.ySnapped-(m?.current?.y??0);Math.sqrt(n*n+o*o)>r&&u(e)}(m.current.x!==t.xSnapped||m.current.y!==t.ySnapped)&&h.current&&x.current&&(v.current=e.sourceEvent,b.current=To(e.sourceEvent,y.current),l(t))}})).on("end",(e=>{if(x.current&&!C.current&&(p(!1),w.current=!1,x.current=!1,cancelAnimationFrame(g.current),h.current)){const{updateNodePositions:t,nodeInternals:n,onNodeDragStop:r,onSelectionDragStop:i}=d.getState(),a=o?r:Ba(i);if(t(h.current,!1,!1),a){const[t,r]=ja({nodeId:o,dragItems:h.current,nodeInternals:n});a(e.sourceEvent,t,r)}}})).filter((t=>{const o=t.target;return!t.button&&(!n||!Ta(o,`.${n}`,e))&&(!r||Ta(o,r,e))}));return s.call(t),()=>{s.on(".drag",null)}}s.on(".drag",null)}}),[e,t,n,r,i,d,o,a,k]),f}function Ga(){const e=uo(),t=l((t=>{const{nodeInternals:n,nodeExtent:r,updateNodePositions:o,getNodes:i,snapToGrid:a,snapGrid:s,onError:l,nodesDraggable:c}=e.getState(),u=i().filter((e=>e.selected&&(e.draggable||c&&void 0===e.draggable))),d=a?s[0]:5,f=a?s[1]:5,p=t.isShiftPressed?4:1,h=t.x*d*p,m=t.y*f*p,g=u.map((e=>{if(e.positionAbsolute){const t={x:e.positionAbsolute.x+h,y:e.positionAbsolute.y+m};a&&(t.x=s[0]*Math.round(t.x/s[0]),t.y=s[1]*Math.round(t.y/s[1]));const{positionAbsolute:o,position:i}=Da(e,t,n,r,void 0,l);e.position=i,e.positionAbsolute=o}return e}));o(g,!0,!1)}),[]);return t}const Wa={ArrowUp:{x:0,y:-1},ArrowDown:{x:0,y:1},ArrowLeft:{x:-1,y:0},ArrowRight:{x:1,y:0}};var Ha=e=>{const n=({id:n,type:r,data:o,xPos:i,yPos:a,xPosOrigin:l,yPosOrigin:c,selected:d,onClick:f,onMouseEnter:p,onMouseMove:h,onMouseLeave:m,onContextMenu:g,onDoubleClick:y,style:b,className:v,isDraggable:w,isSelectable:x,isConnectable:C,isFocusable:k,selectNodesOnDrag:E,sourcePosition:S,targetPosition:I,hidden:_,resizeObserver:A,dragHandle:N,zIndex:O,isParent:R,noDragClassName:M,noPanClassName:T,initialized:P,disableKeyboardA11y:D,ariaLabel:j,rfId:L,hasHandleBounds:F})=>{const z=uo(),B=u(null),V=u(null),G=u(S),W=u(I),H=u(r),X=x||w||f||p||h||m,$=Ga(),Z=Fa(n,z.getState,p),Y=Fa(n,z.getState,h),U=Fa(n,z.getState,m),J=Fa(n,z.getState,g),K=Fa(n,z.getState,y);s((()=>()=>{V.current&&(A?.unobserve(V.current),V.current=null)}),[]),s((()=>{if(B.current&&!_){const e=B.current;P&&F&&V.current===e||(V.current&&A?.unobserve(V.current),A?.observe(e),V.current=e)}}),[_,P,F]),s((()=>{const e=H.current!==r,t=G.current!==S,o=W.current!==I;B.current&&(e||t||o)&&(e&&(H.current=r),t&&(G.current=S),o&&(W.current=I),z.getState().updateNodeDimensions([{id:n,nodeElement:B.current,forceUpdate:!0}]))}),[n,r,S,I]);const q=Va({nodeRef:B,disabled:_||!w,noDragClassName:M,handleSelector:N,nodeId:n,isSelectable:x,selectNodesOnDrag:E});return _?null:t.createElement("div",{className:ae(["react-flow__node",`react-flow__node-${r}`,{[T]:w},v,{selected:d,selectable:x,parent:R,dragging:q}]),ref:B,style:{zIndex:O,transform:`translate(${l}px,${c}px)`,pointerEvents:X?"all":"none",visibility:P?"visible":"hidden",...b},"data-id":n,"data-testid":`rf__node-${n}`,onMouseEnter:Z,onMouseMove:Y,onMouseLeave:U,onContextMenu:J,onClick:e=>{const{nodeDragThreshold:t}=z.getState();if(x&&(!E||!w||t>0)&&za({id:n,store:z,nodeRef:B}),f){const t=z.getState().nodeInternals.get(n);t&&f(e,{...t})}},onDoubleClick:K,onKeyDown:k?e=>{if(!Ro(e)&&!D)if(No.includes(e.key)&&x){const t="Escape"===e.key;za({id:n,store:z,unselect:t,nodeRef:B})}else w&&d&&Object.prototype.hasOwnProperty.call(Wa,e.key)&&(z.setState({ariaLiveMessage:`Moved selected node ${e.key.replace("Arrow","").toLowerCase()}. New position, x: ${~~i}, y: ${~~a}`}),$({x:Wa[e.key].x,y:Wa[e.key].y,isShiftPressed:e.shiftKey}))}:void 0,tabIndex:k?0:void 0,role:k?"button":void 0,"aria-describedby":D?void 0:`${Yi}-${L}`,"aria-label":j},t.createElement(ai,{value:n},t.createElement(e,{id:n,data:o,type:r,xPos:i,yPos:a,selected:d,isConnectable:C,sourcePosition:S,targetPosition:I,dragging:q,dragHandle:N,zIndex:O})))};return n.displayName="NodeWrapper",r(n)};const Xa=e=>{const t=e.getNodes().filter((e=>e.selected));return{...fi(t,e.nodeOrigin),transformString:`translate(${e.transform[0]}px,${e.transform[1]}px) scale(${e.transform[2]})`,userSelectionActive:e.userSelectionActive}};var $a=r((function({onSelectionContextMenu:e,noPanClassName:n,disableKeyboardA11y:r}){const o=uo(),{width:i,height:a,x:l,y:c,transformString:d,userSelectionActive:f}=co(Xa,fe),p=Ga(),h=u(null);if(s((()=>{r||h.current?.focus({preventScroll:!0})}),[r]),Va({nodeRef:h}),f||!i||!a)return null;const m=e?t=>{const n=o.getState().getNodes().filter((e=>e.selected));e(t,n)}:void 0;return t.createElement("div",{className:ae(["react-flow__nodesselection","react-flow__container",n]),style:{transform:d}},t.createElement("div",{ref:h,className:"react-flow__nodesselection-rect",onContextMenu:m,tabIndex:r?void 0:-1,onKeyDown:r?void 0:e=>{Object.prototype.hasOwnProperty.call(Wa,e.key)&&p({x:Wa[e.key].x,y:Wa[e.key].y,isShiftPressed:e.shiftKey})},style:{width:i,height:a,top:c,left:l}}))}));const Za=e=>e.nodesSelectionActive,Ya=({children:e,onPaneClick:n,onPaneMouseEnter:r,onPaneMouseMove:o,onPaneMouseLeave:i,onPaneContextMenu:a,onPaneScroll:l,deleteKeyCode:c,onMove:u,onMoveStart:d,onMoveEnd:f,selectionKeyCode:p,selectionOnDrag:h,selectionMode:m,onSelectionStart:g,onSelectionEnd:y,multiSelectionKeyCode:b,panActivationKeyCode:v,zoomActivationKeyCode:w,elementsSelectable:x,zoomOnScroll:C,zoomOnPinch:k,panOnScroll:E,panOnScrollSpeed:S,panOnScrollMode:I,zoomOnDoubleClick:_,panOnDrag:A,defaultViewport:N,translateExtent:O,minZoom:R,maxZoom:M,preventScrolling:T,onSelectionContextMenu:P,noWheelClassName:D,noPanClassName:j,disableKeyboardA11y:L})=>{const F=co(Za),z=Qi(p),B=Qi(v),V=B||A,G=B||E,W=z||h&&!0!==V;return(({deleteKeyCode:e,multiSelectionKeyCode:t})=>{const n=uo(),{deleteElements:r}=fa(),o=Qi(e,pa),i=Qi(t);s((()=>{if(o){const{edges:e,getNodes:t}=n.getState(),o=t().filter((e=>e.selected)),i=e.filter((e=>e.selected));r({nodes:o,edges:i}),n.setState({nodesSelectionActive:!1})}}),[o]),s((()=>{n.setState({multiSelectionActive:i})}),[i])})({deleteKeyCode:c,multiSelectionKeyCode:b}),t.createElement(wa,{onMove:u,onMoveStart:d,onMoveEnd:f,onPaneContextMenu:a,elementsSelectable:x,zoomOnScroll:C,zoomOnPinch:k,panOnScroll:G,panOnScrollSpeed:S,panOnScrollMode:I,zoomOnDoubleClick:_,panOnDrag:!z&&V,defaultViewport:N,translateExtent:O,minZoom:R,maxZoom:M,zoomActivationKeyCode:w,preventScrolling:T,noWheelClassName:D,noPanClassName:j},t.createElement(Ra,{onSelectionStart:g,onSelectionEnd:y,onPaneClick:n,onPaneMouseEnter:r,onPaneMouseMove:o,onPaneMouseLeave:i,onPaneContextMenu:a,onPaneScroll:l,panOnDrag:V,isSelecting:!!W,selectionMode:m},e,F&&t.createElement($a,{onSelectionContextMenu:P,noPanClassName:j,disableKeyboardA11y:L})))};Ya.displayName="FlowRenderer";var Ua=r(Ya);function Ja(e){return{...{input:Ha(e.input||Mi),default:Ha(e.default||Oi),output:Ha(e.output||Pi),group:Ha(e.group||Di)},...Object.keys(e).filter((e=>!["input","default","output","group"].includes(e))).reduce(((t,n)=>(t[n]=Ha(e[n]||Oi),t)),{})}}const Ka=e=>({nodesDraggable:e.nodesDraggable,nodesConnectable:e.nodesConnectable,nodesFocusable:e.nodesFocusable,elementsSelectable:e.elementsSelectable,updateNodeDimensions:e.updateNodeDimensions,onError:e.onError}),qa=e=>{const{nodesDraggable:n,nodesConnectable:r,nodesFocusable:o,elementsSelectable:i,updateNodeDimensions:c,onError:d}=co(Ka,fe),f=function(e){const t=co(l((t=>e?pi(t.nodeInternals,{x:0,y:0,width:t.width,height:t.height},t.transform,!0):t.getNodes()),[e]));return t}(e.onlyRenderVisibleElements),p=u(),h=a((()=>{if("undefined"==typeof ResizeObserver)return null;const e=new ResizeObserver((e=>{const t=e.map((e=>({id:e.target.getAttribute("data-id"),nodeElement:e.target,forceUpdate:!0})));c(t)}));return p.current=e,e}),[]);return s((()=>()=>{p?.current?.disconnect()}),[]),t.createElement("div",{className:"react-flow__nodes",style:ha},f.map((a=>{let s=a.type||"default";e.nodeTypes[s]||(d?.("003",Qr(s)),s="default");const l=e.nodeTypes[s]||e.nodeTypes.default,c=!!(a.draggable||n&&void 0===a.draggable),u=!!(a.selectable||i&&void 0===a.selectable),f=!!(a.connectable||r&&void 0===a.connectable),p=!!(a.focusable||o&&void 0===a.focusable),m=e.nodeExtent?bo(a.positionAbsolute,e.nodeExtent):a.positionAbsolute,g=m?.x??0,y=m?.y??0,b=(({x:e,y:t,width:n,height:r,origin:o})=>n&&r?o[0]<0||o[1]<0||o[0]>1||o[1]>1?{x:e,y:t}:{x:e-n*o[0],y:t-r*o[1]}:{x:e,y:t})({x:g,y:y,width:a.width??0,height:a.height??0,origin:e.nodeOrigin});return t.createElement(l,{key:a.id,id:a.id,className:a.className,style:a.style,type:s,data:a.data,sourcePosition:a.sourcePosition||Ho.Bottom,targetPosition:a.targetPosition||Ho.Top,hidden:a.hidden,xPos:g,yPos:y,xPosOrigin:b.x,yPosOrigin:b.y,selectNodesOnDrag:e.selectNodesOnDrag,onClick:e.onNodeClick,onMouseEnter:e.onNodeMouseEnter,onMouseMove:e.onNodeMouseMove,onMouseLeave:e.onNodeMouseLeave,onContextMenu:e.onNodeContextMenu,onDoubleClick:e.onNodeDoubleClick,selected:!!a.selected,isDraggable:c,isSelectable:u,isConnectable:f,isFocusable:p,resizeObserver:h,dragHandle:a.dragHandle,zIndex:a[Ao]?.z??0,isParent:!!a[Ao]?.isParent,noDragClassName:e.noDragClassName,noPanClassName:e.noPanClassName,initialized:!!a.width&&!!a.height,rfId:e.rfId,disableKeyboardA11y:e.disableKeyboardA11y,ariaLabel:a.ariaLabel,hasHandleBounds:!!a[Ao]?.handleBounds})})))};qa.displayName="NodeRenderer";var Qa=r(qa);const es=(e,t,n)=>n===Ho.Left?e-t:n===Ho.Right?e+t:e,ts=(e,t,n)=>n===Ho.Top?e-t:n===Ho.Bottom?e+t:e,ns="react-flow__edgeupdater",rs=({position:e,centerX:n,centerY:r,radius:o=10,onMouseDown:i,onMouseEnter:a,onMouseOut:s,type:l})=>t.createElement("circle",{onMouseDown:i,onMouseEnter:a,onMouseOut:s,className:ae([ns,`${ns}-${l}`]),cx:es(n,o,e),cy:ts(r,o,e),r:o,stroke:"transparent",fill:"transparent"}),os=()=>!0;var is=e=>{const n=({id:n,className:r,type:o,data:i,onClick:s,onEdgeDoubleClick:l,selected:d,animated:f,label:p,labelStyle:h,labelShowBg:m,labelBgStyle:g,labelBgPadding:y,labelBgBorderRadius:b,style:v,source:w,target:x,sourceX:C,sourceY:k,targetX:E,targetY:S,sourcePosition:I,targetPosition:_,elementsSelectable:A,hidden:N,sourceHandleId:O,targetHandleId:R,onContextMenu:M,onMouseEnter:T,onMouseMove:P,onMouseLeave:D,reconnectRadius:j,onReconnect:L,onReconnectStart:F,onReconnectEnd:z,markerEnd:B,markerStart:V,rfId:G,ariaLabel:W,isFocusable:H,isReconnectable:X,pathOptions:$,interactionWidth:Z,disableKeyboardA11y:Y})=>{const U=u(null),[J,K]=c(!1),[q,Q]=c(!1),ee=uo(),te=a((()=>`url('#${li(V,G)}')`),[V,G]),ne=a((()=>`url('#${li(B,G)}')`),[B,G]);if(N)return null;const re=jo(n,ee.getState,l),oe=jo(n,ee.getState,M),ie=jo(n,ee.getState,T),se=jo(n,ee.getState,P),le=jo(n,ee.getState,D),ce=(e,t)=>{if(0!==e.button)return;const{edges:r,isValidConnection:o}=ee.getState(),i=t?x:w,a=(t?R:O)||null,s=t?"target":"source",l=o||os,c=t,u=r.find((e=>e.id===n));Q(!0),F?.(e,u,s);Ei({event:e,handleId:a,nodeId:i,onConnect:e=>L?.(u,e),isTarget:c,getState:ee.getState,setState:ee.setState,isValidConnection:l,edgeUpdaterType:s,onReconnectEnd:e=>{Q(!1),z?.(e,u,s)}})},ue=()=>K(!0),de=()=>K(!1),fe=!A&&!s;return t.createElement("g",{className:ae(["react-flow__edge",`react-flow__edge-${o}`,r,{selected:d,animated:f,inactive:fe,updating:J}]),onClick:e=>{const{edges:t,addSelectedEdges:r,unselectNodesAndEdges:o,multiSelectionActive:i}=ee.getState(),a=t.find((e=>e.id===n));a&&(A&&(ee.setState({nodesSelectionActive:!1}),a.selected&&i?(o({nodes:[],edges:[a]}),U.current?.blur()):r([n])),s&&s(e,a))},onDoubleClick:re,onContextMenu:oe,onMouseEnter:ie,onMouseMove:se,onMouseLeave:le,onKeyDown:H?e=>{if(!Y&&No.includes(e.key)&&A){const{unselectNodesAndEdges:t,addSelectedEdges:r,edges:o}=ee.getState();"Escape"===e.key?(U.current?.blur(),t({edges:[o.find((e=>e.id===n))]})):r([n])}}:void 0,tabIndex:H?0:void 0,role:H?"button":"img","data-testid":`rf__edge-${n}`,"aria-label":null===W?void 0:W||`Edge from ${w} to ${x}`,"aria-describedby":H?`${Ui}-${G}`:void 0,ref:U},!q&&t.createElement(e,{id:n,source:w,target:x,selected:d,animated:f,label:p,labelStyle:h,labelShowBg:m,labelBgStyle:g,labelBgPadding:y,labelBgBorderRadius:b,data:i,style:v,sourceX:C,sourceY:k,targetX:E,targetY:S,sourcePosition:I,targetPosition:_,sourceHandleId:O,targetHandleId:R,markerStart:te,markerEnd:ne,pathOptions:$,interactionWidth:Z}),X&&t.createElement(t.Fragment,null,("source"===X||!0===X)&&t.createElement(rs,{position:I,centerX:C,centerY:k,radius:j,onMouseDown:e=>ce(e,!0),onMouseEnter:ue,onMouseOut:de,type:"source"}),("target"===X||!0===X)&&t.createElement(rs,{position:_,centerX:E,centerY:S,radius:j,onMouseDown:e=>ce(e,!1),onMouseEnter:ue,onMouseOut:de,type:"target"})))};return n.displayName="EdgeWrapper",r(n)};function as(e){return{...{default:is(e.default||oi),straight:is(e.bezier||ei),step:is(e.step||Qo),smoothstep:is(e.step||qo),simplebezier:is(e.simplebezier||Zo)},...Object.keys(e).filter((e=>!["default","bezier"].includes(e))).reduce(((t,n)=>(t[n]=is(e[n]||oi),t)),{})}}function ss(e,t,n=null){const r=(n?.x||0)+t.x,o=(n?.y||0)+t.y,i=n?.width||t.width,a=n?.height||t.height;switch(e){case Ho.Top:return{x:r+i/2,y:o};case Ho.Right:return{x:r+i,y:o+a/2};case Ho.Bottom:return{x:r+i/2,y:o+a};case Ho.Left:return{x:r,y:o+a/2}}}function ls(e,t){return e?1!==e.length&&t?t&&e.find((e=>e.id===t))||null:e[0]:null}function cs(e){const t=e?.[Ao]?.handleBounds||null,n=t&&e?.width&&e?.height&&void 0!==e?.positionAbsolute?.x&&void 0!==e?.positionAbsolute?.y;return[{x:e?.positionAbsolute?.x||0,y:e?.positionAbsolute?.y||0,width:e?.width||0,height:e?.height||0},t,!!n]}const us=[{level:0,isMaxLevel:!0,edges:[]}];function ds(e,t,n){const r=co(l((n=>e?n.edges.filter((e=>{const r=t.get(e.source),o=t.get(e.target);return r?.width&&r?.height&&o?.width&&o?.height&&function({sourcePos:e,targetPos:t,sourceWidth:n,sourceHeight:r,targetWidth:o,targetHeight:i,width:a,height:s,transform:l}){const c={x:Math.min(e.x,t.x),y:Math.min(e.y,t.y),x2:Math.max(e.x+n,t.x+o),y2:Math.max(e.y+r,t.y+i)};c.x===c.x2&&(c.x2+=1),c.y===c.y2&&(c.y2+=1);const u=ko({x:(0-l[0])/l[2],y:(0-l[1])/l[2],width:a/l[2],height:s/l[2]}),d=Math.max(0,Math.min(u.x2,c.x2)-Math.max(u.x,c.x)),f=Math.max(0,Math.min(u.y2,c.y2)-Math.max(u.y,c.y));return Math.ceil(d*f)>0}({sourcePos:r.positionAbsolute||{x:0,y:0},targetPos:o.positionAbsolute||{x:0,y:0},sourceWidth:r.width,sourceHeight:r.height,targetWidth:o.width,targetHeight:o.height,width:n.width,height:n.height,transform:n.transform})})):n.edges),[e,t]));return function(e,t,n=!1){let r=-1;const o=e.reduce(((e,o)=>{const i=_o(o.zIndex);let a=i?o.zIndex:0;if(n){const e=t.get(o.target),n=t.get(o.source),r=o.selected||e?.selected||n?.selected,s=Math.max(n?.[Ao]?.z||0,e?.[Ao]?.z||0,1e3);a=(i?o.zIndex:0)+(r?s:0)}return e[a]?e[a].push(o):e[a]=[o],r=a>r?a:r,e}),{}),i=Object.entries(o).map((([e,t])=>{const n=+e;return{edges:t,level:n,isMaxLevel:n===r}}));return 0===i.length?us:i}(r,t,n)}const fs={[Wo.Arrow]:({color:e="none",strokeWidth:n=1})=>t.createElement("polyline",{style:{stroke:e,strokeWidth:n},strokeLinecap:"round",strokeLinejoin:"round",fill:"none",points:"-5,-4 0,0 -5,4"}),[Wo.ArrowClosed]:({color:e="none",strokeWidth:n=1})=>t.createElement("polyline",{style:{stroke:e,fill:e,strokeWidth:n},strokeLinecap:"round",strokeLinejoin:"round",points:"-5,-4 0,0 -5,4 -5,-4"})};const ps=({id:e,type:n,color:r,width:o=12.5,height:i=12.5,markerUnits:s="strokeWidth",strokeWidth:l,orient:c="auto-start-reverse"})=>{const u=function(e){const t=uo();return a((()=>Object.prototype.hasOwnProperty.call(fs,e)?fs[e]:(t.getState().onError?.("009",ro(e)),null)),[e])}(n);return u?t.createElement("marker",{className:"react-flow__arrowhead",id:e,markerWidth:`${o}`,markerHeight:`${i}`,viewBox:"-10 -10 20 20",markerUnits:s,orient:c,refX:"0",refY:"0"},t.createElement(u,{color:r,strokeWidth:l})):null},hs=({defaultColor:e,rfId:n})=>{const r=co(l((({defaultColor:e,rfId:t})=>n=>{const r=[];return n.edges.reduce(((n,o)=>([o.markerStart,o.markerEnd].forEach((o=>{if(o&&"object"==typeof o){const i=li(o,t);r.includes(i)||(n.push({id:i,color:o.color||e,...o}),r.push(i))}})),n)),[]).sort(((e,t)=>e.id.localeCompare(t.id)))})({defaultColor:e,rfId:n}),[e,n]),((e,t)=>!(e.length!==t.length||e.some(((e,n)=>e.id!==t[n].id)))));return t.createElement("defs",null,r.map((e=>t.createElement(ps,{id:e.id,key:e.id,type:e.type,color:e.color,width:e.width,height:e.height,markerUnits:e.markerUnits,strokeWidth:e.strokeWidth,orient:e.orient}))))};hs.displayName="MarkerDefinitions";var ms=r(hs);const gs=e=>({nodesConnectable:e.nodesConnectable,edgesFocusable:e.edgesFocusable,edgesUpdatable:e.edgesUpdatable,elementsSelectable:e.elementsSelectable,width:e.width,height:e.height,connectionMode:e.connectionMode,nodeInternals:e.nodeInternals,onError:e.onError}),ys=({defaultMarkerColor:e,onlyRenderVisibleElements:n,elevateEdgesOnSelect:r,rfId:o,edgeTypes:i,noPanClassName:a,onEdgeContextMenu:s,onEdgeMouseEnter:l,onEdgeMouseMove:c,onEdgeMouseLeave:u,onEdgeClick:d,onEdgeDoubleClick:f,onReconnect:p,onReconnectStart:h,onReconnectEnd:m,reconnectRadius:g,children:y,disableKeyboardA11y:b})=>{const{edgesFocusable:v,edgesUpdatable:w,elementsSelectable:x,width:C,height:k,connectionMode:E,nodeInternals:S,onError:I}=co(gs,fe),_=ds(n,S,r);return C?t.createElement(t.Fragment,null,_.map((({level:n,edges:r,isMaxLevel:y})=>t.createElement("svg",{key:n,style:{zIndex:n},width:C,height:k,className:"react-flow__edges react-flow__container"},y&&t.createElement(ms,{defaultColor:e,rfId:o}),t.createElement("g",null,r.map((e=>{const[n,r,y]=cs(S.get(e.source)),[C,k,_]=cs(S.get(e.target));if(!y||!_)return null;let A=e.type||"default";i[A]||(I?.("011",ao(A)),A="default");const N=i[A]||i.default,O=E===zo.Strict?k.target:(k.target??[]).concat(k.source??[]),R=ls(r.source,e.sourceHandle),M=ls(O,e.targetHandle),T=R?.position||Ho.Bottom,P=M?.position||Ho.Top,D=!!(e.focusable||v&&void 0===e.focusable),j=e.reconnectable||e.updatable,L=void 0!==p&&(j||w&&void 0===j);if(!R||!M)return I?.("008",oo(R,e)),null;const{sourceX:F,sourceY:z,targetX:B,targetY:V}=((e,t,n,r,o,i)=>{const a=ss(n,e,t),s=ss(i,r,o);return{sourceX:a.x,sourceY:a.y,targetX:s.x,targetY:s.y}})(n,R,T,C,M,P);return t.createElement(N,{key:e.id,id:e.id,className:ae([e.className,a]),type:A,data:e.data,selected:!!e.selected,animated:!!e.animated,hidden:!!e.hidden,label:e.label,labelStyle:e.labelStyle,labelShowBg:e.labelShowBg,labelBgStyle:e.labelBgStyle,labelBgPadding:e.labelBgPadding,labelBgBorderRadius:e.labelBgBorderRadius,style:e.style,source:e.source,target:e.target,sourceHandleId:e.sourceHandle,targetHandleId:e.targetHandle,markerEnd:e.markerEnd,markerStart:e.markerStart,sourceX:F,sourceY:z,targetX:B,targetY:V,sourcePosition:T,targetPosition:P,elementsSelectable:x,onContextMenu:s,onMouseEnter:l,onMouseMove:c,onMouseLeave:u,onClick:d,onEdgeDoubleClick:f,onReconnect:p,onReconnectStart:h,onReconnectEnd:m,reconnectRadius:g,rfId:o,ariaLabel:e.ariaLabel,isFocusable:D,isReconnectable:L,pathOptions:"pathOptions"in e?e.pathOptions:void 0,interactionWidth:e.interactionWidth,disableKeyboardA11y:b})})))))),y):null};ys.displayName="EdgeRenderer";var bs=r(ys);const vs=e=>`translate(${e.transform[0]}px,${e.transform[1]}px) scale(${e.transform[2]})`;function ws({children:e}){const n=co(vs);return t.createElement("div",{className:"react-flow__viewport react-flow__container",style:{transform:n}},e)}const xs={[Ho.Left]:Ho.Right,[Ho.Right]:Ho.Left,[Ho.Top]:Ho.Bottom,[Ho.Bottom]:Ho.Top},Cs=({nodeId:e,handleType:n,style:r,type:o=Go.Bezier,CustomComponent:i,connectionStatus:a})=>{const{fromNode:s,handleId:c,toX:u,toY:d,connectionMode:f}=co(l((t=>({fromNode:t.nodeInternals.get(e),handleId:t.connectionHandleId,toX:(t.connectionPosition.x-t.transform[0])/t.transform[2],toY:(t.connectionPosition.y-t.transform[1])/t.transform[2],connectionMode:t.connectionMode})),[e]),fe),p=s?.[Ao]?.handleBounds;let h=p?.[n];if(f===zo.Loose&&(h=h||p?.["source"===n?"target":"source"]),!s||!h)return null;const m=c?h.find((e=>e.id===c)):h[0],g=m?m.x+m.width/2:(s.width??0)/2,y=m?m.y+m.height/2:s.height??0,b=(s.positionAbsolute?.x??0)+g,v=(s.positionAbsolute?.y??0)+y,w=m?.position,x=w?xs[w]:null;if(!w||!x)return null;if(i)return t.createElement(i,{connectionLineType:o,connectionLineStyle:r,fromNode:s,fromHandle:m,fromX:b,fromY:v,toX:u,toY:d,fromPosition:w,toPosition:x,connectionStatus:a});let C="";const k={sourceX:b,sourceY:v,sourcePosition:w,targetX:u,targetY:d,targetPosition:x};return o===Go.Bezier?[C]=ri(k):o===Go.Step?[C]=Ko({...k,borderRadius:0}):o===Go.SmoothStep?[C]=Ko(k):o===Go.SimpleBezier?[C]=$o(k):C=`M${b},${v} ${u},${d}`,t.createElement("path",{d:C,fill:"none",className:"react-flow__connection-path",style:r})};Cs.displayName="ConnectionLine";const ks=e=>({nodeId:e.connectionNodeId,handleType:e.connectionHandleType,nodesConnectable:e.nodesConnectable,connectionStatus:e.connectionStatus,width:e.width,height:e.height});function Es({containerStyle:e,style:n,type:r,component:o}){const{nodeId:i,handleType:a,nodesConnectable:s,width:l,height:c,connectionStatus:u}=co(ks,fe);return!!(i&&a&&l&&s)?t.createElement("svg",{style:e,width:l,height:c,className:"react-flow__edges react-flow__connectionline react-flow__container"},t.createElement("g",{className:ae(["react-flow__connection",u])},t.createElement(Cs,{nodeId:i,handleType:a,style:n,type:r,CustomComponent:o,connectionStatus:u}))):null}function Ss(e,t){const n=u(null),r=uo();return a((()=>{if("development"===process.env.NODE_ENV){const t=Object.keys(e);fe(n.current,t)&&r.getState().onError?.("002",qr()),n.current=t}return t(e)}),[e])}const Is=({nodeTypes:e,edgeTypes:n,onMove:r,onMoveStart:o,onMoveEnd:i,onInit:a,onNodeClick:l,onEdgeClick:c,onNodeDoubleClick:d,onEdgeDoubleClick:f,onNodeMouseEnter:p,onNodeMouseMove:h,onNodeMouseLeave:m,onNodeContextMenu:g,onSelectionContextMenu:y,onSelectionStart:b,onSelectionEnd:v,connectionLineType:w,connectionLineStyle:x,connectionLineComponent:C,connectionLineContainerStyle:k,selectionKeyCode:E,selectionOnDrag:S,selectionMode:I,multiSelectionKeyCode:_,panActivationKeyCode:A,zoomActivationKeyCode:N,deleteKeyCode:O,onlyRenderVisibleElements:R,elementsSelectable:M,selectNodesOnDrag:T,defaultViewport:P,translateExtent:D,minZoom:j,maxZoom:L,preventScrolling:F,defaultMarkerColor:z,zoomOnScroll:B,zoomOnPinch:V,panOnScroll:G,panOnScrollSpeed:W,panOnScrollMode:H,zoomOnDoubleClick:X,panOnDrag:$,onPaneClick:Z,onPaneMouseEnter:Y,onPaneMouseMove:U,onPaneMouseLeave:J,onPaneScroll:K,onPaneContextMenu:q,onEdgeContextMenu:Q,onEdgeMouseEnter:ee,onEdgeMouseMove:te,onEdgeMouseLeave:ne,onReconnect:re,onReconnectStart:oe,onReconnectEnd:ie,reconnectRadius:ae,noDragClassName:se,noWheelClassName:le,noPanClassName:ce,elevateEdgesOnSelect:ue,disableKeyboardA11y:de,nodeOrigin:fe,nodeExtent:pe,rfId:he})=>{const me=Ss(e,Ja),ge=Ss(n,as);return function(e){const t=fa(),n=u(!1);s((()=>{!n.current&&t.viewportInitialized&&e&&(setTimeout((()=>e(t)),1),n.current=!0)}),[e,t.viewportInitialized])}(a),t.createElement(Ua,{onPaneClick:Z,onPaneMouseEnter:Y,onPaneMouseMove:U,onPaneMouseLeave:J,onPaneContextMenu:q,onPaneScroll:K,deleteKeyCode:O,selectionKeyCode:E,selectionOnDrag:S,selectionMode:I,onSelectionStart:b,onSelectionEnd:v,multiSelectionKeyCode:_,panActivationKeyCode:A,zoomActivationKeyCode:N,elementsSelectable:M,onMove:r,onMoveStart:o,onMoveEnd:i,zoomOnScroll:B,zoomOnPinch:V,zoomOnDoubleClick:X,panOnScroll:G,panOnScrollSpeed:W,panOnScrollMode:H,panOnDrag:$,defaultViewport:P,translateExtent:D,minZoom:j,maxZoom:L,onSelectionContextMenu:y,preventScrolling:F,noDragClassName:se,noWheelClassName:le,noPanClassName:ce,disableKeyboardA11y:de},t.createElement(ws,null,t.createElement(bs,{edgeTypes:ge,onEdgeClick:c,onEdgeDoubleClick:f,onlyRenderVisibleElements:R,onEdgeContextMenu:Q,onEdgeMouseEnter:ee,onEdgeMouseMove:te,onEdgeMouseLeave:ne,onReconnect:re,onReconnectStart:oe,onReconnectEnd:ie,reconnectRadius:ae,defaultMarkerColor:z,noPanClassName:ce,elevateEdgesOnSelect:!!ue,disableKeyboardA11y:de,rfId:he},t.createElement(Es,{style:x,type:w,component:C,containerStyle:k})),t.createElement("div",{className:"react-flow__edgelabel-renderer"}),t.createElement(Qa,{nodeTypes:me,onNodeClick:l,onNodeDoubleClick:d,onNodeMouseEnter:p,onNodeMouseMove:h,onNodeMouseLeave:m,onNodeContextMenu:g,selectNodesOnDrag:T,onlyRenderVisibleElements:R,noPanClassName:ce,noDragClassName:se,disableKeyboardA11y:de,nodeOrigin:fe,nodeExtent:pe,rfId:he})))};Is.displayName="GraphView";var _s=r(Is);const As=[[Number.NEGATIVE_INFINITY,Number.NEGATIVE_INFINITY],[Number.POSITIVE_INFINITY,Number.POSITIVE_INFINITY]],Ns={rfId:"1",width:0,height:0,transform:[0,0,1],nodeInternals:new Map,edges:[],onNodesChange:null,onEdgesChange:null,hasDefaultNodes:!1,hasDefaultEdges:!1,d3Zoom:null,d3Selection:null,d3ZoomHandler:void 0,minZoom:.5,maxZoom:2,translateExtent:As,nodeExtent:As,nodesSelectionActive:!1,userSelectionActive:!1,userSelectionRect:null,connectionNodeId:null,connectionHandleId:null,connectionHandleType:"source",connectionPosition:{x:0,y:0},connectionStatus:null,connectionMode:zo.Strict,domNode:null,paneDragging:!1,noPanClassName:"nopan",nodeOrigin:[0,0],nodeDragThreshold:0,snapGrid:[15,15],snapToGrid:!1,nodesDraggable:!0,nodesConnectable:!0,nodesFocusable:!0,edgesFocusable:!0,edgesUpdatable:!0,elementsSelectable:!0,elevateNodesOnSelect:!0,fitViewOnInit:!1,fitViewOnInitDone:!1,fitViewOnInitOptions:void 0,onSelectionChange:[],multiSelectionActive:!1,connectionStartHandle:null,connectionEndHandle:null,connectionClickStartHandle:null,connectOnClick:!0,ariaLiveMessage:"",autoPanOnConnect:!0,autoPanOnNodeDrag:!0,connectionRadius:20,onError:Oo,isValidConnection:void 0},Os=()=>((e,t)=>e?de(e,t):de)(((e,t)=>({...Ns,setNodes:n=>{const{nodeInternals:r,nodeOrigin:o,elevateNodesOnSelect:i}=t();e({nodeInternals:oa(n,r,o,i)})},getNodes:()=>Array.from(t().nodeInternals.values()),setEdges:n=>{const{defaultEdgeOptions:r={}}=t();e({edges:n.map((e=>({...r,...e})))})},setDefaultNodesAndEdges:(n,r)=>{const o=void 0!==n,i=void 0!==r,a=o?oa(n,new Map,t().nodeOrigin,t().elevateNodesOnSelect):new Map;e({nodeInternals:a,edges:i?r:[],hasDefaultNodes:o,hasDefaultEdges:i})},updateNodeDimensions:n=>{const{onNodesChange:r,nodeInternals:o,fitViewOnInit:i,fitViewOnInitDone:a,fitViewOnInitOptions:s,domNode:l,nodeOrigin:c}=t(),u=l?.querySelector(".react-flow__viewport");if(!u)return;const d=window.getComputedStyle(u),{m22:f}=new window.DOMMatrixReadOnly(d.transform),p=n.reduce(((e,t)=>{const n=o.get(t.id);if(n?.hidden)o.set(n.id,{...n,[Ao]:{...n[Ao],handleBounds:void 0}});else if(n){const r=go(t.nodeElement);!(!r.width||!r.height||n.width===r.width&&n.height===r.height&&!t.forceUpdate)&&(o.set(n.id,{...n,[Ao]:{...n[Ao],handleBounds:{source:La(".source",t.nodeElement,f,c),target:La(".target",t.nodeElement,f,c)}},...r}),e.push({id:n.id,type:"dimensions",dimensions:r}))}return e}),[]);ra(o,c);const h=a||i&&!a&&ia(t,{initial:!0,...s});e({nodeInternals:new Map(o),fitViewOnInitDone:h}),p?.length>0&&r?.(p)},updateNodePositions:(e,n=!0,r=!1)=>{const{triggerNodeChanges:o}=t(),i=e.map((e=>{const t={id:e.id,type:"position",dragging:r};return n&&(t.positionAbsolute=e.positionAbsolute,t.position=e.position),t}));o(i)},triggerNodeChanges:n=>{const{onNodesChange:r,nodeInternals:o,hasDefaultNodes:i,nodeOrigin:a,getNodes:s,elevateNodesOnSelect:l}=t();if(n?.length){if(i){const t=oa(Sa(n,s()),o,a,l);e({nodeInternals:t})}r?.(n)}},addSelectedNodes:n=>{const{multiSelectionActive:r,edges:o,getNodes:i}=t();let a,s=null;r?a=n.map((e=>_a(e,!0))):(a=Aa(i(),n),s=Aa(o,[])),la({changedNodes:a,changedEdges:s,get:t,set:e})},addSelectedEdges:n=>{const{multiSelectionActive:r,edges:o,getNodes:i}=t();let a,s=null;r?a=n.map((e=>_a(e,!0))):(a=Aa(o,n),s=Aa(i(),[])),la({changedNodes:s,changedEdges:a,get:t,set:e})},unselectNodesAndEdges:({nodes:n,edges:r}={})=>{const{edges:o,getNodes:i}=t(),a=r||o;la({changedNodes:(n||i()).map((e=>(e.selected=!1,_a(e.id,!1)))),changedEdges:a.map((e=>_a(e.id,!1))),get:t,set:e})},setMinZoom:n=>{const{d3Zoom:r,maxZoom:o}=t();r?.scaleExtent([n,o]),e({minZoom:n})},setMaxZoom:n=>{const{d3Zoom:r,minZoom:o}=t();r?.scaleExtent([o,n]),e({maxZoom:n})},setTranslateExtent:n=>{t().d3Zoom?.translateExtent(n),e({translateExtent:n})},resetSelectedElements:()=>{const{edges:n,getNodes:r}=t();la({changedNodes:r().filter((e=>e.selected)).map((e=>_a(e.id,!1))),changedEdges:n.filter((e=>e.selected)).map((e=>_a(e.id,!1))),get:t,set:e})},setNodeExtent:n=>{const{nodeInternals:r}=t();r.forEach((e=>{e.positionAbsolute=bo(e.position,n)})),e({nodeExtent:n,nodeInternals:new Map(r)})},panBy:e=>{const{transform:n,width:r,height:o,d3Zoom:i,d3Selection:a,translateExtent:s}=t();if(!i||!a||!e.x&&!e.y)return!1;const l=Br.translate(n[0]+e.x,n[1]+e.y).scale(n[2]),c=[[0,0],[r,o]],u=i?.constrain()(l,c,s);i.transform(a,u);return n[0]!==u.x||n[1]!==u.y||n[2]!==u.k},cancelConnection:()=>e({connectionNodeId:Ns.connectionNodeId,connectionHandleId:Ns.connectionHandleId,connectionHandleType:Ns.connectionHandleType,connectionStatus:Ns.connectionStatus,connectionStartHandle:Ns.connectionStartHandle,connectionEndHandle:Ns.connectionEndHandle}),reset:()=>e({...Ns})})),Object.is),Rs=({children:e})=>{const n=u(null);return n.current||(n.current=Os()),t.createElement(Kr,{value:n.current},e)};Rs.displayName="ReactFlowProvider";const Ms=({children:e})=>o(Jr)?t.createElement(t.Fragment,null,e):t.createElement(Rs,null,e);Ms.displayName="ReactFlowWrapper";const Ts={input:Mi,default:Oi,output:Pi,group:Di},Ps={default:oi,straight:ei,step:Qo,smoothstep:qo,simplebezier:Zo},Ds=[0,0],js=[15,15],Ls={x:0,y:0,zoom:1},Fs={width:"100%",height:"100%",overflow:"hidden",position:"relative",zIndex:0},zs=n((({nodes:e,edges:n,defaultNodes:r,defaultEdges:o,className:i,nodeTypes:a=Ts,edgeTypes:s=Ps,onNodeClick:l,onEdgeClick:c,onInit:u,onMove:d,onMoveStart:f,onMoveEnd:p,onConnect:h,onConnectStart:m,onConnectEnd:g,onClickConnectStart:y,onClickConnectEnd:b,onNodeMouseEnter:v,onNodeMouseMove:w,onNodeMouseLeave:x,onNodeContextMenu:C,onNodeDoubleClick:k,onNodeDragStart:E,onNodeDrag:S,onNodeDragStop:I,onNodesDelete:_,onEdgesDelete:A,onSelectionChange:N,onSelectionDragStart:O,onSelectionDrag:R,onSelectionDragStop:M,onSelectionContextMenu:T,onSelectionStart:P,onSelectionEnd:D,connectionMode:j=zo.Strict,connectionLineType:L=Go.Bezier,connectionLineStyle:F,connectionLineComponent:z,connectionLineContainerStyle:B,deleteKeyCode:V="Backspace",selectionKeyCode:G="Shift",selectionOnDrag:W=!1,selectionMode:H=Vo.Full,panActivationKeyCode:X="Space",multiSelectionKeyCode:$=(Po()?"Meta":"Control"),zoomActivationKeyCode:Z=(Po()?"Meta":"Control"),snapToGrid:Y=!1,snapGrid:U=js,onlyRenderVisibleElements:J=!1,selectNodesOnDrag:K=!0,nodesDraggable:q,nodesConnectable:Q,nodesFocusable:ee,nodeOrigin:te=Ds,edgesFocusable:ne,edgesUpdatable:re,elementsSelectable:oe,defaultViewport:ie=Ls,minZoom:se=.5,maxZoom:le=2,translateExtent:ce=As,preventScrolling:ue=!0,nodeExtent:de,defaultMarkerColor:fe="#b1b1b7",zoomOnScroll:pe=!0,zoomOnPinch:he=!0,panOnScroll:me=!1,panOnScrollSpeed:ge=.5,panOnScrollMode:ye=Bo.Free,zoomOnDoubleClick:be=!0,panOnDrag:ve=!0,onPaneClick:we,onPaneMouseEnter:xe,onPaneMouseMove:Ce,onPaneMouseLeave:ke,onPaneScroll:Ee,onPaneContextMenu:Se,children:Ie,onEdgeContextMenu:_e,onEdgeDoubleClick:Ae,onEdgeMouseEnter:Ne,onEdgeMouseMove:Oe,onEdgeMouseLeave:Re,onEdgeUpdate:Me,onEdgeUpdateStart:Te,onEdgeUpdateEnd:Pe,onReconnect:De,onReconnectStart:je,onReconnectEnd:Le,reconnectRadius:Fe=10,edgeUpdaterRadius:ze=10,onNodesChange:Be,onEdgesChange:Ve,noDragClassName:Ge="nodrag",noWheelClassName:We="nowheel",noPanClassName:He="nopan",fitView:Xe=!1,fitViewOptions:$e,connectOnClick:Ze=!0,attributionPosition:Ye,proOptions:Ue,defaultEdgeOptions:Je,elevateNodesOnSelect:Ke=!0,elevateEdgesOnSelect:qe=!1,disableKeyboardA11y:Qe=!1,autoPanOnConnect:et=!0,autoPanOnNodeDrag:tt=!0,connectionRadius:nt=20,isValidConnection:rt,onError:ot,style:it,id:at,nodeDragThreshold:st,...lt},ct)=>{const ut=at||"1";return t.createElement("div",{...lt,style:{...it,...Fs},ref:ct,className:ae(["react-flow",i]),"data-testid":"rf__wrapper",id:at},t.createElement(Ms,null,t.createElement(_s,{onInit:u,onMove:d,onMoveStart:f,onMoveEnd:p,onNodeClick:l,onEdgeClick:c,onNodeMouseEnter:v,onNodeMouseMove:w,onNodeMouseLeave:x,onNodeContextMenu:C,onNodeDoubleClick:k,nodeTypes:a,edgeTypes:s,connectionLineType:L,connectionLineStyle:F,connectionLineComponent:z,connectionLineContainerStyle:B,selectionKeyCode:G,selectionOnDrag:W,selectionMode:H,deleteKeyCode:V,multiSelectionKeyCode:$,panActivationKeyCode:X,zoomActivationKeyCode:Z,onlyRenderVisibleElements:J,selectNodesOnDrag:K,defaultViewport:ie,translateExtent:ce,minZoom:se,maxZoom:le,preventScrolling:ue,zoomOnScroll:pe,zoomOnPinch:he,zoomOnDoubleClick:be,panOnScroll:me,panOnScrollSpeed:ge,panOnScrollMode:ye,panOnDrag:ve,onPaneClick:we,onPaneMouseEnter:xe,onPaneMouseMove:Ce,onPaneMouseLeave:ke,onPaneScroll:Ee,onPaneContextMenu:Se,onSelectionContextMenu:T,onSelectionStart:P,onSelectionEnd:D,onEdgeContextMenu:_e,onEdgeDoubleClick:Ae,onEdgeMouseEnter:Ne,onEdgeMouseMove:Oe,onEdgeMouseLeave:Re,onReconnect:De??Me,onReconnectStart:je??Te,onReconnectEnd:Le??Pe,reconnectRadius:Fe??ze,defaultMarkerColor:fe,noDragClassName:Ge,noWheelClassName:We,noPanClassName:He,elevateEdgesOnSelect:qe,rfId:ut,disableKeyboardA11y:Qe,nodeOrigin:te,nodeExtent:de}),t.createElement(Xi,{nodes:e,edges:n,defaultNodes:r,defaultEdges:o,onConnect:h,onConnectStart:m,onConnectEnd:g,onClickConnectStart:y,onClickConnectEnd:b,nodesDraggable:q,nodesConnectable:Q,nodesFocusable:ee,edgesFocusable:ne,edgesUpdatable:re,elementsSelectable:oe,elevateNodesOnSelect:Ke,minZoom:se,maxZoom:le,nodeExtent:de,onNodesChange:Be,onEdgesChange:Ve,snapToGrid:Y,snapGrid:U,connectionMode:j,translateExtent:ce,connectOnClick:Ze,defaultEdgeOptions:Je,fitView:Xe,fitViewOptions:$e,onNodesDelete:_,onEdgesDelete:A,onNodeDragStart:E,onNodeDrag:S,onNodeDragStop:I,onSelectionDrag:R,onSelectionDragStart:O,onSelectionDragStop:M,noPanClassName:He,nodeOrigin:te,rfId:ut,autoPanOnConnect:et,autoPanOnNodeDrag:tt,onError:ot,connectionRadius:nt,isValidConnection:rt,nodeDragThreshold:st}),t.createElement(Vi,{onSelectionChange:N}),Ie,t.createElement(ho,{proOptions:Ue,position:Ye}),t.createElement(qi,{rfId:ut,disableKeyboardA11y:Qe})))}));zs.displayName="ReactFlow";const Bs=e=>e.getNodes();const Vs=e=>e.edges;const Gs=({id:e,x:n,y:r,width:o,height:i,style:a,color:s,strokeColor:l,strokeWidth:c,className:u,borderRadius:d,shapeRendering:f,onClick:p,selected:h})=>{const{background:m,backgroundColor:g}=a||{},y=s||m||g;return t.createElement("rect",{className:ae(["react-flow__minimap-node",{selected:h},u]),x:n,y:r,rx:d,ry:d,width:o,height:i,fill:y,stroke:l,strokeWidth:c,shapeRendering:f,onClick:p?t=>p(t,e):void 0})};Gs.displayName="MiniMapNode";var Ws=r(Gs);const Hs=e=>e.nodeOrigin,Xs=e=>e.getNodes().filter((e=>!e.hidden&&e.width&&e.height)),$s=e=>e instanceof Function?e:()=>e;var Zs=r((function({nodeStrokeColor:e="transparent",nodeColor:n="#e2e2e2",nodeClassName:r="",nodeBorderRadius:o=5,nodeStrokeWidth:i=2,nodeComponent:a=Ws,onClick:s}){const l=co(Xs,fe),c=co(Hs),u=$s(n),d=$s(e),f=$s(r),p="undefined"==typeof window||window.chrome?"crispEdges":"geometricPrecision";return t.createElement(t.Fragment,null,l.map((e=>{const{x:n,y:r}=di(e,c).positionAbsolute;return t.createElement(a,{key:e.id,x:n,y:r,width:e.width,height:e.height,style:e.style,selected:e.selected,className:f(e),color:u(e),borderRadius:o,strokeColor:d(e),strokeWidth:i,shapeRendering:p,onClick:s,id:e.id})})))}));const Ys=e=>{const t=e.getNodes(),n={x:-e.transform[0]/e.transform[2],y:-e.transform[1]/e.transform[2],width:e.width/e.transform[2],height:e.height/e.transform[2]};return{viewBB:n,boundingRect:t.length>0?(r=fi(t,e.nodeOrigin),o=n,Eo(Co(ko(r),ko(o)))):n,rfId:e.rfId};var r,o};function Us({style:e,className:n,nodeStrokeColor:r="transparent",nodeColor:o="#e2e2e2",nodeClassName:i="",nodeBorderRadius:a=5,nodeStrokeWidth:l=2,nodeComponent:c,maskColor:d="rgb(240, 240, 240, 0.6)",maskStrokeColor:f="none",maskStrokeWidth:p=1,position:h="bottom-right",onClick:m,onNodeClick:g,pannable:y=!1,zoomable:b=!1,ariaLabel:v="React Flow mini map",inversePan:w=!1,zoomStep:x=10,offsetScale:C=5}){const k=uo(),E=u(null),{boundingRect:S,viewBB:I,rfId:_}=co(Ys,fe),A=e?.width??200,N=e?.height??150,O=S.width/A,R=S.height/N,M=Math.max(O,R),T=M*A,P=M*N,D=C*M,j=S.x-(T-S.width)/2-D,L=S.y-(P-S.height)/2-D,F=T+2*D,z=P+2*D,B=`react-flow__minimap-desc-${_}`,V=u(0);V.current=M,s((()=>{if(E.current){const e=Ot(E.current),t=e=>{const{transform:t,d3Selection:n,d3Zoom:r}=k.getState();if("wheel"!==e.sourceEvent.type||!n||!r)return;const o=-e.sourceEvent.deltaY*(1===e.sourceEvent.deltaMode?.05:e.sourceEvent.deltaMode?1:.002)*x,i=t[2]*Math.pow(2,o);r.scaleTo(n,i)},n=e=>{const{transform:t,d3Selection:n,d3Zoom:r,translateExtent:o,width:i,height:a}=k.getState();if("mousemove"!==e.sourceEvent.type||!n||!r)return;const s=V.current*Math.max(1,t[2])*(w?-1:1),l={x:t[0]-e.sourceEvent.movementX*s,y:t[1]-e.sourceEvent.movementY*s},c=[[0,0],[i,a]],u=Br.translate(l.x,l.y).scale(t[2]),d=r.constrain()(u,c,o);r.transform(n,d)},r=Ur().on("zoom",y?n:null).on("zoom.wheel",b?t:null);return e.call(r),()=>{e.on("zoom",null)}}}),[y,b,w,x]);const G=m?e=>{const t=Rt(e);m(e,{x:t[0],y:t[1]})}:void 0,W=g?(e,t)=>{const n=k.getState().nodeInternals.get(t);g(e,n)}:void 0;return t.createElement(po,{position:h,style:e,className:ae(["react-flow__minimap",n]),"data-testid":"rf__minimap"},t.createElement("svg",{width:A,height:N,viewBox:`${j} ${L} ${F} ${z}`,role:"img","aria-labelledby":B,ref:E,onClick:G},v&&t.createElement("title",{id:B},v),t.createElement(Zs,{onClick:W,nodeColor:o,nodeStrokeColor:r,nodeBorderRadius:a,nodeClassName:i,nodeStrokeWidth:l,nodeComponent:c}),t.createElement("path",{className:"react-flow__minimap-mask",d:`M${j-D},${L-D}h${F+2*D}v${z+2*D}h${-F-2*D}z\n M${I.x},${I.y}h${I.width}v${I.height}h${-I.width}z`,fill:d,fillRule:"evenodd",stroke:f,strokeWidth:p,pointerEvents:"none"})))}Us.displayName="MiniMap";var Js,Ks=r(Us);function qs({color:e,dimensions:n,lineWidth:r}){return t.createElement("path",{stroke:e,strokeWidth:r,d:`M${n[0]/2} 0 V${n[1]} M0 ${n[1]/2} H${n[0]}`})}function Qs({color:e,radius:n}){return t.createElement("circle",{cx:n,cy:n,r:n,fill:e})}!function(e){e.Lines="lines",e.Dots="dots",e.Cross="cross"}(Js||(Js={}));const el={[Js.Dots]:"#91919a",[Js.Lines]:"#eee",[Js.Cross]:"#e2e2e2"},tl={[Js.Dots]:1,[Js.Lines]:1,[Js.Cross]:6},nl=e=>({transform:e.transform,patternId:`pattern-${e.rfId}`});function rl({id:e,variant:n=Js.Dots,gap:r=20,size:o,lineWidth:i=1,offset:a=2,color:s,style:l,className:c}){const d=u(null),{transform:f,patternId:p}=co(nl,fe),h=s||el[n],m=o||tl[n],g=n===Js.Dots,y=n===Js.Cross,b=Array.isArray(r)?r:[r,r],v=[b[0]*f[2]||1,b[1]*f[2]||1],w=m*f[2],x=y?[w,w]:v,C=g?[w/a,w/a]:[x[0]/a,x[1]/a];return t.createElement("svg",{className:ae(["react-flow__background",c]),style:{...l,position:"absolute",width:"100%",height:"100%",top:0,left:0},ref:d,"data-testid":"rf__background"},t.createElement("pattern",{id:p+e,x:f[0]%v[0],y:f[1]%v[1],width:v[0],height:v[1],patternUnits:"userSpaceOnUse",patternTransform:`translate(-${C[0]},-${C[1]})`},g?t.createElement(Qs,{color:h,radius:w/a}):t.createElement(qs,{dimensions:x,color:h,lineWidth:i})),t.createElement("rect",{x:"0",y:"0",width:"100%",height:"100%",fill:`url(#${p+e})`}))}rl.displayName="Background";var ol=r(rl);const il=({src_nid:e,src_ioid:t,trg_nid:n,trg_ioid:r})=>[`${e}:${t}`,`${n}:${r}`].sort().join("--"),al=0,sl=10,ll=20,cl=30,ul=sl,dl=e=>"string"==typeof e?e:e===al?"DEBUG":e===sl?"INFO":e===ll?"WARN":e===cl?"ERROR":"UNKNOWN";class fl{constructor(e,t=sl){this.name=e,this.level=(e=>{if("number"==typeof e)return e;const t=e.toLowerCase();if("debug"===t)return al;if("info"===t)return sl;if("warn"===t||"warning"===t)return ll;if("error"===t)return cl;throw new Error(`Unknown log level: ${e}`)})(t),this._level_name=dl(t)}set_level(e){this.level=e,this._level_name=dl(e)}_fomat_message(e,...t){return`[${this.name}] ${this._level_name}: ${e} ${t.map((e=>JSON.stringify(e,function(){const e=[];return function(t,n){if("object"!=typeof n||null===n)return n;for(;e.length>0&&e.at(-1)!==this;)e.pop();return e.includes(n)?"[Circular]":(e.push(n),n)}}()))).join(" ")}`}debug(e,...t){this.level<=al&&console.debug(this._fomat_message(e,...t))}info(e,...t){this.level<=sl&&console.info(this._fomat_message(e,...t))}warn(e,...t){this.level<=ll&&console.warn(this._fomat_message(e,...t))}error(e,...t){this.level<=cl&&console.error(this._fomat_message(e,...t))}}const pl=(e,t)=>("<NoValue>"===e.value&&(e.value=void 0),"<NoValue>"===e.fullvalue&&(e.fullvalue=void 0),void 0===e.try_get_full_value&&(e.try_get_full_value=()=>{t&&void 0!==e.node&&void 0!==e.id&&t.worker?.get_io_full_value({nid:e.node,ioid:e.id})}),void 0===e.hidden&&(e.hidden=!1),void 0===e.set_hidden&&(e.set_hidden=n=>{t&&void 0!==e.node&&void 0!==e.id&&t.worker?.update_io_options({nid:e.node,ioid:e.id,options:{hidden:n}})}),e),hl=(e,t,n)=>{if(((e,t)=>{const n=e.properties||{};n["frontend:size"]||(n["frontend:size"]=[200,100]);const r=n["frontend:pos"];if(!r||2!==r.length||isNaN(r[0])||null===r[0]||isNaN(r[1])||null===r[1])if(t&&t.rf_instance&&null!==t.reactflowRef){const e=t.reactflowRef.getBoundingClientRect(),r=e.left+e.width/2,o=e.top+e.height/2,i=t.rf_instance.screenToFlowPosition({x:r,y:o});n["frontend:pos"]=[i.x-n["frontend:size"][0]/2,i.y-n["frontend:size"][0]/2]}else n["frontend:pos"]=[0,0];n["frontend:collapsed"]||(n["frontend:collapsed"]=!1),e.properties=n})(e,n),void 0===(e=oe(e)).id)throw new Error("Node must have an id");for(const t in e.io)e.io[t].node=e.id,pl(e.io[t],n);return{position:{x:e.properties["frontend:pos"][0],y:e.properties["frontend:pos"][1]},data:{UseNodeStore:t},type:"default",...e}},ml=e=>{const t={...e},n=e=>{const t=o.getState();if(e.from_remote){let n=i.get_node(e.node.id,!1);if(!n)try{n=(e=>Y(((t,n)=>oe(ie(e)))))(e.node),i.nodesstates.set(e.node.id,n)}catch(e){return void s.logger.error(`Failed to create node store ${e}`)}const r=n.getState();s.logger.info("Add node",r.id,r.name);const a=[...t.nodes,hl(r,n,s)];o.setState({nodes:a});for(const t in e.node.io){const n=e.node.io[t].id;void 0!==n&&s.worker?.get_io_value({nid:e.node.id,ioid:n})}setTimeout((()=>{s.worker?.call_hooks("node_added",{node:r.id})}),0)}},r=e=>{switch(e.type){case"add":n(e);break;case"update":(e=>{if(e.node.in_trigger&&(e.node.error=void 0),e.from_remote){const t=i.get_node(e.id,!1);if(!t)return;ie(e.node);const n=t.getState(),{new_obj:r,change:o}=K(n,e.node);if(o){if(e.node.io)for(const t in e.node.io){r.io[t].fullvalue=e.node.io[t]?.fullvalue;for(const t in e.node.io){const n=e.node.io[t],o=r.io[t];n.hasOwnProperty("value")&&(void 0===n.value?o.value=null:"<NoValue>"===n.value?o.value=void 0:o.value=n.value)}}hl(r,t,s),s.logger.debug("update_action",r),t.setState(oe(r))}}else s.worker&&s.worker.locally_update_node(e)})(e);break;case"delete":(e=>{s.logger.info("Deleting node",e.id),e.from_remote?o.getState().onNodesChange([{type:"remove",id:e.id}]):s.worker?.remove_node(e.id)})(e);break;case"error":(e=>{s.logger.error("Error",e),r({type:"update",id:e.id,node:{in_trigger:!1,error:e.error},from_remote:!0})})(e);break;case"trigger":(e=>{e.from_remote?r({type:"update",id:e.id,node:{in_trigger:!0,error:void 0},from_remote:!0}):s.worker?.trigger_node(e.id)})(e);break;default:s.logger.error("Unknown node action",e)}},o=(({on_node_change:e,on_edge_change:t,on_connect:n})=>{const r=e||(e=>{}),o=n||(e=>{}),i=Y(((e,t)=>({nodes:[],edges:[],onNodesChange:n=>{e({nodes:Sa(n,t().nodes)}),r(n)},onEdgesChange:n=>{e({edges:Ia(n,t().edges)})},onConnect:e=>{null!=e.source&&null!=e.target&&o(e)}})));return i})({on_node_change:e=>{for(const t of e)switch(t.type){case"position":t.position&&r({type:"update",id:t.id,node:{properties:{"frontend:pos":[t.position.x,t.position.y]}},from_remote:!1});break;case"dimensions":t.dimensions&&r({type:"update",id:t.id,node:{properties:{"frontend:size":[t.dimensions.width,t.dimensions.height]}},from_remote:!1})}},on_edge_change:e=>{},on_connect:e=>{null!==e.source&&null!==e.target&&null!==e.sourceHandle&&null!==e.targetHandle&&s.worker&&s.worker.add_edge({src_nid:e.source,src_ioid:e.sourceHandle,trg_nid:e.target,trg_ioid:e.targetHandle,replace:!0})}}),i=(({})=>{const e=new Map;return{nodesstates:e,get_node:(t,n=!0)=>{const r=e.get(t);if(!r&&n){const n=e.keys();throw new Error(`Node ${t} not found, available nodes: ${Array.from(n)}`)}return r}}})({}),a={libstate:Y(((e,t)=>({lib:{shelves:[]},external_worker:[],set:t=>e((e=>({...e,...t}))),get_lib:()=>t().lib,get_external_worker:()=>t().external_worker})))},s={local_settings:Y(((e,t)=>({view_settings:{},update_view_settings:e=>{const t=s.local_settings.getState().view_settings,{new_obj:n,change:r}=K(t,e);r&&s.local_settings.setState((e=>({...e,view_settings:n})))}}))),local_state:Y(((e,t)=>({selected_nodes:[],selected_edges:[],funcnodescontainerRef:null}))),options:t,lib:a,workermanager:void 0,workers:Y(((e,t)=>({}))),workerstate:Y(((e,t)=>({is_open:!1}))),render_options:Y(((e,t)=>({}))),progress_state:Y(((e,t)=>({message:"please select worker",status:"info",progress:0,blocking:!1}))),update_render_options:e=>{const t=s.render_options.getState(),{new_obj:n,change:r}=K(t,e);r&&s.render_options.setState(n)},worker:void 0,_unsubscribeFromWorker:void 0,set_worker:e=>{e!==s.worker&&(s._unsubscribeFromWorker&&(s._unsubscribeFromWorker(),s._unsubscribeFromWorker=void 0),e&&(s._unsubscribeFromWorker=e.state.subscribe((e=>{s.workerstate.setState(e)})),s.workerstate.setState(e.state.getState())),s.worker=e,e?.set_zustand(s))},nodespace:i,useReactFlowStore:o,on_node_action:r,on_edge_action:e=>{const t=o.getState();switch(e.type){case"add":if(e.from_remote){const n=t.edges,r=il(e);if(n.some((e=>e.id===r)))return;const i={id:r,source:e.src_nid,target:e.trg_nid,sourceHandle:e.src_ioid,targetHandle:e.trg_ioid,className:"funcnodes-edge animated"};s.logger.info("Adding edge",i),o.setState({edges:[...n,i]}),s.worker?.get_remote_node_state(e.src_nid),s.worker?.get_remote_node_state(e.trg_nid)}break;case"delete":if(e.from_remote){const n=t.edges,r=il(e);s.logger.info("Deleting edge",r);const i=n.filter((e=>e.id!==r));o.setState({edges:i}),s.worker?.get_remote_node_state(e.src_nid),s.worker?.get_remote_node_state(e.trg_nid)}break;default:s.logger.error("Unknown edge action",e)}},reactflowRef:null,clear_all:()=>{s.worker?.disconnect(),s.set_worker(void 0),s.workermanager?.setWorker(void 0),s.lib.libstate.getState().set({lib:{shelves:[]},external_worker:[]}),s.nodespace.nodesstates.clear(),s.useReactFlowStore.setState({nodes:[],edges:[]}),s.auto_progress()},center_node:e=>{if(!s.rf_instance)return;e=Array.isArray(e)?e:[e];const t=s.useReactFlowStore.getState().nodes.filter((t=>e.includes(t.id)));t.length>0&&s.rf_instance?.fitView({padding:.2,nodes:t})},center_all:()=>{console.log("center all",s.rf_instance),s.rf_instance?.fitView({padding:.2})},set_progress:e=>{if(""===e.message)return s.auto_progress();const t=s.progress_state.getState(),{new_obj:n,change:r}=K(t,e);r&&s.progress_state.setState(n)},auto_progress:()=>void 0===s.workermanager||s.workermanager.open?void 0===s.worker?s.set_progress({progress:0,message:"please select worker",status:"error",blocking:!1}):s.worker.is_open?void s.set_progress({progress:1,message:"running",status:"info",blocking:!1}):s.set_progress({progress:0,message:"connecting to worker",status:"info",blocking:!0}):s.set_progress({progress:0,message:"connecting to worker manager",status:"error",blocking:!1}),plugins:Y(((e,t)=>({}))),add_plugin:(e,t)=>{void 0!==t&&s.plugins.setState((n=>({...n,[e]:t})))},dev_settings:{debug:!0},logger:new fl("fn",ul)};return s};function gl(e,t){return function(){return e.apply(t,arguments)}}const{toString:yl}=Object.prototype,{getPrototypeOf:bl}=Object,vl=(e=>t=>{const n=yl.call(t);return e[n]||(e[n]=n.slice(8,-1).toLowerCase())})(Object.create(null)),wl=e=>(e=e.toLowerCase(),t=>vl(t)===e),xl=e=>t=>typeof t===e,{isArray:Cl}=Array,kl=xl("undefined");const El=wl("ArrayBuffer");const Sl=xl("string"),Il=xl("function"),_l=xl("number"),Al=e=>null!==e&&"object"==typeof e,Nl=e=>{if("object"!==vl(e))return!1;const t=bl(e);return!(null!==t&&t!==Object.prototype&&null!==Object.getPrototypeOf(t)||Symbol.toStringTag in e||Symbol.iterator in e)},Ol=wl("Date"),Rl=wl("File"),Ml=wl("Blob"),Tl=wl("FileList"),Pl=wl("URLSearchParams"),[Dl,jl,Ll,Fl]=["ReadableStream","Request","Response","Headers"].map(wl);function zl(e,t,{allOwnKeys:n=!1}={}){if(null==e)return;let r,o;if("object"!=typeof e&&(e=[e]),Cl(e))for(r=0,o=e.length;r<o;r++)t.call(null,e[r],r,e);else{const o=n?Object.getOwnPropertyNames(e):Object.keys(e),i=o.length;let a;for(r=0;r<i;r++)a=o[r],t.call(null,e[a],a,e)}}function Bl(e,t){t=t.toLowerCase();const n=Object.keys(e);let r,o=n.length;for(;o-- >0;)if(r=n[o],t===r.toLowerCase())return r;return null}const Vl="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:"undefined"!=typeof window?window:global,Gl=e=>!kl(e)&&e!==Vl;const Wl=(Hl="undefined"!=typeof Uint8Array&&bl(Uint8Array),e=>Hl&&e instanceof Hl);var Hl;const Xl=wl("HTMLFormElement"),$l=(({hasOwnProperty:e})=>(t,n)=>e.call(t,n))(Object.prototype),Zl=wl("RegExp"),Yl=(e,t)=>{const n=Object.getOwnPropertyDescriptors(e),r={};zl(n,((n,o)=>{let i;!1!==(i=t(n,o,e))&&(r[o]=i||n)})),Object.defineProperties(e,r)},Ul="abcdefghijklmnopqrstuvwxyz",Jl="0123456789",Kl={DIGIT:Jl,ALPHA:Ul,ALPHA_DIGIT:Ul+Ul.toUpperCase()+Jl};const ql=wl("AsyncFunction"),Ql=(ec="function"==typeof setImmediate,tc=Il(Vl.postMessage),ec?setImmediate:tc?((e,t)=>(Vl.addEventListener("message",(({source:n,data:r})=>{n===Vl&&r===e&&t.length&&t.shift()()}),!1),n=>{t.push(n),Vl.postMessage(e,"*")}))(`axios@${Math.random()}`,[]):e=>setTimeout(e));var ec,tc;const nc="undefined"!=typeof queueMicrotask?queueMicrotask.bind(Vl):"undefined"!=typeof process&&process.nextTick||Ql;var rc={isArray:Cl,isArrayBuffer:El,isBuffer:function(e){return null!==e&&!kl(e)&&null!==e.constructor&&!kl(e.constructor)&&Il(e.constructor.isBuffer)&&e.constructor.isBuffer(e)},isFormData:e=>{let t;return e&&("function"==typeof FormData&&e instanceof FormData||Il(e.append)&&("formdata"===(t=vl(e))||"object"===t&&Il(e.toString)&&"[object FormData]"===e.toString()))},isArrayBufferView:function(e){let t;return t="undefined"!=typeof ArrayBuffer&&ArrayBuffer.isView?ArrayBuffer.isView(e):e&&e.buffer&&El(e.buffer),t},isString:Sl,isNumber:_l,isBoolean:e=>!0===e||!1===e,isObject:Al,isPlainObject:Nl,isReadableStream:Dl,isRequest:jl,isResponse:Ll,isHeaders:Fl,isUndefined:kl,isDate:Ol,isFile:Rl,isBlob:Ml,isRegExp:Zl,isFunction:Il,isStream:e=>Al(e)&&Il(e.pipe),isURLSearchParams:Pl,isTypedArray:Wl,isFileList:Tl,forEach:zl,merge:function e(){const{caseless:t}=Gl(this)&&this||{},n={},r=(r,o)=>{const i=t&&Bl(n,o)||o;Nl(n[i])&&Nl(r)?n[i]=e(n[i],r):Nl(r)?n[i]=e({},r):Cl(r)?n[i]=r.slice():n[i]=r};for(let e=0,t=arguments.length;e<t;e++)arguments[e]&&zl(arguments[e],r);return n},extend:(e,t,n,{allOwnKeys:r}={})=>(zl(t,((t,r)=>{n&&Il(t)?e[r]=gl(t,n):e[r]=t}),{allOwnKeys:r}),e),trim:e=>e.trim?e.trim():e.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,""),stripBOM:e=>(65279===e.charCodeAt(0)&&(e=e.slice(1)),e),inherits:(e,t,n,r)=>{e.prototype=Object.create(t.prototype,r),e.prototype.constructor=e,Object.defineProperty(e,"super",{value:t.prototype}),n&&Object.assign(e.prototype,n)},toFlatObject:(e,t,n,r)=>{let o,i,a;const s={};if(t=t||{},null==e)return t;do{for(o=Object.getOwnPropertyNames(e),i=o.length;i-- >0;)a=o[i],r&&!r(a,e,t)||s[a]||(t[a]=e[a],s[a]=!0);e=!1!==n&&bl(e)}while(e&&(!n||n(e,t))&&e!==Object.prototype);return t},kindOf:vl,kindOfTest:wl,endsWith:(e,t,n)=>{e=String(e),(void 0===n||n>e.length)&&(n=e.length),n-=t.length;const r=e.indexOf(t,n);return-1!==r&&r===n},toArray:e=>{if(!e)return null;if(Cl(e))return e;let t=e.length;if(!_l(t))return null;const n=new Array(t);for(;t-- >0;)n[t]=e[t];return n},forEachEntry:(e,t)=>{const n=(e&&e[Symbol.iterator]).call(e);let r;for(;(r=n.next())&&!r.done;){const n=r.value;t.call(e,n[0],n[1])}},matchAll:(e,t)=>{let n;const r=[];for(;null!==(n=e.exec(t));)r.push(n);return r},isHTMLForm:Xl,hasOwnProperty:$l,hasOwnProp:$l,reduceDescriptors:Yl,freezeMethods:e=>{Yl(e,((t,n)=>{if(Il(e)&&-1!==["arguments","caller","callee"].indexOf(n))return!1;const r=e[n];Il(r)&&(t.enumerable=!1,"writable"in t?t.writable=!1:t.set||(t.set=()=>{throw Error("Can not rewrite read-only method '"+n+"'")}))}))},toObjectSet:(e,t)=>{const n={},r=e=>{e.forEach((e=>{n[e]=!0}))};return Cl(e)?r(e):r(String(e).split(t)),n},toCamelCase:e=>e.toLowerCase().replace(/[-_\s]([a-z\d])(\w*)/g,(function(e,t,n){return t.toUpperCase()+n})),noop:()=>{},toFiniteNumber:(e,t)=>null!=e&&Number.isFinite(e=+e)?e:t,findKey:Bl,global:Vl,isContextDefined:Gl,ALPHABET:Kl,generateString:(e=16,t=Kl.ALPHA_DIGIT)=>{let n="";const{length:r}=t;for(;e--;)n+=t[Math.random()*r|0];return n},isSpecCompliantForm:function(e){return!!(e&&Il(e.append)&&"FormData"===e[Symbol.toStringTag]&&e[Symbol.iterator])},toJSONObject:e=>{const t=new Array(10),n=(e,r)=>{if(Al(e)){if(t.indexOf(e)>=0)return;if(!("toJSON"in e)){t[r]=e;const o=Cl(e)?[]:{};return zl(e,((e,t)=>{const i=n(e,r+1);!kl(i)&&(o[t]=i)})),t[r]=void 0,o}}return e};return n(e,0)},isAsyncFn:ql,isThenable:e=>e&&(Al(e)||Il(e))&&Il(e.then)&&Il(e.catch),setImmediate:Ql,asap:nc};function oc(e,t,n,r,o){Error.call(this),Error.captureStackTrace?Error.captureStackTrace(this,this.constructor):this.stack=(new Error).stack,this.message=e,this.name="AxiosError",t&&(this.code=t),n&&(this.config=n),r&&(this.request=r),o&&(this.response=o,this.status=o.status?o.status:null)}rc.inherits(oc,Error,{toJSON:function(){return{message:this.message,name:this.name,description:this.description,number:this.number,fileName:this.fileName,lineNumber:this.lineNumber,columnNumber:this.columnNumber,stack:this.stack,config:rc.toJSONObject(this.config),code:this.code,status:this.status}}});const ic=oc.prototype,ac={};["ERR_BAD_OPTION_VALUE","ERR_BAD_OPTION","ECONNABORTED","ETIMEDOUT","ERR_NETWORK","ERR_FR_TOO_MANY_REDIRECTS","ERR_DEPRECATED","ERR_BAD_RESPONSE","ERR_BAD_REQUEST","ERR_CANCELED","ERR_NOT_SUPPORT","ERR_INVALID_URL"].forEach((e=>{ac[e]={value:e}})),Object.defineProperties(oc,ac),Object.defineProperty(ic,"isAxiosError",{value:!0}),oc.from=(e,t,n,r,o,i)=>{const a=Object.create(ic);return rc.toFlatObject(e,a,(function(e){return e!==Error.prototype}),(e=>"isAxiosError"!==e)),oc.call(a,e.message,t,n,r,o),a.cause=e,a.name=e.name,i&&Object.assign(a,i),a};function sc(e){return rc.isPlainObject(e)||rc.isArray(e)}function lc(e){return rc.endsWith(e,"[]")?e.slice(0,-2):e}function cc(e,t,n){return e?e.concat(t).map((function(e,t){return e=lc(e),!n&&t?"["+e+"]":e})).join(n?".":""):t}const uc=rc.toFlatObject(rc,{},null,(function(e){return/^is[A-Z]/.test(e)}));function dc(e,t,n){if(!rc.isObject(e))throw new TypeError("target must be an object");t=t||new FormData;const r=(n=rc.toFlatObject(n,{metaTokens:!0,dots:!1,indexes:!1},!1,(function(e,t){return!rc.isUndefined(t[e])}))).metaTokens,o=n.visitor||c,i=n.dots,a=n.indexes,s=(n.Blob||"undefined"!=typeof Blob&&Blob)&&rc.isSpecCompliantForm(t);if(!rc.isFunction(o))throw new TypeError("visitor must be a function");function l(e){if(null===e)return"";if(rc.isDate(e))return e.toISOString();if(!s&&rc.isBlob(e))throw new oc("Blob is not supported. Use a Buffer instead.");return rc.isArrayBuffer(e)||rc.isTypedArray(e)?s&&"function"==typeof Blob?new Blob([e]):Buffer.from(e):e}function c(e,n,o){let s=e;if(e&&!o&&"object"==typeof e)if(rc.endsWith(n,"{}"))n=r?n:n.slice(0,-2),e=JSON.stringify(e);else if(rc.isArray(e)&&function(e){return rc.isArray(e)&&!e.some(sc)}(e)||(rc.isFileList(e)||rc.endsWith(n,"[]"))&&(s=rc.toArray(e)))return n=lc(n),s.forEach((function(e,r){!rc.isUndefined(e)&&null!==e&&t.append(!0===a?cc([n],r,i):null===a?n:n+"[]",l(e))})),!1;return!!sc(e)||(t.append(cc(o,n,i),l(e)),!1)}const u=[],d=Object.assign(uc,{defaultVisitor:c,convertValue:l,isVisitable:sc});if(!rc.isObject(e))throw new TypeError("data must be an object");return function e(n,r){if(!rc.isUndefined(n)){if(-1!==u.indexOf(n))throw Error("Circular reference detected in "+r.join("."));u.push(n),rc.forEach(n,(function(n,i){!0===(!(rc.isUndefined(n)||null===n)&&o.call(t,n,rc.isString(i)?i.trim():i,r,d))&&e(n,r?r.concat(i):[i])})),u.pop()}}(e),t}function fc(e){const t={"!":"%21","'":"%27","(":"%28",")":"%29","~":"%7E","%20":"+","%00":"\0"};return encodeURIComponent(e).replace(/[!'()~]|%20|%00/g,(function(e){return t[e]}))}function pc(e,t){this._pairs=[],e&&dc(e,this,t)}const hc=pc.prototype;function mc(e){return encodeURIComponent(e).replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%20/g,"+").replace(/%5B/gi,"[").replace(/%5D/gi,"]")}function gc(e,t,n){if(!t)return e;const r=n&&n.encode||mc;rc.isFunction(n)&&(n={serialize:n});const o=n&&n.serialize;let i;if(i=o?o(t,n):rc.isURLSearchParams(t)?t.toString():new pc(t,n).toString(r),i){const t=e.indexOf("#");-1!==t&&(e=e.slice(0,t)),e+=(-1===e.indexOf("?")?"?":"&")+i}return e}hc.append=function(e,t){this._pairs.push([e,t])},hc.toString=function(e){const t=e?function(t){return e.call(this,t,fc)}:fc;return this._pairs.map((function(e){return t(e[0])+"="+t(e[1])}),"").join("&")};class yc{constructor(){this.handlers=[]}use(e,t,n){return this.handlers.push({fulfilled:e,rejected:t,synchronous:!!n&&n.synchronous,runWhen:n?n.runWhen:null}),this.handlers.length-1}eject(e){this.handlers[e]&&(this.handlers[e]=null)}clear(){this.handlers&&(this.handlers=[])}forEach(e){rc.forEach(this.handlers,(function(t){null!==t&&e(t)}))}}var bc={silentJSONParsing:!0,forcedJSONParsing:!0,clarifyTimeoutError:!1},vc={isBrowser:!0,classes:{URLSearchParams:"undefined"!=typeof URLSearchParams?URLSearchParams:pc,FormData:"undefined"!=typeof FormData?FormData:null,Blob:"undefined"!=typeof Blob?Blob:null},protocols:["http","https","file","blob","url","data"]};const wc="undefined"!=typeof window&&"undefined"!=typeof document,xc="object"==typeof navigator&&navigator||void 0,Cc=wc&&(!xc||["ReactNative","NativeScript","NS"].indexOf(xc.product)<0),kc="undefined"!=typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope&&"function"==typeof self.importScripts,Ec=wc&&window.location.href||"http://localhost";var Sc={...Object.freeze({__proto__:null,hasBrowserEnv:wc,hasStandardBrowserEnv:Cc,hasStandardBrowserWebWorkerEnv:kc,navigator:xc,origin:Ec}),...vc};function Ic(e){function t(e,n,r,o){let i=e[o++];if("__proto__"===i)return!0;const a=Number.isFinite(+i),s=o>=e.length;if(i=!i&&rc.isArray(r)?r.length:i,s)return rc.hasOwnProp(r,i)?r[i]=[r[i],n]:r[i]=n,!a;r[i]&&rc.isObject(r[i])||(r[i]=[]);return t(e,n,r[i],o)&&rc.isArray(r[i])&&(r[i]=function(e){const t={},n=Object.keys(e);let r;const o=n.length;let i;for(r=0;r<o;r++)i=n[r],t[i]=e[i];return t}(r[i])),!a}if(rc.isFormData(e)&&rc.isFunction(e.entries)){const n={};return rc.forEachEntry(e,((e,r)=>{t(function(e){return rc.matchAll(/\w+|\[(\w*)]/g,e).map((e=>"[]"===e[0]?"":e[1]||e[0]))}(e),r,n,0)})),n}return null}const _c={transitional:bc,adapter:["xhr","http","fetch"],transformRequest:[function(e,t){const n=t.getContentType()||"",r=n.indexOf("application/json")>-1,o=rc.isObject(e);o&&rc.isHTMLForm(e)&&(e=new FormData(e));if(rc.isFormData(e))return r?JSON.stringify(Ic(e)):e;if(rc.isArrayBuffer(e)||rc.isBuffer(e)||rc.isStream(e)||rc.isFile(e)||rc.isBlob(e)||rc.isReadableStream(e))return e;if(rc.isArrayBufferView(e))return e.buffer;if(rc.isURLSearchParams(e))return t.setContentType("application/x-www-form-urlencoded;charset=utf-8",!1),e.toString();let i;if(o){if(n.indexOf("application/x-www-form-urlencoded")>-1)return function(e,t){return dc(e,new Sc.classes.URLSearchParams,Object.assign({visitor:function(e,t,n,r){return Sc.isNode&&rc.isBuffer(e)?(this.append(t,e.toString("base64")),!1):r.defaultVisitor.apply(this,arguments)}},t))}(e,this.formSerializer).toString();if((i=rc.isFileList(e))||n.indexOf("multipart/form-data")>-1){const t=this.env&&this.env.FormData;return dc(i?{"files[]":e}:e,t&&new t,this.formSerializer)}}return o||r?(t.setContentType("application/json",!1),function(e,t,n){if(rc.isString(e))try{return(t||JSON.parse)(e),rc.trim(e)}catch(e){if("SyntaxError"!==e.name)throw e}return(n||JSON.stringify)(e)}(e)):e}],transformResponse:[function(e){const t=this.transitional||_c.transitional,n=t&&t.forcedJSONParsing,r="json"===this.responseType;if(rc.isResponse(e)||rc.isReadableStream(e))return e;if(e&&rc.isString(e)&&(n&&!this.responseType||r)){const n=!(t&&t.silentJSONParsing)&&r;try{return JSON.parse(e)}catch(e){if(n){if("SyntaxError"===e.name)throw oc.from(e,oc.ERR_BAD_RESPONSE,this,null,this.response);throw e}}}return e}],timeout:0,xsrfCookieName:"XSRF-TOKEN",xsrfHeaderName:"X-XSRF-TOKEN",maxContentLength:-1,maxBodyLength:-1,env:{FormData:Sc.classes.FormData,Blob:Sc.classes.Blob},validateStatus:function(e){return e>=200&&e<300},headers:{common:{Accept:"application/json, text/plain, */*","Content-Type":void 0}}};rc.forEach(["delete","get","head","post","put","patch"],(e=>{_c.headers[e]={}}));const Ac=rc.toObjectSet(["age","authorization","content-length","content-type","etag","expires","from","host","if-modified-since","if-unmodified-since","last-modified","location","max-forwards","proxy-authorization","referer","retry-after","user-agent"]);const Nc=Symbol("internals");function Oc(e){return e&&String(e).trim().toLowerCase()}function Rc(e){return!1===e||null==e?e:rc.isArray(e)?e.map(Rc):String(e)}function Mc(e,t,n,r,o){return rc.isFunction(r)?r.call(this,t,n):(o&&(t=n),rc.isString(t)?rc.isString(r)?-1!==t.indexOf(r):rc.isRegExp(r)?r.test(t):void 0:void 0)}let Tc=class{constructor(e){e&&this.set(e)}set(e,t,n){const r=this;function o(e,t,n){const o=Oc(t);if(!o)throw new Error("header name must be a non-empty string");const i=rc.findKey(r,o);(!i||void 0===r[i]||!0===n||void 0===n&&!1!==r[i])&&(r[i||t]=Rc(e))}const i=(e,t)=>rc.forEach(e,((e,n)=>o(e,n,t)));if(rc.isPlainObject(e)||e instanceof this.constructor)i(e,t);else if(rc.isString(e)&&(e=e.trim())&&!/^[-_a-zA-Z0-9^`|~,!#$%&'*+.]+$/.test(e.trim()))i((e=>{const t={};let n,r,o;return e&&e.split("\n").forEach((function(e){o=e.indexOf(":"),n=e.substring(0,o).trim().toLowerCase(),r=e.substring(o+1).trim(),!n||t[n]&&Ac[n]||("set-cookie"===n?t[n]?t[n].push(r):t[n]=[r]:t[n]=t[n]?t[n]+", "+r:r)})),t})(e),t);else if(rc.isHeaders(e))for(const[t,r]of e.entries())o(r,t,n);else null!=e&&o(t,e,n);return this}get(e,t){if(e=Oc(e)){const n=rc.findKey(this,e);if(n){const e=this[n];if(!t)return e;if(!0===t)return function(e){const t=Object.create(null),n=/([^\s,;=]+)\s*(?:=\s*([^,;]+))?/g;let r;for(;r=n.exec(e);)t[r[1]]=r[2];return t}(e);if(rc.isFunction(t))return t.call(this,e,n);if(rc.isRegExp(t))return t.exec(e);throw new TypeError("parser must be boolean|regexp|function")}}}has(e,t){if(e=Oc(e)){const n=rc.findKey(this,e);return!(!n||void 0===this[n]||t&&!Mc(0,this[n],n,t))}return!1}delete(e,t){const n=this;let r=!1;function o(e){if(e=Oc(e)){const o=rc.findKey(n,e);!o||t&&!Mc(0,n[o],o,t)||(delete n[o],r=!0)}}return rc.isArray(e)?e.forEach(o):o(e),r}clear(e){const t=Object.keys(this);let n=t.length,r=!1;for(;n--;){const o=t[n];e&&!Mc(0,this[o],o,e,!0)||(delete this[o],r=!0)}return r}normalize(e){const t=this,n={};return rc.forEach(this,((r,o)=>{const i=rc.findKey(n,o);if(i)return t[i]=Rc(r),void delete t[o];const a=e?function(e){return e.trim().toLowerCase().replace(/([a-z\d])(\w*)/g,((e,t,n)=>t.toUpperCase()+n))}(o):String(o).trim();a!==o&&delete t[o],t[a]=Rc(r),n[a]=!0})),this}concat(...e){return this.constructor.concat(this,...e)}toJSON(e){const t=Object.create(null);return rc.forEach(this,((n,r)=>{null!=n&&!1!==n&&(t[r]=e&&rc.isArray(n)?n.join(", "):n)})),t}[Symbol.iterator](){return Object.entries(this.toJSON())[Symbol.iterator]()}toString(){return Object.entries(this.toJSON()).map((([e,t])=>e+": "+t)).join("\n")}get[Symbol.toStringTag](){return"AxiosHeaders"}static from(e){return e instanceof this?e:new this(e)}static concat(e,...t){const n=new this(e);return t.forEach((e=>n.set(e))),n}static accessor(e){const t=(this[Nc]=this[Nc]={accessors:{}}).accessors,n=this.prototype;function r(e){const r=Oc(e);t[r]||(!function(e,t){const n=rc.toCamelCase(" "+t);["get","set","has"].forEach((r=>{Object.defineProperty(e,r+n,{value:function(e,n,o){return this[r].call(this,t,e,n,o)},configurable:!0})}))}(n,e),t[r]=!0)}return rc.isArray(e)?e.forEach(r):r(e),this}};function Pc(e,t){const n=this||_c,r=t||n,o=Tc.from(r.headers);let i=r.data;return rc.forEach(e,(function(e){i=e.call(n,i,o.normalize(),t?t.status:void 0)})),o.normalize(),i}function Dc(e){return!(!e||!e.__CANCEL__)}function jc(e,t,n){oc.call(this,null==e?"canceled":e,oc.ERR_CANCELED,t,n),this.name="CanceledError"}function Lc(e,t,n){const r=n.config.validateStatus;n.status&&r&&!r(n.status)?t(new oc("Request failed with status code "+n.status,[oc.ERR_BAD_REQUEST,oc.ERR_BAD_RESPONSE][Math.floor(n.status/100)-4],n.config,n.request,n)):e(n)}Tc.accessor(["Content-Type","Content-Length","Accept","Accept-Encoding","User-Agent","Authorization"]),rc.reduceDescriptors(Tc.prototype,(({value:e},t)=>{let n=t[0].toUpperCase()+t.slice(1);return{get:()=>e,set(e){this[n]=e}}})),rc.freezeMethods(Tc),rc.inherits(jc,oc,{__CANCEL__:!0});const Fc=(e,t,n=3)=>{let r=0;const o=function(e,t){e=e||10;const n=new Array(e),r=new Array(e);let o,i=0,a=0;return t=void 0!==t?t:1e3,function(s){const l=Date.now(),c=r[a];o||(o=l),n[i]=s,r[i]=l;let u=a,d=0;for(;u!==i;)d+=n[u++],u%=e;if(i=(i+1)%e,i===a&&(a=(a+1)%e),l-o<t)return;const f=c&&l-c;return f?Math.round(1e3*d/f):void 0}}(50,250);return function(e,t){let n,r,o=0,i=1e3/t;const a=(t,i=Date.now())=>{o=i,n=null,r&&(clearTimeout(r),r=null),e.apply(null,t)};return[(...e)=>{const t=Date.now(),s=t-o;s>=i?a(e,t):(n=e,r||(r=setTimeout((()=>{r=null,a(n)}),i-s)))},()=>n&&a(n)]}((n=>{const i=n.loaded,a=n.lengthComputable?n.total:void 0,s=i-r,l=o(s);r=i;e({loaded:i,total:a,progress:a?i/a:void 0,bytes:s,rate:l||void 0,estimated:l&&a&&i<=a?(a-i)/l:void 0,event:n,lengthComputable:null!=a,[t?"download":"upload"]:!0})}),n)},zc=(e,t)=>{const n=null!=e;return[r=>t[0]({lengthComputable:n,total:e,loaded:r}),t[1]]},Bc=e=>(...t)=>rc.asap((()=>e(...t)));var Vc=Sc.hasStandardBrowserEnv?((e,t)=>n=>(n=new URL(n,Sc.origin),e.protocol===n.protocol&&e.host===n.host&&(t||e.port===n.port)))(new URL(Sc.origin),Sc.navigator&&/(msie|trident)/i.test(Sc.navigator.userAgent)):()=>!0,Gc=Sc.hasStandardBrowserEnv?{write(e,t,n,r,o,i){const a=[e+"="+encodeURIComponent(t)];rc.isNumber(n)&&a.push("expires="+new Date(n).toGMTString()),rc.isString(r)&&a.push("path="+r),rc.isString(o)&&a.push("domain="+o),!0===i&&a.push("secure"),document.cookie=a.join("; ")},read(e){const t=document.cookie.match(new RegExp("(^|;\\s*)("+e+")=([^;]*)"));return t?decodeURIComponent(t[3]):null},remove(e){this.write(e,"",Date.now()-864e5)}}:{write(){},read:()=>null,remove(){}};function Wc(e,t){return e&&!/^([a-z][a-z\d+\-.]*:)?\/\//i.test(t)?function(e,t){return t?e.replace(/\/?\/$/,"")+"/"+t.replace(/^\/+/,""):e}(e,t):t}const Hc=e=>e instanceof Tc?{...e}:e;function Xc(e,t){t=t||{};const n={};function r(e,t,n,r){return rc.isPlainObject(e)&&rc.isPlainObject(t)?rc.merge.call({caseless:r},e,t):rc.isPlainObject(t)?rc.merge({},t):rc.isArray(t)?t.slice():t}function o(e,t,n,o){return rc.isUndefined(t)?rc.isUndefined(e)?void 0:r(void 0,e,0,o):r(e,t,0,o)}function i(e,t){if(!rc.isUndefined(t))return r(void 0,t)}function a(e,t){return rc.isUndefined(t)?rc.isUndefined(e)?void 0:r(void 0,e):r(void 0,t)}function s(n,o,i){return i in t?r(n,o):i in e?r(void 0,n):void 0}const l={url:i,method:i,data:i,baseURL:a,transformRequest:a,transformResponse:a,paramsSerializer:a,timeout:a,timeoutMessage:a,withCredentials:a,withXSRFToken:a,adapter:a,responseType:a,xsrfCookieName:a,xsrfHeaderName:a,onUploadProgress:a,onDownloadProgress:a,decompress:a,maxContentLength:a,maxBodyLength:a,beforeRedirect:a,transport:a,httpAgent:a,httpsAgent:a,cancelToken:a,socketPath:a,responseEncoding:a,validateStatus:s,headers:(e,t,n)=>o(Hc(e),Hc(t),0,!0)};return rc.forEach(Object.keys(Object.assign({},e,t)),(function(r){const i=l[r]||o,a=i(e[r],t[r],r);rc.isUndefined(a)&&i!==s||(n[r]=a)})),n}var $c=e=>{const t=Xc({},e);let n,{data:r,withXSRFToken:o,xsrfHeaderName:i,xsrfCookieName:a,headers:s,auth:l}=t;if(t.headers=s=Tc.from(s),t.url=gc(Wc(t.baseURL,t.url),e.params,e.paramsSerializer),l&&s.set("Authorization","Basic "+btoa((l.username||"")+":"+(l.password?unescape(encodeURIComponent(l.password)):""))),rc.isFormData(r))if(Sc.hasStandardBrowserEnv||Sc.hasStandardBrowserWebWorkerEnv)s.setContentType(void 0);else if(!1!==(n=s.getContentType())){const[e,...t]=n?n.split(";").map((e=>e.trim())).filter(Boolean):[];s.setContentType([e||"multipart/form-data",...t].join("; "))}if(Sc.hasStandardBrowserEnv&&(o&&rc.isFunction(o)&&(o=o(t)),o||!1!==o&&Vc(t.url))){const e=i&&a&&Gc.read(a);e&&s.set(i,e)}return t};var Zc="undefined"!=typeof XMLHttpRequest&&function(e){return new Promise((function(t,n){const r=$c(e);let o=r.data;const i=Tc.from(r.headers).normalize();let a,s,l,c,u,{responseType:d,onUploadProgress:f,onDownloadProgress:p}=r;function h(){c&&c(),u&&u(),r.cancelToken&&r.cancelToken.unsubscribe(a),r.signal&&r.signal.removeEventListener("abort",a)}let m=new XMLHttpRequest;function g(){if(!m)return;const r=Tc.from("getAllResponseHeaders"in m&&m.getAllResponseHeaders());Lc((function(e){t(e),h()}),(function(e){n(e),h()}),{data:d&&"text"!==d&&"json"!==d?m.response:m.responseText,status:m.status,statusText:m.statusText,headers:r,config:e,request:m}),m=null}m.open(r.method.toUpperCase(),r.url,!0),m.timeout=r.timeout,"onloadend"in m?m.onloadend=g:m.onreadystatechange=function(){m&&4===m.readyState&&(0!==m.status||m.responseURL&&0===m.responseURL.indexOf("file:"))&&setTimeout(g)},m.onabort=function(){m&&(n(new oc("Request aborted",oc.ECONNABORTED,e,m)),m=null)},m.onerror=function(){n(new oc("Network Error",oc.ERR_NETWORK,e,m)),m=null},m.ontimeout=function(){let t=r.timeout?"timeout of "+r.timeout+"ms exceeded":"timeout exceeded";const o=r.transitional||bc;r.timeoutErrorMessage&&(t=r.timeoutErrorMessage),n(new oc(t,o.clarifyTimeoutError?oc.ETIMEDOUT:oc.ECONNABORTED,e,m)),m=null},void 0===o&&i.setContentType(null),"setRequestHeader"in m&&rc.forEach(i.toJSON(),(function(e,t){m.setRequestHeader(t,e)})),rc.isUndefined(r.withCredentials)||(m.withCredentials=!!r.withCredentials),d&&"json"!==d&&(m.responseType=r.responseType),p&&([l,u]=Fc(p,!0),m.addEventListener("progress",l)),f&&m.upload&&([s,c]=Fc(f),m.upload.addEventListener("progress",s),m.upload.addEventListener("loadend",c)),(r.cancelToken||r.signal)&&(a=t=>{m&&(n(!t||t.type?new jc(null,e,m):t),m.abort(),m=null)},r.cancelToken&&r.cancelToken.subscribe(a),r.signal&&(r.signal.aborted?a():r.signal.addEventListener("abort",a)));const y=function(e){const t=/^([-+\w]{1,25})(:?\/\/|:)/.exec(e);return t&&t[1]||""}(r.url);y&&-1===Sc.protocols.indexOf(y)?n(new oc("Unsupported protocol "+y+":",oc.ERR_BAD_REQUEST,e)):m.send(o||null)}))};const Yc=(e,t)=>{const{length:n}=e=e?e.filter(Boolean):[];if(t||n){let n,r=new AbortController;const o=function(e){if(!n){n=!0,a();const t=e instanceof Error?e:this.reason;r.abort(t instanceof oc?t:new jc(t instanceof Error?t.message:t))}};let i=t&&setTimeout((()=>{i=null,o(new oc(`timeout ${t} of ms exceeded`,oc.ETIMEDOUT))}),t);const a=()=>{e&&(i&&clearTimeout(i),i=null,e.forEach((e=>{e.unsubscribe?e.unsubscribe(o):e.removeEventListener("abort",o)})),e=null)};e.forEach((e=>e.addEventListener("abort",o)));const{signal:s}=r;return s.unsubscribe=()=>rc.asap(a),s}},Uc=function*(e,t){let n=e.byteLength;if(n<t)return void(yield e);let r,o=0;for(;o<n;)r=o+t,yield e.slice(o,r),o=r},Jc=async function*(e){if(e[Symbol.asyncIterator])return void(yield*e);const t=e.getReader();try{for(;;){const{done:e,value:n}=await t.read();if(e)break;yield n}}finally{await t.cancel()}},Kc=(e,t,n,r)=>{const o=async function*(e,t){for await(const n of Jc(e))yield*Uc(n,t)}(e,t);let i,a=0,s=e=>{i||(i=!0,r&&r(e))};return new ReadableStream({async pull(e){try{const{done:t,value:r}=await o.next();if(t)return s(),void e.close();let i=r.byteLength;if(n){let e=a+=i;n(e)}e.enqueue(new Uint8Array(r))}catch(e){throw s(e),e}},cancel:e=>(s(e),o.return())},{highWaterMark:2})},qc="function"==typeof fetch&&"function"==typeof Request&&"function"==typeof Response,Qc=qc&&"function"==typeof ReadableStream,eu=qc&&("function"==typeof TextEncoder?(tu=new TextEncoder,e=>tu.encode(e)):async e=>new Uint8Array(await new Response(e).arrayBuffer()));var tu;const nu=(e,...t)=>{try{return!!e(...t)}catch(e){return!1}},ru=Qc&&nu((()=>{let e=!1;const t=new Request(Sc.origin,{body:new ReadableStream,method:"POST",get duplex(){return e=!0,"half"}}).headers.has("Content-Type");return e&&!t})),ou=Qc&&nu((()=>rc.isReadableStream(new Response("").body))),iu={stream:ou&&(e=>e.body)};var au;qc&&(au=new Response,["text","arrayBuffer","blob","formData","stream"].forEach((e=>{!iu[e]&&(iu[e]=rc.isFunction(au[e])?t=>t[e]():(t,n)=>{throw new oc(`Response type '${e}' is not supported`,oc.ERR_NOT_SUPPORT,n)})})));const su=async(e,t)=>{const n=rc.toFiniteNumber(e.getContentLength());return null==n?(async e=>{if(null==e)return 0;if(rc.isBlob(e))return e.size;if(rc.isSpecCompliantForm(e)){const t=new Request(Sc.origin,{method:"POST",body:e});return(await t.arrayBuffer()).byteLength}return rc.isArrayBufferView(e)||rc.isArrayBuffer(e)?e.byteLength:(rc.isURLSearchParams(e)&&(e+=""),rc.isString(e)?(await eu(e)).byteLength:void 0)})(t):n};var lu=qc&&(async e=>{let{url:t,method:n,data:r,signal:o,cancelToken:i,timeout:a,onDownloadProgress:s,onUploadProgress:l,responseType:c,headers:u,withCredentials:d="same-origin",fetchOptions:f}=$c(e);c=c?(c+"").toLowerCase():"text";let p,h=Yc([o,i&&i.toAbortSignal()],a);const m=h&&h.unsubscribe&&(()=>{h.unsubscribe()});let g;try{if(l&&ru&&"get"!==n&&"head"!==n&&0!==(g=await su(u,r))){let e,n=new Request(t,{method:"POST",body:r,duplex:"half"});if(rc.isFormData(r)&&(e=n.headers.get("content-type"))&&u.setContentType(e),n.body){const[e,t]=zc(g,Fc(Bc(l)));r=Kc(n.body,65536,e,t)}}rc.isString(d)||(d=d?"include":"omit");const o="credentials"in Request.prototype;p=new Request(t,{...f,signal:h,method:n.toUpperCase(),headers:u.normalize().toJSON(),body:r,duplex:"half",credentials:o?d:void 0});let i=await fetch(p);const a=ou&&("stream"===c||"response"===c);if(ou&&(s||a&&m)){const e={};["status","statusText","headers"].forEach((t=>{e[t]=i[t]}));const t=rc.toFiniteNumber(i.headers.get("content-length")),[n,r]=s&&zc(t,Fc(Bc(s),!0))||[];i=new Response(Kc(i.body,65536,n,(()=>{r&&r(),m&&m()})),e)}c=c||"text";let y=await iu[rc.findKey(iu,c)||"text"](i,e);return!a&&m&&m(),await new Promise(((t,n)=>{Lc(t,n,{data:y,headers:Tc.from(i.headers),status:i.status,statusText:i.statusText,config:e,request:p})}))}catch(t){if(m&&m(),t&&"TypeError"===t.name&&/fetch/i.test(t.message))throw Object.assign(new oc("Network Error",oc.ERR_NETWORK,e,p),{cause:t.cause||t});throw oc.from(t,t&&t.code,e,p)}});const cu={http:null,xhr:Zc,fetch:lu};rc.forEach(cu,((e,t)=>{if(e){try{Object.defineProperty(e,"name",{value:t})}catch(e){}Object.defineProperty(e,"adapterName",{value:t})}}));const uu=e=>`- ${e}`,du=e=>rc.isFunction(e)||null===e||!1===e;var fu=e=>{e=rc.isArray(e)?e:[e];const{length:t}=e;let n,r;const o={};for(let i=0;i<t;i++){let t;if(n=e[i],r=n,!du(n)&&(r=cu[(t=String(n)).toLowerCase()],void 0===r))throw new oc(`Unknown adapter '${t}'`);if(r)break;o[t||"#"+i]=r}if(!r){const e=Object.entries(o).map((([e,t])=>`adapter ${e} `+(!1===t?"is not supported by the environment":"is not available in the build")));throw new oc("There is no suitable adapter to dispatch the request "+(t?e.length>1?"since :\n"+e.map(uu).join("\n"):" "+uu(e[0]):"as no adapter specified"),"ERR_NOT_SUPPORT")}return r};function pu(e){if(e.cancelToken&&e.cancelToken.throwIfRequested(),e.signal&&e.signal.aborted)throw new jc(null,e)}function hu(e){pu(e),e.headers=Tc.from(e.headers),e.data=Pc.call(e,e.transformRequest),-1!==["post","put","patch"].indexOf(e.method)&&e.headers.setContentType("application/x-www-form-urlencoded",!1);return fu(e.adapter||_c.adapter)(e).then((function(t){return pu(e),t.data=Pc.call(e,e.transformResponse,t),t.headers=Tc.from(t.headers),t}),(function(t){return Dc(t)||(pu(e),t&&t.response&&(t.response.data=Pc.call(e,e.transformResponse,t.response),t.response.headers=Tc.from(t.response.headers))),Promise.reject(t)}))}const mu="1.7.9",gu={};["object","boolean","number","function","string","symbol"].forEach(((e,t)=>{gu[e]=function(n){return typeof n===e||"a"+(t<1?"n ":" ")+e}}));const yu={};gu.transitional=function(e,t,n){function r(e,t){return"[Axios v1.7.9] Transitional option '"+e+"'"+t+(n?". "+n:"")}return(n,o,i)=>{if(!1===e)throw new oc(r(o," has been removed"+(t?" in "+t:"")),oc.ERR_DEPRECATED);return t&&!yu[o]&&(yu[o]=!0,console.warn(r(o," has been deprecated since v"+t+" and will be removed in the near future"))),!e||e(n,o,i)}},gu.spelling=function(e){return(t,n)=>(console.warn(`${n} is likely a misspelling of ${e}`),!0)};var bu={assertOptions:function(e,t,n){if("object"!=typeof e)throw new oc("options must be an object",oc.ERR_BAD_OPTION_VALUE);const r=Object.keys(e);let o=r.length;for(;o-- >0;){const i=r[o],a=t[i];if(a){const t=e[i],n=void 0===t||a(t,i,e);if(!0!==n)throw new oc("option "+i+" must be "+n,oc.ERR_BAD_OPTION_VALUE)}else if(!0!==n)throw new oc("Unknown option "+i,oc.ERR_BAD_OPTION)}},validators:gu};const vu=bu.validators;let wu=class{constructor(e){this.defaults=e,this.interceptors={request:new yc,response:new yc}}async request(e,t){try{return await this._request(e,t)}catch(e){if(e instanceof Error){let t={};Error.captureStackTrace?Error.captureStackTrace(t):t=new Error;const n=t.stack?t.stack.replace(/^.+\n/,""):"";try{e.stack?n&&!String(e.stack).endsWith(n.replace(/^.+\n.+\n/,""))&&(e.stack+="\n"+n):e.stack=n}catch(e){}}throw e}}_request(e,t){"string"==typeof e?(t=t||{}).url=e:t=e||{},t=Xc(this.defaults,t);const{transitional:n,paramsSerializer:r,headers:o}=t;void 0!==n&&bu.assertOptions(n,{silentJSONParsing:vu.transitional(vu.boolean),forcedJSONParsing:vu.transitional(vu.boolean),clarifyTimeoutError:vu.transitional(vu.boolean)},!1),null!=r&&(rc.isFunction(r)?t.paramsSerializer={serialize:r}:bu.assertOptions(r,{encode:vu.function,serialize:vu.function},!0)),bu.assertOptions(t,{baseUrl:vu.spelling("baseURL"),withXsrfToken:vu.spelling("withXSRFToken")},!0),t.method=(t.method||this.defaults.method||"get").toLowerCase();let i=o&&rc.merge(o.common,o[t.method]);o&&rc.forEach(["delete","get","head","post","put","patch","common"],(e=>{delete o[e]})),t.headers=Tc.concat(i,o);const a=[];let s=!0;this.interceptors.request.forEach((function(e){"function"==typeof e.runWhen&&!1===e.runWhen(t)||(s=s&&e.synchronous,a.unshift(e.fulfilled,e.rejected))}));const l=[];let c;this.interceptors.response.forEach((function(e){l.push(e.fulfilled,e.rejected)}));let u,d=0;if(!s){const e=[hu.bind(this),void 0];for(e.unshift.apply(e,a),e.push.apply(e,l),u=e.length,c=Promise.resolve(t);d<u;)c=c.then(e[d++],e[d++]);return c}u=a.length;let f=t;for(d=0;d<u;){const e=a[d++],t=a[d++];try{f=e(f)}catch(e){t.call(this,e);break}}try{c=hu.call(this,f)}catch(e){return Promise.reject(e)}for(d=0,u=l.length;d<u;)c=c.then(l[d++],l[d++]);return c}getUri(e){return gc(Wc((e=Xc(this.defaults,e)).baseURL,e.url),e.params,e.paramsSerializer)}};rc.forEach(["delete","get","head","options"],(function(e){wu.prototype[e]=function(t,n){return this.request(Xc(n||{},{method:e,url:t,data:(n||{}).data}))}})),rc.forEach(["post","put","patch"],(function(e){function t(t){return function(n,r,o){return this.request(Xc(o||{},{method:e,headers:t?{"Content-Type":"multipart/form-data"}:{},url:n,data:r}))}}wu.prototype[e]=t(),wu.prototype[e+"Form"]=t(!0)}));const xu={Continue:100,SwitchingProtocols:101,Processing:102,EarlyHints:103,Ok:200,Created:201,Accepted:202,NonAuthoritativeInformation:203,NoContent:204,ResetContent:205,PartialContent:206,MultiStatus:207,AlreadyReported:208,ImUsed:226,MultipleChoices:300,MovedPermanently:301,Found:302,SeeOther:303,NotModified:304,UseProxy:305,Unused:306,TemporaryRedirect:307,PermanentRedirect:308,BadRequest:400,Unauthorized:401,PaymentRequired:402,Forbidden:403,NotFound:404,MethodNotAllowed:405,NotAcceptable:406,ProxyAuthenticationRequired:407,RequestTimeout:408,Conflict:409,Gone:410,LengthRequired:411,PreconditionFailed:412,PayloadTooLarge:413,UriTooLong:414,UnsupportedMediaType:415,RangeNotSatisfiable:416,ExpectationFailed:417,ImATeapot:418,MisdirectedRequest:421,UnprocessableEntity:422,Locked:423,FailedDependency:424,TooEarly:425,UpgradeRequired:426,PreconditionRequired:428,TooManyRequests:429,RequestHeaderFieldsTooLarge:431,UnavailableForLegalReasons:451,InternalServerError:500,NotImplemented:501,BadGateway:502,ServiceUnavailable:503,GatewayTimeout:504,HttpVersionNotSupported:505,VariantAlsoNegotiates:506,InsufficientStorage:507,LoopDetected:508,NotExtended:510,NetworkAuthenticationRequired:511};Object.entries(xu).forEach((([e,t])=>{xu[t]=e}));const Cu=function e(t){const n=new wu(t),r=gl(wu.prototype.request,n);return rc.extend(r,wu.prototype,n,{allOwnKeys:!0}),rc.extend(r,n,null,{allOwnKeys:!0}),r.create=function(n){return e(Xc(t,n))},r}(_c);Cu.Axios=wu,Cu.CanceledError=jc,Cu.CancelToken=class e{constructor(e){if("function"!=typeof e)throw new TypeError("executor must be a function.");let t;this.promise=new Promise((function(e){t=e}));const n=this;this.promise.then((e=>{if(!n._listeners)return;let t=n._listeners.length;for(;t-- >0;)n._listeners[t](e);n._listeners=null})),this.promise.then=e=>{let t;const r=new Promise((e=>{n.subscribe(e),t=e})).then(e);return r.cancel=function(){n.unsubscribe(t)},r},e((function(e,r,o){n.reason||(n.reason=new jc(e,r,o),t(n.reason))}))}throwIfRequested(){if(this.reason)throw this.reason}subscribe(e){this.reason?e(this.reason):this._listeners?this._listeners.push(e):this._listeners=[e]}unsubscribe(e){if(!this._listeners)return;const t=this._listeners.indexOf(e);-1!==t&&this._listeners.splice(t,1)}toAbortSignal(){const e=new AbortController,t=t=>{e.abort(t)};return this.subscribe(t),e.signal.unsubscribe=()=>this.unsubscribe(t),e.signal}static source(){let t;return{token:new e((function(e){t=e})),cancel:t}}},Cu.isCancel=Dc,Cu.VERSION=mu,Cu.toFormData=dc,Cu.AxiosError=oc,Cu.Cancel=Cu.CanceledError,Cu.all=function(e){return Promise.all(e)},Cu.spread=function(e){return function(t){return e.apply(null,t)}},Cu.isAxiosError=function(e){return rc.isObject(e)&&!0===e.isAxiosError},Cu.mergeConfig=Xc,Cu.AxiosHeaders=Tc,Cu.formToJSON=e=>Ic(rc.isHTMLForm(e)?new FormData(e):e),Cu.getAdapter=fu,Cu.HttpStatusCode=xu,Cu.default=Cu;const{Axios:ku,AxiosError:Eu,CanceledError:Su,isCancel:Iu,CancelToken:_u,VERSION:Au,all:Nu,Cancel:Ou,isAxiosError:Ru,spread:Mu,toFormData:Tu,AxiosHeaders:Pu,HttpStatusCode:Du,formToJSON:ju,getAdapter:Lu,mergeConfig:Fu}=Cu;let zu;const Bu=new Uint8Array(16);function Vu(){if(!zu&&(zu="undefined"!=typeof crypto&&crypto.getRandomValues&&crypto.getRandomValues.bind(crypto),!zu))throw new Error("crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported");return zu(Bu)}const Gu=[];for(let e=0;e<256;++e)Gu.push((e+256).toString(16).slice(1));var Wu={randomUUID:"undefined"!=typeof crypto&&crypto.randomUUID&&crypto.randomUUID.bind(crypto)};function Hu(e,t,n){if(Wu.randomUUID&&!e)return Wu.randomUUID();const r=(e=e||{}).random||(e.rng||Vu)();return r[6]=15&r[6]|64,r[8]=63&r[8]|128,function(e,t=0){return Gu[e[t+0]]+Gu[e[t+1]]+Gu[e[t+2]]+Gu[e[t+3]]+"-"+Gu[e[t+4]]+Gu[e[t+5]]+"-"+Gu[e[t+6]]+Gu[e[t+7]]+"-"+Gu[e[t+8]]+Gu[e[t+9]]+"-"+Gu[e[t+10]]+Gu[e[t+11]]+Gu[e[t+12]]+Gu[e[t+13]]+Gu[e[t+14]]+Gu[e[t+15]]}(r)}class Xu{constructor(e){this._hooks=new Map,this._ns_event_intercepts=new Map,this._unique_cmd_outs={},this.uuid=e.uuid,this.on_error=e.on_error||(e=>{this._zustand?.logger.error(e)}),this.messagePromises=new Map,this._local_nodeupdates=new Map,this._nodeupdatetimer=setTimeout((()=>{this.sync_local_node_updates()}),5e3),this.state=Y(((e,t)=>({is_open:!1}))),e.zustand&&this.set_zustand(e.zustand),e.on_sync_complete?this.on_sync_complete=e.on_sync_complete:this.on_sync_complete=async()=>{},this._responsive=!1,this._last_pong=Date.now()-36e5,setInterval((()=>{this.is_open&&this.send({type:"ping"})}),1e3),setInterval((()=>{Date.now()-this._last_pong>5e3?this._responsive=!1:this._responsive=!0}),5e3)}_receive_pong(){this._last_pong=Date.now(),this._responsive=!0}set_zustand(e){e!==this._zustand&&(this._zustand=e,e.set_worker(this),this._zustand.auto_progress(),this.stepwise_fullsync())}add_hook(e,t){const n=this._hooks.get(e)||[];n.push(t),this._hooks.set(e,n);return()=>{const n=this._hooks.get(e)||[],r=n.indexOf(t);r>=0&&n.splice(r,1)}}async call_hooks(e,t){const n=[];for(const r of this._hooks.get(e)||[]){const e=r({worker:this,data:t});e instanceof Promise&&n.push(e)}await Promise.all(n)}add_ns_event_intercept(e,t){const n=this._ns_event_intercepts.get(e)||[];n.push(t),this._ns_event_intercepts.set(e,n);return()=>{const n=this._ns_event_intercepts.get(e)||[],r=n.indexOf(t);r>=0&&n.splice(r,1)}}async intercept_ns_event(e){let t=e;for(const n of this._ns_event_intercepts.get(e.event)||[])t=await n(t);return t}get is_open(){return this.state.getState().is_open}set is_open(e){this.state.setState({is_open:e})}async stepwise_fullsync(){this._zustand&&this.is_open&&(await this.sync_lib(),await this.sync_external_worker(),await this.sync_funcnodes_plugins(),await this.sync_nodespace(),await this.sync_view_state(),await this.on_sync_complete(this))}async sync_lib(){if(!this._zustand)return;if(!this.is_open)return;const e=await this._send_cmd({cmd:"get_library",wait_for_response:!0,retries:2,unique:!0});this._zustand.lib.libstate.getState().set({lib:e})}async sync_external_worker(){if(!this._zustand)return;if(!this.is_open)return;const e=await this._send_cmd({cmd:"get_worker_dependencies",wait_for_response:!0,unique:!0});this._zustand.lib.libstate.getState().set({external_worker:e})}async sync_funcnodes_plugins(){if(!this._zustand)return;if(!this.is_open)return;const e=await this._send_cmd({cmd:"get_plugin_keys",wait_for_response:!0,unique:!0,kwargs:{type:"react"}});for(const t of e){const e=await this._send_cmd({cmd:"get_plugin",wait_for_response:!0,kwargs:{key:t,type:"react"},unique:!0});if(e.js)for(const t of e.js){const e=document.createElement("script");e.text=atob(t),document.body.appendChild(e)}if(e.css)for(const t of e.css){const e=document.createElement("style");e.innerHTML=atob(t),document.head.appendChild(e)}if(void 0!==e.module){const n=atob(e.module),r=n.length,o=new Uint8Array(r);for(let e=0;e<r;e++)o[e]=n.charCodeAt(e);const i=new Blob([o],{type:"application/javascript"}),a=URL.createObjectURL(i),s=await import(a);URL.revokeObjectURL(a),this._zustand.add_plugin(t,s.default)}}}async sync_view_state(){if(!this._zustand)return;if(!this.is_open)return;const e=await this._send_cmd({cmd:"view_state",wait_for_response:!0,unique:!0});e.renderoptions&&this._zustand.update_render_options(e.renderoptions);const t=e.nodes;if(t)for(const e in t){const n={};ne(n,t[e]),this._zustand.on_node_action({type:"update",node:n,id:e,from_remote:!0})}}async sync_nodespace(){if(!this._zustand)return;if(!this.is_open)return;const e=await this._send_cmd({cmd:"get_nodes",kwargs:{with_frontend:!0},wait_for_response:!0,unique:!0});for(const t of e)this._receive_node_added(t);const t=await this._send_cmd({cmd:"get_edges",wait_for_response:!0,unique:!0});for(const e of t)this._receive_edge_added(...e)}async fullsync(){if(!this._zustand)return;if(!this.is_open)return;let e;for(;;)try{e=await this._send_cmd({cmd:"full_state",unique:!0});break}catch(e){this._zustand.logger.error("Error in fullsync",e)}this._zustand.logger.debug("Full state",e),this._zustand.lib.libstate.getState().set({lib:e.backend.lib,external_worker:e.worker_dependencies}),e.view.renderoptions&&this._zustand.update_render_options(e.view.renderoptions);const t=e.view.nodes;for(const n of e.backend.nodes)void 0!==t[n.id]&&ne(n,t[n.id]),this._receive_node_added(n);for(const t of e.backend.edges)this._receive_edge_added(...t)}async _receive_edge_added(e,t,n,r){this._zustand&&this._zustand.on_edge_action({type:"add",from_remote:!0,src_nid:e,src_ioid:t,trg_nid:n,trg_ioid:r})}async trigger_node(e){await this._send_cmd({cmd:"trigger_node",kwargs:{nid:e},wait_for_response:!1})}async add_node(e){const t=await this._send_cmd({cmd:"add_node",kwargs:{id:e}});this._receive_node_added(t)}async remove_node(e){await this._send_cmd({cmd:"remove_node",kwargs:{id:e}})}async _receive_node_added(e){this._zustand&&this._zustand.on_node_action({type:"add",node:e,id:e.id,from_remote:!0})}add_edge({src_nid:e,src_ioid:t,trg_nid:n,trg_ioid:r,replace:o=!1}){return this._send_cmd({cmd:"add_edge",kwargs:{src_nid:e,src_ioid:t,trg_nid:n,trg_ioid:r,replace:o}})}remove_edge({src_nid:e,src_ioid:t,trg_nid:n,trg_ioid:r}){return this._send_cmd({cmd:"remove_edge",kwargs:{src_nid:e,src_ioid:t,trg_nid:n,trg_ioid:r}})}async add_external_worker({module:e,cls_module:t,cls_name:n}){return await this._send_cmd({cmd:"add_external_worker",kwargs:{module:e,cls_module:t,cls_name:n}})}sync_local_node_updates(){clearTimeout(this._nodeupdatetimer),this._local_nodeupdates.forEach((async(e,t)=>{const n=await this._send_cmd({cmd:"update_node",kwargs:{nid:t,data:e},wait_for_response:!0});this._zustand&&this._zustand.on_node_action({type:"update",node:n,id:t,from_remote:!0})})),this._local_nodeupdates.clear(),this._nodeupdatetimer=setTimeout((()=>{this.sync_local_node_updates()}),200)}locally_update_node(e){const t=this._local_nodeupdates.get(e.id);if(t){const{new_obj:n,change:r}=K(t,e.node);r&&this._local_nodeupdates.set(e.id,n)}else this._local_nodeupdates.set(e.id,e.node);e.immediate&&this.sync_local_node_updates()}async get_remote_node_state(e){const t=await this._send_cmd({cmd:"get_node_state",kwargs:{nid:e},wait_for_response:!0});this._zustand&&this._zustand.on_node_action({type:"update",node:t,id:t.id,from_remote:!0})}set_io_value({nid:e,ioid:t,value:n,set_default:r=!1}){return this._send_cmd({cmd:"set_io_value",kwargs:{nid:e,ioid:t,value:n,set_default:r},wait_for_response:!0})}clear(){return this._send_cmd({cmd:"clear",unique:!0})}save(){return this._send_cmd({cmd:"save",wait_for_response:!0,unique:!0})}load(e){return this._send_cmd({cmd:"load_data",kwargs:{data:e},wait_for_response:!0}).then((()=>{this.stepwise_fullsync()}))}async get_io_value({nid:e,ioid:t}){const n=await this._send_cmd({cmd:"get_io_value",kwargs:{nid:e,ioid:t},wait_for_response:!0});return this._zustand?(this._zustand.on_node_action({type:"update",node:{io:{[t]:{value:n}}},id:e,from_remote:!0}),n):n}async get_ios_values({nid:e}){const t=await this._send_cmd({cmd:"get_ios_values",kwargs:{nid:e},wait_for_response:!0});if(!this._zustand)return t;const n={};for(const e in t)n[e]={value:t[e]};return this._zustand.on_node_action({type:"update",node:{io:n},id:e,from_remote:!0}),t}async get_runstate(){return await this._send_cmd({cmd:"get_runstate",wait_for_response:!0,unique:!0})}async _send_cmd({cmd:e,kwargs:t,wait_for_response:n=!0,response_timeout:r=5e3,retries:o=2,unique:i=!1}){const a={type:"cmd",cmd:e,kwargs:t||{}};if(await new Promise((async e=>{if(this._responsive)return e();const t=setInterval((()=>{this._responsive&&(clearInterval(t),e())}),100)})),n){if(i&&void 0!==this._unique_cmd_outs[a.cmd])return this._unique_cmd_outs[a.cmd];o<0&&(o=0);const t=async()=>{let t;for(;o>=0;){const n=a.id||Hu();a.id=n;const i=new Promise(((t,o)=>{const i=setTimeout((()=>{o("Timeout@wait_for_response for "+e)}),r);this.messagePromises.set(n,{resolve:e=>{clearTimeout(i),t(e),this.messagePromises.delete(n)},reject:e=>{clearTimeout(i),o(e),this.messagePromises.delete(n)}})}));await this.send(a);try{t=await i;break}catch(e){if(0===o)throw delete this._unique_cmd_outs[a.cmd],e;o-=1;continue}}return delete this._unique_cmd_outs[a.cmd],t},n=t();return i&&(this._unique_cmd_outs[a.cmd]=n),n}return this.send(a)}async send(e){throw new Error("async send(data: any) not implemented")}async upload_file({files:e,onProgressCallback:t,root:n}){throw new Error("upload_file not implemented ")}async handle_large_message_hint({}){throw new Error("async handle_large_message_hint({}: LargeMessageHint) not implemented ")}async receive_workerevent({event:e,data:t}){switch(e){case"worker_error":if(!this._zustand)return;return this._zustand.logger.error(t.error);case"update_worker_dependencies":if(!this._zustand)return;return this._zustand.lib.libstate.getState().set({external_worker:t.worker_dependencies});case"lib_update":return void await this.sync_lib();case"fullsync":return void await this.stepwise_fullsync();case"external_worker_update":return await this.sync_lib(),void await this.sync_external_worker();case"starting":return void this.call_hooks("starting");case"stopping":return void this.call_hooks("stopping");default:console.warn("Unhandled worker event",e,t)}}async receive_nodespace_event(e){const{event:t,data:n}=await this.intercept_ns_event(e);switch(t){case"after_set_value":if(!this._zustand)return;return this._zustand.on_node_action({type:"update",node:{id:n.node,io:{[n.io]:{value:n.result}}},id:n.node,from_remote:!0});case"after_update_value_options":if(!this._zustand)return;return this._zustand.on_node_action({type:"update",node:{id:n.node,io:{[n.io]:{value_options:n.result}}},id:n.node,from_remote:!0});case"triggerstart":if(!this._zustand)return;return this._zustand.on_node_action({type:"update",node:{id:n.node,in_trigger:!0},id:n.node,from_remote:!0});case"triggerdone":if(!this._zustand)return;return this._zustand.on_node_action({type:"update",node:{id:n.node,in_trigger:!1},id:n.node,from_remote:!0});case"node_trigger_error":if(!this._zustand)return;return this._zustand.on_node_action({type:"error",errortype:"trigger",error:n.error,id:n.node,tb:n.tb,from_remote:!0});case"node_removed":if(!this._zustand)return;return this._zustand.on_node_action({type:"delete",id:n.node,from_remote:!0}),void this.call_hooks("node_removed",{node:n.node});case"node_added":return void this._receive_node_added(n.node);case"after_disconnect":case"after_unforward":if(!n.result)return;if(!Array.isArray(n.result))return;if(4!==n.result.length)return;if(!this._zustand)return;return this._zustand.on_edge_action({type:"delete",from_remote:!0,src_nid:n.result[0],src_ioid:n.result[1],trg_nid:n.result[2],trg_ioid:n.result[3]});case"after_connect":case"after_forward":if(!n.result)return;if(!Array.isArray(n.result))return;if(4!==n.result.length)return;return this._receive_edge_added(...n.result);case"after_add_shelf":case"after_remove_shelf":if(!n.result)return;if(!this._zustand)return;return this._zustand.lib.libstate.getState().set({lib:n.result});case"progress":if(!this._zustand)return;if(n.node)return this._zustand.on_node_action({type:"update",node:{id:n.node,progress:n.info},id:n.node,from_remote:!0});console.warn("Unhandled nodepsace event",t,n);break;default:console.warn("Unhandled nodepsace event",t,n)}}async add_lib(e,t){return await this._send_cmd({cmd:"add_package_dependency",kwargs:{name:e,version:t},wait_for_response:!1})}async remove_lib(e){return await this._send_cmd({cmd:"remove_package_dependency",kwargs:{name:e},wait_for_response:!1})}async receive(e){let t;switch(this._last_pong=Date.now(),this._responsive=!0,e.type){case"pong":return void this._receive_pong();case"nsevent":return await this.receive_nodespace_event(e);case"result":if(t=e.id&&this.messagePromises.get(e.id),t)return t.resolve(e.result);break;case"error":if(this.on_error(e.tb+"\n"+e.error),t=e.id&&this.messagePromises.get(e.id),t)return t.reject(e.error);break;case"progress":if(!this._zustand)return;this._zustand.set_progress(e);break;case"workerevent":return await this.receive_workerevent(e);case"large_message":return await this.handle_large_message_hint(e);default:console.warn("Unhandled message",e)}}disconnect(){}onclose(){this.is_open=!1,this._zustand&&this._zustand.auto_progress()}async reconnect(){}async stop(){await this._send_cmd({cmd:"stop_worker",wait_for_response:!1});const e=this.onclose.bind(this);this.onclose=()=>{e(),this._zustand&&(this._zustand.worker===this&&this._zustand.clear_all(),this.onclose=e)}}async get_io_full_value({nid:e,ioid:t}){const n=await this._send_cmd({cmd:"get_io_full_value",kwargs:{nid:e,ioid:t},wait_for_response:!0});return this._zustand?(this._zustand.on_node_action({type:"update",node:{io:{[t]:{fullvalue:n}}},id:e,from_remote:!0}),n):n}async update_io_options({nid:e,ioid:t,options:n}){const r=await this._send_cmd({cmd:"update_io_options",kwargs:{nid:e,ioid:t,...n},wait_for_response:!0});if(!this._zustand)return r;this._zustand.on_node_action({type:"update",node:{io:{[t]:{...n}}},id:e,from_remote:!0})}async get_node_status(e){return await this._send_cmd({cmd:"get_node_state",kwargs:{nid:e},wait_for_response:!0})}async get_available_modules(){return await this._send_cmd({cmd:"get_available_modules",wait_for_response:!0,unique:!0})}async update_external_worker(e,t,n){return await this._send_cmd({cmd:"update_external_worker",kwargs:{worker_id:e,class_id:t,...n},wait_for_response:!0})}async remove_external_worker(e,t){return await this._send_cmd({cmd:"remove_external_worker",kwargs:{worker_id:e,class_id:t},wait_for_response:!0})}async export({withFiles:e=!1}){return await this._send_cmd({cmd:"export_worker",wait_for_response:!0,kwargs:{with_files:e}})}async update_from_export(e){const t=this.add_hook("node_added",(async({})=>{this._zustand?.center_all()}));try{const t=await this._send_cmd({cmd:"update_from_export",kwargs:{data:e},wait_for_response:!0,response_timeout:6e5,unique:!0});return await new Promise((e=>{setTimeout((()=>{e()}),1e3)})),await this.stepwise_fullsync(),t}finally{t()}}}class $u extends Xu{constructor(e){super(e),this._websocket=null,this.reconnectAttempts=0,this.maxReconnectAttempts=999,this.initialTimeout=200,this.maxTimeout=5e3,this._reconnect=!0,this._url=e.url,new Promise((e=>{this.connect(),e(null)})),this._zustand&&this._zustand.auto_progress()}connect(){this._zustand?.logger.info("Connecting to websocket"),this.is_open=!1,this._websocket=new WebSocket(this._url),this._websocket.onopen=()=>{this.onopen()},this._websocket.onclose=()=>{this.onclose()},this._websocket.onerror=()=>{this.on_ws_error()},this._websocket.onmessage=e=>{this.onmessage(e.data)}}calculateReconnectTimeout(){return Math.min(this.initialTimeout*Math.pow(2,this.reconnectAttempts),this.maxTimeout)}auto_reconnect(){if(this.reconnectAttempts<this.maxReconnectAttempts){let e=this.calculateReconnectTimeout();this._zustand?.logger.info(`Attempting to reconnect in ${e} ms`),setTimeout((()=>{this._websocket&&this._websocket.readyState===WebSocket.OPEN||(this.reconnectAttempts++,this.connect())}),e)}else this._zustand?.logger.warn("Maximum reconnect attempts reached. Giving up.")}async onmessage(e){const t=JSON.parse(e);this._zustand?.logger.debug(`Recieved data of length: ${e.length} and data"`,t),await this.receive(t)}get http_protocol(){return this.secure_url?"https":"http"}get secure_url(){return this._url.startsWith("wss")}get url_wo_protocol(){return this._url.substring(this.secure_url?6:5)}get http_url(){var e=this.http_protocol+"://"+this.url_wo_protocol;return"/"!==e[e.length-1]&&(e+="/"),e}async upload_file({files:e,onProgressCallback:t,root:n}){const r=`${this.http_url}upload/`,o=new FormData,i=Array.isArray(e)?e:Array.from(e);for(const e of i){const t=e.webkitRelativePath||e.name,r=n?`${n}/${t}`:t;o.append("file",e,r)}try{return(await Cu.post(r,o,{headers:{"Content-Type":"multipart/form-data"},onUploadProgress:e=>{t&&t(e.loaded,e.total)}})).data.file}catch(e){throw new Error("Failed to upload file")}}async handle_large_message_hint({msg_id:e}){const t=this.http_url+"message/"+e,n=await fetch(t,{method:"GET",headers:{"Content-Type":"application/json","Access-Control-Allow-Origin":"*"}}),r=await n.json();this.receive(r)}onopen(){this._zustand?.logger.info("Websocket opened"),this.is_open=!0,this._zustand&&this._zustand.auto_progress(),this.reconnectAttempts=0,this.stepwise_fullsync()}onclose(){this._zustand?.logger.info("Websocket closed"),super.onclose(),this._reconnect&&(this._zustand?.logger.info("Websocket closed,reconnecting"),this.auto_reconnect())}on_ws_error(){this._zustand?.logger.warn("Websocket error"),this._websocket?this._websocket.close():this.auto_reconnect()}async send_large_message(e){const t=`${this.http_url}message/`;await fetch(t,{method:"POST",headers:{"Content-Type":"application/json"},body:e})}async send(e){if(!this._websocket||this._websocket.readyState!==WebSocket.OPEN)return void this._zustand?.logger.warn("Websocket not connected");const t=JSON.stringify(e);if(new Blob([t]).size>1e6)return this._zustand?.logger.info("Data too large, sending via http"),await this.send_large_message(t);this._zustand?.logger.debug("Sending data",e),this._websocket.send(t)}async stop(){await super.stop(),this._reconnect=!1}close(){this._websocket&&this._websocket.close()}disconnect(){super.disconnect(),this._reconnect=!1,this.close()}async reconnect(){await super.reconnect(),this._reconnect=!0,!this._websocket||(this._zustand?.logger.info("Reconnecting"),this._websocket.readyState!==WebSocket.OPEN&&this._websocket.readyState!==WebSocket.CONNECTING||(this._websocket.readyState===WebSocket.CONNECTING&&await new Promise(((e,t)=>{if(null===this._websocket)return;let n=setTimeout((()=>{t("Timeout@reconnect")}),2e3);this._websocket.addEventListener("open",(()=>{clearTimeout(n),e(null)}),{once:!0}),this._websocket.readyState===WebSocket.OPEN&&(clearTimeout(n),e(null))})),this._websocket.readyState!==WebSocket.OPEN))?this.connect():this.stepwise_fullsync()}}class Zu{constructor(e,t){this.ws=null,this.reconnectAttempts=0,this.maxReconnectAttempts=999,this.initialTimeout=200,this.maxTimeout=2e3,this.wsuri=e,this.zustand=t,this.workers={},this.on_setWorker=e=>{this.zustand.set_worker(e)},this.connect()}get open(){return this.ws?.readyState===WebSocket.OPEN}connect(){this.zustand.set_progress({progress:0,message:"connecting to worker manager",status:"info",blocking:!0}),this.zustand.logger.info("Connecting to websocket:",this.wsuri),this.ws=new WebSocket(this.wsuri),this.ws.onopen=()=>{this.onopen()},this.ws.onclose=()=>{this.onclose()},this.ws.onerror=()=>{this.on_ws_error()},this.ws.onmessage=e=>{this.onmessage(e.data)},this.connectionTimeout=setTimeout((()=>{this.ws?.readyState!==WebSocket.OPEN&&this.on_ws_error()}),5e3)}on_ws_error(){console.warn("Websocket error"),this.ws?this.ws.close():this.reconnect()}onopen(){this.connectionTimeout&&(clearTimeout(this.connectionTimeout),this.connectionTimeout=void 0),this.zustand.auto_progress(),this.ws&&this.ws.send("worker_status");const e=window.localStorage.getItem("funcnodes__active_worker");e&&this.set_active(e)}onmessage(e){let t=JSON.parse(e);if("worker_status"!==t.type)if("set_worker"!==t.type)"progress"!==t.type?this.zustand.logger.error("WorkerManager: unknown message",t):this.zustand.set_progress(t);else if("WSWorker"===t.data.type){let e="ws"+(t.data.ssl?"s":"")+"://"+t.data.host+":"+t.data.port;this.setWorker(this.workers[t.data.uuid]||new $u({url:e,zustand:this.zustand,uuid:t.data.uuid,on_sync_complete:this.zustand.options.on_sync_complete}))}else this.zustand.logger.error("WorkerManager: unknown worker type",t);else{const e={};for(let n of t.active)n.active=!0,e[n.uuid]=n;for(let n of t.inactive)n.active=!1,e[n.uuid]=n;this.zustand.workers.setState(e)}}setWorker(e){for(let t in this.workers)t!==e?.uuid&&this.workers[t].disconnect();void 0!==e&&(this.workers[e.uuid]=e,e.reconnect()),window.localStorage.setItem("funcnodes__active_worker",e?.uuid||""),void 0!==this.zustand.worker&&this.zustand.clear_all(),this.zustand.set_worker(e),this.on_setWorker(e)}async restart_worker(e){this.ws?.send(JSON.stringify({type:"restart_worker",workerid:e}))}calculateReconnectTimeout(){return Math.min(this.initialTimeout*Math.pow(2,this.reconnectAttempts),this.maxTimeout)}reconnect(){if(this.reconnectAttempts<this.maxReconnectAttempts){let e=this.calculateReconnectTimeout();this.zustand.logger.info(`Attempting to reconnect in ${e} ms`),setTimeout((()=>{this.ws&&this.ws.readyState===WebSocket.OPEN||(this.reconnectAttempts++,this.connect())}),e)}else this.zustand.logger.warn("Maximum reconnect attempts reached. Giving up.")}onclose(){this.zustand.logger.warn("WorkerManager: onclose"),this.reconnect()}set_active(e){this.ws&&this.ws.send(JSON.stringify({type:"set_active",workerid:e}))}new_worker({name:e,reference:t,copyLib:n,copyNS:r}){e||(e=void 0),n||(n=!1),r||(r=!1),t||(t=void 0,n=!1,r=!1),this.ws&&this.ws.send(JSON.stringify({type:"new_worker",kwargs:{name:e,reference:t,copyLib:n,copyNS:r}}))}}function Yu(e,t,{checkForDefaultPrevented:n=!0}={}){return function(r){if(e?.(r),!1===n||!r.defaultPrevented)return t?.(r)}}function Uu(e,t){if("function"==typeof e)return e(t);null!=e&&(e.current=t)}function Ju(...e){return t=>{let n=!1;const r=e.map((e=>{const r=Uu(e,t);return n||"function"!=typeof r||(n=!0),r}));if(n)return()=>{for(let t=0;t<r.length;t++){const n=r[t];"function"==typeof n?n():Uu(e[t],null)}}}}function Ku(...t){return e.useCallback(Ju(...t),t)}var qu,Qu={exports:{}},ed={};var td,nd,rd={};
29
29
  /**
30
30
  * @license React
31
31
  * react-jsx-runtime.development.js
@@ -153,5 +153,5 @@ function(e,t){const n=xL(e,t);return"production"!==process.env.NODE_ENV?(...t)=>
153
153
  * content-type
154
154
  * Copyright(c) 2015 Douglas Christopher Wilson
155
155
  * MIT Licensed
156
- */var UB=function(){if(ZB)return YB;ZB=1;var e=/; *([!#$%&'*+.^_`|~0-9A-Za-z-]+) *= *("(?:[\u000b\u0020\u0021\u0023-\u005b\u005d-\u007e\u0080-\u00ff]|\\[\u000b\u0020-\u00ff])*"|[!#$%&'*+.^_`|~0-9A-Za-z-]+) */g,t=/^[\u000b\u0020-\u007e\u0080-\u00ff]+$/,n=/^[!#$%&'*+.^_`|~0-9A-Za-z-]+$/,r=/\\([\u000b\u0020-\u00ff])/g,o=/([\\"])/g,i=/^[!#$%&'*+.^_`|~0-9A-Za-z-]+\/[!#$%&'*+.^_`|~0-9A-Za-z-]+$/;function a(e){var r=String(e);if(n.test(r))return r;if(r.length>0&&!t.test(r))throw new TypeError("invalid parameter value");return'"'+r.replace(o,"\\$1")+'"'}function s(e){this.parameters=Object.create(null),this.type=e}return YB.format=function(e){if(!e||"object"!=typeof e)throw new TypeError("argument obj is required");var t=e.parameters,r=e.type;if(!r||!i.test(r))throw new TypeError("invalid type");var o=r;if(t&&"object"==typeof t)for(var s,l=Object.keys(t).sort(),c=0;c<l.length;c++){if(s=l[c],!n.test(s))throw new TypeError("invalid parameter name");o+="; "+s+"="+a(t[s])}return o},YB.parse=function(t){if(!t)throw new TypeError("argument string is required");var n="object"==typeof t?function(e){var t;"function"==typeof e.getHeader?t=e.getHeader("content-type"):"object"==typeof e.headers&&(t=e.headers&&e.headers["content-type"]);if("string"!=typeof t)throw new TypeError("content-type header is missing from object");return t}(t):t;if("string"!=typeof n)throw new TypeError("argument string is required to be a string");var o=n.indexOf(";"),a=-1!==o?n.slice(0,o).trim():n.trim();if(!i.test(a))throw new TypeError("invalid media type");var l=new s(a.toLowerCase());if(-1!==o){var c,u,d;for(e.lastIndex=o;u=e.exec(n);){if(u.index!==o)throw new TypeError("invalid parameter format");o+=u[0].length,c=u[1].toLowerCase(),34===(d=u[2]).charCodeAt(0)&&-1!==(d=d.slice(1,-1)).indexOf("\\")&&(d=d.replace(r,"$1")),l.parameters[c]=d}if(o!==n.length)throw new TypeError("invalid parameter format")}return l},YB}(),JB=new Map,KB=function(e){return e.cloneNode(!0)},qB=function(){return"file:"===window.location.protocol},QB=function(e,t,n){var r=new XMLHttpRequest;r.onreadystatechange=function(){try{if(!/\.svg/i.test(e)&&2===r.readyState){var t=r.getResponseHeader("Content-Type");if(!t)throw new Error("Content type not found");var o=UB.parse(t).type;if("image/svg+xml"!==o&&"text/plain"!==o)throw new Error("Invalid content type: ".concat(o))}if(4===r.readyState){if(404===r.status||null===r.responseXML)throw new Error(qB()?"Note: SVG injection ajax calls do not work locally without adjusting security settings in your browser. Or consider using a local webserver.":"Unable to load SVG file: "+e);if(!(200===r.status||qB()&&0===r.status))throw new Error("There was a problem injecting the SVG: "+r.status+" "+r.statusText);n(null,r)}}catch(e){if(r.abort(),!(e instanceof Error))throw e;n(e,r)}},r.open("GET",e),r.withCredentials=t,r.overrideMimeType&&r.overrideMimeType("text/xml"),r.send()},eV={},tV=function(e,t){eV[e]=eV[e]||[],eV[e].push(t)},nV=function(e,t,n){if(JB.has(e)){var r=JB.get(e);if(void 0===r)return void tV(e,n);if(r instanceof SVGSVGElement)return void n(null,KB(r))}JB.set(e,void 0),tV(e,n),QB(e,t,(function(t,n){var r;t?JB.set(e,t):(null===(r=n.responseXML)||void 0===r?void 0:r.documentElement)instanceof SVGSVGElement&&JB.set(e,n.responseXML.documentElement),function(e){for(var t=function(t,n){setTimeout((function(){if(Array.isArray(eV[e])){var n=JB.get(e),r=eV[e][t];n instanceof SVGSVGElement&&r(null,KB(n)),n instanceof Error&&r(n),t===eV[e].length-1&&delete eV[e]}}),0)},n=0,r=eV[e].length;n<r;n++)t(n)}(e)}))},rV=function(e,t,n){QB(e,t,(function(e,t){var r;e?n(e):(null===(r=t.responseXML)||void 0===r?void 0:r.documentElement)instanceof SVGSVGElement&&n(null,t.responseXML.documentElement)}))},oV=0,iV=[],aV={},sV="http://www.w3.org/1999/xlink",lV=function(e,t,n,r,o,i,a){var s=e.getAttribute("data-src")||e.getAttribute("src");if(s){if(-1!==iV.indexOf(e))return iV.splice(iV.indexOf(e),1),void(e=null);iV.push(e),e.setAttribute("src",""),(r?nV:rV)(s,o,(function(r,o){if(!o)return iV.splice(iV.indexOf(e),1),e=null,void a(r);var l=e.getAttribute("id");l&&o.setAttribute("id",l);var c=e.getAttribute("title");c&&o.setAttribute("title",c);var u=e.getAttribute("width");u&&o.setAttribute("width",u);var d=e.getAttribute("height");d&&o.setAttribute("height",d);var f=Array.from(new Set(Zd(Zd(Zd([],(o.getAttribute("class")||"").split(" "),!0),["injected-svg"],!1),(e.getAttribute("class")||"").split(" "),!0))).join(" ").trim();o.setAttribute("class",f);var p=e.getAttribute("style");p&&o.setAttribute("style",p),o.setAttribute("data-src",s);var h=[].filter.call(e.attributes,(function(e){return/^data-\w[\w-]*$/.test(e.name)}));if(Array.prototype.forEach.call(h,(function(e){e.name&&e.value&&o.setAttribute(e.name,e.value)})),n){var m,g,y,b,v,w={clipPath:["clip-path"],"color-profile":["color-profile"],cursor:["cursor"],filter:["filter"],linearGradient:["fill","stroke"],marker:["marker","marker-start","marker-mid","marker-end"],mask:["mask"],path:[],pattern:["fill","stroke"],radialGradient:["fill","stroke"]};Object.keys(w).forEach((function(e){m=e,y=w[e];for(var t=function(e,t){var n;b=g[e].id,v=b+"-"+ ++oV,Array.prototype.forEach.call(y,(function(e){for(var t=0,r=(n=o.querySelectorAll("["+e+'*="'+b+'"]')).length;t<r;t++){var i=n[t].getAttribute(e);i&&!i.match(new RegExp('url\\("?#'+b+'"?\\)'))||n[t].setAttribute(e,"url(#"+v+")")}}));for(var r=o.querySelectorAll("[*|href]"),i=[],a=0,s=r.length;a<s;a++){var l=r[a].getAttributeNS(sV,"href");l&&l.toString()==="#"+g[e].id&&i.push(r[a])}for(var c=0,u=i.length;c<u;c++)i[c].setAttributeNS(sV,"href","#"+v);g[e].id=v},n=0,r=(g=o.querySelectorAll(m+"[id]")).length;n<r;n++)t(n)}))}o.removeAttribute("xmlns:a");for(var x,C,k=o.querySelectorAll("script"),E=[],S=0,I=k.length;S<I;S++)(C=k[S].getAttribute("type"))&&"application/ecmascript"!==C&&"application/javascript"!==C&&"text/javascript"!==C||((x=k[S].innerText||k[S].textContent)&&E.push(x),o.removeChild(k[S]));if(E.length>0&&("always"===t||"once"===t&&!aV[s])){for(var _=0,A=E.length;_<A;_++)new Function(E[_])(window);aV[s]=!0}var N=o.querySelectorAll("style");if(Array.prototype.forEach.call(N,(function(e){e.textContent+=""})),o.setAttribute("xmlns","http://www.w3.org/2000/svg"),o.setAttribute("xmlns:xlink",sV),i(o),!e.parentNode)return iV.splice(iV.indexOf(e),1),e=null,void a(new Error("Parent node is null"));e.parentNode.replaceChild(o,e),iV.splice(iV.indexOf(e),1),e=null,a(null,o)}))}else a(new Error("Invalid data-src or src attribute"))},cV=["afterInjection","beforeInjection","desc","evalScripts","fallback","httpRequestWithCredentials","loading","renumerateIRIElements","src","title","useRequestCache","wrapper"],uV="http://www.w3.org/2000/svg",dV="http://www.w3.org/1999/xlink",fV=function(t){function n(){for(var e,n=arguments.length,r=new Array(n),o=0;o<n;o++)r[o]=arguments[o];return(e=t.call.apply(t,[this].concat(r))||this).initialState={hasError:!1,isLoading:!0},e.state=e.initialState,e._isMounted=!1,e.reactWrapper=void 0,e.nonReactWrapper=void 0,e.refCallback=function(t){e.reactWrapper=t},e}gB(n,t);var r=n.prototype;return r.renderSVG=function(){var e=this;if(this.reactWrapper instanceof function(e){return((null==e?void 0:e.ownerDocument)||document).defaultView||window}(this.reactWrapper).Node){var t,n,r=this.props,o=r.desc,i=r.evalScripts,a=r.httpRequestWithCredentials,s=r.renumerateIRIElements,l=r.src,c=r.title,u=r.useRequestCache,d=this.props.onError,f=this.props.beforeInjection,p=this.props.afterInjection,h=this.props.wrapper;"svg"===h?((t=document.createElementNS(uV,h)).setAttribute("xmlns",uV),t.setAttribute("xmlns:xlink",dV),n=document.createElementNS(uV,h)):(t=document.createElement(h),n=document.createElement(h)),t.appendChild(n),n.dataset.src=l,this.nonReactWrapper=this.reactWrapper.appendChild(t);var m=function(t){e.removeSVG(),e._isMounted?e.setState((function(){return{hasError:!0,isLoading:!1}}),(function(){d(t)})):d(t)};!function(e,t){var n=void 0===t?{}:t,r=n.afterAll,o=void 0===r?function(){}:r,i=n.afterEach,a=void 0===i?function(){}:i,s=n.beforeEach,l=void 0===s?function(){}:s,c=n.cacheRequests,u=void 0===c||c,d=n.evalScripts,f=void 0===d?"never":d,p=n.httpRequestWithCredentials,h=void 0!==p&&p,m=n.renumerateIRIElements,g=void 0===m||m;if(e&&"length"in e)for(var y=0,b=0,v=e.length;b<v;b++)lV(e[b],f,g,u,h,l,(function(t,n){a(t,n),e&&"length"in e&&e.length===++y&&o(y)}));else e?lV(e,f,g,u,h,l,(function(t,n){a(t,n),o(1),e=null})):o(0)}(n,{afterEach:function(t,n){t?m(t):e._isMounted&&e.setState((function(){return{isLoading:!1}}),(function(){try{p(n)}catch(e){m(e)}}))},beforeEach:function(e){if(e.setAttribute("role","img"),o){var t=e.querySelector(":scope > desc");t&&e.removeChild(t);var n=document.createElement("desc");n.innerHTML=o,e.prepend(n)}if(c){var r=e.querySelector(":scope > title");r&&e.removeChild(r);var i=document.createElement("title");i.innerHTML=c,e.prepend(i)}try{f(e)}catch(e){m(e)}},cacheRequests:u,evalScripts:i,httpRequestWithCredentials:a,renumerateIRIElements:s})}},r.removeSVG=function(){var e;null!=(e=this.nonReactWrapper)&&e.parentNode&&(this.nonReactWrapper.parentNode.removeChild(this.nonReactWrapper),this.nonReactWrapper=null)},r.componentDidMount=function(){this._isMounted=!0,this.renderSVG()},r.componentDidUpdate=function(e){var t=this;(function(e,t){for(var n in e)if(!(n in t))return!0;for(var r in t)if(e[r]!==t[r])return!0;return!1})(LR({},e),this.props)&&this.setState((function(){return t.initialState}),(function(){t.removeSVG(),t.renderSVG()}))},r.componentWillUnmount=function(){this._isMounted=!1,this.removeSVG()},r.render=function(){var t=this.props;t.afterInjection,t.beforeInjection,t.desc,t.evalScripts;var n=t.fallback;t.httpRequestWithCredentials;var r=t.loading;t.renumerateIRIElements,t.src,t.title,t.useRequestCache;var o=t.wrapper,i=PR(t,cV),a=o;return e.createElement(a,LR({},i,{ref:this.refCallback},"svg"===o?{xmlns:uV,xmlnsXlink:dV}:{}),this.state.isLoading&&r&&e.createElement(r,null),this.state.hasError&&n&&e.createElement(n,null))},n}(e.Component);fV.defaultProps={afterInjection:function(){},beforeInjection:function(){},desc:"",evalScripts:"never",fallback:null,httpRequestWithCredentials:!1,loading:null,onError:function(){},renumerateIRIElements:!0,title:"",useRequestCache:!0,wrapper:"div"},fV.propTypes={afterInjection:vy.func,beforeInjection:vy.func,desc:vy.string,evalScripts:vy.oneOf(["always","once","never"]),fallback:vy.oneOfType([vy.func,vy.object,vy.string]),httpRequestWithCredentials:vy.bool,loading:vy.oneOfType([vy.func,vy.object,vy.string]),onError:vy.func,renumerateIRIElements:vy.bool,src:vy.string.isRequired,title:vy.string,useRequestCache:vy.bool,wrapper:vy.oneOf(["div","span","svg"])};const pV=({value:t,renderoptions:n})=>(void 0===n&&(n={}),void 0===n.format&&(n.format="jpeg"),e.createElement("img",{src:"data:image/"+n.format+";base64, "+t,style:{maxWidth:"100%",maxHeight:"100%"}})),hV=({value:t})=>e.createElement(fV,{src:`data:image/svg+xml;base64,${btoa(t)}`,style:{maxWidth:"100%",maxHeight:"100%"},beforeInjection:e=>{e.classList.add("svg-class-name"),e.setAttribute("style","max-width: 100%; max-height: 100%;"),e.setAttribute("width","100%"),e.setAttribute("height","100%")}}),mV=({io:t})=>{let n=t.fullvalue;if(null==n&&(n=t.value),void 0===n&&(n=""),"string"!=typeof n||n.length%4!=0)return e.createElement("div",null,n);const r=Math.round(3*n.length/4);return e.createElement("div",null,e.createElement("pre",null,"Bytes(",r,")"))},gV=({io:t})=>{let n=t.fullvalue;return void 0===n&&(n=t.value),void 0===n&&(n={}),e.createElement(KD,{data:n})},yV={float:({io:e,inputconverter:t})=>_D({io:e,inputconverter:t,parser:parseFloat}),int:({io:e,inputconverter:t})=>_D({io:e,inputconverter:t,parser:parseInt}),bool:({io:t,inputconverter:n})=>{const r=o(oG),i=void 0===t.value,a=u(null);s((()=>{a.current&&(a.current.indeterminate=i)}),[a,i]);return e.createElement("input",{ref:a,type:"checkbox",className:"styledcheckbox booleaninput",checked:!!n[1](t.value),onChange:e=>{let o=e.target.checked;try{o=n[0](e.target.checked)}catch(e){}r.worker?.set_io_value({nid:t.node,ioid:t.id,value:o,set_default:t.render_options.set_default})},disabled:t.connected})},string:AD,str:AD,color:({io:t})=>{const n=o(oG),r=t.value_options?.colorspace||"hex";let i=!1;return"string"!=typeof t.type&&"anyOf"in t.type&&void 0!==t.type.anyOf&&(i=t.type.anyOf.some((e=>"None"===e))),e.createElement(bO,{onChange:e=>{let o="<NoValue>";e&&(o=e[r]?e[r]():e.hex()),null===e&&(o=null),n.worker?.set_io_value({nid:t.node,ioid:t.id,value:o,set_default:t.render_options.set_default})},inicolordata:t.value,allow_null:i,inicolorspace:r})},select:TD,enum:TD,bytes:mV},bV={Inputrenderer:yV,Outputrenderer:{},HandlePreviewRenderer:{bytes:mV},DataOverlayRenderer:{},DataPreviewViewRenderer:{string:({io:t})=>{let n=t.fullvalue;return null==n&&(n=t.value),n=void 0===n?"":JSON.stringify(t.value).replace(/\\n/g,"\n"),e.createElement("div",null,e.createElement("pre",null,n))},table:({io:t})=>{let n=t.fullvalue;return null==n&&(n=t.value),void 0===n&&(n=[]),e.createElement($B,{tabledata:n})},image:({io:t})=>{let n=t.fullvalue;return null==n&&(n=t.value),void 0===n&&(n=""),e.createElement(pV,{value:n})},svg:({io:t})=>{let n=t.fullvalue;return null==n&&(n=t.value),void 0===n&&(n=""),e.createElement(hV,{value:n})},dict:gV,bytes:mV},DataViewRenderer:{},InLineRenderer:{bytes:({io:e})=>{let t=e.fullvalue;null==t&&(t=e.value),t=void 0===t?"":JSON.stringify(e.value).replace(/\\n/g,"\n");return`Bytes(${Math.round(3*t.length/4)})`}}},vV=(e,t)=>{const n=t.options||{},r=void 0===n.overwrite||n.overwrite;switch(t.type){case"EXTEND_INPUT_RENDER":return!r&&e.Inputrenderer[t.payload.type]?e:{...e,Inputrenderer:{...e.Inputrenderer,[t.payload.type]:t.payload.component}};case"EXTEND_OUTPUT_RENDER":return!r&&e.Outputrenderer[t.payload.type]?e:{...e,Outputrenderer:{...e.Outputrenderer,[t.payload.type]:t.payload.component}};case"EXTEND_HANDLE_PREVIEW_RENDER":return!r&&e.HandlePreviewRenderer[t.payload.type]?e:{...e,HandlePreviewRenderer:{...e.HandlePreviewRenderer,[t.payload.type]:t.payload.component}};case"EXTEND_DATA_OVERLAY_RENDER":return!r&&e.DataOverlayRenderer[t.payload.type]?e:{...e,DataOverlayRenderer:{...e.DataOverlayRenderer,[t.payload.type]:t.payload.component}};case"EXTEND_DATA_PREVIEW_RENDER":return!r&&e.DataPreviewViewRenderer[t.payload.type]?e:{...e,DataPreviewViewRenderer:{...e.DataPreviewViewRenderer,[t.payload.type]:t.payload.component}};case"EXTEND_DATA_VIEW_RENDER":return!r&&e.DataViewRenderer[t.payload.type]?e:{...e,DataViewRenderer:{...e.DataViewRenderer,[t.payload.type]:t.payload.component}};case"EXTEND_FROM_PLUGIN":let n=!1;const o=[[t.payload.plugin.input_renderers||{},e.Inputrenderer],[t.payload.plugin.output_renderers||{},e.Outputrenderer],[t.payload.plugin.handle_preview_renderers||{},e.HandlePreviewRenderer],[t.payload.plugin.data_overlay_renderers||{},e.DataOverlayRenderer],[t.payload.plugin.data_preview_renderers||{},e.DataPreviewViewRenderer],[t.payload.plugin.data_view_renderers||{},e.DataViewRenderer]];for(const[e,t]of o){if(Object.keys(e).length>0)if(r)n=!0;else for(const r in e)if(!t[r]){n=!0;break}if(n)break}if(!n)return e;for(const[e,t]of o)for(const n in e)!r&&t[n]||(t[n]=e[n]);return{...e};default:return e}},wV=({children:t,plugins:n,fnrf_zst:r})=>{const[o,i]=v(vV,bV),a=(e,t)=>{i({type:"EXTEND_FROM_PLUGIN",payload:{plugin:e},options:t})};return s((()=>{for(const t in n){const o=n[t].RendererPlugin;o&&a(o);const i=n[t].renderpluginfactory;i&&a(i({React:e,fnrf_zst:r}))}}),[n]),e.createElement(xV.Provider,{value:{Inputrenderer:o.Inputrenderer,Outputrenderer:o.Outputrenderer,HandlePreviewRenderer:o.HandlePreviewRenderer,DataOverlayRenderer:o.DataOverlayRenderer,DataPreviewViewRenderer:o.DataPreviewViewRenderer,DataViewRenderer:o.DataViewRenderer,InLineRenderer:o.InLineRenderer,extendInputRenderMapping:(e,t,n)=>{i({type:"EXTEND_INPUT_RENDER",payload:{type:e,component:t},options:n})},extendOutputRenderMapping:(e,t,n)=>{i({type:"EXTEND_OUTPUT_RENDER",payload:{type:e,component:t},options:n})},extendHandlePreviewRenderMapping:(e,t,n)=>{i({type:"EXTEND_HANDLE_PREVIEW_RENDER",payload:{type:e,component:t},options:n})},extendDataOverlayRenderMapping:(e,t,n)=>{i({type:"EXTEND_DATA_OVERLAY_RENDER",payload:{type:e,component:t},options:n})},extendDataPreviewRenderMapping:(e,t,n)=>{i({type:"EXTEND_DATA_PREVIEW_RENDER",payload:{type:e,component:t},options:n})},extendDataViewRenderMapping:(e,t,n)=>{i({type:"EXTEND_DATA_VIEW_RENDER",payload:{type:e,component:t},options:n})},extendFromPlugin:a}},t)},xV=i({Inputrenderer:bV.Inputrenderer,Outputrenderer:bV.Outputrenderer,HandlePreviewRenderer:bV.HandlePreviewRenderer,DataOverlayRenderer:bV.DataOverlayRenderer,DataPreviewViewRenderer:bV.DataPreviewViewRenderer,DataViewRenderer:bV.DataViewRenderer,InLineRenderer:bV.InLineRenderer,extendInputRenderMapping:(e,t,n)=>{},extendOutputRenderMapping:(e,t,n)=>{},extendHandlePreviewRenderMapping:(e,t,n)=>{},extendDataOverlayRenderMapping:(e,t,n)=>{},extendDataPreviewRenderMapping:(e,t,n)=>{},extendDataViewRenderMapping:(e,t,n)=>{},extendFromPlugin:(e,t)=>{}}),CV=({component:t,...n})=>e.createElement(t,{...n}),kV=e=>{const t=o(oG).render_options(),[n]=EV(e.type,t.typemap||{});if(!n)return gV;const{DataOverlayRenderer:r,DataPreviewViewRenderer:i}=o(xV);return r[n]?r[n]:i[n]?i[n]:gV},EV=(e,t)=>{if("string"==typeof e)return e in t?[t[e],e]:[e,e];if("allOf"in e&&void 0!==e.allOf)return[void 0,void 0];if("anyOf"in e&&void 0!==e.anyOf){const n=e.anyOf.map((e=>EV(e,t)));for(const e of n)switch(e[0]){case"bool":return["bool",e[1]];case"enum":return["enum",e[1]];case"float":return["float",e[1]];case"int":return["int",e[1]];case"string":case"str":return["string",e[1]]}return[void 0,void 0]}return"type"in e&&void 0!==e.type&&"enum"===e.type?["enum","enum"]:[void 0,void 0]},SV=({io:t,typestring:n,preview:r,...i})=>{const[a,s]=c(!1),[l,u]=c(!1),d=e.useContext(oG),[f,p]=t?(e=>{const t=o(oG).render_options(),[n]=EV(e.type,t.typemap||{}),{HandlePreviewRenderer:r,DataPreviewViewRenderer:i}=o(xV),a=kV(e);return n?r[n]?[r[n],a]:i[n]?[i[n],a]:[gV,a]:[gV,a]})(t):[void 0,void 0],h=d.local_state((()=>d.reactflowRef));return e.createElement(sO,{open:a||l,onOpenChange:u},e.createElement(lO,{asChild:!0},e.createElement(Ai,{id:t.id,"data-type":n,...i})),e.createElement(cO,{container:h},e.createElement(uO,{className:"iotooltipcontent",sideOffset:5},e.createElement("div",{className:"iotooltip_container"},e.createElement("div",{className:"iotooltip_header"},a?e.createElement(ub,{onClick:()=>s(!1)}):e.createElement(cb,{onClick:()=>s(!0)}),p&&e.createElement(hb,{title:t.full_id,trigger:e.createElement(tb,null),onOpenChange:e=>{e&&t.try_get_full_value&&t.try_get_full_value(),s(e)}},e.createElement(CV,{component:p,io:t}))),f?e.createElement(CV,{component:f,io:t}):`no preview available for "${n}"`),e.createElement(dO,{className:"iotooltipcontentarrow"}))))},IV={"":[e=>e,e=>e],str_to_json:[e=>JSON.parse(e),e=>"string"==typeof e?e:JSON.stringify(e)],str_to_list:[e=>{try{const t=JSON.parse(e);return Array.isArray(t)?t:[t]}catch(t){try{return JSON.parse("["+e+"]")}catch(e){}}throw new Error("Invalid list")},e=>JSON.stringify(e)]},_V=({io:t})=>{const n=o(oG).render_options(),[r,i]=EV(t.render_options.type,n.typemap||{}),{Inputrenderer:a}=o(xV),s=r?t.value_options?.options?TD:a[r]:void 0,l=IV[(i&&n.inputconverter?.[i])??""];return e.createElement("div",{className:"nodeinput","data-type":r},e.createElement(SV,{io:t,typestring:r,position:Ho.Left,type:"target"}),s&&e.createElement("div",{className:"iovaluefield nodrag","data-type":r},e.createElement(s,{io:t,inputconverter:l})),e.createElement("div",{className:"ioname"},t.name),e.createElement(SV,{io:t,typestring:r,position:Ho.Right,type:"source"}))},AV=({io:t,typestring:n})=>{const{InLineRenderer:r}=o(xV);if(n&&r[n])return e.createElement("div",null,r[n]({io:t}));let i=t.fullvalue;return null==i&&(i=t.value),i=void 0===i?"":JSON.stringify(i).replace(/\\n/g,"\n"),i.length>63&&(i=i.slice(0,60)+"..."),e.createElement("div",null,i)},NV=({io:t})=>{const n=o(oG).render_options(),[r]=EV(t.type,n.typemap||{}),{Outputrenderer:i}=o(xV),a=r?i[r]:void 0;return e.createElement("div",{className:"nodeoutput","data-type":r},e.createElement(SV,{io:t,typestring:r,position:Ho.Right,type:"source"}),e.createElement("div",{className:"ioname"},t.name),a?e.createElement("div",{className:"iovaluefield nodrag"},e.createElement(a,{io:t})):e.createElement("div",{className:"iovaluefield"},e.createElement(AV,{io:t,typestring:r})))};function OV(e){return`${Math.floor(e/60)}:${Math.floor(e%60).toString().padStart(2,"0")}`}function RV(e,t){const n=["","K","M","G","T"];let r=0;for(;e>=t&&r<n.length-1;)e/=t,r++;return[e.toFixed(2),n[r]]}const MV=({state:t,className:n="reacttqdm",...r})=>{const o=u(null),i=u(null);s((()=>{const e=()=>{o.current&&i.current&&function(e,t,n={}){const{maxFontSize:r=100,minFontSize:o=6,decrementFactor:i=.9}=n;if(!e||!t)return;if(i>=1||i<=0)throw new Error("decrementFactor must be between 0 and 1");const a=e.getBoundingClientRect(),s=a.width,l=a.height;let c=r;t.style.whiteSpace="nowrap",t.style.display="inline-block",t.style.fontSize=c+"px";let u=t.getBoundingClientRect();for(;(u.width>s||u.height>l)&&c>o;)c*=i,t.style.fontSize=c+"px",u=t.getBoundingClientRect()}(o.current,i.current,{maxFontSize:12,decrementFactor:.9})};return e(),window.addEventListener("resize",e),()=>{window.removeEventListener("resize",e)}}),[t]);const a=t.total?t.n/t.total*100:0;return e.createElement("div",{ref:o,className:n,...r},e.createElement("div",{style:{position:"relative",display:"flex",flexDirection:"column",justifyContent:"center",alignItems:"center"}},e.createElement("div",{className:n+"-bar",style:{position:"absolute",width:"100%",height:"100%",overflow:"hidden"}},e.createElement("div",{className:n+"-progress",style:{width:`${a}%`,height:"100%"}})),e.createElement("div",{className:n+"-text",ref:i},function(e={n:0,elapsed:0,ascii:!1,unit:"it",unit_scale:!1,unit_divisor:1e3}){let t=e.total??null;const{n:n,unit_scale:r,elapsed:o,unit:i,unit_divisor:a,prefix:s="",rate:l,postfix:c=null,initial:u=0}=e;null!==t&&n>=t+.5&&(t=null);let d=n,f=t,p=l;r&&!0!==r&&1!==r&&(null!==t&&(f=t*r),d=n*r,void 0!==l&&(p=l*r));const h=OV(o);void 0===p&&o>0&&(p=(d-u)/o);const m=p?1/p:void 0,[g,y]=p?RV(p,a):[void 0,""],[b,v]=m?RV(m,1e3):[void 0,""],w=m&&m>1?b?`${b}${v}s/`+i:"?":(g||"?")+`${y}${i}/s`,x=r?RV(d,a).join(""):d.toString(),C=r&&null!==f?RV(f,a).join(""):f?.toString()??"?",k=p?OV(p&&null!==f?(f-d)/p:0):"?",E=s?`${s}: `:"";if(null!==t){const e=` ${x}/${C} [${h} < ${k}, ${w}${c??""}]`;return`${E}${(d/t*100).toFixed(0)}%${e}`}return`${E}${x}${i} [${h}, ${w}${c??""}]`}(t))))},TV=({node_data:t})=>{const n=o(oG);return e.createElement("div",{className:"nodeheader",title:t.description||t.node_name},e.createElement("div",{className:"nodeheader_element"},e.createElement(fb,{fontSize:"inherit",className:"triggerbutton",onClick:()=>{n.on_node_action({type:"trigger",from_remote:!1,id:t.id})}}),e.createElement(db,{fontSize:"inherit",onClick:async()=>{n.logger.info("nodestatus",await(n.worker?.get_node_status(t.id)))}})),e.createElement("div",{className:"nodeheader_element nodeheader_title"},e.createElement("div",{className:"nodeheader_title_text"},t.node_name)),e.createElement("div",{className:"nodeheader_element"},e.createElement(sb,{fontSize:"inherit"})))},PV=({node_data:t})=>{const n=t.render_options?.data?.src?t.io[t.render_options?.data?.src]:void 0,[r,i]=n?(e=>{const t=o(oG).render_options(),[n]=EV(e.type,t.typemap||{}),r=kV(e),{DataPreviewViewRenderer:i,DataViewRenderer:a}=o(xV);return n?a[n]?[a[n],r]:i[n]?[i[n],r]:[gV,r]:[gV,r]})(n):[void 0,void 0];return e.createElement("div",{className:"nodrag nodedatabody","data-src":t.render_options?.data?.src||""},r&&n&&e.createElement(hb,{title:n.full_id,trigger:e.createElement("div",{className:"nodedatabutton"},e.createElement(CV,{component:r,io:n})),onOpenChange:e=>{e&&n?.try_get_full_value&&n?.try_get_full_value()}},e.createElement(CV,{component:i,io:n})))},DV=({node_data:t})=>{const n=Object.values(t.io).filter((e=>e.is_input)),r=Object.values(t.io).filter((e=>!e.is_input));return t.render_options,e.createElement("div",{className:"nodebody"},r.map((t=>t.hidden?null:e.createElement(NV,{key:t.id,io:t}))),e.createElement(PV,{node_data:t}),n.map((t=>t.hidden?null:e.createElement(_V,{key:t.id,io:t}))))},jV=({node_data:t})=>{const[n,r]=c(t.name);s((()=>{r(t.name)}),[t]);const i=o(oG);return e.createElement("input",{className:"nodename_input",value:n,onChange:e=>{r(e.target.value)},onBlur:e=>{const n=e.target.value;i.on_node_action({type:"update",from_remote:!1,id:t.id,node:{name:n}})}})},LV=({node_data:t})=>t.progress?e.createElement(MV,{style:{height:"idle"===t.progress.prefix?"0px":void 0},state:t.progress,className:"nodeprogress"}):null,FV=({node_data:t})=>e.createElement("div",{className:"nodefooter"},t.error&&e.createElement("div",{className:"nodeerror"},t.error),e.createElement(LV,{node_data:t})),zV=({io:t})=>{const n=e.useContext(oG).render_options(),[r,o]=EV(t.render_options.type,n.typemap||{}),{Inputrenderer:i}=e.useContext(xV),a=r?t.value_options?.options?TD:i[r]:void 0,s=IV[(o&&n.inputconverter?.[o])??""];return e.createElement("div",{className:"nodesettings_component"},e.createElement("div",null,t.name),a&&e.createElement(a,{io:t,inputconverter:s}),e.createElement("div",null,e.createElement("label",null,"hidden:",e.createElement("input",{className:"styledcheckbox",type:"checkbox",disabled:t.connected,onChange:e=>{t.set_hidden?.(e.target.checked)},checked:t.hidden}))))},BV=({io:t})=>e.createElement("div",{className:"nodesettings_component"},e.createElement("div",null,t.name),e.createElement("div",null,e.createElement("label",null,"hidden:",e.createElement("input",{className:"styledcheckbox",type:"checkbox",disabled:t.connected,onChange:e=>{t.set_hidden?.(e.target.checked)},checked:t.hidden})))),VV=({nodestore:t})=>{const n=t(),r=Object.values(n.io).filter((e=>e.is_input)),o=Object.values(n.io).filter((e=>!e.is_input));return e.createElement("div",{className:"nodesettings_content"},e.createElement("div",{className:"nodesettings_section"},e.createElement("div",{className:"nodesettings_component"},e.createElement("div",null,"Name"),e.createElement("div",null,e.createElement(jV,{node_data:n})))),e.createElement("div",{className:"nodesettings_section"},e.createElement("div",null,"Inputs"),r.map((t=>e.createElement(zV,{io:t,key:t.id})))),e.createElement("div",{className:"nodesettings_section"},e.createElement("div",null,"Outputs"),o.map((t=>e.createElement(BV,{io:t,key:t.id})))))},GV=()=>{const t=e.useContext(oG),n=t.local_state((e=>e.selected_nodes));if(0===n.length)return e.createElement("div",null,"Node Settings");if(n.length>1)return e.createElement("div",null,"Multiple Nodes Selected");const r=t.nodespace.get_node(n[0]);return r?e.createElement(VV,{nodestore:r}):e.createElement("div",null,"Node not found")},WV=()=>{const t=e.useContext(oG),n=t.local_settings((e=>e.view_settings.expand_node_props)),r=t.local_settings((e=>e.update_view_settings));return e.createElement(LC,{maxSize:"300px",direction:"left",expanded:void 0!==n&&n,containerClassName:"pos-right pos-top bg1 h-12",className:"nodesettings_content",onExpandChange:e=>{r({expand_node_props:e})}},e.createElement(GV,null))},HV=e=>({nodes:e.nodes,edges:e.edges,onNodesChange:e.onNodesChange,onEdgesChange:e.onEdgesChange,onConnect:e.onConnect}),XV={default:({data:t})=>{const n=t.UseNodeStore(),r=n.properties["frontend:collapsed"]||!1,{visualTrigger:i}=(e=>{const t=o(oG),[n,r]=c(!1);return s((()=>{t.worker?.call_hooks("node_mounted",e.id)}),[t.worker,e.id]),s((()=>{let t;return e.in_trigger&&!n?r(!0):n&&(t=setTimeout((()=>r(!1)),200)),()=>clearTimeout(t)}),[e.in_trigger,n]),{visualTrigger:n}})(n);return e.createElement(e.Fragment,null,e.createElement("div",{className:"innernode"+(i?" intrigger":"")+(n.error?" error":"")},e.createElement(TV,{node_data:n}),e.createElement(jV,{node_data:n}),r?null:e.createElement(DV,{node_data:n}),e.createElement(FV,{node_data:n})))}},$V={default:({id:t,sourceX:n,sourceY:r,targetX:o,targetY:i,sourcePosition:a,targetPosition:s,data:l,...c})=>{const[u]=ri({sourceX:n,sourceY:r,sourcePosition:a,targetX:o,targetY:i,targetPosition:s});return e.createElement(e.Fragment,null,e.createElement(Do,{id:t,path:u,...c}))}},ZV=()=>{const t=fa();return o(oG).rf_instance=t,e.createElement(e.Fragment,null)},YV=()=>{const t=o(oG),n=Qi("Delete"),r=co(Vs,fe),i=co(Bs,fe);if(n){for(const n of r)if(n.selected){if(!t.worker)return e.createElement(e.Fragment,null);if(!n.source||!n.target)return e.createElement(e.Fragment,null);if(!n.sourceHandle||!n.targetHandle)return e.createElement(e.Fragment,null);t.worker.remove_edge({src_nid:n.source,src_ioid:n.sourceHandle,trg_nid:n.target,trg_ioid:n.targetHandle})}for(const n of i)if(n.selected){if(!t.worker)return e.createElement(e.Fragment,null);t.worker.remove_node(n.id)}}return e.createElement(e.Fragment,null)},UV=({id:t,top:n,left:r,right:i,bottom:a,...s})=>{const{getNode:c,setNodes:u,addNodes:d,setEdges:f}=fa(),p=o(oG),h=l((()=>{const e=c(t);if(!e)return;const n={x:e.position.x+50,y:e.position.y+50};d({...e,id:`${e.id}-copy`,position:n})}),[t,c,d]),m=l((()=>{p.on_node_action({type:"delete",id:t,from_remote:!1})}),[t,u,f]),g=p.nodespace.get_node(t,!1);if(!g)return e.createElement(e.Fragment,null," ");const y=g();return e.createElement("div",{style:{top:n,left:r,right:i,bottom:a},className:"context-menu",...s},e.createElement("p",{style:{fontWeight:"bold"}},e.createElement("small",null,y.name)),e.createElement("button",{onClick:h},"duplicate"),e.createElement("button",{onClick:m},"delete"))},JV=t=>{const n=o(oG),r=u(null);s((()=>{n.reactflowRef=r.current}),[r]);const[i,a]=c(null),d=l((()=>a(null)),[a]),{nodes:f,edges:p,onNodesChange:h,onEdgesChange:m,onConnect:g}=n.useReactFlowStore(ON(HV));return e.createElement("div",{className:"reactflowlayer"},e.createElement(zs,{nodes:f,edges:p,onNodesChange:h,onEdgesChange:m,onConnect:g,nodeTypes:XV,edgeTypes:$V,minZoom:t.minZoom,maxZoom:t.maxZoom,fitView:!0,onSelectionChange:({nodes:e,edges:t})=>{const r=n.local_state.getState();n.local_state.setState({...r,selected_nodes:e.map((e=>e.id)),selected_edges:t.map((e=>e.id))})},ref:r,onPaneClick:d,panOnDrag:!t.static},e.createElement(ZV,null),e.createElement(YV,null),e.createElement(ol,{color:"#888",gap:16,size:1}),t.minimap&&e.createElement(Ks,{nodeStrokeWidth:3,pannable:!t.static,zoomable:!t.static,zoomStep:3}),i&&e.createElement(UV,{onClick:d,...i})))},KV=i(void 0),qV=n(((t,n)=>{const{asChild:r,children:o,className:i,style:a,...s}=t,[l,d]=c(!1),f=u(null),[p,h]=c(null),[m,g]=c({}),y=t.htime||300,b=t.vtime||300,v=t.hdelay||0,C=t.vdelay||200;w(n,(()=>f.current),[]);let k;if(r&&e.isValidElement(o)){const t=o,n=[t.props.className,i,"smooth-expand",l?"smooth-expand-expanded":""].filter(Boolean).join(" "),r={...t.props.style,...a,...m};k=e.cloneElement(t,{ref:f,className:n,style:r,...s})}else k=e.createElement("div",{ref:f,...s,className:`smooth-expand ${l?"smooth-expand-expanded":""} ${i||""}`,style:{...a,...m}},o);const E=e.createElement(KV.Provider,{value:{isExpanded:l,toggleExpand:async()=>{f.current&&(l?await(async()=>{if(!f.current)return;if(!p)return;const e={transitionProperty:"width, left, height, top",transitionDuration:`${y}ms, ${y}ms, ${b}ms, ${b}ms`};g((t=>({...t,...e})));const[t,n,r,o]=p,i=new Promise((e=>{setTimeout((()=>{g((e=>({...e,left:`${t}px`,width:`${r}px`}))),e()}),C)})),a=new Promise((e=>{setTimeout((()=>{g((e=>({...e,top:`${n}px`,height:`${o}px`}))),e()}),v)})),s=Math.max(y+v,b+C),l=new Promise((e=>{setTimeout((()=>{e()}),s)}));await Promise.all([i,a,l]),f.current.style.transition="",g({}),d(!1)})():await(async()=>{if(!f.current)return;f.current.style.transition="none",f.current.style.position="",f.current.style.top="",f.current.style.left="",f.current.style.width="",f.current.style.height="";const e=f.current.getBoundingClientRect();h([e.left,e.top,e.width,e.height]),f.current.style.transition="none",g({position:"absolute",top:`${e.top}px`,left:`${e.left}px`,width:`${e.width}px`,height:`${e.height}px`}),g((e=>({...e,transitionProperty:"width, left, height, top",transitionDuration:`${y}ms, ${y}ms, ${b}ms, ${b}ms`}))),d(!0);const t=new Promise((e=>{setTimeout((()=>{g((e=>({...e,left:"0px",width:"100vw"}))),e()}),v)})),n=new Promise((e=>{setTimeout((()=>{g((e=>({...e,top:"0px",height:"100vh"}))),e()}),C)})),r=Math.max(y+v,b+C),o=new Promise((e=>{setTimeout((()=>{e()}),r)}));await Promise.all([t,n,o])})())}}},k);return l?x.createPortal(E,document.body):E}));qV.Trigger=function({children:t}){const n=o(KV);if(!n)throw new Error("SmoothExpandComponent.Trigger must be used within a SmoothExpandComponent");return e.createElement("div",{style:{cursor:"pointer"},onClick:n.toggleExpand},t)},qV.Expanded=function({children:t}){const n=o(KV);if(!n)throw new Error("SmoothExpandComponent.Expanded must be used within a SmoothExpandComponent");return n.isExpanded?e.createElement(e.Fragment,null,t):null},qV.Collapsed=function({children:t}){const n=o(KV);if(!n)throw new Error("SmoothExpandComponent.Collapsed must be used within a SmoothExpandComponent");return n.isExpanded?null:e.createElement(e.Fragment,null,t)};const QV=e.createContext(void 0),eG=n(((t,n)=>{const{asChild:r,children:o,className:i,style:a,...d}=t,f=u(null);w(n,(()=>f.current),[]);const[p,h]=c(!1),m=l((async()=>{try{const e=f.current;if(!e)return;if(p){const e=document;e.exitFullscreen?await e.exitFullscreen():e.mozCancelFullScreen?await e.mozCancelFullScreen():e.webkitExitFullscreen?await e.webkitExitFullscreen():e.msExitFullscreen&&await e.msExitFullscreen(),h(!1)}else e.requestFullscreen?await e.requestFullscreen():e.mozRequestFullScreen?await e.mozRequestFullScreen():e.webkitRequestFullscreen?await e.webkitRequestFullscreen():e.msRequestFullscreen&&await e.msRequestFullscreen(),h(!0)}catch(e){console.error("Error toggling fullscreen",e)}}),[p]);let g;if(s((()=>{const e=()=>{const e=document.fullscreenElement;h(!!e)};return document.addEventListener("fullscreenchange",e),document.addEventListener("webkitfullscreenchange",e),document.addEventListener("mozfullscreenchange",e),document.addEventListener("MSFullscreenChange",e),()=>{document.removeEventListener("fullscreenchange",e),document.removeEventListener("webkitfullscreenchange",e),document.removeEventListener("mozfullscreenchange",e),document.removeEventListener("MSFullscreenChange",e)}}),[]),r&&e.isValidElement(o)){const t=o,n=[t.props.className,i].filter(Boolean).join(" "),r={...t.props.style,...a};g=e.cloneElement(t,{ref:f,className:n,style:r,...d})}else g=e.createElement("div",{ref:f,...d,className:i,style:a},o);return e.createElement(QV.Provider,{value:{isFullScreen:p,toggleFullscreen:m}},g)}));eG.Trigger=function({children:t}){const n=e.useContext(QV);if(!n)throw new Error("FullScreenComponent.Trigger must be used within a FullScreenComponent");return e.createElement("div",{style:{cursor:"pointer"},onClick:n.toggleFullscreen},t)},eG.InFullScreen=function({children:t}){const n=e.useContext(QV);if(!n)throw new Error("FullScreenComponent.Expanded must be used within a FullScreenComponent");return n.isFullScreen?e.createElement(e.Fragment,null,t):null},eG.OutFullScreen=function({children:t}){const n=e.useContext(QV);if(!n)throw new Error("FullScreenComponent.Collapsed must be used within a FullScreenComponent");return n.isFullScreen?null:e.createElement(e.Fragment,null,t)};const tG=({fnrf_zst:t,header:n,flow:r,library:o})=>{const[i,a]=c(t.options.worker),s=e.useRef(null);t.workermanager&&(t.workermanager.on_setWorker=a),t.set_worker(i),e.useEffect((()=>{t.auto_progress()}),[]),e.useEffect((()=>{t.local_state.setState({funcnodescontainerRef:s.current})}),[s]);const l=t.plugins();return e.createElement(wV,{plugins:l,fnrf_zst:t},e.createElement(oG.Provider,{value:t},e.createElement(qV,{asChild:!0},e.createElement(eG,{asChild:!0},e.createElement(PC,{style:{height:"100%",width:"100%",display:"flex",flexDirection:"column",flex:1}},e.createElement("div",{ref:s,className:"funcnodesreactflowcontainer funcnodescontainer"},n.show&&e.createElement(WC,{...n}),e.createElement("div",{className:"funcnodesreactflowbody"},e.createElement(JV,{...r}),i&&o.show&&e.createElement(AN,null),i&&r.showNodeSettings&&e.createElement(WV,null)),e.createElement("div",{className:"funcnodesflaotingmenu"},e.createElement(eG.OutFullScreen,null,r.allowExpand&&e.createElement(qV.Trigger,null,e.createElement(qV.Expanded,null,e.createElement(rb,{size:"xl",style:{padding:"4px"}})),e.createElement(qV.Collapsed,null,e.createElement(ob,{size:"xl",style:{padding:"4px"}})))),r.allowFullScreen&&e.createElement(eG.Trigger,null,e.createElement(eG.OutFullScreen,null,e.createElement(tb,{size:"xl",style:{padding:"4px"}})),e.createElement(eG.InFullScreen,null,e.createElement(nb,{size:"xl",style:{padding:"4px"}}))))))))))},nG={},rG={id:"",debug:!1,useWorkerManager:!0,show_library:!0,header:{show:!0,showmenu:!0},flow:{minimap:!0,static:!1,minZoom:.1,maxZoom:5,allowFullScreen:!0,allowExpand:!0,showNodeSettings:!0},library:{show:!0}},oG=i(ml(rG)),iG=t=>{let n=q(t,{...rG,id:Hu()}).new_obj;if(!n.useWorkerManager&&void 0===n.worker)return e.createElement("div",null,"Error: If you don't use a worker manager, you must provide a default worker.");if(t.useWorkerManager&&void 0===t.workermanager_url)return e.createElement("div",null,"Error: If you use a worker manager, you must provide a worker manager url.");if(void 0===window.fnrf_zst&&(window.fnrf_zst=nG),void 0===nG[n.id]){const e=ml(n);nG[n.id]=e}if(n.worker&&n.worker.set_zustand(nG[n.id]),nG[n.id].options.debug=n.debug,n.useWorkerManager){const e=new Zu(n.workermanager_url,nG[n.id]);nG[n.id].workermanager=e}return e.createElement(tG,{fnrf_zst:nG[n.id],header:n.header,library:n.library,flow:n.flow})},aG={set_io_value:({nid:e,ioid:t,value:n,set_default:r=!1})=>{const i=o(oG);i.worker?.set_io_value({nid:e,ioid:t,value:n,set_default:r})}},sG=t=>{const n=new fl("FuncNodes",t.debug?"debug":"info");n.debug("Initalizing FuncNodes with props:",t);let r=q(t,{...rG,id:Hu()}).new_obj;if(void 0===t.worker&&void 0!==t.worker_url&&(r.useWorkerManager=!1,r.worker=new $u({url:t.worker_url,uuid:r.id,on_sync_complete:r.on_sync_complete})),void 0!==r.worker){const e=ml(r);r.worker.set_zustand(e)}if(void 0!==t.fnw_url){if(void 0===r.worker)throw new Error("defining fnw_url requires a worker to be defined");const e=async function(e,t=!0){try{const n=await fetch(e);if(!n.ok)throw new Error(`Failed to fetch from URL: ${n.status} ${n.statusText}`);const r=await n.blob();return await new Promise(((e,n)=>{const o=new FileReader;o.onload=()=>{const r=o.result;"string"!=typeof r&&(n("Failed to convert URL to Base64: No result from FileReader"),n(o.error)),e(t?r.split(",")[1]:r)},o.onerror=()=>n(o.error),o.readAsDataURL(r)}))}catch(e){throw console.error("Error converting URL to Base64:",e),e}}(t.fnw_url),n=r.worker.on_sync_complete,o=async t=>{const r=await e;t.on_sync_complete=n,await t.update_from_export(r)};r.worker.on_sync_complete=o}return n.debug("Initalizing FuncnodesReactFlow with props:",r),e.createElement("div",{className:"FuncnodesApp"},e.createElement(iG,{...r}))};export{oG as FuncNodesContext,ml as FuncNodesReactFlowZustand,Xu as FuncNodesWorker,iG as FuncnodesReactFlow,JV as ReactFlowLayer,wV as RenderMappingProvider,$u as WebSocketWorker,oe as assert_full_node,q as deep_update,sG as default,aG as helperfunctions};
156
+ */var UB=function(){if(ZB)return YB;ZB=1;var e=/; *([!#$%&'*+.^_`|~0-9A-Za-z-]+) *= *("(?:[\u000b\u0020\u0021\u0023-\u005b\u005d-\u007e\u0080-\u00ff]|\\[\u000b\u0020-\u00ff])*"|[!#$%&'*+.^_`|~0-9A-Za-z-]+) */g,t=/^[\u000b\u0020-\u007e\u0080-\u00ff]+$/,n=/^[!#$%&'*+.^_`|~0-9A-Za-z-]+$/,r=/\\([\u000b\u0020-\u00ff])/g,o=/([\\"])/g,i=/^[!#$%&'*+.^_`|~0-9A-Za-z-]+\/[!#$%&'*+.^_`|~0-9A-Za-z-]+$/;function a(e){var r=String(e);if(n.test(r))return r;if(r.length>0&&!t.test(r))throw new TypeError("invalid parameter value");return'"'+r.replace(o,"\\$1")+'"'}function s(e){this.parameters=Object.create(null),this.type=e}return YB.format=function(e){if(!e||"object"!=typeof e)throw new TypeError("argument obj is required");var t=e.parameters,r=e.type;if(!r||!i.test(r))throw new TypeError("invalid type");var o=r;if(t&&"object"==typeof t)for(var s,l=Object.keys(t).sort(),c=0;c<l.length;c++){if(s=l[c],!n.test(s))throw new TypeError("invalid parameter name");o+="; "+s+"="+a(t[s])}return o},YB.parse=function(t){if(!t)throw new TypeError("argument string is required");var n="object"==typeof t?function(e){var t;"function"==typeof e.getHeader?t=e.getHeader("content-type"):"object"==typeof e.headers&&(t=e.headers&&e.headers["content-type"]);if("string"!=typeof t)throw new TypeError("content-type header is missing from object");return t}(t):t;if("string"!=typeof n)throw new TypeError("argument string is required to be a string");var o=n.indexOf(";"),a=-1!==o?n.slice(0,o).trim():n.trim();if(!i.test(a))throw new TypeError("invalid media type");var l=new s(a.toLowerCase());if(-1!==o){var c,u,d;for(e.lastIndex=o;u=e.exec(n);){if(u.index!==o)throw new TypeError("invalid parameter format");o+=u[0].length,c=u[1].toLowerCase(),34===(d=u[2]).charCodeAt(0)&&-1!==(d=d.slice(1,-1)).indexOf("\\")&&(d=d.replace(r,"$1")),l.parameters[c]=d}if(o!==n.length)throw new TypeError("invalid parameter format")}return l},YB}(),JB=new Map,KB=function(e){return e.cloneNode(!0)},qB=function(){return"file:"===window.location.protocol},QB=function(e,t,n){var r=new XMLHttpRequest;r.onreadystatechange=function(){try{if(!/\.svg/i.test(e)&&2===r.readyState){var t=r.getResponseHeader("Content-Type");if(!t)throw new Error("Content type not found");var o=UB.parse(t).type;if("image/svg+xml"!==o&&"text/plain"!==o)throw new Error("Invalid content type: ".concat(o))}if(4===r.readyState){if(404===r.status||null===r.responseXML)throw new Error(qB()?"Note: SVG injection ajax calls do not work locally without adjusting security settings in your browser. Or consider using a local webserver.":"Unable to load SVG file: "+e);if(!(200===r.status||qB()&&0===r.status))throw new Error("There was a problem injecting the SVG: "+r.status+" "+r.statusText);n(null,r)}}catch(e){if(r.abort(),!(e instanceof Error))throw e;n(e,r)}},r.open("GET",e),r.withCredentials=t,r.overrideMimeType&&r.overrideMimeType("text/xml"),r.send()},eV={},tV=function(e,t){eV[e]=eV[e]||[],eV[e].push(t)},nV=function(e,t,n){if(JB.has(e)){var r=JB.get(e);if(void 0===r)return void tV(e,n);if(r instanceof SVGSVGElement)return void n(null,KB(r))}JB.set(e,void 0),tV(e,n),QB(e,t,(function(t,n){var r;t?JB.set(e,t):(null===(r=n.responseXML)||void 0===r?void 0:r.documentElement)instanceof SVGSVGElement&&JB.set(e,n.responseXML.documentElement),function(e){for(var t=function(t,n){setTimeout((function(){if(Array.isArray(eV[e])){var n=JB.get(e),r=eV[e][t];n instanceof SVGSVGElement&&r(null,KB(n)),n instanceof Error&&r(n),t===eV[e].length-1&&delete eV[e]}}),0)},n=0,r=eV[e].length;n<r;n++)t(n)}(e)}))},rV=function(e,t,n){QB(e,t,(function(e,t){var r;e?n(e):(null===(r=t.responseXML)||void 0===r?void 0:r.documentElement)instanceof SVGSVGElement&&n(null,t.responseXML.documentElement)}))},oV=0,iV=[],aV={},sV="http://www.w3.org/1999/xlink",lV=function(e,t,n,r,o,i,a){var s=e.getAttribute("data-src")||e.getAttribute("src");if(s){if(-1!==iV.indexOf(e))return iV.splice(iV.indexOf(e),1),void(e=null);iV.push(e),e.setAttribute("src",""),(r?nV:rV)(s,o,(function(r,o){if(!o)return iV.splice(iV.indexOf(e),1),e=null,void a(r);var l=e.getAttribute("id");l&&o.setAttribute("id",l);var c=e.getAttribute("title");c&&o.setAttribute("title",c);var u=e.getAttribute("width");u&&o.setAttribute("width",u);var d=e.getAttribute("height");d&&o.setAttribute("height",d);var f=Array.from(new Set(Zd(Zd(Zd([],(o.getAttribute("class")||"").split(" "),!0),["injected-svg"],!1),(e.getAttribute("class")||"").split(" "),!0))).join(" ").trim();o.setAttribute("class",f);var p=e.getAttribute("style");p&&o.setAttribute("style",p),o.setAttribute("data-src",s);var h=[].filter.call(e.attributes,(function(e){return/^data-\w[\w-]*$/.test(e.name)}));if(Array.prototype.forEach.call(h,(function(e){e.name&&e.value&&o.setAttribute(e.name,e.value)})),n){var m,g,y,b,v,w={clipPath:["clip-path"],"color-profile":["color-profile"],cursor:["cursor"],filter:["filter"],linearGradient:["fill","stroke"],marker:["marker","marker-start","marker-mid","marker-end"],mask:["mask"],path:[],pattern:["fill","stroke"],radialGradient:["fill","stroke"]};Object.keys(w).forEach((function(e){m=e,y=w[e];for(var t=function(e,t){var n;b=g[e].id,v=b+"-"+ ++oV,Array.prototype.forEach.call(y,(function(e){for(var t=0,r=(n=o.querySelectorAll("["+e+'*="'+b+'"]')).length;t<r;t++){var i=n[t].getAttribute(e);i&&!i.match(new RegExp('url\\("?#'+b+'"?\\)'))||n[t].setAttribute(e,"url(#"+v+")")}}));for(var r=o.querySelectorAll("[*|href]"),i=[],a=0,s=r.length;a<s;a++){var l=r[a].getAttributeNS(sV,"href");l&&l.toString()==="#"+g[e].id&&i.push(r[a])}for(var c=0,u=i.length;c<u;c++)i[c].setAttributeNS(sV,"href","#"+v);g[e].id=v},n=0,r=(g=o.querySelectorAll(m+"[id]")).length;n<r;n++)t(n)}))}o.removeAttribute("xmlns:a");for(var x,C,k=o.querySelectorAll("script"),E=[],S=0,I=k.length;S<I;S++)(C=k[S].getAttribute("type"))&&"application/ecmascript"!==C&&"application/javascript"!==C&&"text/javascript"!==C||((x=k[S].innerText||k[S].textContent)&&E.push(x),o.removeChild(k[S]));if(E.length>0&&("always"===t||"once"===t&&!aV[s])){for(var _=0,A=E.length;_<A;_++)new Function(E[_])(window);aV[s]=!0}var N=o.querySelectorAll("style");if(Array.prototype.forEach.call(N,(function(e){e.textContent+=""})),o.setAttribute("xmlns","http://www.w3.org/2000/svg"),o.setAttribute("xmlns:xlink",sV),i(o),!e.parentNode)return iV.splice(iV.indexOf(e),1),e=null,void a(new Error("Parent node is null"));e.parentNode.replaceChild(o,e),iV.splice(iV.indexOf(e),1),e=null,a(null,o)}))}else a(new Error("Invalid data-src or src attribute"))},cV=["afterInjection","beforeInjection","desc","evalScripts","fallback","httpRequestWithCredentials","loading","renumerateIRIElements","src","title","useRequestCache","wrapper"],uV="http://www.w3.org/2000/svg",dV="http://www.w3.org/1999/xlink",fV=function(t){function n(){for(var e,n=arguments.length,r=new Array(n),o=0;o<n;o++)r[o]=arguments[o];return(e=t.call.apply(t,[this].concat(r))||this).initialState={hasError:!1,isLoading:!0},e.state=e.initialState,e._isMounted=!1,e.reactWrapper=void 0,e.nonReactWrapper=void 0,e.refCallback=function(t){e.reactWrapper=t},e}gB(n,t);var r=n.prototype;return r.renderSVG=function(){var e=this;if(this.reactWrapper instanceof function(e){return((null==e?void 0:e.ownerDocument)||document).defaultView||window}(this.reactWrapper).Node){var t,n,r=this.props,o=r.desc,i=r.evalScripts,a=r.httpRequestWithCredentials,s=r.renumerateIRIElements,l=r.src,c=r.title,u=r.useRequestCache,d=this.props.onError,f=this.props.beforeInjection,p=this.props.afterInjection,h=this.props.wrapper;"svg"===h?((t=document.createElementNS(uV,h)).setAttribute("xmlns",uV),t.setAttribute("xmlns:xlink",dV),n=document.createElementNS(uV,h)):(t=document.createElement(h),n=document.createElement(h)),t.appendChild(n),n.dataset.src=l,this.nonReactWrapper=this.reactWrapper.appendChild(t);var m=function(t){e.removeSVG(),e._isMounted?e.setState((function(){return{hasError:!0,isLoading:!1}}),(function(){d(t)})):d(t)};!function(e,t){var n=void 0===t?{}:t,r=n.afterAll,o=void 0===r?function(){}:r,i=n.afterEach,a=void 0===i?function(){}:i,s=n.beforeEach,l=void 0===s?function(){}:s,c=n.cacheRequests,u=void 0===c||c,d=n.evalScripts,f=void 0===d?"never":d,p=n.httpRequestWithCredentials,h=void 0!==p&&p,m=n.renumerateIRIElements,g=void 0===m||m;if(e&&"length"in e)for(var y=0,b=0,v=e.length;b<v;b++)lV(e[b],f,g,u,h,l,(function(t,n){a(t,n),e&&"length"in e&&e.length===++y&&o(y)}));else e?lV(e,f,g,u,h,l,(function(t,n){a(t,n),o(1),e=null})):o(0)}(n,{afterEach:function(t,n){t?m(t):e._isMounted&&e.setState((function(){return{isLoading:!1}}),(function(){try{p(n)}catch(e){m(e)}}))},beforeEach:function(e){if(e.setAttribute("role","img"),o){var t=e.querySelector(":scope > desc");t&&e.removeChild(t);var n=document.createElement("desc");n.innerHTML=o,e.prepend(n)}if(c){var r=e.querySelector(":scope > title");r&&e.removeChild(r);var i=document.createElement("title");i.innerHTML=c,e.prepend(i)}try{f(e)}catch(e){m(e)}},cacheRequests:u,evalScripts:i,httpRequestWithCredentials:a,renumerateIRIElements:s})}},r.removeSVG=function(){var e;null!=(e=this.nonReactWrapper)&&e.parentNode&&(this.nonReactWrapper.parentNode.removeChild(this.nonReactWrapper),this.nonReactWrapper=null)},r.componentDidMount=function(){this._isMounted=!0,this.renderSVG()},r.componentDidUpdate=function(e){var t=this;(function(e,t){for(var n in e)if(!(n in t))return!0;for(var r in t)if(e[r]!==t[r])return!0;return!1})(LR({},e),this.props)&&this.setState((function(){return t.initialState}),(function(){t.removeSVG(),t.renderSVG()}))},r.componentWillUnmount=function(){this._isMounted=!1,this.removeSVG()},r.render=function(){var t=this.props;t.afterInjection,t.beforeInjection,t.desc,t.evalScripts;var n=t.fallback;t.httpRequestWithCredentials;var r=t.loading;t.renumerateIRIElements,t.src,t.title,t.useRequestCache;var o=t.wrapper,i=PR(t,cV),a=o;return e.createElement(a,LR({},i,{ref:this.refCallback},"svg"===o?{xmlns:uV,xmlnsXlink:dV}:{}),this.state.isLoading&&r&&e.createElement(r,null),this.state.hasError&&n&&e.createElement(n,null))},n}(e.Component);fV.defaultProps={afterInjection:function(){},beforeInjection:function(){},desc:"",evalScripts:"never",fallback:null,httpRequestWithCredentials:!1,loading:null,onError:function(){},renumerateIRIElements:!0,title:"",useRequestCache:!0,wrapper:"div"},fV.propTypes={afterInjection:vy.func,beforeInjection:vy.func,desc:vy.string,evalScripts:vy.oneOf(["always","once","never"]),fallback:vy.oneOfType([vy.func,vy.object,vy.string]),httpRequestWithCredentials:vy.bool,loading:vy.oneOfType([vy.func,vy.object,vy.string]),onError:vy.func,renumerateIRIElements:vy.bool,src:vy.string.isRequired,title:vy.string,useRequestCache:vy.bool,wrapper:vy.oneOf(["div","span","svg"])};const pV=({value:t,renderoptions:n})=>(void 0===n&&(n={}),void 0===n.format&&(n.format="jpeg"),e.createElement("img",{src:"data:image/"+n.format+";base64, "+t,style:{maxWidth:"100%",maxHeight:"100%"}})),hV=({value:t})=>e.createElement(fV,{src:`data:image/svg+xml;base64,${btoa(t)}`,style:{maxWidth:"100%",maxHeight:"100%"},beforeInjection:e=>{e.classList.add("svg-class-name"),e.setAttribute("style","max-width: 100%; max-height: 100%;"),e.setAttribute("width","100%"),e.setAttribute("height","100%")}}),mV=({io:t})=>{let n=t.fullvalue;if(null==n&&(n=t.value),void 0===n&&(n=""),"string"!=typeof n||n.length%4!=0)return e.createElement("div",null,n);const r=Math.round(3*n.length/4);return e.createElement("div",null,e.createElement("pre",null,"Bytes(",r,")"))},gV=({io:t})=>{let n=t.fullvalue;return void 0===n&&(n=t.value),void 0===n&&(n={}),e.createElement(KD,{data:n})},yV={float:({io:e,inputconverter:t})=>_D({io:e,inputconverter:t,parser:parseFloat}),int:({io:e,inputconverter:t})=>_D({io:e,inputconverter:t,parser:parseInt}),bool:({io:t,inputconverter:n})=>{const r=o(oG),i=void 0===t.value,a=u(null);s((()=>{a.current&&(a.current.indeterminate=i)}),[a,i]);return e.createElement("input",{ref:a,type:"checkbox",className:"styledcheckbox booleaninput",checked:!!n[1](t.value),onChange:e=>{let o=e.target.checked;try{o=n[0](e.target.checked)}catch(e){}r.worker?.set_io_value({nid:t.node,ioid:t.id,value:o,set_default:t.render_options.set_default})},disabled:t.connected})},string:AD,str:AD,color:({io:t})=>{const n=o(oG),r=t.value_options?.colorspace||"hex";let i=!1;return"string"!=typeof t.type&&"anyOf"in t.type&&void 0!==t.type.anyOf&&(i=t.type.anyOf.some((e=>"None"===e))),e.createElement(bO,{onChange:e=>{let o="<NoValue>";e&&(o=e[r]?e[r]():e.hex()),null===e&&(o=null),n.worker?.set_io_value({nid:t.node,ioid:t.id,value:o,set_default:t.render_options.set_default})},inicolordata:t.value,allow_null:i,inicolorspace:r})},select:TD,enum:TD,bytes:mV},bV={Inputrenderer:yV,Outputrenderer:{},HandlePreviewRenderer:{bytes:mV},DataOverlayRenderer:{},DataPreviewViewRenderer:{string:({io:t})=>{let n=t.fullvalue;return null==n&&(n=t.value),n=void 0===n?"":JSON.stringify(t.value).replace(/\\n/g,"\n"),e.createElement("div",null,e.createElement("pre",null,n))},table:({io:t})=>{let n=t.fullvalue;return null==n&&(n=t.value),void 0===n&&(n=[]),e.createElement($B,{tabledata:n})},image:({io:t})=>{let n=t.fullvalue;return null==n&&(n=t.value),void 0===n&&(n=""),e.createElement(pV,{value:n})},svg:({io:t})=>{let n=t.fullvalue;return null==n&&(n=t.value),void 0===n&&(n=""),e.createElement(hV,{value:n})},dict:gV,bytes:mV},DataViewRenderer:{},InLineRenderer:{bytes:({io:e})=>{let t=e.fullvalue;null==t&&(t=e.value),t=void 0===t?"":JSON.stringify(e.value).replace(/\\n/g,"\n");return`Bytes(${Math.round(3*t.length/4)})`}}},vV=(e,t)=>{const n=t.options||{},r=void 0===n.overwrite||n.overwrite;switch(t.type){case"EXTEND_INPUT_RENDER":return!r&&e.Inputrenderer[t.payload.type]?e:{...e,Inputrenderer:{...e.Inputrenderer,[t.payload.type]:t.payload.component}};case"EXTEND_OUTPUT_RENDER":return!r&&e.Outputrenderer[t.payload.type]?e:{...e,Outputrenderer:{...e.Outputrenderer,[t.payload.type]:t.payload.component}};case"EXTEND_HANDLE_PREVIEW_RENDER":return!r&&e.HandlePreviewRenderer[t.payload.type]?e:{...e,HandlePreviewRenderer:{...e.HandlePreviewRenderer,[t.payload.type]:t.payload.component}};case"EXTEND_DATA_OVERLAY_RENDER":return!r&&e.DataOverlayRenderer[t.payload.type]?e:{...e,DataOverlayRenderer:{...e.DataOverlayRenderer,[t.payload.type]:t.payload.component}};case"EXTEND_DATA_PREVIEW_RENDER":return!r&&e.DataPreviewViewRenderer[t.payload.type]?e:{...e,DataPreviewViewRenderer:{...e.DataPreviewViewRenderer,[t.payload.type]:t.payload.component}};case"EXTEND_DATA_VIEW_RENDER":return!r&&e.DataViewRenderer[t.payload.type]?e:{...e,DataViewRenderer:{...e.DataViewRenderer,[t.payload.type]:t.payload.component}};case"EXTEND_FROM_PLUGIN":let n=!1;const o=[[t.payload.plugin.input_renderers||{},e.Inputrenderer],[t.payload.plugin.output_renderers||{},e.Outputrenderer],[t.payload.plugin.handle_preview_renderers||{},e.HandlePreviewRenderer],[t.payload.plugin.data_overlay_renderers||{},e.DataOverlayRenderer],[t.payload.plugin.data_preview_renderers||{},e.DataPreviewViewRenderer],[t.payload.plugin.data_view_renderers||{},e.DataViewRenderer]];for(const[e,t]of o){if(Object.keys(e).length>0)if(r)n=!0;else for(const r in e)if(!t[r]){n=!0;break}if(n)break}if(!n)return e;for(const[e,t]of o)for(const n in e)!r&&t[n]||(t[n]=e[n]);return{...e};default:return e}},wV=({children:t,plugins:n,fnrf_zst:r})=>{const[o,i]=v(vV,bV),a=(e,t)=>{i({type:"EXTEND_FROM_PLUGIN",payload:{plugin:e},options:t})};return s((()=>{for(const t in n){const o=n[t].RendererPlugin;o&&a(o);const i=n[t].renderpluginfactory;i&&a(i({React:e,fnrf_zst:r}))}}),[n]),e.createElement(xV.Provider,{value:{Inputrenderer:o.Inputrenderer,Outputrenderer:o.Outputrenderer,HandlePreviewRenderer:o.HandlePreviewRenderer,DataOverlayRenderer:o.DataOverlayRenderer,DataPreviewViewRenderer:o.DataPreviewViewRenderer,DataViewRenderer:o.DataViewRenderer,InLineRenderer:o.InLineRenderer,extendInputRenderMapping:(e,t,n)=>{i({type:"EXTEND_INPUT_RENDER",payload:{type:e,component:t},options:n})},extendOutputRenderMapping:(e,t,n)=>{i({type:"EXTEND_OUTPUT_RENDER",payload:{type:e,component:t},options:n})},extendHandlePreviewRenderMapping:(e,t,n)=>{i({type:"EXTEND_HANDLE_PREVIEW_RENDER",payload:{type:e,component:t},options:n})},extendDataOverlayRenderMapping:(e,t,n)=>{i({type:"EXTEND_DATA_OVERLAY_RENDER",payload:{type:e,component:t},options:n})},extendDataPreviewRenderMapping:(e,t,n)=>{i({type:"EXTEND_DATA_PREVIEW_RENDER",payload:{type:e,component:t},options:n})},extendDataViewRenderMapping:(e,t,n)=>{i({type:"EXTEND_DATA_VIEW_RENDER",payload:{type:e,component:t},options:n})},extendFromPlugin:a}},t)},xV=i({Inputrenderer:bV.Inputrenderer,Outputrenderer:bV.Outputrenderer,HandlePreviewRenderer:bV.HandlePreviewRenderer,DataOverlayRenderer:bV.DataOverlayRenderer,DataPreviewViewRenderer:bV.DataPreviewViewRenderer,DataViewRenderer:bV.DataViewRenderer,InLineRenderer:bV.InLineRenderer,extendInputRenderMapping:(e,t,n)=>{},extendOutputRenderMapping:(e,t,n)=>{},extendHandlePreviewRenderMapping:(e,t,n)=>{},extendDataOverlayRenderMapping:(e,t,n)=>{},extendDataPreviewRenderMapping:(e,t,n)=>{},extendDataViewRenderMapping:(e,t,n)=>{},extendFromPlugin:(e,t)=>{}}),CV=({component:t,...n})=>e.createElement(t,{...n}),kV=e=>{const t=o(oG),{DataOverlayRenderer:n,DataPreviewViewRenderer:r}=o(xV);if(void 0===e)return;const i=t.render_options(),[a]=EV(e.type,i.typemap||{});return a?n[a]?n[a]:r[a]?r[a]:gV:gV},EV=(e,t)=>{if("string"==typeof e)return e in t?[t[e],e]:[e,e];if("allOf"in e&&void 0!==e.allOf)return[void 0,void 0];if("anyOf"in e&&void 0!==e.anyOf){const n=e.anyOf.map((e=>EV(e,t)));for(const e of n)switch(e[0]){case"bool":return["bool",e[1]];case"enum":return["enum",e[1]];case"float":return["float",e[1]];case"int":return["int",e[1]];case"string":case"str":return["string",e[1]]}return[void 0,void 0]}return"type"in e&&void 0!==e.type&&"enum"===e.type?["enum","enum"]:[void 0,void 0]},SV=({io:t,typestring:n,preview:r,...i})=>{const[a,s]=c(!1),[l,u]=c(!1),d=e.useContext(oG),[f,p]=(e=>{const t=o(oG).render_options(),{HandlePreviewRenderer:n,DataPreviewViewRenderer:r}=o(xV),i=kV(e);let a;if(e){const[o]=EV(e.type,t.typemap||{});a=o?n[o]?n[o]:r[o]?r[o]:gV:gV}return[a,i]})(t),h=d.local_state((()=>d.reactflowRef));return e.createElement(sO,{open:a||l,onOpenChange:u},e.createElement(lO,{asChild:!0},e.createElement(Ai,{id:t.id,"data-type":n,...i})),e.createElement(cO,{container:h},e.createElement(uO,{className:"iotooltipcontent",sideOffset:5},e.createElement("div",{className:"iotooltip_container"},e.createElement("div",{className:"iotooltip_header"},a?e.createElement(ub,{onClick:()=>s(!1)}):e.createElement(cb,{onClick:()=>s(!0)}),p&&e.createElement(hb,{title:t.full_id,trigger:e.createElement(tb,null),onOpenChange:e=>{e&&t.try_get_full_value&&t.try_get_full_value(),s(e)}},e.createElement(CV,{component:p,io:t}))),f?e.createElement(CV,{component:f,io:t}):`no preview available for "${n}"`),e.createElement(dO,{className:"iotooltipcontentarrow"}))))},IV={"":[e=>e,e=>e],str_to_json:[e=>JSON.parse(e),e=>"string"==typeof e?e:JSON.stringify(e)],str_to_list:[e=>{try{const t=JSON.parse(e);return Array.isArray(t)?t:[t]}catch(t){try{return JSON.parse("["+e+"]")}catch(e){}}throw new Error("Invalid list")},e=>JSON.stringify(e)]},_V=({io:t})=>{const n=o(oG).render_options(),[r,i]=EV(t.render_options.type,n.typemap||{}),{Inputrenderer:a}=o(xV),s=r?t.value_options?.options?TD:a[r]:void 0,l=IV[(i&&n.inputconverter?.[i])??""];return e.createElement("div",{className:"nodeinput","data-type":r},e.createElement(SV,{io:t,typestring:r,position:Ho.Left,type:"target"}),s&&e.createElement("div",{className:"iovaluefield nodrag","data-type":r},e.createElement(s,{io:t,inputconverter:l})),e.createElement("div",{className:"ioname"},t.name),e.createElement(SV,{io:t,typestring:r,position:Ho.Right,type:"source"}))},AV=({io:t,typestring:n})=>{const{InLineRenderer:r}=o(xV);if(n&&r[n])return e.createElement("div",null,r[n]({io:t}));let i=t.fullvalue;return null==i&&(i=t.value),i=void 0===i?"":JSON.stringify(i).replace(/\\n/g,"\n"),i.length>63&&(i=i.slice(0,60)+"..."),e.createElement("div",null,i)},NV=({io:t})=>{const n=o(oG).render_options(),[r]=EV(t.type,n.typemap||{}),{Outputrenderer:i}=o(xV),a=r?i[r]:void 0;return e.createElement("div",{className:"nodeoutput","data-type":r},e.createElement(SV,{io:t,typestring:r,position:Ho.Right,type:"source"}),e.createElement("div",{className:"ioname"},t.name),a?e.createElement("div",{className:"iovaluefield nodrag"},e.createElement(a,{io:t})):e.createElement("div",{className:"iovaluefield"},e.createElement(AV,{io:t,typestring:r})))};function OV(e){return`${Math.floor(e/60)}:${Math.floor(e%60).toString().padStart(2,"0")}`}function RV(e,t){const n=["","K","M","G","T"];let r=0;for(;e>=t&&r<n.length-1;)e/=t,r++;return[e.toFixed(2),n[r]]}const MV=({state:t,className:n="reacttqdm",...r})=>{const o=u(null),i=u(null);s((()=>{const e=()=>{o.current&&i.current&&function(e,t,n={}){const{maxFontSize:r=100,minFontSize:o=6,decrementFactor:i=.9}=n;if(!e||!t)return;if(i>=1||i<=0)throw new Error("decrementFactor must be between 0 and 1");const a=e.getBoundingClientRect(),s=a.width,l=a.height;let c=r;t.style.whiteSpace="nowrap",t.style.display="inline-block",t.style.fontSize=c+"px";let u=t.getBoundingClientRect();for(;(u.width>s||u.height>l)&&c>o;)c*=i,t.style.fontSize=c+"px",u=t.getBoundingClientRect()}(o.current,i.current,{maxFontSize:12,decrementFactor:.9})};return e(),window.addEventListener("resize",e),()=>{window.removeEventListener("resize",e)}}),[t]);const a=t.total?t.n/t.total*100:0;return e.createElement("div",{ref:o,className:n,...r},e.createElement("div",{style:{position:"relative",display:"flex",flexDirection:"column",justifyContent:"center",alignItems:"center"}},e.createElement("div",{className:n+"-bar",style:{position:"absolute",width:"100%",height:"100%",overflow:"hidden"}},e.createElement("div",{className:n+"-progress",style:{width:`${a}%`,height:"100%"}})),e.createElement("div",{className:n+"-text",ref:i},function(e={n:0,elapsed:0,ascii:!1,unit:"it",unit_scale:!1,unit_divisor:1e3}){let t=e.total??null;const{n:n,unit_scale:r,elapsed:o,unit:i,unit_divisor:a,prefix:s="",rate:l,postfix:c=null,initial:u=0}=e;null!==t&&n>=t+.5&&(t=null);let d=n,f=t,p=l;r&&!0!==r&&1!==r&&(null!==t&&(f=t*r),d=n*r,void 0!==l&&(p=l*r));const h=OV(o);void 0===p&&o>0&&(p=(d-u)/o);const m=p?1/p:void 0,[g,y]=p?RV(p,a):[void 0,""],[b,v]=m?RV(m,1e3):[void 0,""],w=m&&m>1?b?`${b}${v}s/`+i:"?":(g||"?")+`${y}${i}/s`,x=r?RV(d,a).join(""):d.toString(),C=r&&null!==f?RV(f,a).join(""):f?.toString()??"?",k=p?OV(p&&null!==f?(f-d)/p:0):"?",E=s?`${s}: `:"";if(null!==t){const e=` ${x}/${C} [${h} < ${k}, ${w}${c??""}]`;return`${E}${(d/t*100).toFixed(0)}%${e}`}return`${E}${x}${i} [${h}, ${w}${c??""}]`}(t))))},TV=({node_data:t})=>{const n=o(oG);return e.createElement("div",{className:"nodeheader",title:t.description||t.node_name},e.createElement("div",{className:"nodeheader_element"},e.createElement(fb,{fontSize:"inherit",className:"triggerbutton",onClick:()=>{n.on_node_action({type:"trigger",from_remote:!1,id:t.id})}}),e.createElement(db,{fontSize:"inherit",onClick:async()=>{n.logger.info("nodestatus",await(n.worker?.get_node_status(t.id)))}})),e.createElement("div",{className:"nodeheader_element nodeheader_title"},e.createElement("div",{className:"nodeheader_title_text"},t.node_name)),e.createElement("div",{className:"nodeheader_element"},e.createElement(sb,{fontSize:"inherit"})))},PV=({node_data:t})=>{const n=t.render_options?.data?.src?t.io[t.render_options?.data?.src]:void 0,[r,i]=(e=>{const t=o(oG),n=kV(e),{DataPreviewViewRenderer:r,DataViewRenderer:i}=o(xV),a=t.render_options();if(void 0===e)return[void 0,n];const[s]=EV(e.type,a.typemap||{});return s?i[s]?[i[s],n]:r[s]?[r[s],n]:[gV,n]:[gV,n]})(n);return e.createElement("div",{className:"nodrag nodedatabody","data-src":t.render_options?.data?.src||""},r&&n&&e.createElement(hb,{title:n.full_id,trigger:e.createElement("div",{className:"nodedatabutton"},e.createElement(CV,{component:r,io:n})),onOpenChange:e=>{e&&n?.try_get_full_value&&n?.try_get_full_value()}},i&&e.createElement(CV,{component:i,io:n})))},DV=({node_data:t})=>{const n=Object.values(t.io).filter((e=>e.is_input)),r=Object.values(t.io).filter((e=>!e.is_input));return t.render_options,e.createElement("div",{className:"nodebody"},r.map((t=>t.hidden?null:e.createElement(NV,{key:t.id,io:t}))),e.createElement(PV,{node_data:t}),n.map((t=>t.hidden?null:e.createElement(_V,{key:t.id,io:t}))))},jV=({node_data:t})=>{const[n,r]=c(t.name);s((()=>{r(t.name)}),[t]);const i=o(oG);return e.createElement("input",{className:"nodename_input",value:n,onChange:e=>{r(e.target.value)},onBlur:e=>{const n=e.target.value;i.on_node_action({type:"update",from_remote:!1,id:t.id,node:{name:n}})}})},LV=({node_data:t})=>t.progress?e.createElement(MV,{style:{height:"idle"===t.progress.prefix?"0px":void 0},state:t.progress,className:"nodeprogress"}):null,FV=({node_data:t})=>e.createElement("div",{className:"nodefooter"},t.error&&e.createElement("div",{className:"nodeerror"},t.error),e.createElement(LV,{node_data:t})),zV=({io:t})=>{const n=e.useContext(oG).render_options(),[r,o]=EV(t.render_options.type,n.typemap||{}),{Inputrenderer:i}=e.useContext(xV),a=r?t.value_options?.options?TD:i[r]:void 0,s=IV[(o&&n.inputconverter?.[o])??""];return e.createElement("div",{className:"nodesettings_component"},e.createElement("div",null,t.name),a&&e.createElement(a,{io:t,inputconverter:s}),e.createElement("div",null,e.createElement("label",null,"hidden:",e.createElement("input",{className:"styledcheckbox",type:"checkbox",disabled:t.connected,onChange:e=>{t.set_hidden?.(e.target.checked)},checked:t.hidden}))))},BV=({io:t})=>e.createElement("div",{className:"nodesettings_component"},e.createElement("div",null,t.name),e.createElement("div",null,e.createElement("label",null,"hidden:",e.createElement("input",{className:"styledcheckbox",type:"checkbox",disabled:t.connected,onChange:e=>{t.set_hidden?.(e.target.checked)},checked:t.hidden})))),VV=({nodestore:t})=>{const n=t(),r=Object.values(n.io).filter((e=>e.is_input)),o=Object.values(n.io).filter((e=>!e.is_input));return e.createElement("div",{className:"nodesettings_content"},e.createElement("div",{className:"nodesettings_section"},e.createElement("div",{className:"nodesettings_component"},e.createElement("div",null,"Name"),e.createElement("div",null,e.createElement(jV,{node_data:n})))),e.createElement("div",{className:"nodesettings_section"},e.createElement("div",null,"Inputs"),r.map((t=>e.createElement(zV,{io:t,key:t.id})))),e.createElement("div",{className:"nodesettings_section"},e.createElement("div",null,"Outputs"),o.map((t=>e.createElement(BV,{io:t,key:t.id})))))},GV=()=>{const t=e.useContext(oG),n=t.local_state((e=>e.selected_nodes));if(0===n.length)return e.createElement("div",null,"Node Settings");if(n.length>1)return e.createElement("div",null,"Multiple Nodes Selected");const r=t.nodespace.get_node(n[0]);return r?e.createElement(VV,{nodestore:r}):e.createElement("div",null,"Node not found")},WV=()=>{const t=e.useContext(oG),n=t.local_settings((e=>e.view_settings.expand_node_props)),r=t.local_settings((e=>e.update_view_settings));return e.createElement(LC,{maxSize:"300px",direction:"left",expanded:void 0!==n&&n,containerClassName:"pos-right pos-top bg1 h-12",className:"nodesettings_content",onExpandChange:e=>{r({expand_node_props:e})}},e.createElement(GV,null))},HV=e=>({nodes:e.nodes,edges:e.edges,onNodesChange:e.onNodesChange,onEdgesChange:e.onEdgesChange,onConnect:e.onConnect}),XV={default:({data:t})=>{const n=t.UseNodeStore(),r=n.properties["frontend:collapsed"]||!1,{visualTrigger:i}=(e=>{const t=o(oG),[n,r]=c(!1);return s((()=>{t.worker?.call_hooks("node_mounted",e.id)}),[t.worker,e.id]),s((()=>{let t;return e.in_trigger&&!n?r(!0):n&&(t=setTimeout((()=>r(!1)),200)),()=>clearTimeout(t)}),[e.in_trigger,n]),{visualTrigger:n}})(n);return e.createElement(e.Fragment,null,e.createElement("div",{className:"innernode"+(i?" intrigger":"")+(n.error?" error":"")},e.createElement(TV,{node_data:n}),e.createElement(jV,{node_data:n}),r?null:e.createElement(DV,{node_data:n}),e.createElement(FV,{node_data:n})))}},$V={default:({id:t,sourceX:n,sourceY:r,targetX:o,targetY:i,sourcePosition:a,targetPosition:s,data:l,...c})=>{const[u]=ri({sourceX:n,sourceY:r,sourcePosition:a,targetX:o,targetY:i,targetPosition:s});return e.createElement(e.Fragment,null,e.createElement(Do,{id:t,path:u,...c}))}},ZV=()=>{const t=fa();return o(oG).rf_instance=t,e.createElement(e.Fragment,null)},YV=()=>{const t=o(oG),n=Qi("Delete"),r=co(Vs,fe),i=co(Bs,fe);if(n){for(const n of r)if(n.selected){if(!t.worker)return e.createElement(e.Fragment,null);if(!n.source||!n.target)return e.createElement(e.Fragment,null);if(!n.sourceHandle||!n.targetHandle)return e.createElement(e.Fragment,null);t.worker.remove_edge({src_nid:n.source,src_ioid:n.sourceHandle,trg_nid:n.target,trg_ioid:n.targetHandle})}for(const n of i)if(n.selected){if(!t.worker)return e.createElement(e.Fragment,null);t.worker.remove_node(n.id)}}return e.createElement(e.Fragment,null)},UV=({id:t,top:n,left:r,right:i,bottom:a,...s})=>{const{getNode:c,setNodes:u,addNodes:d,setEdges:f}=fa(),p=o(oG),h=l((()=>{const e=c(t);if(!e)return;const n={x:e.position.x+50,y:e.position.y+50};d({...e,id:`${e.id}-copy`,position:n})}),[t,c,d]),m=l((()=>{p.on_node_action({type:"delete",id:t,from_remote:!1})}),[t,u,f]),g=p.nodespace.get_node(t,!1);if(!g)return e.createElement(e.Fragment,null," ");const y=g();return e.createElement("div",{style:{top:n,left:r,right:i,bottom:a},className:"context-menu",...s},e.createElement("p",{style:{fontWeight:"bold"}},e.createElement("small",null,y.name)),e.createElement("button",{onClick:h},"duplicate"),e.createElement("button",{onClick:m},"delete"))},JV=t=>{const n=o(oG),r=u(null);s((()=>{n.reactflowRef=r.current}),[r]);const[i,a]=c(null),d=l((()=>a(null)),[a]),{nodes:f,edges:p,onNodesChange:h,onEdgesChange:m,onConnect:g}=n.useReactFlowStore(ON(HV));return e.createElement("div",{className:"reactflowlayer"},e.createElement(zs,{nodes:f,edges:p,onNodesChange:h,onEdgesChange:m,onConnect:g,nodeTypes:XV,edgeTypes:$V,minZoom:t.minZoom,maxZoom:t.maxZoom,fitView:!0,onSelectionChange:({nodes:e,edges:t})=>{const r=n.local_state.getState();n.local_state.setState({...r,selected_nodes:e.map((e=>e.id)),selected_edges:t.map((e=>e.id))})},ref:r,onPaneClick:d,panOnDrag:!t.static},e.createElement(ZV,null),e.createElement(YV,null),e.createElement(ol,{color:"#888",gap:16,size:1}),t.minimap&&e.createElement(Ks,{nodeStrokeWidth:3,pannable:!t.static,zoomable:!t.static,zoomStep:3}),i&&e.createElement(UV,{onClick:d,...i})))},KV=i(void 0),qV=n(((t,n)=>{const{asChild:r,children:o,className:i,style:a,...s}=t,[l,d]=c(!1),f=u(null),[p,h]=c(null),[m,g]=c({}),y=t.htime||300,b=t.vtime||300,v=t.hdelay||0,C=t.vdelay||200;w(n,(()=>f.current),[]);let k;if(r&&e.isValidElement(o)){const t=o,n=[t.props.className,i,"smooth-expand",l?"smooth-expand-expanded":""].filter(Boolean).join(" "),r={...t.props.style,...a,...m};k=e.cloneElement(t,{ref:f,className:n,style:r,...s})}else k=e.createElement("div",{ref:f,...s,className:`smooth-expand ${l?"smooth-expand-expanded":""} ${i||""}`,style:{...a,...m}},o);const E=e.createElement(KV.Provider,{value:{isExpanded:l,toggleExpand:async()=>{f.current&&(l?await(async()=>{if(!f.current)return;if(!p)return;const e={transitionProperty:"width, left, height, top",transitionDuration:`${y}ms, ${y}ms, ${b}ms, ${b}ms`};g((t=>({...t,...e})));const[t,n,r,o]=p,i=new Promise((e=>{setTimeout((()=>{g((e=>({...e,left:`${t}px`,width:`${r}px`}))),e()}),C)})),a=new Promise((e=>{setTimeout((()=>{g((e=>({...e,top:`${n}px`,height:`${o}px`}))),e()}),v)})),s=Math.max(y+v,b+C),l=new Promise((e=>{setTimeout((()=>{e()}),s)}));await Promise.all([i,a,l]),f.current.style.transition="",g({}),d(!1)})():await(async()=>{if(!f.current)return;f.current.style.transition="none",f.current.style.position="",f.current.style.top="",f.current.style.left="",f.current.style.width="",f.current.style.height="";const e=f.current.getBoundingClientRect();h([e.left,e.top,e.width,e.height]),f.current.style.transition="none",g({position:"absolute",top:`${e.top}px`,left:`${e.left}px`,width:`${e.width}px`,height:`${e.height}px`}),g((e=>({...e,transitionProperty:"width, left, height, top",transitionDuration:`${y}ms, ${y}ms, ${b}ms, ${b}ms`}))),d(!0);const t=new Promise((e=>{setTimeout((()=>{g((e=>({...e,left:"0px",width:"100vw"}))),e()}),v)})),n=new Promise((e=>{setTimeout((()=>{g((e=>({...e,top:"0px",height:"100vh"}))),e()}),C)})),r=Math.max(y+v,b+C),o=new Promise((e=>{setTimeout((()=>{e()}),r)}));await Promise.all([t,n,o])})())}}},k);return l?x.createPortal(E,document.body):E}));qV.Trigger=function({children:t}){const n=o(KV);if(!n)throw new Error("SmoothExpandComponent.Trigger must be used within a SmoothExpandComponent");return e.createElement("div",{style:{cursor:"pointer"},onClick:n.toggleExpand},t)},qV.Expanded=function({children:t}){const n=o(KV);if(!n)throw new Error("SmoothExpandComponent.Expanded must be used within a SmoothExpandComponent");return n.isExpanded?e.createElement(e.Fragment,null,t):null},qV.Collapsed=function({children:t}){const n=o(KV);if(!n)throw new Error("SmoothExpandComponent.Collapsed must be used within a SmoothExpandComponent");return n.isExpanded?null:e.createElement(e.Fragment,null,t)};const QV=e.createContext(void 0),eG=n(((t,n)=>{const{asChild:r,children:o,className:i,style:a,...d}=t,f=u(null);w(n,(()=>f.current),[]);const[p,h]=c(!1),m=l((async()=>{try{const e=f.current;if(!e)return;if(p){const e=document;e.exitFullscreen?await e.exitFullscreen():e.mozCancelFullScreen?await e.mozCancelFullScreen():e.webkitExitFullscreen?await e.webkitExitFullscreen():e.msExitFullscreen&&await e.msExitFullscreen(),h(!1)}else e.requestFullscreen?await e.requestFullscreen():e.mozRequestFullScreen?await e.mozRequestFullScreen():e.webkitRequestFullscreen?await e.webkitRequestFullscreen():e.msRequestFullscreen&&await e.msRequestFullscreen(),h(!0)}catch(e){console.error("Error toggling fullscreen",e)}}),[p]);let g;if(s((()=>{const e=()=>{const e=document.fullscreenElement;h(!!e)};return document.addEventListener("fullscreenchange",e),document.addEventListener("webkitfullscreenchange",e),document.addEventListener("mozfullscreenchange",e),document.addEventListener("MSFullscreenChange",e),()=>{document.removeEventListener("fullscreenchange",e),document.removeEventListener("webkitfullscreenchange",e),document.removeEventListener("mozfullscreenchange",e),document.removeEventListener("MSFullscreenChange",e)}}),[]),r&&e.isValidElement(o)){const t=o,n=[t.props.className,i].filter(Boolean).join(" "),r={...t.props.style,...a};g=e.cloneElement(t,{ref:f,className:n,style:r,...d})}else g=e.createElement("div",{ref:f,...d,className:i,style:a},o);return e.createElement(QV.Provider,{value:{isFullScreen:p,toggleFullscreen:m}},g)}));eG.Trigger=function({children:t}){const n=e.useContext(QV);if(!n)throw new Error("FullScreenComponent.Trigger must be used within a FullScreenComponent");return e.createElement("div",{style:{cursor:"pointer"},onClick:n.toggleFullscreen},t)},eG.InFullScreen=function({children:t}){const n=e.useContext(QV);if(!n)throw new Error("FullScreenComponent.Expanded must be used within a FullScreenComponent");return n.isFullScreen?e.createElement(e.Fragment,null,t):null},eG.OutFullScreen=function({children:t}){const n=e.useContext(QV);if(!n)throw new Error("FullScreenComponent.Collapsed must be used within a FullScreenComponent");return n.isFullScreen?null:e.createElement(e.Fragment,null,t)};const tG=({fnrf_zst:t,header:n,flow:r,library:o})=>{const[i,a]=c(t.options.worker),s=e.useRef(null);t.workermanager&&(t.workermanager.on_setWorker=a),t.set_worker(i),e.useEffect((()=>{t.auto_progress()}),[]),e.useEffect((()=>{t.local_state.setState({funcnodescontainerRef:s.current})}),[s]);const l=t.plugins();return e.createElement(wV,{plugins:l,fnrf_zst:t},e.createElement(oG.Provider,{value:t},e.createElement(qV,{asChild:!0},e.createElement(eG,{asChild:!0},e.createElement(PC,{style:{height:"100%",width:"100%",display:"flex",flexDirection:"column",flex:1}},e.createElement("div",{ref:s,className:"funcnodesreactflowcontainer funcnodescontainer"},n.show&&e.createElement(WC,{...n}),e.createElement("div",{className:"funcnodesreactflowbody"},e.createElement(JV,{...r}),i&&o.show&&e.createElement(AN,null),i&&r.showNodeSettings&&e.createElement(WV,null)),e.createElement("div",{className:"funcnodesflaotingmenu"},e.createElement(eG.OutFullScreen,null,r.allowExpand&&e.createElement(qV.Trigger,null,e.createElement(qV.Expanded,null,e.createElement(rb,{size:"xl",style:{padding:"4px"}})),e.createElement(qV.Collapsed,null,e.createElement(ob,{size:"xl",style:{padding:"4px"}})))),r.allowFullScreen&&e.createElement(eG.Trigger,null,e.createElement(eG.OutFullScreen,null,e.createElement(tb,{size:"xl",style:{padding:"4px"}})),e.createElement(eG.InFullScreen,null,e.createElement(nb,{size:"xl",style:{padding:"4px"}}))))))))))},nG={},rG={id:"",debug:!1,useWorkerManager:!0,show_library:!0,header:{show:!0,showmenu:!0},flow:{minimap:!0,static:!1,minZoom:.1,maxZoom:5,allowFullScreen:!0,allowExpand:!0,showNodeSettings:!0},library:{show:!0}},oG=i(ml(rG)),iG=t=>{let n=q(t,{...rG,id:Hu()}).new_obj;if(!n.useWorkerManager&&void 0===n.worker)return e.createElement("div",null,"Error: If you don't use a worker manager, you must provide a default worker.");if(t.useWorkerManager&&void 0===t.workermanager_url)return e.createElement("div",null,"Error: If you use a worker manager, you must provide a worker manager url.");if(void 0===window.fnrf_zst&&(window.fnrf_zst=nG),void 0===nG[n.id]){const e=ml(n);nG[n.id]=e}if(n.worker&&n.worker.set_zustand(nG[n.id]),nG[n.id].options.debug=n.debug,n.useWorkerManager){const e=new Zu(n.workermanager_url,nG[n.id]);nG[n.id].workermanager=e}return e.createElement(tG,{fnrf_zst:nG[n.id],header:n.header,library:n.library,flow:n.flow})},aG={set_io_value:({nid:e,ioid:t,value:n,set_default:r=!1})=>{const i=o(oG);i.worker?.set_io_value({nid:e,ioid:t,value:n,set_default:r})}},sG=t=>{const n=new fl("FuncNodes",t.debug?"debug":"info");n.debug("Initalizing FuncNodes with props:",t);let r=q(t,{...rG,id:Hu()}).new_obj;if(void 0===t.worker&&void 0!==t.worker_url&&(r.useWorkerManager=!1,r.worker=new $u({url:t.worker_url,uuid:r.id,on_sync_complete:r.on_sync_complete})),void 0!==r.worker){const e=ml(r);r.worker.set_zustand(e)}if(void 0!==t.fnw_url){if(void 0===r.worker)throw new Error("defining fnw_url requires a worker to be defined");const e=async function(e,t=!0){try{const n=await fetch(e);if(!n.ok)throw new Error(`Failed to fetch from URL: ${n.status} ${n.statusText}`);const r=await n.blob();return await new Promise(((e,n)=>{const o=new FileReader;o.onload=()=>{const r=o.result;"string"!=typeof r&&(n("Failed to convert URL to Base64: No result from FileReader"),n(o.error)),e(t?r.split(",")[1]:r)},o.onerror=()=>n(o.error),o.readAsDataURL(r)}))}catch(e){throw console.error("Error converting URL to Base64:",e),e}}(t.fnw_url),n=r.worker.on_sync_complete,o=async t=>{const r=await e;t.on_sync_complete=n,await t.update_from_export(r)};r.worker.on_sync_complete=o}return n.debug("Initalizing FuncnodesReactFlow with props:",r),e.createElement("div",{className:"FuncnodesApp"},e.createElement(iG,{...r}))};export{oG as FuncNodesContext,ml as FuncNodesReactFlowZustand,Xu as FuncNodesWorker,iG as FuncnodesReactFlow,JV as ReactFlowLayer,wV as RenderMappingProvider,$u as WebSocketWorker,oe as assert_full_node,q as deep_update,sG as default,aG as helperfunctions};
157
157
  //# sourceMappingURL=index.esm.mjs.map