@linkdlab/funcnodes_react_flow 0.3.15 → 0.3.16
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/esm/index.esm.mjs +2 -2
- package/dist/esm/index.esm.mjs.map +1 -1
- package/dist/esm/style.css +221 -221
- package/dist/index.d.ts +105 -2
- package/dist/style.css +221 -221
- package/dist/umd/index.umd.js +2 -2
- package/dist/umd/index.umd.js.map +1 -1
- package/dist/umd/style.css +221 -221
- package/package.json +1 -1
package/dist/esm/index.esm.mjs
CHANGED
|
@@ -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 z=(L||(L=1,"production"===process.env.NODE_ENV?N.exports=function(){if(D)return O;D=1;var e=t,n=j(),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 p={hasValue:!1,value:null};d.current=p}else p=d.current;d=s((function(){function e(e){if(!a){if(a=!0,o=e,e=c(e),void 0!==u&&p.hasValue){var t=p.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 f=o(e,d[0],d[1]);return a((function(){p.hasValue=!0,p.value=f}),[f]),l(f),f},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=j(),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;V.useSyncExternalStoreWithSelector=function(e,t,n,c,u){var d=i(null);if(null===d.current){var p={hasValue:!1,value:null};d.current=p}else p=d.current;d=s((function(){function e(e){if(!a){if(a=!0,o=e,e=c(e),void 0!==u&&p.hasValue){var t=p.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 f=o(e,d[0],d[1]);return a((function(){p.hasValue=!0,p.value=f}),[f]),l(f),f},"undefined"!=typeof __REACT_DEVTOOLS_GLOBAL_HOOK__&&"function"==typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop&&__REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop(Error())}()),V)),N.exports),G=_(z);const{useDebugValue:H}=t,{useSyncExternalStoreWithSelector:W}=G;let X=!1;const Z=e=>e;const $=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=Z,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=W(e.subscribe,e.getState,e.getServerState||e.getInitialState,t,n);return H(r),r}(t,e,n);return Object.assign(n,t),n},Y=e=>e?$(e):$;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",frontend:{pos:[NaN,NaN],size:[200,100],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=JSON.stringify(te),re=e=>{if(!e.id)throw new Error("Node must have an id");const t=JSON.parse(ne),{new_obj:n}=Q(e,t);for(const e in n.io){if(void 0===n.io[e])continue;const t=ee(n.io[e]);n.io[e]=t}return n},oe=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 ie(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=ie(e[r]))&&(t+=(t&&" ")+n);else for(let n in e)e[n]&&(t+=(t&&" ")+n);return t}const{useDebugValue:ae}=t,{useSyncExternalStoreWithSelector:se}=G,le=e=>e;function ce(e,t=le,n){const r=se(e.subscribe,e.getState,e.getServerState||e.getInitialState,t,n);return ae(r),r}const ue=(e,t)=>{const n=I(e),r=(e,r=t)=>ce(n,e,r);return Object.assign(r,n),r};function de(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 fe(){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 he(r)}function he(e){this._=e}function me(e,t){for(var n,r=0,o=e.length;r<o;++r)if((n=e[r]).name===t)return n.value}function ge(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}he.prototype=fe.prototype={constructor:he,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]=ge(r[n],e.name,t);else if(null==t)for(n in r)r[n]=ge(r[n],e.name,null);return this}for(;++i<a;)if((n=(e=o[i]).type)&&(n=me(r[n],e.name)))return n},copy:function(){var e={},t=this._;for(var n in t)e[n]=t[n].slice();return new he(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 ye="http://www.w3.org/1999/xhtml",be={svg:"http://www.w3.org/2000/svg",xhtml:ye,xlink:"http://www.w3.org/1999/xlink",xml:"http://www.w3.org/XML/1998/namespace",xmlns:"http://www.w3.org/2000/xmlns/"};function ve(e){var t=e+="",n=t.indexOf(":");return n>=0&&"xmlns"!==(t=e.slice(0,n))&&(e=e.slice(n+1)),be.hasOwnProperty(t)?{space:be[t],local:e}:e}function we(e){return function(){var t=this.ownerDocument,n=this.namespaceURI;return n===ye&&t.documentElement.namespaceURI===ye?t.createElement(e):t.createElementNS(n,e)}}function xe(e){return function(){return this.ownerDocument.createElementNS(e.space,e.local)}}function Ce(e){var t=ve(e);return(t.local?xe:we)(t)}function Ee(){}function ke(e){return null==e?Ee:function(){return this.querySelector(e)}}function Se(){return[]}function Ie(e){return null==e?Se:function(){return this.querySelectorAll(e)}}function _e(e){return function(){return null==(t=e.apply(this,arguments))?[]:Array.isArray(t)?t:Array.from(t);var t}}function Ae(e){return function(){return this.matches(e)}}function Ne(e){return function(t){return t.matches(e)}}var Oe=Array.prototype.find;function Re(){return this.firstElementChild}var Te=Array.prototype.filter;function Me(){return Array.from(this.children)}function Pe(e){return new Array(e.length)}function De(e,t){this.ownerDocument=e.ownerDocument,this.namespaceURI=e.namespaceURI,this._next=null,this._parent=e,this.__data__=t}function Be(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 De(e,i[s]);for(;s<l;++s)(a=t[s])&&(o[s]=a)}function je(e,t,n,r,o,i,a){var s,l,c,u=new Map,d=t.length,p=i.length,f=new Array(d);for(s=0;s<d;++s)(l=t[s])&&(f[s]=c=a.call(l,l.__data__,s,t)+"",u.has(c)?o[s]=l:u.set(c,l));for(s=0;s<p;++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 De(e,i[s]);for(s=0;s<d;++s)(l=t[s])&&u.get(f[s])===l&&(o[s]=l)}function Fe(e){return e.__data__}function Le(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 ze(e){return function(){this.removeAttribute(e)}}function Ge(e){return function(){this.removeAttributeNS(e.space,e.local)}}function He(e,t){return function(){this.setAttribute(e,t)}}function We(e,t){return function(){this.setAttributeNS(e.space,e.local,t)}}function Xe(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 $e(e){return e.ownerDocument&&e.ownerDocument.defaultView||e.document&&e||e.defaultView}function Ye(e){return function(){this.style.removeProperty(e)}}function Ue(e,t,n){return function(){this.style.setProperty(e,t,n)}}function Je(e,t,n){return function(){var r=t.apply(this,arguments);null==r?this.style.removeProperty(e):this.style.setProperty(e,r,n)}}function Ke(e,t){return e.style.getPropertyValue(t)||$e(e).getComputedStyle(e,null).getPropertyValue(t)}function Qe(e){return function(){delete this[e]}}function qe(e,t){return function(){this[e]=t}}function et(e,t){return function(){var n=t.apply(this,arguments);null==n?delete this[e]:this[e]=n}}function tt(e){return e.trim().split(/^|\s+/)}function nt(e){return e.classList||new rt(e)}function rt(e){this._node=e,this._names=tt(e.getAttribute("class")||"")}function ot(e,t){for(var n=nt(e),r=-1,o=t.length;++r<o;)n.add(t[r])}function it(e,t){for(var n=nt(e),r=-1,o=t.length;++r<o;)n.remove(t[r])}function at(e){return function(){ot(this,e)}}function st(e){return function(){it(this,e)}}function lt(e,t){return function(){(t.apply(this,arguments)?ot:it)(this,e)}}function ct(){this.textContent=""}function ut(e){return function(){this.textContent=e}}function dt(e){return function(){var t=e.apply(this,arguments);this.textContent=null==t?"":t}}function pt(){this.innerHTML=""}function ft(e){return function(){this.innerHTML=e}}function ht(e){return function(){var t=e.apply(this,arguments);this.innerHTML=null==t?"":t}}function mt(){this.nextSibling&&this.parentNode.appendChild(this)}function gt(){this.previousSibling&&this.parentNode.insertBefore(this,this.parentNode.firstChild)}function yt(){return null}function bt(){var e=this.parentNode;e&&e.removeChild(this)}function vt(){var e=this.cloneNode(!1),t=this.parentNode;return t?t.insertBefore(e,this.nextSibling):e}function wt(){var e=this.cloneNode(!0),t=this.parentNode;return t?t.insertBefore(e,this.nextSibling):e}function xt(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 Ct(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=$e(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 kt(e,t){return function(){return Et(this,e,t)}}function St(e,t){return function(){return Et(this,e,t.apply(this,arguments))}}De.prototype={constructor:De,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)}},rt.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 It=[null];function _t(e,t){this._groups=e,this._parents=t}function At(){return new _t([[document.documentElement]],It)}function Nt(e){return"string"==typeof e?new _t([[document.querySelector(e)]],[document.documentElement]):new _t([[e]],It)}function Ot(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]}_t.prototype=At.prototype={constructor:_t,select:function(e){"function"!=typeof e&&(e=ke(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 _t(r,this._parents)},selectAll:function(e){e="function"==typeof e?_e(e):Ie(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 _t(r,o)},selectChild:function(e){return this.select(null==e?Re:function(e){return function(){return Oe.call(this.children,e)}}("function"==typeof e?e:Ne(e)))},selectChildren:function(e){return this.selectAll(null==e?Me:function(e){return function(){return Te.call(this.children,e)}}("function"==typeof e?e:Ne(e)))},filter:function(e){"function"!=typeof e&&(e=Ae(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 _t(r,this._parents)},data:function(e,t){if(!arguments.length)return Array.from(this,Fe);var n,r=t?je:Be,o=this._parents,i=this._groups;"function"!=typeof e&&(n=e,e=function(){return n});for(var a=i.length,s=new Array(a),l=new Array(a),c=new Array(a),u=0;u<a;++u){var d=o[u],p=i[u],f=p.length,h=Le(e.call(d,d&&d.__data__,u,o)),m=h.length,g=l[u]=new Array(m),y=s[u]=new Array(m);r(d,p,g,y,c[u]=new Array(f),h,t);for(var b,v,w=0,x=0;w<m;++w)if(b=g[w]){for(w>=x&&(x=w+1);!(v=y[x])&&++x<m;);b._next=v||null}}return(s=new _t(s,o))._enter=l,s._exit=c,s},enter:function(){return new _t(this._enter||this._groups.map(Pe),this._parents)},exit:function(){return new _t(this._exit||this._groups.map(Pe),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],p=u.length,f=s[l]=new Array(p),h=0;h<p;++h)(c=u[h]||d[h])&&(f[h]=c);for(;l<o;++l)s[l]=n[l];return new _t(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 _t(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=ve(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?Ge:ze:"function"==typeof t?n.local?Ze:Xe:n.local?We:He)(n,t))},style:function(e,t,n){return arguments.length>1?this.each((null==t?Ye:"function"==typeof t?Je:Ue)(e,t,null==n?"":n)):Ke(this.node(),e)},property:function(e,t){return arguments.length>1?this.each((null==t?Qe:"function"==typeof t?et:qe)(e,t)):this.node()[e]},classed:function(e,t){var n=tt(e+"");if(arguments.length<2){for(var r=nt(this.node()),o=-1,i=n.length;++o<i;)if(!r.contains(n[o]))return!1;return!0}return this.each(("function"==typeof t?lt:t?at:st)(n,t))},text:function(e){return arguments.length?this.each(null==e?ct:("function"==typeof e?dt:ut)(e)):this.node().textContent},html:function(e){return arguments.length?this.each(null==e?pt:("function"==typeof e?ht:ft)(e)):this.node().innerHTML},raise:function(){return this.each(mt)},lower:function(){return this.each(gt)},append:function(e){var t="function"==typeof e?e:Ce(e);return this.select((function(){return this.appendChild(t.apply(this,arguments))}))},insert:function(e,t){var n="function"==typeof e?e:Ce(e),r=null==t?yt:"function"==typeof t?t:ke(t);return this.select((function(){return this.insertBefore(n.apply(this,arguments),r.apply(this,arguments)||null)}))},remove:function(){return this.each(bt)},clone:function(e){return this.select(e?wt:vt)},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?Ct:xt,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?St:kt)(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 Rt={passive:!1},Tt={capture:!0,passive:!1};function Mt(e){e.stopImmediatePropagation()}function Pt(e){e.preventDefault(),e.stopImmediatePropagation()}function Dt(e){var t=e.document.documentElement,n=Nt(e).on("dragstart.drag",Pt,Tt);"onselectstart"in t?n.on("selectstart.drag",Pt,Tt):(t.__noselect=t.style.MozUserSelect,t.style.MozUserSelect="none")}function Bt(e,t){var n=e.document.documentElement,r=Nt(e).on("dragstart.drag",null);t&&(r.on("click.drag",Pt,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 jt=e=>()=>e;function Ft(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 Lt(e){return!e.ctrlKey&&!e.button}function Vt(){return this.parentNode}function zt(e,t){return null==t?{x:e.x,y:e.y}:t}function Gt(){return navigator.maxTouchPoints||"ontouchstart"in this}function Ht(e,t,n){e.prototype=t.prototype=n,n.constructor=e}function Wt(e,t){var n=Object.create(e.prototype);for(var r in t)n[r]=t[r];return n}function Xt(){}Ft.prototype.on=function(){var e=this._.on.apply(this._,arguments);return e===this._?this:e};var Zt=.7,$t=1/Zt,Yt="\\s*([+-]?\\d+)\\s*",Ut="\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)\\s*",Jt="\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)%\\s*",Kt=/^#([0-9a-f]{3,8})$/,Qt=new RegExp(`^rgb\\(${Yt},${Yt},${Yt}\\)$`),qt=new RegExp(`^rgb\\(${Jt},${Jt},${Jt}\\)$`),en=new RegExp(`^rgba\\(${Yt},${Yt},${Yt},${Ut}\\)$`),tn=new RegExp(`^rgba\\(${Jt},${Jt},${Jt},${Ut}\\)$`),nn=new RegExp(`^hsl\\(${Ut},${Jt},${Jt}\\)$`),rn=new RegExp(`^hsla\\(${Ut},${Jt},${Jt},${Ut}\\)$`),on={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 an(){return this.rgb().formatHex()}function sn(){return this.rgb().formatRgb()}function ln(e){var t,n;return e=(e+"").trim().toLowerCase(),(t=Kt.exec(e))?(n=t[1].length,t=parseInt(t[1],16),6===n?cn(t):3===n?new pn(t>>8&15|t>>4&240,t>>4&15|240&t,(15&t)<<4|15&t,1):8===n?un(t>>24&255,t>>16&255,t>>8&255,(255&t)/255):4===n?un(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=qt.exec(e))?new pn(255*t[1]/100,255*t[2]/100,255*t[3]/100,1):(t=en.exec(e))?un(t[1],t[2],t[3],t[4]):(t=tn.exec(e))?un(255*t[1]/100,255*t[2]/100,255*t[3]/100,t[4]):(t=nn.exec(e))?bn(t[1],t[2]/100,t[3]/100,1):(t=rn.exec(e))?bn(t[1],t[2]/100,t[3]/100,t[4]):on.hasOwnProperty(e)?cn(on[e]):"transparent"===e?new pn(NaN,NaN,NaN,0):null}function cn(e){return new pn(e>>16&255,e>>8&255,255&e,1)}function un(e,t,n,r){return r<=0&&(e=t=n=NaN),new pn(e,t,n,r)}function dn(e,t,n,r){return 1===arguments.length?((o=e)instanceof Xt||(o=ln(o)),o?new pn((o=o.rgb()).r,o.g,o.b,o.opacity):new pn):new pn(e,t,n,null==r?1:r);var o}function pn(e,t,n,r){this.r=+e,this.g=+t,this.b=+n,this.opacity=+r}function fn(){return`#${yn(this.r)}${yn(this.g)}${yn(this.b)}`}function hn(){const e=mn(this.opacity);return`${1===e?"rgb(":"rgba("}${gn(this.r)}, ${gn(this.g)}, ${gn(this.b)}${1===e?")":`, ${e})`}`}function mn(e){return isNaN(e)?1:Math.max(0,Math.min(1,e))}function gn(e){return Math.max(0,Math.min(255,Math.round(e)||0))}function yn(e){return((e=gn(e))<16?"0":"")+e.toString(16)}function bn(e,t,n,r){return r<=0?e=t=n=NaN:n<=0||n>=1?e=t=NaN:t<=0&&(e=NaN),new wn(e,t,n,r)}function vn(e){if(e instanceof wn)return new wn(e.h,e.s,e.l,e.opacity);if(e instanceof Xt||(e=ln(e)),!e)return new wn;if(e instanceof wn)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 wn(a,s,l,e.opacity)}function wn(e,t,n,r){this.h=+e,this.s=+t,this.l=+n,this.opacity=+r}function xn(e){return(e=(e||0)%360)<0?e+360:e}function Cn(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(Xt,ln,{copy(e){return Object.assign(new this.constructor,this,e)},displayable(){return this.rgb().displayable()},hex:an,formatHex:an,formatHex8:function(){return this.rgb().formatHex8()},formatHsl:function(){return vn(this).formatHsl()},formatRgb:sn,toString:sn}),Ht(pn,dn,Wt(Xt,{brighter(e){return e=null==e?$t:Math.pow($t,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(gn(this.r),gn(this.g),gn(this.b),mn(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:fn,formatHex:fn,formatHex8:function(){return`#${yn(this.r)}${yn(this.g)}${yn(this.b)}${yn(255*(isNaN(this.opacity)?1:this.opacity))}`},formatRgb:hn,toString:hn})),Ht(wn,(function(e,t,n,r){return 1===arguments.length?vn(e):new wn(e,t,n,null==r?1:r)}),Wt(Xt,{brighter(e){return e=null==e?$t:Math.pow($t,e),new wn(this.h,this.s,this.l*e,this.opacity)},darker(e){return e=null==e?Zt:Math.pow(Zt,e),new wn(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 wn(xn(this.h),Cn(this.s),Cn(this.l),mn(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=mn(this.opacity);return`${1===e?"hsl(":"hsla("}${xn(this.h)}, ${100*Cn(this.s)}%, ${100*Cn(this.l)}%${1===e?")":`, ${e})`}`}}));var kn=e=>()=>e;function Sn(e){return 1==(e=+e)?In: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):kn(isNaN(t)?n:t)}}function In(e,t){var n=t-e;return n?function(e,t){return function(n){return e+n*t}}(e,n):kn(isNaN(e)?t:e)}var _n=function e(t){var n=Sn(t);function r(e,t){var r=n((e=dn(e)).r,(t=dn(t)).r),o=n(e.g,t.g),i=n(e.b,t.b),a=In(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 An(e,t){return e=+e,t=+t,function(n){return e*(1-n)+t*n}}var Nn=/[-+]?(?:\d+\.?\d*|\.?\d+)(?:[eE][-+]?\d+)?/g,On=new RegExp(Nn.source,"g");function Rn(e,t){var n,r,o,i=Nn.lastIndex=On.lastIndex=0,a=-1,s=[],l=[];for(e+="",t+="";(n=Nn.exec(e))&&(r=On.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:An(n,r)})),i=On.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,Mn=180/Math.PI,Pn={translateX:0,translateY:0,rotate:0,skewX:0,scaleX:1,scaleY:1};function Dn(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)*Mn,skewX:Math.atan(l)*Mn,scaleX:a,scaleY:s}}function Bn(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:An(e,o)},{i:l-2,x:An(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:An(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:An(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:An(e,n)},{i:s-2,x:An(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 jn=Bn((function(e){const t=new("function"==typeof DOMMatrix?DOMMatrix:WebKitCSSMatrix)(e+"");return t.isIdentity?Pn:Dn(t.a,t.b,t.c,t.d,t.e,t.f)}),"px, ","px)","deg)"),Fn=Bn((function(e){return null==e?Pn:(Tn||(Tn=document.createElementNS("http://www.w3.org/2000/svg","g")),Tn.setAttribute("transform",e),(e=Tn.transform.baseVal.consolidate())?Dn((e=e.matrix).a,e.b,e.c,e.d,e.e,e.f):Pn)}),", ",")",")");function Ln(e){return((e=Math.exp(e))+1/e)/2}var Vn,zn,Gn=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],p=o[2],f=u-s,h=d-l,m=f*f+h*h;if(m<1e-12)a=Math.log(p/c)/t,i=function(e){return[s+e*f,l+e*h,c*Math.exp(t*e*a)]};else{var g=Math.sqrt(m),y=(p*p-c*c+r*m)/(2*c*n*g),b=(p*p-c*c-r*m)/(2*p*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,o=e*a,i=Ln(v),u=c/(n*g)*(i*(r=t*o+v,((r=Math.exp(2*r))-1)/(r+1))-function(e){return((e=Math.exp(e))-1/e)/2}(v));return[s+u*f,l+u*h,c*i/Ln(t*o+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,Wn=0,Xn=0,Zn=0,$n=0,Yn=0,Un="object"==typeof performance&&performance.now?performance:Date,Jn="object"==typeof window&&window.requestAnimationFrame?window.requestAnimationFrame.bind(window):function(e){setTimeout(e,17)};function Kn(){return $n||(Jn(Qn),$n=Un.now()+Yn)}function Qn(){$n=0}function qn(){this._call=this._time=this._next=null}function er(e,t,n){var r=new qn;return r.restart(e,t,n),r}function tr(){$n=(Zn=Un.now())+Yn,Hn=Wn=0;try{!function(){Kn(),++Hn;for(var e,t=Vn;t;)(e=$n-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);zn=e,rr(r)}(),$n=0}}function nr(){var e=Un.now(),t=e-Zn;t>1e3&&(Yn-=t,Zn=e)}function rr(e){Hn||(Wn&&(Wn=clearTimeout(Wn)),e-$n>24?(e<1/0&&(Wn=setTimeout(tr,e-Un.now()-Yn)),Xn&&(Xn=clearInterval(Xn))):(Xn||(Zn=Un.now(),Xn=setInterval(nr,1e3)),Hn=1,Jn(tr)))}function or(e,t,n){var r=new qn;return t=null==t?0:+t,r.restart((n=>{r.stop(),e(n+t)}),t,n),r}qn.prototype=er.prototype={constructor:qn,restart:function(e,t,n){if("function"!=typeof e)throw new TypeError("callback is not a function");n=(null==n?Kn():+n)+(null==t?0:+t),this._next||zn===this||(zn?zn._next=this:Vn=this,zn=this),this._call=e,this._time=n,rr()},stop:function(){this._call&&(this._call=null,this._time=1/0,rr())}};var ir=fe("start","end","cancel","interrupt"),ar=[];function sr(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,p;if(1!==n.state)return l();for(c in o)if((p=o[c]).name===n.name){if(3===p.state)return or(a);4===p.state?(p.state=6,p.timer.stop(),p.on.call("interrupt",e,e.__data__,p.index,p.group),delete o[c]):+c<t&&(p.state=6,p.timer.stop(),p.on.call("cancel",e,e.__data__,p.index,p.group),delete o[c])}if(or((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)(p=n.tween[c].value.call(e,e.__data__,n.index,n.group))&&(r[++u]=p);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=er(i,0,n.time)}(e,n,{name:t,index:r,group:o,on:ir,tween:ar,time:i.time,delay:i.delay,duration:i.duration,ease:i.ease,timer:null,state:0})}function lr(e,t){var n=ur(e,t);if(n.state>0)throw new Error("too late; already scheduled");return n}function cr(e,t){var n=ur(e,t);if(n.state>3)throw new Error("too late; already running");return n}function ur(e,t){var n=e.__transition;if(!n||!(n=n[t]))throw new Error("transition not found");return n}function dr(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=cr(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 fr(e,t,n){var r,o;if("function"!=typeof n)throw new Error;return function(){var i=cr(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 hr(e,t,n){var r=e._id;return e.each((function(){var e=cr(this,r);(e.value||(e.value={}))[t]=n.apply(this,arguments)})),function(e){return ur(e,r).value[t]}}function mr(e,t){var n;return("number"==typeof t?An:t instanceof ln?_n:(n=ln(t))?(t=n,_n):Rn)(e,t)}function gr(e){return function(){this.removeAttribute(e)}}function yr(e){return function(){this.removeAttributeNS(e.space,e.local)}}function br(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 vr(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 wr(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 xr(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 Cr(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 kr(e,t){return function(){lr(this,e).delay=+t.apply(this,arguments)}}function Sr(e,t){return t=+t,function(){lr(this,e).delay=t}}function Ir(e,t){return function(){cr(this,e).duration=+t.apply(this,arguments)}}function _r(e,t){return t=+t,function(){cr(this,e).duration=t}}var Ar=At.prototype.constructor;function Nr(e){return function(){this.style.removeProperty(e)}}var Or=0;function Rr(e,t,n,r){this._groups=e,this._parents=t,this._name=n,this._id=r}function Tr(){return++Or}var Mr=At.prototype;Rr.prototype={constructor:Rr,select:function(e){var t=this._name,n=this._id;"function"!=typeof e&&(e=ke(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),p=0;p<u;++p)(s=c[p])&&(l=e.call(s,s.__data__,p,c))&&("__data__"in s&&(l.__data__=s.__data__),d[p]=l,sr(d[p],t,n,p,d,ur(s,n)));return new Rr(i,this._parents,t,n)},selectAll:function(e){var t=this._name,n=this._id;"function"!=typeof e&&(e=Ie(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 p,f=e.call(l,l.__data__,d,c),h=ur(l,n),m=0,g=f.length;m<g;++m)(p=f[m])&&sr(p,t,n,m,f,h);i.push(f),a.push(l)}return new Rr(i,a,t,n)},selectChild:Mr.selectChild,selectChildren:Mr.selectChildren,filter:function(e){"function"!=typeof e&&(e=Ae(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 Rr(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,p=a[s]=new Array(d),f=0;f<d;++f)(l=c[f]||u[f])&&(p[f]=l);for(;s<r;++s)a[s]=t[s];return new Rr(a,this._parents,this._name,this._id)},selection:function(){return new Ar(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=ur(a,t);sr(a,e,n,c,s,{time:u.time+u.delay+u.duration,delay:0,duration:u.duration,ease:u.ease})}return new Rr(r,this._parents,e,n)},call:Mr.call,nodes:Mr.nodes,node:Mr.node,size:Mr.size,empty:Mr.empty,each:Mr.each,on:function(e,t){var n=this._id;return arguments.length<2?ur(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)?lr:cr;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=ve(e),r="transform"===n?Fn:mr;return this.attrTween(e,"function"==typeof t?(n.local?xr:wr)(n,r,hr(this,"attr."+e,t)):null==t?(n.local?yr:gr)(n):(n.local?vr:br)(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=ve(e);return this.tween(n,(r.local?Cr:Er)(r,t))},style:function(e,t,n){var r="transform"==(e+="")?jn:mr;return null==t?this.styleTween(e,function(e,t){var n,r,o;return function(){var i=Ke(this,e),a=(this.style.removeProperty(e),Ke(this,e));return i===a?null:i===n&&a===r?o:o=t(n=i,r=a)}}(e,r)).on("end.style."+e,Nr(e)):"function"==typeof t?this.styleTween(e,function(e,t,n){var r,o,i;return function(){var a=Ke(this,e),s=n(this),l=s+"";return null==s&&(this.style.removeProperty(e),l=s=Ke(this,e)),a===l?null:a===r&&l===o?i:(o=l,i=t(r=a,s))}}(e,r,hr(this,"style."+e,t))).each(function(e,t){var n,r,o,i,a="style."+t,s="end."+a;return function(){var l=cr(this,e),c=l.on,u=null==l.value[a]?i||(i=Nr(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=Ke(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}}(hr(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=ur(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:fr)(n,e,t))},delay:function(e){var t=this._id;return arguments.length?this.each(("function"==typeof e?kr:Sr)(t,e)):ur(this.node(),t).delay},duration:function(e){var t=this._id;return arguments.length?this.each(("function"==typeof e?Ir:_r)(t,e)):ur(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(){cr(this,e).ease=t}}(t,e)):ur(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;cr(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=cr(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]:Mr[Symbol.iterator]};var Pr={time:null,delay:0,duration:250,ease:function(e){return((e*=2)<=1?e*e*e:(e-=2)*e*e+2)/2}};function Dr(e,t){for(var n;!(n=e.__transition)||!(n=n[t]);)if(!(e=e.parentNode))throw new Error(`transition ${t} not found`);return n}At.prototype.interrupt=function(e){return this.each((function(){dr(this,e)}))},At.prototype.transition=function(e){var t,n;e instanceof Rr?(t=e._id,e=e._name):(t=Tr(),(n=Pr).time=Kn(),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])&&sr(a,e,t,c,s,n||Dr(a,t));return new Rr(r,this._parents,e,t)};var Br=e=>()=>e;function jr(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 Fr(e,t,n){this.k=e,this.x=t,this.y=n}Fr.prototype={constructor:Fr,scale:function(e){return 1===e?this:new Fr(this.k*e,this.x,this.y)},translate:function(e,t){return 0===e&0===t?this:new Fr(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 Lr=new Fr(1,0,0);function Vr(e){e.stopImmediatePropagation()}function zr(e){e.preventDefault(),e.stopImmediatePropagation()}function Gr(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 Wr(){return this.__zoom||Lr}function Xr(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 $r(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 Yr(){var e,t,n,r=Gr,o=Hr,i=$r,a=Xr,s=Zr,l=[0,1/0],c=[[-1/0,-1/0],[1/0,1/0]],u=250,d=Gn,p=fe("start","zoom","end"),f=0,h=10;function m(e){e.property("__zoom",Wr).on("wheel.zoom",C,{passive:!1}).on("mousedown.zoom",E).on("dblclick.zoom",k).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 Fr(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 Fr(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,p="function"==typeof t?t.apply(e,i):t,f=d(u.invert(l).concat(c/u.k),p.invert(l).concat(c/p.k));return function(e){if(1===e)e=p;else{var t=f(e),n=c/t[2];e=new Fr(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=Ot(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)],dr(this),n.start()}zr(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 E(e,...t){if(!n&&r.apply(this,arguments)){var o=e.currentTarget,a=w(this,t,!0).event(e),s=Nt(e.view).on("mousemove.zoom",(function(e){if(zr(e),!a.moved){var t=e.clientX-u,n=e.clientY-d;a.moved=t*t+n*n>f}a.event(e).zoom("mouse",i(y(a.that.__zoom,a.mouse[0]=Ot(e,o),a.mouse[1]),a.extent,c))}),!0).on("mouseup.zoom",(function(e){s.on("mousemove.zoom mouseup.zoom",null),Bt(e.view,a.moved),zr(e),a.event(e).end()}),!0),l=Ot(e,o),u=e.clientX,d=e.clientY;Dt(e.view),Vr(e),a.mouse=[l,this.__zoom.invert(l)],dr(this),a.start()}}function k(e,...t){if(r.apply(this,arguments)){var n=this.__zoom,a=Ot(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);zr(e),u>0?Nt(this).transition().duration(u).call(v,d,a,e):Nt(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=Ot(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)),dr(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(zr(e),n=0;n<u;++n)o=Ot(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],p=s.touch0[1],f=s.touch1[0],h=s.touch1[1],m=(m=f[0]-d[0])*m+(m=f[1]-d[1])*m,b=(b=h[0]-p[0])*b+(b=h[1]-p[1])*b;r=g(r,Math.sqrt(m/b)),o=[(d[0]+f[0])/2,(d[1]+f[1])/2],a=[(p[0]+h[0])/2,(p[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=Ot(i,this),Math.hypot(t[0]-i[0],t[1]-i[1])<h)){var c=Nt(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",Wr),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(Lr.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=Nt(this.that).datum();p.call(e,this.that,new jr(e,{sourceEvent:this.sourceEvent,target:m,transform:this.that.__zoom,dispatch:p}),t)}},m.wheelDelta=function(e){return arguments.length?(a="function"==typeof e?e:Br(+e),m):a},m.filter=function(e){return arguments.length?(r="function"==typeof e?e:Br(!!e),m):r},m.touchable=function(e){return arguments.length?(s="function"==typeof e?e:Br(!!e),m):s},m.extent=function(e){return arguments.length?(o="function"==typeof e?e:Br([[+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=p.on.apply(p,arguments);return e===p?m:e},m.clickDistance=function(e){return arguments.length?(f=(e=+e)*e,m):Math.sqrt(f)},m.tapDistance=function(e){return arguments.length?(h=+e,m):h},m}Fr.prototype;const Ur=i(null),Jr=Ur.Provider,Kr=()=>"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".`,qr=()=>"The React Flow parent container needs a width and a height to render the graph.",eo=()=>"Only child nodes can use a parent extent.",to=()=>"Can't create edge. An edge needs a source and a target.",no=e=>`Marker type "${e}" doesn't exist.`,ro=(e,t)=>`Couldn't create edge for ${e?"target":"source"} handle id: "${e?t.targetHandle:t.sourceHandle}", edge id: ${t.id}.`,oo=()=>"Handle: No node id found. Make sure to only use a Handle inside a custom Node.",io=e=>`Edge type "${e}" not found. Using fallback type "default".`,ao=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.`,so=(()=>"[React Flow]: Seems like you have not used zustand provider as an ancestor. Help: https://reactflow.dev/error#001")();function lo(e,t){const n=o(Ur);if(null===n)throw new Error(so);return ce(n,e,t)}const co=()=>{const e=o(Ur);if(null===e)throw new Error(so);return a((()=>({getState:e.getState,setState:e.setState,subscribe:e.subscribe,destroy:e.destroy})),[e])},uo=e=>e.userSelectionActive?"none":"all";function po({position:e,children:n,className:r,style:o,...i}){const a=lo(uo),s=`${e}`.split("-");return t.createElement("div",{className:ie(["react-flow__panel",r,...s]),style:{...o,pointerEvents:a},...i},n)}function fo({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 ho=r((({x:e,y:n,label:r,labelStyle:o={},labelShowBg:i=!0,labelBgStyle:a={},labelBgPadding:l=[2,4],labelBgBorderRadius:d=2,children:p,className:f,...h})=>{const m=u(null),[g,y]=c({x:0,y:0,width:0,height:0}),b=ie(["react-flow__edge-textwrapper",f]);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),p):null}));const mo=e=>({width:e.offsetWidth,height:e.offsetHeight}),go=(e,t=0,n=1)=>Math.min(Math.max(e,t),n),yo=(e={x:0,y:0},t)=>({x:go(e.x,t[0][0],t[1][0]),y:go(e.y,t[0][1],t[1][1])}),bo=(e,t,n)=>e<t?go(Math.abs(e-t),1,50)/50:e>n?-go(Math.abs(e-n),1,50)/50:0,vo=(e,t)=>[20*bo(e.x,35,t.width-35),20*bo(e.y,35,t.height-35)],wo=e=>e.getRootNode?.()||window?.document,xo=(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)}),Co=({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}),ko=e=>({...e.positionAbsolute||{x:0,y:0},width:e.width||0,height:e.height||0}),So=(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)},Io=e=>!isNaN(e)&&isFinite(e),_o=Symbol.for("internals"),Ao=["Enter"," ","Escape"],No=(e,t)=>{"development"===process.env.NODE_ENV&&console.warn(`[React Flow]: ${t} Help: https://reactflow.dev/error#${e}`)};function Oo(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 Ro=e=>"clientX"in e,To=(e,t)=>{const n=Ro(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)}},Mo=()=>"undefined"!=typeof navigator&&navigator?.userAgent?.indexOf("Mac")>=0,Po=({id:e,path:n,labelX:r,labelY:o,label:i,labelStyle:a,labelShowBg:s,labelBgStyle:l,labelBgPadding:c,labelBgBorderRadius:u,style:d,markerEnd:p,markerStart:f,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:p,markerStart:f}),h&&t.createElement("path",{d:n,fill:"none",strokeOpacity:0,strokeWidth:h,className:"react-flow__edge-interaction"}),i&&Io(r)&&Io(o)?t.createElement(ho,{x:r,y:o,label:i,labelStyle:a,labelShowBg:s,labelBgStyle:l,labelBgPadding:c,labelBgBorderRadius:u}):null);function Do(e,t,n){return void 0===n?n:r=>{const o=t().edges.find((t=>t.id===e));o&&n(r,{...o})}}function Bo({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 jo({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 Fo,Lo,Vo,zo,Go,Ho;function Wo({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 Xo({sourceX:e,sourceY:t,sourcePosition:n=Ho.Bottom,targetX:r,targetY:o,targetPosition:i=Ho.Top}){const[a,s]=Wo({pos:n,x1:e,y1:t,x2:r,y2:o}),[l,c]=Wo({pos:i,x1:r,y1:o,x2:e,y2:t}),[u,d,p,f]=jo({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,p,f]}Po.displayName="BaseEdge",function(e){e.Strict="strict",e.Loose="loose"}(Fo||(Fo={})),function(e){e.Free="free",e.Vertical="vertical",e.Horizontal="horizontal"}(Lo||(Lo={})),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"}(zo||(zo={})),function(e){e.Arrow="arrow",e.ArrowClosed="arrowclosed"}(Go||(Go={})),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:p,style:f,markerEnd:h,markerStart:m,interactionWidth:g})=>{const[y,b,v]=Xo({sourceX:e,sourceY:n,sourcePosition:i,targetX:r,targetY:o,targetPosition:a});return t.createElement(Po,{path:y,labelX:b,labelY:v,label:s,labelStyle:l,labelShowBg:c,labelBgStyle:u,labelBgPadding:d,labelBgBorderRadius:p,style:f,markerEnd:h,markerStart:m,interactionWidth:g})}));Zo.displayName="SimpleBezierEdge";const $o={[Ho.Left]:{x:-1,y:0},[Ho.Right]:{x:1,y:0},[Ho.Top]:{x:0,y:-1},[Ho.Bottom]:{x:0,y:1}},Yo=(e,t)=>Math.sqrt(Math.pow(t.x-e.x,2)+Math.pow(t.y-e.y,2));function Uo({source:e,sourcePosition:t=Ho.Bottom,target:n,targetPosition:r=Ho.Top,center:o,offset:i}){const a=$o[t],s=$o[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",p=u[d];let f,h,m=[];const g={x:0,y:0},y={x:0,y:0},[b,v,w,x]=Bo({sourceX:e.x,sourceY:e.y,targetX:n.x,targetY:n.y});if(a[d]*s[d]==-1){f=o.x??b,h=o.y??v;const e=[{x:f,y:l.y},{x:f,y:c.y}],t=[{x:l.x,y:h},{x:c.x,y:h}];m=a[d]===p?"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===p?u:o:a.y===p?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]===p?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))?(f=(b.x+v.x)/2,h=m[0].y):(f=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],f,h,w,x]}function Jo({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,p,f,h]=Uo({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(Yo(e,t)/2,Yo(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,p,f,h]}const Ko=r((({sourceX:e,sourceY:n,targetX:r,targetY:o,label:i,labelStyle:a,labelShowBg:s,labelBgStyle:l,labelBgPadding:c,labelBgBorderRadius:u,style:d,sourcePosition:p=Ho.Bottom,targetPosition:f=Ho.Top,markerEnd:h,markerStart:m,pathOptions:g,interactionWidth:y})=>{const[b,v,w]=Jo({sourceX:e,sourceY:n,sourcePosition:p,targetX:r,targetY:o,targetPosition:f,borderRadius:g?.borderRadius,offset:g?.offset});return t.createElement(Po,{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})}));Ko.displayName="SmoothStepEdge";const Qo=r((e=>t.createElement(Ko,{...e,pathOptions:a((()=>({borderRadius:0,offset:e.pathOptions?.offset})),[e.pathOptions?.offset])})));Qo.displayName="StepEdge";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,markerEnd:p,markerStart:f,interactionWidth:h})=>{const[m,g,y]=function({sourceX:e,sourceY:t,targetX:n,targetY:r}){const[o,i,a,s]=Bo({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(Po,{path:m,labelX:g,labelY:y,label:i,labelStyle:a,labelShowBg:s,labelBgStyle:l,labelBgPadding:c,labelBgBorderRadius:u,style:d,markerEnd:p,markerStart:f,interactionWidth:h})}));function ei(e,t){return e>=0?.5*e:25*t*Math.sqrt(-e)}function ti({pos:e,x1:t,y1:n,x2:r,y2:o,c:i}){switch(e){case Ho.Left:return[t-ei(t-r,i),n];case Ho.Right:return[t+ei(r-t,i),n];case Ho.Top:return[t,n-ei(n-o,i)];case Ho.Bottom:return[t,n+ei(o-n,i)]}}function ni({sourceX:e,sourceY:t,sourcePosition:n=Ho.Bottom,targetX:r,targetY:o,targetPosition:i=Ho.Top,curvature:a=.25}){const[s,l]=ti({pos:n,x1:e,y1:t,x2:r,y2:o,c:a}),[c,u]=ti({pos:i,x1:r,y1:o,x2:e,y2:t,c:a}),[d,p,f,h]=jo({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,p,f,h]}qo.displayName="StraightEdge";const ri=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:p,style:f,markerEnd:h,markerStart:m,pathOptions:g,interactionWidth:y})=>{const[b,v,w]=ni({sourceX:e,sourceY:n,sourcePosition:i,targetX:r,targetY:o,targetPosition:a,curvature:g?.curvature});return t.createElement(Po,{path:b,labelX:v,labelY:w,label:s,labelStyle:l,labelShowBg:c,labelBgStyle:u,labelBgPadding:d,labelBgBorderRadius:p,style:f,markerEnd:h,markerStart:m,interactionWidth:y})}));ri.displayName="BezierEdge";const oi=i(null),ii=oi.Provider;oi.Consumer;const ai=({source:e,sourceHandle:t,target:n,targetHandle:r})=>`reactflow__edge-${e}${t||""}-${n}${r||""}`,si=(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("&")}`},li=({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},ci=({x:e,y:t},[n,r,o])=>({x:e*o+n,y:t*o+r}),ui=(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}},di=(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}=ui(n,t).positionAbsolute;return xo(e,Co({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}=ui(e,s),d={x:u.x,y:u.y,width:t||0,height:n||0},p=So(l,d);(void 0===t||void 0===n||null===t||null===n||i&&p>0||p>=(t||0)*(n||0)||e.dragging)&&c.push(e)})),c},fi=(e,t)=>{const n=e.map((e=>e.id));return t.filter((e=>n.includes(e.source)||n.includes(e.target)))},hi=(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=go(l,r,o);return{x:t/2-(e.x+e.width/2)*c,y:n/2-(e.y+e.height/2)*c,zoom:c}},mi=(e,t=0)=>e.transition().duration(t);function gi(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 yi={source:null,target:null,sourceHandle:null,targetHandle:null},bi=()=>({handleDomNode:null,isValid:!1,connection:yi,endHandle:null});function vi(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={...bi(),handleDomNode:l};if(l){const e=wi(void 0,l),o=l.getAttribute("data-nodeid"),a=l.getAttribute("data-handleid"),u=l.classList.contains("connectable"),d=l.classList.contains("connectableend"),p={source:s?o:n,sourceHandle:s?a:r,target:s?n:o,targetHandle:s?r:a};c.connection=p;u&&d&&(t===Fo.Strict?s&&"source"===e||!s&&"target"===e:o!==n||a!==r)&&(c.endHandle={nodeId:o,handleId:a,type:e},c.isValid=i(p))}return c}function wi(e,t){return e||(t?.classList.contains("target")?"target":t?.classList.contains("source")?"source":null)}function xi(e){e?.classList.remove("valid","connecting","react-flow__handle-valid","react-flow__handle-connecting")}function Ci(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=wo(e.target),{connectionMode:d,domNode:p,autoPanOnConnect:f,connectionRadius:h,onConnectStart:m,panBy:g,getNodes:y,cancelConnection:b}=i();let v,w=0;const{x:x,y:C}=To(e),E=u?.elementFromPoint(x,C),k=wi(l,E),S=p?.getBoundingClientRect();if(!S||!k)return;let I,_=To(e,S),A=!1,N=null,O=!1,R=null;const T=function({nodes:e,nodeId:t,handleId:n,handleType:r}){return e.reduce(((e,o)=>{if(o[_o]){const{handleBounds:i}=o[_o];let a=[],s=[];i&&(a=gi(o,i,"source",`${t}-${n}-${r}`),s=gi(o,i,"target",`${t}-${n}-${r}`)),e.push(...a,...s)}return e}),[])}({nodes:y(),nodeId:n,handleId:t,handleType:k}),M=()=>{if(!f)return;const[e,t]=vo(_,S);g({x:e,y:t}),w=requestAnimationFrame(M)};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=wi(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:bi()};if(1===c.length)return c[0];const d=c.some((({validHandleResult:e})=>e.isValid)),p=c.some((({handle:e})=>"target"===e.type));return c.find((({handle:e,validHandleResult:t})=>p?"target"===e.type:!d||t.isValid))||c[0]}(e,u,li(_,r,!1,[1,1]),h,T,(e=>vi(e,d,n,t,o?"target":"source",s,u)));if(v=l,A||(M(),A=!0),R=c.handleDomNode,N=c.connection,O=c.isValid,a({connectionPosition:v&&O?ci({x:v.x,y:v.y},r):_,connectionStatus:Ci(!!v,O),connectionEndHandle:c.endHandle}),!v&&!O&&!R)return xi(I);N.source!==N.target&&R&&(xi(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),xi(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:k,connectionStartHandle:{nodeId:n,handleId:t,type:k},connectionEndHandle:null}),m?.(e,{nodeId:n,handleId:t,handleType:k}),u.addEventListener("mousemove",P),u.addEventListener("mouseup",D),u.addEventListener("touchmove",P),u.addEventListener("touchend",D)}const ki=()=>!0,Si=e=>({connectionStartHandle:e.connectionStartHandle,connectOnClick:e.connectOnClick,noPanClassName:e.noPanClassName}),Ii=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:p,onTouchStart:f,...h},m)=>{const g=l||null,y="target"===e,b=co(),v=o(oi),{connectOnClick:w,noPanClassName:x}=lo(Si,de),{connecting:C,clickConnecting:E}=lo(((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),de);v||b.getState().onError?.("010",oo());const k=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 No("006",to()),t;let n;return n=(e=>"id"in e&&"source"in e&&"target"in e)(e)?{...e}:{...e,id:ai(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=Ro(e);a&&(t&&0===e.button||!t)&&Ei({event:e,handleId:g,nodeId:v,onConnect:k,isTarget:y,getState:b.getState,setState:b.setState,isValidConnection:r||b.getState().isValidConnection||ki}),t?p?.(e):f?.(e)};return t.createElement("div",{"data-handleid":g,"data-nodeid":v,"data-handlepos":n,"data-id":`${v}-${g}-${e}`,className:ie(["react-flow__handle",`react-flow__handle-${n}`,"nodrag",x,d,{source:!y,target:y,connectable:i,connectablestart:a,connectableend:s,connecting:E,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=wo(t.target),u=r||l||ki,{connection:d,isValid:p}=vi({nodeId:v,id:g,type:e},s,i.nodeId,i.handleId||null,i.type,u,c);p&&k(d),o?.(t),b.setState({connectionClickStartHandle:null})}:void 0,ref:m,...h},u)}));Ii.displayName="Handle";var _i=r(Ii);const Ai=({data:e,isConnectable:n,targetPosition:r=Ho.Top,sourcePosition:o=Ho.Bottom})=>t.createElement(t.Fragment,null,t.createElement(_i,{type:"target",position:r,isConnectable:n}),e?.label,t.createElement(_i,{type:"source",position:o,isConnectable:n}));Ai.displayName="DefaultNode";var Ni=r(Ai);const Oi=({data:e,isConnectable:n,sourcePosition:r=Ho.Bottom})=>t.createElement(t.Fragment,null,e?.label,t.createElement(_i,{type:"source",position:r,isConnectable:n}));Oi.displayName="InputNode";var Ri=r(Oi);const Ti=({data:e,isConnectable:n,targetPosition:r=Ho.Top})=>t.createElement(t.Fragment,null,t.createElement(_i,{type:"target",position:r,isConnectable:n}),e?.label);Ti.displayName="OutputNode";var Mi=r(Ti);const Pi=()=>null;Pi.displayName="GroupNode";const Di=e=>({selectedNodes:e.getNodes().filter((e=>e.selected)),selectedEdges:e.edges.filter((e=>e.selected)).map((e=>({...e})))}),Bi=e=>e.id;function ji(e,t){return de(e.selectedNodes.map(Bi),t.selectedNodes.map(Bi))&&de(e.selectedEdges.map(Bi),t.selectedEdges.map(Bi))}const Fi=r((({onSelectionChange:e})=>{const t=co(),{selectedNodes:n,selectedEdges:r}=lo(Di,ji);return s((()=>{const o={nodes:n,edges:r};e?.(o),t.getState().onSelectionChange.forEach((e=>e(o)))}),[n,r,e]),null}));Fi.displayName="SelectionListener";const Li=e=>!!e.onSelectionChange;function Vi({onSelectionChange:e}){const n=lo(Li);return e||n?t.createElement(Fi,{onSelectionChange:e}):null}const zi=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 Gi(e,t){s((()=>{void 0!==e&&t(e)}),[e])}function Hi(e,t,n){s((()=>{void 0!==t&&n({[e]:t})}),[t])}const Wi=({nodes:e,edges:t,defaultNodes:n,defaultEdges:r,onConnect:o,onConnectStart:i,onConnectEnd:a,onClickConnectStart:l,onClickConnectEnd:c,nodesDraggable:u,nodesConnectable:d,nodesFocusable:p,edgesFocusable:f,edgesUpdatable:h,elevateNodesOnSelect:m,minZoom:g,maxZoom:y,nodeExtent:b,onNodesChange:v,onEdgesChange:w,elementsSelectable:x,connectionMode:C,snapGrid:E,snapToGrid:k,translateExtent:S,connectOnClick:I,defaultEdgeOptions:_,fitView:A,fitViewOptions:N,onNodesDelete:O,onEdgesDelete:R,onNodeDrag:T,onNodeDragStart:M,onNodeDragStop:P,onSelectionDrag:D,onSelectionDragStart:B,onSelectionDragStop:j,noPanClassName:F,nodeOrigin:L,rfId:V,autoPanOnConnect:z,autoPanOnNodeDrag:G,onError:H,connectionRadius:W,isValidConnection:X,nodeDragThreshold:Z})=>{const{setNodes:$,setEdges:Y,setDefaultNodesAndEdges:U,setMinZoom:J,setMaxZoom:K,setTranslateExtent:Q,setNodeExtent:q,reset:ee}=lo(zi,de),te=co();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",p,te.setState),Hi("edgesFocusable",f,te.setState),Hi("edgesUpdatable",h,te.setState),Hi("elementsSelectable",x,te.setState),Hi("elevateNodesOnSelect",m,te.setState),Hi("snapToGrid",k,te.setState),Hi("snapGrid",E,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",T,te.setState),Hi("onNodeDragStart",M,te.setState),Hi("onNodeDragStop",P,te.setState),Hi("onSelectionDrag",D,te.setState),Hi("onSelectionDragStart",B,te.setState),Hi("onSelectionDragStop",j,te.setState),Hi("noPanClassName",F,te.setState),Hi("nodeOrigin",L,te.setState),Hi("rfId",V,te.setState),Hi("autoPanOnConnect",z,te.setState),Hi("autoPanOnNodeDrag",G,te.setState),Hi("onError",H,te.setState),Hi("connectionRadius",W,te.setState),Hi("isValidConnection",X,te.setState),Hi("nodeDragThreshold",Z,te.setState),Gi(e,$),Gi(t,Y),Gi(g,J),Gi(y,K),Gi(S,Q),Gi(b,q),null},Xi={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%)"},$i="react-flow__node-desc",Yi="react-flow__edge-desc",Ui=e=>e.ariaLiveMessage;function Ji({rfId:e}){const n=lo(Ui);return t.createElement("div",{id:`react-flow__aria-live-${e}`,"aria-live":"assertive","aria-atomic":"true",style:Zi},n)}function Ki({rfId:e,disableKeyboardA11y:n}){return t.createElement(t.Fragment,null,t.createElement("div",{id:`${$i}-${e}`,style:Xi},"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:`${Yi}-${e}`,style:Xi},"Press enter or space to select an edge. You can then press delete to remove it or escape to cancel."),!n&&t.createElement(Ji,{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)&&Oo(e))return!1;const n=ea(e.code,d);i.current.add(e[n]),qi(l,i.current,!1)&&(e.preventDefault(),r(!0))},n=e=>{if((!o.current||o.current&&!t.actInsideInputWithModifier)&&Oo(e))return!1;const n=ea(e.code,d);qi(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 qi(e,t,n){return e.filter((e=>n||e.length===t.size)).some((e=>e.every((e=>t.has(e)))))}function ea(e,t){return t.includes(e)?"code":"key"}function ta(e,t,n,r){const o=e.parentNode||e.parentId;if(!o)return n;const i=t.get(o),a=ui(i,r);return ta(i,t,{x:(n.x??0)+a.x,y:(n.y??0)+a.y,z:(i[_o]?.z??0)>(n.z??0)?i[_o]?.z??0:n.z??0},r)}function na(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}=ta(r,e,{...r.position,z:r[_o]?.z??0},t);r.positionAbsolute={x:o,y:i},r[_o].z=a,n?.[r.id]&&(r[_o].isParent=!0)}}))}function ra(e,t,n,r){const o=new Map,i={},a=r?1e3:0;return e.forEach((e=>{const n=(Io(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,_o,{enumerable:!1,value:{handleBounds:c?void 0:r?.[_o]?.handleBounds,z:n}}),o.set(e.id,s)})),na(o,n,i),o}function oa(e,t={}){const{getNodes:n,width:r,height:o,minZoom:i,maxZoom:a,d3Zoom:s,d3Selection:l,fitViewOnInitDone:c,fitViewOnInit:u,nodeOrigin:d}=e(),p=t.initial&&!c&&u;if(s&&l&&(p||!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=di(e,d),{x:c,y:u,zoom:p}=hi(n,r,o,t.minZoom??i,t.maxZoom??a,t.padding??.1),f=Lr.translate(c,u).scale(p);return"number"==typeof t.duration&&t.duration>0?s.transform(mi(l,t.duration),f):s.transform(l,f),!0}}return!1}function ia(e,t){return e.forEach((e=>{const n=t.get(e.id);n&&t.set(n.id,{...n,[_o]:n[_o],selected:e.selected})})),new Map(t)}function aa(e,t){return t.map((t=>{const n=e.find((e=>e.id===t.id));return n&&(t.selected=n.selected),t}))}function sa({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:ia(e,o)}),a?.(e)),t?.length&&(c&&r({edges:aa(t,i)}),s?.(t))}const la=()=>{},ca={zoomIn:la,zoomOut:la,zoomTo:la,getZoom:()=>1,setViewport:la,getViewport:()=>({x:0,y:0,zoom:1}),fitView:()=>!1,setCenter:la,fitBounds:la,project:e=>e,screenToFlowPosition:e=>e,flowToScreenPosition:e=>e,viewportInitialized:!1},ua=e=>({d3Zoom:e.d3Zoom,d3Selection:e.d3Selection});function da(){const e=(()=>{const e=co(),{d3Zoom:t,d3Selection:n}=lo(ua,de),r=a((()=>n&&t?{zoomIn:e=>t.scaleBy(mi(n,e?.duration),1.2),zoomOut:e=>t.scaleBy(mi(n,e?.duration),1/1.2),zoomTo:(e,r)=>t.scaleTo(mi(n,r?.duration),e),getZoom:()=>e.getState().transform[2],setViewport:(r,o)=>{const[i,a,s]=e.getState().transform,l=Lr.translate(r.x??i,r.y??a).scale(r.zoom??s);t.transform(mi(n,o?.duration),l)},getViewport:()=>{const[t,n,r]=e.getState().transform;return{x:t,y:n,zoom:r}},fitView:t=>oa(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,p=Lr.translate(u,d).scale(c);t.transform(mi(n,i?.duration),p)},fitBounds:(r,o)=>{const{width:i,height:a,minZoom:s,maxZoom:l}=e.getState(),{x:c,y:u,zoom:d}=hi(r,i,a,s,l,o?.padding??.1),p=Lr.translate(c,u).scale(d);t.transform(mi(n,o?.duration),p)},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"),li(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 li(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=ci(t,n);return{x:a.x+o,y:a.y+i}},viewportInitialized:!0}:ca),[t,n]);return r})(),t=co(),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"}))))}}),[]),p=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}}}),[]),f=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(),p=(e||[]).map((e=>e.id)),f=(n||[]).map((e=>e.id)),h=o().reduce(((e,t)=>{const n=t.parentNode||t.parentId,r=!p.includes(t.id)&&n&&e.find((e=>e.id===n));return("boolean"!=typeof t.deletable||t.deletable)&&(p.includes(t.id)||r)&&e.push(t),e}),[]),m=i.filter((e=>"boolean"!=typeof e.deletable||e.deletable)),g=m.filter((e=>f.includes(e.id)));if(h||g){const e=fi(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=Io((r=e).width)&&Io(r.height)&&Io(r.x)&&Io(r.y);var r;const o=n?null:t.getState().nodeInternals.get(e.id);if(!n&&!o)return[null,null,n];return[n?e:ko(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=ko(e),r=So(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=So(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:p,deleteElements:f,getIntersectingNodes:m,isNodeIntersecting:g})),[e,n,r,o,i,s,c,u,d,p,f,m,g])}const pa={actInsideInputWithModifier:!1};const fa={position:"absolute",width:"100%",height:"100%",top:0,left:0},ha=e=>({x:e.x,y:e.y,zoom:e.k}),ma=(e,t)=>e.target.closest(`.${t}`),ga=(e,t)=>2===t&&Array.isArray(e)&&e.includes(2),ya=e=>{const t=e.ctrlKey&&Mo()?10:1;return-e.deltaY*(1===e.deltaMode?.05:e.deltaMode?1:.002)*t},ba=e=>({d3Zoom:e.d3Zoom,d3Selection:e.d3Selection,d3ZoomHandler:e.d3ZoomHandler,userSelectionActive:e.userSelectionActive}),va=({onMove:e,onMoveStart:n,onMoveEnd:r,onPaneContextMenu:o,zoomOnScroll:i=!0,zoomOnPinch:a=!0,panOnScroll:l=!1,panOnScrollSpeed:c=.5,panOnScrollMode:d=Lo.Free,zoomOnDoubleClick:p=!0,elementsSelectable:f,panOnDrag:h=!0,defaultViewport:m,translateExtent:g,minZoom:y,maxZoom:b,zoomActivationKeyCode:v,preventScrolling:w=!0,children:x,noWheelClassName:C,noPanClassName:E})=>{const k=u(),S=co(),I=u(!1),_=u(!1),A=u(null),N=u({x:0,y:0,zoom:0}),{d3Zoom:O,d3Selection:R,d3ZoomHandler:T,userSelectionActive:M}=lo(ba,de),P=Qi(v),D=u(0),B=u(!1),j=u();return function(e){const t=co();s((()=>{let n;const r=()=>{if(!e.current)return;const n=mo(e.current);0!==n.height&&0!==n.width||t.getState().onError?.("004",qr()),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=Yr().scaleExtent([y,b]).translateExtent(g),n=Nt(A.current).call(t),r=Lr.translate(m.x,m.y).scale(go(m.zoom,y,b)),o=[[0,0],[e.width,e.height]],i=t.constrain()(r,o,g);t.transform(n,i),t.wheelDelta(ya),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||M?void 0!==T&&R.on("wheel.zoom",(function(e,t){if(!w&&"wheel"===e.type&&!e.ctrlKey||ma(e,C))return null;e.preventDefault(),T.call(this,e,t)}),{passive:!1}):R.on("wheel.zoom",(t=>{if(ma(t,C))return!1;t.preventDefault(),t.stopImmediatePropagation();const o=R.property("__zoom").k||1;if(t.ctrlKey&&a){const e=Ot(t),n=ya(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===Lo.Vertical?0:t.deltaX*i,l=d===Lo.Horizontal?0:t.deltaY*i;!Mo()&&t.shiftKey&&d!==Lo.Vertical&&(s=t.deltaY*i,l=0),O.translateBy(R,-s/o*c,-l/o*c,{internal:!0});const u=ha(R.property("__zoom")),{onViewportChangeStart:p,onViewportChange:f,onViewportChangeEnd:h}=S.getState();clearTimeout(j.current),B.current||(B.current=!0,n?.(t,u),p?.(u)),B.current&&(e?.(t,u),f?.(u),j.current=setTimeout((()=>{r?.(t,u),h?.(u),B.current=!1}),150))}),{passive:!1}))}),[M,l,d,R,O,T,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=ha(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&&(M&&!I.current?O.on("zoom",null):M||O.on("zoom",(t=>{const{onViewportChange:n}=S.getState();if(S.setState({transform:[t.transform.x,t.transform.y,t.transform.k]}),_.current=!(!o||!ga(h,D.current??0)),(e||n)&&!t.sourceEvent?.internal){const r=ha(t.transform);n?.(r),e?.(t.sourceEvent,r)}})))}),[M,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&&ga(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=ha(e.transform);N.current=n,clearTimeout(k.current),k.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&&(ma(e,"react-flow__node")||ma(e,"react-flow__edge")))return!0;if(!(h||t||l||p||a))return!1;if(M)return!1;if(!p&&"dblclick"===e.type)return!1;if(ma(e,C)&&"wheel"===e.type)return!1;if(ma(e,E)&&("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}))}),[M,O,i,a,l,p,h,f,P]),t.createElement("div",{className:"react-flow__renderer",ref:A,style:fa},x)},wa=e=>({userSelectionActive:e.userSelectionActive,userSelectionRect:e.userSelectionRect});function xa(){const{userSelectionActive:e,userSelectionRect:n}=lo(wa,de);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 Ca(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&&Ca(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&&Ca(t,o);break;case"remove":return t}return t.push(o),t}),n)}function ka(e,t){return Ea(e,t)}function Sa(e,t){return Ea(e,t)}const Ia=(e,t)=>({id:e,type:"select",selected:t});function _a(e,t){return e.reduce(((e,n)=>{const r=t.includes(n.id);return!n.selected&&r?(n.selected=!0,e.push(Ia(n.id,!0))):n.selected&&!r&&(n.selected=!1,e.push(Ia(n.id,!1))),e}),[])}const Aa=(e,t)=>n=>{n.target===t.current&&e?.(n)},Na=e=>({userSelectionActive:e.userSelectionActive,elementsSelectable:e.elementsSelectable,dragging:e.paneDragging}),Oa=r((({isSelecting:e,selectionMode:n=Vo.Full,panOnDrag:r,onSelectionStart:o,onSelectionEnd:i,onPaneClick:a,onPaneContextMenu:s,onPaneScroll:l,onPaneMouseEnter:c,onPaneMouseMove:d,onPaneMouseLeave:p,children:f})=>{const h=u(null),m=co(),g=u(0),y=u(0),b=u(),{userSelectionActive:v,elementsSelectable:w,dragging:x}=lo(Na,de),C=()=>{m.setState({userSelectionActive:!1,userSelectionRect:null}),g.current=0,y.current=0},E=e=>{a?.(e),m.getState().resetSelectedElements(),m.setState({nodesSelectionActive:!1})},k=l?e=>l(e):void 0,S=w&&(e||v);return t.createElement("div",{className:ie(["react-flow__pane",{dragging:x,selection:e}]),onClick:S?void 0:Aa(E,h),onContextMenu:Aa((e=>{Array.isArray(r)&&r?.includes(2)?e.preventDefault():s?.(e)}),h),onWheel:Aa(k,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),p=r.startX??0,f=r.startY??0,h={...r,x:d.x<p?d.x:p,y:d.y<f?d.y:f,width:Math.abs(d.x-p),height:Math.abs(d.y-f)},v=u(),w=pi(o,h,a,n===Vo.Partial,!0,c),x=fi(w,i).map((e=>e.id)),C=w.map((e=>e.id));if(g.current!==C.length){g.current=C.length;const e=_a(v,C);e.length&&s?.(e)}if(y.current!==x.length){y.current=x.length;const e=_a(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&&E?.(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()}:p,ref:h,style:fa},f,t.createElement(xa,null))}));function Ra(e,t){const n=e.parentNode||e.parentId;if(!n)return!1;const r=t.get(n);return!!r&&(!!r.selected||Ra(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 Ma(e,t,n,r){return Array.from(e.values()).filter((n=>(n.selected||n.id===r)&&(!n.parentNode||n.parentId||!Ra(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 Pa(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}=ui(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}=ui(t,o).positionAbsolute;s=t&&Io(r)&&Io(i)&&Io(t.width)&&Io(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",eo()),s=a;let c={x:0,y:0};if(l){const e=n.get(l);c=ui(e,o).positionAbsolute}const u=s&&"parent"!==s?yo(t,s):t;return{position:{x:u.x-c.x,y:u.y-c.y},positionAbsolute:u}}function Da({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]}Oa.displayName="Pane";const Ba=(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,...mo(e)}}))};function ja(e,t,n){return void 0===n?n:r=>{const o=t().nodeInternals.get(e);o&&n(r,{...o})}}function Fa({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",ao(e))}function La(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=co(),[p,f]=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),E=function(){const e=co(),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=Nt(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:p}=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=di(h.current,u);y=Co(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=Pa(r,o,n,i,u,p);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),f(!0);const b=o?r:La(i);if(b&&v.current){const[e,t]=Da({nodeId:o,dragItems:h.current,nodeInternals:n});b(v.current,e,t)}},c=()=>{if(!y.current)return;const[e,t]=vo(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 p=o?c:La(u);a&&i||r||!o||n.get(o)?.selected||l(),o&&i&&a&&Fa({id:o,store:d,nodeRef:e});const f=E(t);if(m.current=f,h.current=Ma(n,s,f,o),p&&h.current){const[e,r]=Da({nodeId:o,dragItems:h.current,nodeInternals:n});p(t.sourceEvent,e,r)}};if(!t){const t=function(){var e,t,n,r,o=Lt,i=Vt,a=zt,s=Gt,l={},c=fe("start","drag","end"),u=0,d=0;function p(e){e.on("mousedown.drag",f).filter(s).on("touchstart.drag",g).on("touchmove.drag",y,Rt).on("touchend.drag touchcancel.drag",b).style("touch-action","none").style("-webkit-tap-highlight-color","rgba(0,0,0,0)")}function f(a,s){if(!r&&o.call(this,a,s)){var l=v(this,i.call(this,a,s),a,s,"mouse");l&&(Nt(a.view).on("mousemove.drag",h,Tt).on("mouseup.drag",m,Tt),Dt(a.view),Mt(a),n=!1,e=a.clientX,t=a.clientY,l("start",a))}}function h(r){if(Pt(r),!n){var o=r.clientX-e,i=r.clientY-t;n=o*o+i*i>d}l.mouse("drag",r)}function m(e){Nt(e.view).on("mousemove.drag mouseup.drag",null),Bt(e.view,n),Pt(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]))&&(Mt(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])&&(Pt(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])&&(Mt(e),n("end",e,o[t]))}function v(e,t,n,r,o,i){var s,d,f,h=c.copy(),m=Ot(i||n,t);if(null!=(f=a.call(e,new Ft("beforestart",{sourceEvent:n,target:p,identifier:o,active:u,x:m[0],y:m[1],dx:0,dy:0,dispatch:h}),r)))return s=f.x-m[0]||0,d=f.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=Ot(c||a,t),g=u}h.call(i,e,new Ft(i,{sourceEvent:a,subject:f,target:p,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 p.filter=function(e){return arguments.length?(o="function"==typeof e?e:jt(!!e),p):o},p.container=function(e){return arguments.length?(i="function"==typeof e?e:jt(e),p):i},p.subject=function(e){return arguments.length?(a="function"==typeof e?e:jt(e),p):a},p.touchable=function(e){return arguments.length?(s="function"==typeof e?e:jt(!!e),p):s},p.on=function(){var e=c.on.apply(c,arguments);return e===c?p:e},p.clickDistance=function(e){return arguments.length?(d=(e=+e)*e,p):Math.sqrt(d)},p}().on("start",(e=>{const{domNode:t,nodeDragThreshold:n}=d.getState();0===n&&u(e),C.current=!1;const r=E(e);m.current=r,y.current=t?.getBoundingClientRect()||null,b.current=To(e.sourceEvent,y.current)})).on("drag",(e=>{const t=E(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&&(f(!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:La(i);if(t(h.current,!1,!1),a){const[t,r]=Da({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,E]),p}function za(){const e=co(),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,p=a?s[1]:5,f=t.isShiftPressed?4:1,h=t.x*d*f,m=t.y*p*f,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}=Pa(e,t,n,r,void 0,l);e.position=i,e.positionAbsolute=o}return e}));o(g,!0,!1)}),[]);return t}const Ga={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:p,onMouseEnter:f,onMouseMove:h,onMouseLeave:m,onContextMenu:g,onDoubleClick:y,style:b,className:v,isDraggable:w,isSelectable:x,isConnectable:C,isFocusable:E,selectNodesOnDrag:k,sourcePosition:S,targetPosition:I,hidden:_,resizeObserver:A,dragHandle:N,zIndex:O,isParent:R,noDragClassName:T,noPanClassName:M,initialized:P,disableKeyboardA11y:D,ariaLabel:B,rfId:j,hasHandleBounds:F})=>{const L=co(),V=u(null),z=u(null),G=u(S),H=u(I),W=u(r),X=x||w||p||f||h||m,Z=za(),$=ja(n,L.getState,f),Y=ja(n,L.getState,h),U=ja(n,L.getState,m),J=ja(n,L.getState,g),K=ja(n,L.getState,y);s((()=>()=>{z.current&&(A?.unobserve(z.current),z.current=null)}),[]),s((()=>{if(V.current&&!_){const e=V.current;P&&F&&z.current===e||(z.current&&A?.unobserve(z.current),A?.observe(e),z.current=e)}}),[_,P,F]),s((()=>{const e=W.current!==r,t=G.current!==S,o=H.current!==I;V.current&&(e||t||o)&&(e&&(W.current=r),t&&(G.current=S),o&&(H.current=I),L.getState().updateNodeDimensions([{id:n,nodeElement:V.current,forceUpdate:!0}]))}),[n,r,S,I]);const Q=Va({nodeRef:V,disabled:_||!w,noDragClassName:T,handleSelector:N,nodeId:n,isSelectable:x,selectNodesOnDrag:k});return _?null:t.createElement("div",{className:ie(["react-flow__node",`react-flow__node-${r}`,{[M]:w},v,{selected:d,selectable:x,parent:R,dragging:Q}]),ref:V,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:$,onMouseMove:Y,onMouseLeave:U,onContextMenu:J,onClick:e=>{const{nodeDragThreshold:t}=L.getState();if(x&&(!k||!w||t>0)&&Fa({id:n,store:L,nodeRef:V}),p){const t=L.getState().nodeInternals.get(n);t&&p(e,{...t})}},onDoubleClick:K,onKeyDown:E?e=>{if(!Oo(e)&&!D)if(Ao.includes(e.key)&&x){const t="Escape"===e.key;Fa({id:n,store:L,unselect:t,nodeRef:V})}else w&&d&&Object.prototype.hasOwnProperty.call(Ga,e.key)&&(L.setState({ariaLiveMessage:`Moved selected node ${e.key.replace("Arrow","").toLowerCase()}. New position, x: ${~~i}, y: ${~~a}`}),Z({x:Ga[e.key].x,y:Ga[e.key].y,isShiftPressed:e.shiftKey}))}:void 0,tabIndex:E?0:void 0,role:E?"button":void 0,"aria-describedby":D?void 0:`${$i}-${j}`,"aria-label":B},t.createElement(ii,{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 Wa=e=>{const t=e.getNodes().filter((e=>e.selected));return{...di(t,e.nodeOrigin),transformString:`translate(${e.transform[0]}px,${e.transform[1]}px) scale(${e.transform[2]})`,userSelectionActive:e.userSelectionActive}};var Xa=r((function({onSelectionContextMenu:e,noPanClassName:n,disableKeyboardA11y:r}){const o=co(),{width:i,height:a,x:l,y:c,transformString:d,userSelectionActive:p}=lo(Wa,de),f=za(),h=u(null);if(s((()=>{r||h.current?.focus({preventScroll:!0})}),[r]),Va({nodeRef:h}),p||!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:ie(["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(Ga,e.key)&&f({x:Ga[e.key].x,y:Ga[e.key].y,isShiftPressed:e.shiftKey})},style:{width:i,height:a,top:c,left:l}}))}));const Za=e=>e.nodesSelectionActive,$a=({children:e,onPaneClick:n,onPaneMouseEnter:r,onPaneMouseMove:o,onPaneMouseLeave:i,onPaneContextMenu:a,onPaneScroll:l,deleteKeyCode:c,onMove:u,onMoveStart:d,onMoveEnd:p,selectionKeyCode:f,selectionOnDrag:h,selectionMode:m,onSelectionStart:g,onSelectionEnd:y,multiSelectionKeyCode:b,panActivationKeyCode:v,zoomActivationKeyCode:w,elementsSelectable:x,zoomOnScroll:C,zoomOnPinch:E,panOnScroll:k,panOnScrollSpeed:S,panOnScrollMode:I,zoomOnDoubleClick:_,panOnDrag:A,defaultViewport:N,translateExtent:O,minZoom:R,maxZoom:T,preventScrolling:M,onSelectionContextMenu:P,noWheelClassName:D,noPanClassName:B,disableKeyboardA11y:j})=>{const F=lo(Za),L=Qi(f),V=Qi(v),z=V||A,G=V||k,H=L||h&&!0!==z;return(({deleteKeyCode:e,multiSelectionKeyCode:t})=>{const n=co(),{deleteElements:r}=da(),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(va,{onMove:u,onMoveStart:d,onMoveEnd:p,onPaneContextMenu:a,elementsSelectable:x,zoomOnScroll:C,zoomOnPinch:E,panOnScroll:G,panOnScrollSpeed:S,panOnScrollMode:I,zoomOnDoubleClick:_,panOnDrag:!L&&z,defaultViewport:N,translateExtent:O,minZoom:R,maxZoom:T,zoomActivationKeyCode:w,preventScrolling:M,noWheelClassName:D,noPanClassName:B},t.createElement(Oa,{onSelectionStart:g,onSelectionEnd:y,onPaneClick:n,onPaneMouseEnter:r,onPaneMouseMove:o,onPaneMouseLeave:i,onPaneContextMenu:a,onPaneScroll:l,panOnDrag:z,isSelecting:!!H,selectionMode:m},e,F&&t.createElement(Xa,{onSelectionContextMenu:P,noPanClassName:B,disableKeyboardA11y:j})))};$a.displayName="FlowRenderer";var Ya=r($a);function Ua(e){return{...{input:Ha(e.input||Ri),default:Ha(e.default||Ni),output:Ha(e.output||Mi),group:Ha(e.group||Pi)},...Object.keys(e).filter((e=>!["input","default","output","group"].includes(e))).reduce(((t,n)=>(t[n]=Ha(e[n]||Ni),t)),{})}}const Ja=e=>({nodesDraggable:e.nodesDraggable,nodesConnectable:e.nodesConnectable,nodesFocusable:e.nodesFocusable,elementsSelectable:e.elementsSelectable,updateNodeDimensions:e.updateNodeDimensions,onError:e.onError}),Ka=e=>{const{nodesDraggable:n,nodesConnectable:r,nodesFocusable:o,elementsSelectable:i,updateNodeDimensions:c,onError:d}=lo(Ja,de),p=(f=e.onlyRenderVisibleElements,lo(l((e=>f?pi(e.nodeInternals,{x:0,y:0,width:e.width,height:e.height},e.transform,!0):e.getNodes()),[f])));var f;const h=u(),m=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 h.current=e,e}),[]);return s((()=>()=>{h?.current?.disconnect()}),[]),t.createElement("div",{className:"react-flow__nodes",style:fa},p.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),p=!!(a.connectable||r&&void 0===a.connectable),f=!!(a.focusable||o&&void 0===a.focusable),h=e.nodeExtent?yo(a.positionAbsolute,e.nodeExtent):a.positionAbsolute,g=h?.x??0,y=h?.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:p,isFocusable:f,resizeObserver:m,dragHandle:a.dragHandle,zIndex:a[_o]?.z??0,isParent:!!a[_o]?.isParent,noDragClassName:e.noDragClassName,noPanClassName:e.noPanClassName,initialized:!!a.width&&!!a.height,rfId:e.rfId,disableKeyboardA11y:e.disableKeyboardA11y,ariaLabel:a.ariaLabel,hasHandleBounds:!!a[_o]?.handleBounds})})))};Ka.displayName="NodeRenderer";var Qa=r(Ka);const qa=(e,t,n)=>n===Ho.Left?e-t:n===Ho.Right?e+t:e,es=(e,t,n)=>n===Ho.Top?e-t:n===Ho.Bottom?e+t:e,ts="react-flow__edgeupdater",ns=({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:ie([ts,`${ts}-${l}`]),cx:qa(n,o,e),cy:es(r,o,e),r:o,stroke:"transparent",fill:"transparent"}),rs=()=>!0;var os=e=>{const n=({id:n,className:r,type:o,data:i,onClick:s,onEdgeDoubleClick:l,selected:d,animated:p,label:f,labelStyle:h,labelShowBg:m,labelBgStyle:g,labelBgPadding:y,labelBgBorderRadius:b,style:v,source:w,target:x,sourceX:C,sourceY:E,targetX:k,targetY:S,sourcePosition:I,targetPosition:_,elementsSelectable:A,hidden:N,sourceHandleId:O,targetHandleId:R,onContextMenu:T,onMouseEnter:M,onMouseMove:P,onMouseLeave:D,reconnectRadius:B,onReconnect:j,onReconnectStart:F,onReconnectEnd:L,markerEnd:V,markerStart:z,rfId:G,ariaLabel:H,isFocusable:W,isReconnectable:X,pathOptions:Z,interactionWidth:$,disableKeyboardA11y:Y})=>{const U=u(null),[J,K]=c(!1),[Q,q]=c(!1),ee=co(),te=a((()=>`url('#${si(z,G)}')`),[z,G]),ne=a((()=>`url('#${si(V,G)}')`),[V,G]);if(N)return null;const re=Do(n,ee.getState,l),oe=Do(n,ee.getState,T),ae=Do(n,ee.getState,M),se=Do(n,ee.getState,P),le=Do(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||rs,c=t,u=r.find((e=>e.id===n));q(!0),F?.(e,u,s);Ei({event:e,handleId:a,nodeId:i,onConnect:e=>j?.(u,e),isTarget:c,getState:ee.getState,setState:ee.setState,isValidConnection:l,edgeUpdaterType:s,onReconnectEnd:e=>{q(!1),L?.(e,u,s)}})},ue=()=>K(!0),de=()=>K(!1),pe=!A&&!s;return t.createElement("g",{className:ie(["react-flow__edge",`react-flow__edge-${o}`,r,{selected:d,animated:p,inactive:pe,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:ae,onMouseMove:se,onMouseLeave:le,onKeyDown:W?e=>{if(!Y&&Ao.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:W?0:void 0,role:W?"button":"img","data-testid":`rf__edge-${n}`,"aria-label":null===H?void 0:H||`Edge from ${w} to ${x}`,"aria-describedby":W?`${Yi}-${G}`:void 0,ref:U},!Q&&t.createElement(e,{id:n,source:w,target:x,selected:d,animated:p,label:f,labelStyle:h,labelShowBg:m,labelBgStyle:g,labelBgPadding:y,labelBgBorderRadius:b,data:i,style:v,sourceX:C,sourceY:E,targetX:k,targetY:S,sourcePosition:I,targetPosition:_,sourceHandleId:O,targetHandleId:R,markerStart:te,markerEnd:ne,pathOptions:Z,interactionWidth:$}),X&&t.createElement(t.Fragment,null,("source"===X||!0===X)&&t.createElement(ns,{position:I,centerX:C,centerY:E,radius:B,onMouseDown:e=>ce(e,!0),onMouseEnter:ue,onMouseOut:de,type:"source"}),("target"===X||!0===X)&&t.createElement(ns,{position:_,centerX:k,centerY:S,radius:B,onMouseDown:e=>ce(e,!1),onMouseEnter:ue,onMouseOut:de,type:"target"})))};return n.displayName="EdgeWrapper",r(n)};function is(e){return{...{default:os(e.default||ri),straight:os(e.bezier||qo),step:os(e.step||Qo),smoothstep:os(e.step||Ko),simplebezier:os(e.simplebezier||Zo)},...Object.keys(e).filter((e=>!["default","bezier"].includes(e))).reduce(((t,n)=>(t[n]=os(e[n]||ri),t)),{})}}function as(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 ss(e,t){return e?1!==e.length&&t?t&&e.find((e=>e.id===t))||null:e[0]:null}function ls(e){const t=e?.[_o]?.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 cs=[{level:0,isMaxLevel:!0,edges:[]}];function us(e,t,n){const r=lo(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=Co({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)),p=Math.max(0,Math.min(u.y2,c.y2)-Math.max(u.y,c.y));return Math.ceil(d*p)>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=Io(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?.[_o]?.z||0,e?.[_o]?.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?cs:i}(r,t,n)}const ds={[Go.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"}),[Go.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=co();return a((()=>Object.prototype.hasOwnProperty.call(ds,e)?ds[e]:(t.getState().onError?.("009",no(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},fs=({defaultColor:e,rfId:n})=>{const r=lo(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=si(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}))))};fs.displayName="MarkerDefinitions";var hs=r(fs);const ms=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}),gs=({defaultMarkerColor:e,onlyRenderVisibleElements:n,elevateEdgesOnSelect:r,rfId:o,edgeTypes:i,noPanClassName:a,onEdgeContextMenu:s,onEdgeMouseEnter:l,onEdgeMouseMove:c,onEdgeMouseLeave:u,onEdgeClick:d,onEdgeDoubleClick:p,onReconnect:f,onReconnectStart:h,onReconnectEnd:m,reconnectRadius:g,children:y,disableKeyboardA11y:b})=>{const{edgesFocusable:v,edgesUpdatable:w,elementsSelectable:x,width:C,height:E,connectionMode:k,nodeInternals:S,onError:I}=lo(ms,de),_=us(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:E,className:"react-flow__edges react-flow__container"},y&&t.createElement(hs,{defaultColor:e,rfId:o}),t.createElement("g",null,r.map((e=>{const[n,r,y]=ls(S.get(e.source)),[C,E,_]=ls(S.get(e.target));if(!y||!_)return null;let A=e.type||"default";i[A]||(I?.("011",io(A)),A="default");const N=i[A]||i.default,O=k===Fo.Strict?E.target:(E.target??[]).concat(E.source??[]),R=ss(r.source,e.sourceHandle),T=ss(O,e.targetHandle),M=R?.position||Ho.Bottom,P=T?.position||Ho.Top,D=!!(e.focusable||v&&void 0===e.focusable),B=e.reconnectable||e.updatable,j=void 0!==f&&(B||w&&void 0===B);if(!R||!T)return I?.("008",ro(R,e)),null;const{sourceX:F,sourceY:L,targetX:V,targetY:z}=((e,t,n,r,o,i)=>{const a=as(n,e,t),s=as(i,r,o);return{sourceX:a.x,sourceY:a.y,targetX:s.x,targetY:s.y}})(n,R,M,C,T,P);return t.createElement(N,{key:e.id,id:e.id,className:ie([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:L,targetX:V,targetY:z,sourcePosition:M,targetPosition:P,elementsSelectable:x,onContextMenu:s,onMouseEnter:l,onMouseMove:c,onMouseLeave:u,onClick:d,onEdgeDoubleClick:p,onReconnect:f,onReconnectStart:h,onReconnectEnd:m,reconnectRadius:g,rfId:o,ariaLabel:e.ariaLabel,isFocusable:D,isReconnectable:j,pathOptions:"pathOptions"in e?e.pathOptions:void 0,interactionWidth:e.interactionWidth,disableKeyboardA11y:b})})))))),y):null};gs.displayName="EdgeRenderer";var ys=r(gs);const bs=e=>`translate(${e.transform[0]}px,${e.transform[1]}px) scale(${e.transform[2]})`;function vs({children:e}){const n=lo(bs);return t.createElement("div",{className:"react-flow__viewport react-flow__container",style:{transform:n}},e)}const ws={[Ho.Left]:Ho.Right,[Ho.Right]:Ho.Left,[Ho.Top]:Ho.Bottom,[Ho.Bottom]:Ho.Top},xs=({nodeId:e,handleType:n,style:r,type:o=zo.Bezier,CustomComponent:i,connectionStatus:a})=>{const{fromNode:s,handleId:c,toX:u,toY:d,connectionMode:p}=lo(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]),de),f=s?.[_o]?.handleBounds;let h=f?.[n];if(p===Fo.Loose&&(h=h||f?.["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?ws[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 E={sourceX:b,sourceY:v,sourcePosition:w,targetX:u,targetY:d,targetPosition:x};return o===zo.Bezier?[C]=ni(E):o===zo.Step?[C]=Jo({...E,borderRadius:0}):o===zo.SmoothStep?[C]=Jo(E):o===zo.SimpleBezier?[C]=Xo(E):C=`M${b},${v} ${u},${d}`,t.createElement("path",{d:C,fill:"none",className:"react-flow__connection-path",style:r})};xs.displayName="ConnectionLine";const Cs=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}=lo(Cs,de);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:ie(["react-flow__connection",u])},t.createElement(xs,{nodeId:i,handleType:a,style:n,type:r,CustomComponent:o,connectionStatus:u}))):null}function ks(e,t){const n=u(null),r=co();return a((()=>{if("development"===process.env.NODE_ENV){const t=Object.keys(e);de(n.current,t)&&r.getState().onError?.("002",Kr()),n.current=t}return t(e)}),[e])}const Ss=({nodeTypes:e,edgeTypes:n,onMove:r,onMoveStart:o,onMoveEnd:i,onInit:a,onNodeClick:l,onEdgeClick:c,onNodeDoubleClick:d,onEdgeDoubleClick:p,onNodeMouseEnter:f,onNodeMouseMove:h,onNodeMouseLeave:m,onNodeContextMenu:g,onSelectionContextMenu:y,onSelectionStart:b,onSelectionEnd:v,connectionLineType:w,connectionLineStyle:x,connectionLineComponent:C,connectionLineContainerStyle:E,selectionKeyCode:k,selectionOnDrag:S,selectionMode:I,multiSelectionKeyCode:_,panActivationKeyCode:A,zoomActivationKeyCode:N,deleteKeyCode:O,onlyRenderVisibleElements:R,elementsSelectable:T,selectNodesOnDrag:M,defaultViewport:P,translateExtent:D,minZoom:B,maxZoom:j,preventScrolling:F,defaultMarkerColor:L,zoomOnScroll:V,zoomOnPinch:z,panOnScroll:G,panOnScrollSpeed:H,panOnScrollMode:W,zoomOnDoubleClick:X,panOnDrag:Z,onPaneClick:$,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:pe,nodeExtent:fe,rfId:he})=>{const me=ks(e,Ua),ge=ks(n,is);return function(e){const t=da(),n=u(!1);s((()=>{!n.current&&t.viewportInitialized&&e&&(setTimeout((()=>e(t)),1),n.current=!0)}),[e,t.viewportInitialized])}(a),t.createElement(Ya,{onPaneClick:$,onPaneMouseEnter:Y,onPaneMouseMove:U,onPaneMouseLeave:J,onPaneContextMenu:Q,onPaneScroll:K,deleteKeyCode:O,selectionKeyCode:k,selectionOnDrag:S,selectionMode:I,onSelectionStart:b,onSelectionEnd:v,multiSelectionKeyCode:_,panActivationKeyCode:A,zoomActivationKeyCode:N,elementsSelectable:T,onMove:r,onMoveStart:o,onMoveEnd:i,zoomOnScroll:V,zoomOnPinch:z,zoomOnDoubleClick:X,panOnScroll:G,panOnScrollSpeed:H,panOnScrollMode:W,panOnDrag:Z,defaultViewport:P,translateExtent:D,minZoom:B,maxZoom:j,onSelectionContextMenu:y,preventScrolling:F,noDragClassName:se,noWheelClassName:le,noPanClassName:ce,disableKeyboardA11y:de},t.createElement(vs,null,t.createElement(ys,{edgeTypes:ge,onEdgeClick:c,onEdgeDoubleClick:p,onlyRenderVisibleElements:R,onEdgeContextMenu:q,onEdgeMouseEnter:ee,onEdgeMouseMove:te,onEdgeMouseLeave:ne,onReconnect:re,onReconnectStart:oe,onReconnectEnd:ie,reconnectRadius:ae,defaultMarkerColor:L,noPanClassName:ce,elevateEdgesOnSelect:!!ue,disableKeyboardA11y:de,rfId:he},t.createElement(Es,{style:x,type:w,component:C,containerStyle:E})),t.createElement("div",{className:"react-flow__edgelabel-renderer"}),t.createElement(Qa,{nodeTypes:me,onNodeClick:l,onNodeDoubleClick:d,onNodeMouseEnter:f,onNodeMouseMove:h,onNodeMouseLeave:m,onNodeContextMenu:g,selectNodesOnDrag:M,onlyRenderVisibleElements:R,noPanClassName:ce,noDragClassName:se,disableKeyboardA11y:de,nodeOrigin:pe,nodeExtent:fe,rfId:he})))};Ss.displayName="GraphView";var Is=r(Ss);const _s=[[Number.NEGATIVE_INFINITY,Number.NEGATIVE_INFINITY],[Number.POSITIVE_INFINITY,Number.POSITIVE_INFINITY]],As={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:_s,nodeExtent:_s,nodesSelectionActive:!1,userSelectionActive:!1,userSelectionRect:null,connectionNodeId:null,connectionHandleId:null,connectionHandleType:"source",connectionPosition:{x:0,y:0},connectionStatus:null,connectionMode:Fo.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:No,isValidConnection:void 0},Ns=()=>((e,t)=>e?ue(e,t):ue)(((e,t)=>({...As,setNodes:n=>{const{nodeInternals:r,nodeOrigin:o,elevateNodesOnSelect:i}=t();e({nodeInternals:ra(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?ra(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:p}=new window.DOMMatrixReadOnly(d.transform),f=n.reduce(((e,t)=>{const n=o.get(t.id);if(n?.hidden)o.set(n.id,{...n,[_o]:{...n[_o],handleBounds:void 0}});else if(n){const r=mo(t.nodeElement);!(!r.width||!r.height||n.width===r.width&&n.height===r.height&&!t.forceUpdate)&&(o.set(n.id,{...n,[_o]:{...n[_o],handleBounds:{source:Ba(".source",t.nodeElement,p,c),target:Ba(".target",t.nodeElement,p,c)}},...r}),e.push({id:n.id,type:"dimensions",dimensions:r}))}return e}),[]);na(o,c);const h=a||i&&!a&&oa(t,{initial:!0,...s});e({nodeInternals:new Map(o),fitViewOnInitDone:h}),f?.length>0&&r?.(f)},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=ra(ka(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=>Ia(e,!0))):(a=_a(i(),n),s=_a(o,[])),sa({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=>Ia(e,!0))):(a=_a(o,n),s=_a(i(),[])),sa({changedNodes:s,changedEdges:a,get:t,set:e})},unselectNodesAndEdges:({nodes:n,edges:r}={})=>{const{edges:o,getNodes:i}=t(),a=r||o;sa({changedNodes:(n||i()).map((e=>(e.selected=!1,Ia(e.id,!1)))),changedEdges:a.map((e=>Ia(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();sa({changedNodes:r().filter((e=>e.selected)).map((e=>Ia(e.id,!1))),changedEdges:n.filter((e=>e.selected)).map((e=>Ia(e.id,!1))),get:t,set:e})},setNodeExtent:n=>{const{nodeInternals:r}=t();r.forEach((e=>{e.positionAbsolute=yo(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=Lr.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:As.connectionNodeId,connectionHandleId:As.connectionHandleId,connectionHandleType:As.connectionHandleType,connectionStatus:As.connectionStatus,connectionStartHandle:As.connectionStartHandle,connectionEndHandle:As.connectionEndHandle}),reset:()=>e({...As})})),Object.is),Os=({children:e})=>{const n=u(null);return n.current||(n.current=Ns()),t.createElement(Jr,{value:n.current},e)};Os.displayName="ReactFlowProvider";const Rs=({children:e})=>o(Ur)?t.createElement(t.Fragment,null,e):t.createElement(Os,null,e);Rs.displayName="ReactFlowWrapper";const Ts={input:Ri,default:Ni,output:Mi,group:Pi},Ms={default:ri,straight:qo,step:Qo,smoothstep:Ko,simplebezier:Zo},Ps=[0,0],Ds=[15,15],Bs={x:0,y:0,zoom:1},js={width:"100%",height:"100%",overflow:"hidden",position:"relative",zIndex:0},Fs=n((({nodes:e,edges:n,defaultNodes:r,defaultEdges:o,className:i,nodeTypes:a=Ts,edgeTypes:s=Ms,onNodeClick:l,onEdgeClick:c,onInit:u,onMove:d,onMoveStart:p,onMoveEnd:f,onConnect:h,onConnectStart:m,onConnectEnd:g,onClickConnectStart:y,onClickConnectEnd:b,onNodeMouseEnter:v,onNodeMouseMove:w,onNodeMouseLeave:x,onNodeContextMenu:C,onNodeDoubleClick:E,onNodeDragStart:k,onNodeDrag:S,onNodeDragStop:I,onNodesDelete:_,onEdgesDelete:A,onSelectionChange:N,onSelectionDragStart:O,onSelectionDrag:R,onSelectionDragStop:T,onSelectionContextMenu:M,onSelectionStart:P,onSelectionEnd:D,connectionMode:B=Fo.Strict,connectionLineType:j=zo.Bezier,connectionLineStyle:F,connectionLineComponent:L,connectionLineContainerStyle:V,deleteKeyCode:z="Backspace",selectionKeyCode:G="Shift",selectionOnDrag:H=!1,selectionMode:W=Vo.Full,panActivationKeyCode:X="Space",multiSelectionKeyCode:Z=(Mo()?"Meta":"Control"),zoomActivationKeyCode:$=(Mo()?"Meta":"Control"),snapToGrid:Y=!1,snapGrid:U=Ds,onlyRenderVisibleElements:J=!1,selectNodesOnDrag:K=!0,nodesDraggable:Q,nodesConnectable:q,nodesFocusable:ee,nodeOrigin:te=Ps,edgesFocusable:ne,edgesUpdatable:re,elementsSelectable:oe,defaultViewport:ae=Bs,minZoom:se=.5,maxZoom:le=2,translateExtent:ce=_s,preventScrolling:ue=!0,nodeExtent:de,defaultMarkerColor:pe="#b1b1b7",zoomOnScroll:fe=!0,zoomOnPinch:he=!0,panOnScroll:me=!1,panOnScrollSpeed:ge=.5,panOnScrollMode:ye=Lo.Free,zoomOnDoubleClick:be=!0,panOnDrag:ve=!0,onPaneClick:we,onPaneMouseEnter:xe,onPaneMouseMove:Ce,onPaneMouseLeave:Ee,onPaneScroll:ke,onPaneContextMenu:Se,children:Ie,onEdgeContextMenu:_e,onEdgeDoubleClick:Ae,onEdgeMouseEnter:Ne,onEdgeMouseMove:Oe,onEdgeMouseLeave:Re,onEdgeUpdate:Te,onEdgeUpdateStart:Me,onEdgeUpdateEnd:Pe,onReconnect:De,onReconnectStart:Be,onReconnectEnd:je,reconnectRadius:Fe=10,edgeUpdaterRadius:Le=10,onNodesChange:Ve,onEdgesChange:ze,noDragClassName:Ge="nodrag",noWheelClassName:He="nowheel",noPanClassName:We="nopan",fitView:Xe=!1,fitViewOptions:Ze,connectOnClick:$e=!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,...js},ref:ct,className:ie(["react-flow",i]),"data-testid":"rf__wrapper",id:at},t.createElement(Rs,null,t.createElement(Is,{onInit:u,onMove:d,onMoveStart:p,onMoveEnd:f,onNodeClick:l,onEdgeClick:c,onNodeMouseEnter:v,onNodeMouseMove:w,onNodeMouseLeave:x,onNodeContextMenu:C,onNodeDoubleClick:E,nodeTypes:a,edgeTypes:s,connectionLineType:j,connectionLineStyle:F,connectionLineComponent:L,connectionLineContainerStyle:V,selectionKeyCode:G,selectionOnDrag:H,selectionMode:W,deleteKeyCode:z,multiSelectionKeyCode:Z,panActivationKeyCode:X,zoomActivationKeyCode:$,onlyRenderVisibleElements:J,selectNodesOnDrag:K,defaultViewport:ae,translateExtent:ce,minZoom:se,maxZoom:le,preventScrolling:ue,zoomOnScroll:fe,zoomOnPinch:he,zoomOnDoubleClick:be,panOnScroll:me,panOnScrollSpeed:ge,panOnScrollMode:ye,panOnDrag:ve,onPaneClick:we,onPaneMouseEnter:xe,onPaneMouseMove:Ce,onPaneMouseLeave:Ee,onPaneScroll:ke,onPaneContextMenu:Se,onSelectionContextMenu:M,onSelectionStart:P,onSelectionEnd:D,onEdgeContextMenu:_e,onEdgeDoubleClick:Ae,onEdgeMouseEnter:Ne,onEdgeMouseMove:Oe,onEdgeMouseLeave:Re,onReconnect:De??Te,onReconnectStart:Be??Me,onReconnectEnd:je??Pe,reconnectRadius:Fe??Le,defaultMarkerColor:pe,noDragClassName:Ge,noWheelClassName:He,noPanClassName:We,elevateEdgesOnSelect:Qe,rfId:ut,disableKeyboardA11y:qe,nodeOrigin:te,nodeExtent:de}),t.createElement(Wi,{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:Ve,onEdgesChange:ze,snapToGrid:Y,snapGrid:U,connectionMode:B,translateExtent:ce,connectOnClick:$e,defaultEdgeOptions:Je,fitView:Xe,fitViewOptions:Ze,onNodesDelete:_,onEdgesDelete:A,onNodeDragStart:k,onNodeDrag:S,onNodeDragStop:I,onSelectionDrag:R,onSelectionDragStart:O,onSelectionDragStop:T,noPanClassName:We,nodeOrigin:te,rfId:ut,autoPanOnConnect:et,autoPanOnNodeDrag:tt,onError:ot,connectionRadius:nt,isValidConnection:rt,nodeDragThreshold:st}),t.createElement(Vi,{onSelectionChange:N}),Ie,t.createElement(fo,{proOptions:Ue,position:Ye}),t.createElement(Ki,{rfId:ut,disableKeyboardA11y:qe})))}));Fs.displayName="ReactFlow";const Ls=e=>e.getNodes();const Vs=e=>e.edges;const zs=({id:e,x:n,y:r,width:o,height:i,style:a,color:s,strokeColor:l,strokeWidth:c,className:u,borderRadius:d,shapeRendering:p,onClick:f,selected:h})=>{const{background:m,backgroundColor:g}=a||{},y=s||m||g;return t.createElement("rect",{className:ie(["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:p,onClick:f?t=>f(t,e):void 0})};zs.displayName="MiniMapNode";var Gs=r(zs);const Hs=e=>e.nodeOrigin,Ws=e=>e.getNodes().filter((e=>!e.hidden&&e.width&&e.height)),Xs=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=Gs,onClick:s}){const l=lo(Ws,de),c=lo(Hs),u=Xs(n),d=Xs(e),p=Xs(r),f="undefined"==typeof window||window.chrome?"crispEdges":"geometricPrecision";return t.createElement(t.Fragment,null,l.map((e=>{const{x:n,y:r}=ui(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:p(e),color:u(e),borderRadius:o,strokeColor:d(e),strokeWidth:i,shapeRendering:f,onClick:s,id:e.id})})))}));const $s=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=di(t,e.nodeOrigin),o=n,Eo(xo(Co(r),Co(o)))):n,rfId:e.rfId};var r,o};function Ys({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:p="none",maskStrokeWidth:f=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 E=co(),k=u(null),{boundingRect:S,viewBB:I,rfId:_}=lo($s,de),A=e?.width??200,N=e?.height??150,O=S.width/A,R=S.height/N,T=Math.max(O,R),M=T*A,P=T*N,D=C*T,B=S.x-(M-S.width)/2-D,j=S.y-(P-S.height)/2-D,F=M+2*D,L=P+2*D,V=`react-flow__minimap-desc-${_}`,z=u(0);z.current=T,s((()=>{if(k.current){const e=Nt(k.current),t=e=>{const{transform:t,d3Selection:n,d3Zoom:r}=E.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}=E.getState();if("mousemove"!==e.sourceEvent.type||!n||!r)return;const s=z.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=Lr.translate(l.x,l.y).scale(t[2]),d=r.constrain()(u,c,o);r.transform(n,d)},r=Yr().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=Ot(e);m(e,{x:t[0],y:t[1]})}:void 0,H=g?(e,t)=>{const n=E.getState().nodeInternals.get(t);g(e,n)}:void 0;return t.createElement(po,{position:h,style:e,className:ie(["react-flow__minimap",n]),"data-testid":"rf__minimap"},t.createElement("svg",{width:A,height:N,viewBox:`${B} ${j} ${F} ${L}`,role:"img","aria-labelledby":V,ref:k,onClick:G},v&&t.createElement("title",{id:V},v),t.createElement(Zs,{onClick:H,nodeColor:o,nodeStrokeColor:r,nodeBorderRadius:a,nodeClassName:i,nodeStrokeWidth:l,nodeComponent:c}),t.createElement("path",{className:"react-flow__minimap-mask",d:`M${B-D},${j-D}h${F+2*D}v${L+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:p,strokeWidth:f,pointerEvents:"none"})))}Ys.displayName="MiniMap";var Us,Js=r(Ys);function Ks({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"}(Us||(Us={}));const qs={[Us.Dots]:"#91919a",[Us.Lines]:"#eee",[Us.Cross]:"#e2e2e2"},el={[Us.Dots]:1,[Us.Lines]:1,[Us.Cross]:6},tl=e=>({transform:e.transform,patternId:`pattern-${e.rfId}`});function nl({id:e,variant:n=Us.Dots,gap:r=20,size:o,lineWidth:i=1,offset:a=2,color:s,style:l,className:c}){const d=u(null),{transform:p,patternId:f}=lo(tl,de),h=s||qs[n],m=o||el[n],g=n===Us.Dots,y=n===Us.Cross,b=Array.isArray(r)?r:[r,r],v=[b[0]*p[2]||1,b[1]*p[2]||1],w=m*p[2],x=y?[w,w]:v,C=g?[w/a,w/a]:[x[0]/a,x[1]/a];return t.createElement("svg",{className:ie(["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:f+e,x:p[0]%v[0],y:p[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(Ks,{dimensions:x,color:h,lineWidth:i})),t.createElement("rect",{x:"0",y:"0",width:"100%",height:"100%",fill:`url(#${f+e})`}))}nl.displayName="Background";var rl=r(nl);const ol=({src_nid:e,src_ioid:t,trg_nid:n,trg_ioid:r})=>[`${e}:${t}`,`${n}:${r}`].sort().join("--"),il=0,al=10,sl=20,ll=30,cl=al,ul=e=>"string"==typeof e?e:e===il?"DEBUG":e===al?"INFO":e===sl?"WARN":e===ll?"ERROR":"UNKNOWN";class dl{constructor(e,t=al){this.name=e,this.level=(e=>{if("number"==typeof e)return e;const t=e.toLowerCase();if("debug"===t)return il;if("info"===t)return al;if("warn"===t||"warning"===t)return sl;if("error"===t)return ll;throw new Error(`Unknown log level: ${e}`)})(t),this._level_name=ul(t)}set_level(e){this.level=e,this._level_name=ul(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<=il&&console.debug(this._fomat_message(e,...t))}info(e,...t){this.level<=al&&console.info(this._fomat_message(e,...t))}warn(e,...t){this.level<=sl&&console.warn(this._fomat_message(e,...t))}error(e,...t){this.level<=ll&&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),fl=(e,t,n)=>{if(((e,t)=>{const n=e.frontend||{};if(n.size||(n.size=[200,100]),!n.pos||2!==n.pos.length||isNaN(n.pos[0])||null===n.pos[0]||isNaN(n.pos[1])||null===n.pos[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.pos=[i.x-n.size[0]/2,i.y-n.size[1]/2]}else n.pos=[0,0];n.collapsed||(n.collapsed=!1),e.frontend=n})(e,n),void 0===(e=re(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.frontend.pos[0],y:e.frontend.pos[1]},data:{UseNodeStore:t},type:"default",...e}},hl=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)=>re(oe(e)))))(e.node),i.nodesstates.set(e.node.id,n)}catch(e){return}const r=n.getState();s.logger.info("Add node",r.id,r.name);const a=[...t.nodes,fl(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})}}},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;oe(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)}}fl(r,t,s),s.logger.debug("update_action",r),t.setState(re(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:ka(n,t().nodes)}),r(n)},onEdgesChange:n=>{e({edges:Sa(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:{frontend:{pos:[t.position.x,t.position.y]}},from_remote:!1});break;case"dimensions":t.dimensions&&r({type:"update",id:t.id,node:{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:{expand_node_props:!1},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:[]}))),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=ol(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=ol(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()},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 dl("fn",cl)};return s};function ml(e,t){return function(){return e.apply(t,arguments)}}const{toString:gl}=Object.prototype,{getPrototypeOf:yl}=Object,bl=(e=>t=>{const n=gl.call(t);return e[n]||(e[n]=n.slice(8,-1).toLowerCase())})(Object.create(null)),vl=e=>(e=e.toLowerCase(),t=>bl(t)===e),wl=e=>t=>typeof t===e,{isArray:xl}=Array,Cl=wl("undefined");const El=vl("ArrayBuffer");const kl=wl("string"),Sl=wl("function"),Il=wl("number"),_l=e=>null!==e&&"object"==typeof e,Al=e=>{if("object"!==bl(e))return!1;const t=yl(e);return!(null!==t&&t!==Object.prototype&&null!==Object.getPrototypeOf(t)||Symbol.toStringTag in e||Symbol.iterator in e)},Nl=vl("Date"),Ol=vl("File"),Rl=vl("Blob"),Tl=vl("FileList"),Ml=vl("URLSearchParams"),[Pl,Dl,Bl,jl]=["ReadableStream","Request","Response","Headers"].map(vl);function Fl(e,t,{allOwnKeys:n=!1}={}){if(null==e)return;let r,o;if("object"!=typeof e&&(e=[e]),xl(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 Ll(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,zl=e=>!Cl(e)&&e!==Vl;const Gl=(Hl="undefined"!=typeof Uint8Array&&yl(Uint8Array),e=>Hl&&e instanceof Hl);var Hl;const Wl=vl("HTMLFormElement"),Xl=(({hasOwnProperty:e})=>(t,n)=>e.call(t,n))(Object.prototype),Zl=vl("RegExp"),$l=(e,t)=>{const n=Object.getOwnPropertyDescriptors(e),r={};Fl(n,((n,o)=>{let i;!1!==(i=t(n,o,e))&&(r[o]=i||n)})),Object.defineProperties(e,r)},Yl="abcdefghijklmnopqrstuvwxyz",Ul="0123456789",Jl={DIGIT:Ul,ALPHA:Yl,ALPHA_DIGIT:Yl+Yl.toUpperCase()+Ul};const Kl=vl("AsyncFunction"),Ql=(ql="function"==typeof setImmediate,ec=Sl(Vl.postMessage),ql?setImmediate:ec?((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 ql,ec;const tc="undefined"!=typeof queueMicrotask?queueMicrotask.bind(Vl):"undefined"!=typeof process&&process.nextTick||Ql;var nc={isArray:xl,isArrayBuffer:El,isBuffer:function(e){return null!==e&&!Cl(e)&&null!==e.constructor&&!Cl(e.constructor)&&Sl(e.constructor.isBuffer)&&e.constructor.isBuffer(e)},isFormData:e=>{let t;return e&&("function"==typeof FormData&&e instanceof FormData||Sl(e.append)&&("formdata"===(t=bl(e))||"object"===t&&Sl(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:kl,isNumber:Il,isBoolean:e=>!0===e||!1===e,isObject:_l,isPlainObject:Al,isReadableStream:Pl,isRequest:Dl,isResponse:Bl,isHeaders:jl,isUndefined:Cl,isDate:Nl,isFile:Ol,isBlob:Rl,isRegExp:Zl,isFunction:Sl,isStream:e=>_l(e)&&Sl(e.pipe),isURLSearchParams:Ml,isTypedArray:Gl,isFileList:Tl,forEach:Fl,merge:function e(){const{caseless:t}=zl(this)&&this||{},n={},r=(r,o)=>{const i=t&&Ll(n,o)||o;Al(n[i])&&Al(r)?n[i]=e(n[i],r):Al(r)?n[i]=e({},r):xl(r)?n[i]=r.slice():n[i]=r};for(let e=0,t=arguments.length;e<t;e++)arguments[e]&&Fl(arguments[e],r);return n},extend:(e,t,n,{allOwnKeys:r}={})=>(Fl(t,((t,r)=>{n&&Sl(t)?e[r]=ml(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&&yl(e)}while(e&&(!n||n(e,t))&&e!==Object.prototype);return t},kindOf:bl,kindOfTest:vl,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(xl(e))return e;let t=e.length;if(!Il(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:Wl,hasOwnProperty:Xl,hasOwnProp:Xl,reduceDescriptors:$l,freezeMethods:e=>{$l(e,((t,n)=>{if(Sl(e)&&-1!==["arguments","caller","callee"].indexOf(n))return!1;const r=e[n];Sl(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 xl(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:Ll,global:Vl,isContextDefined:zl,ALPHABET:Jl,generateString:(e=16,t=Jl.ALPHA_DIGIT)=>{let n="";const{length:r}=t;for(;e--;)n+=t[Math.random()*r|0];return n},isSpecCompliantForm:function(e){return!!(e&&Sl(e.append)&&"FormData"===e[Symbol.toStringTag]&&e[Symbol.iterator])},toJSONObject:e=>{const t=new Array(10),n=(e,r)=>{if(_l(e)){if(t.indexOf(e)>=0)return;if(!("toJSON"in e)){t[r]=e;const o=xl(e)?[]:{};return Fl(e,((e,t)=>{const i=n(e,r+1);!Cl(i)&&(o[t]=i)})),t[r]=void 0,o}}return e};return n(e,0)},isAsyncFn:Kl,isThenable:e=>e&&(_l(e)||Sl(e))&&Sl(e.then)&&Sl(e.catch),setImmediate:Ql,asap:tc};function rc(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)}nc.inherits(rc,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:nc.toJSONObject(this.config),code:this.code,status:this.status}}});const oc=rc.prototype,ic={};["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=>{ic[e]={value:e}})),Object.defineProperties(rc,ic),Object.defineProperty(oc,"isAxiosError",{value:!0}),rc.from=(e,t,n,r,o,i)=>{const a=Object.create(oc);return nc.toFlatObject(e,a,(function(e){return e!==Error.prototype}),(e=>"isAxiosError"!==e)),rc.call(a,e.message,t,n,r,o),a.cause=e,a.name=e.name,i&&Object.assign(a,i),a};function ac(e){return nc.isPlainObject(e)||nc.isArray(e)}function sc(e){return nc.endsWith(e,"[]")?e.slice(0,-2):e}function lc(e,t,n){return e?e.concat(t).map((function(e,t){return e=sc(e),!n&&t?"["+e+"]":e})).join(n?".":""):t}const cc=nc.toFlatObject(nc,{},null,(function(e){return/^is[A-Z]/.test(e)}));function uc(e,t,n){if(!nc.isObject(e))throw new TypeError("target must be an object");t=t||new FormData;const r=(n=nc.toFlatObject(n,{metaTokens:!0,dots:!1,indexes:!1},!1,(function(e,t){return!nc.isUndefined(t[e])}))).metaTokens,o=n.visitor||c,i=n.dots,a=n.indexes,s=(n.Blob||"undefined"!=typeof Blob&&Blob)&&nc.isSpecCompliantForm(t);if(!nc.isFunction(o))throw new TypeError("visitor must be a function");function l(e){if(null===e)return"";if(nc.isDate(e))return e.toISOString();if(!s&&nc.isBlob(e))throw new rc("Blob is not supported. Use a Buffer instead.");return nc.isArrayBuffer(e)||nc.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(nc.endsWith(n,"{}"))n=r?n:n.slice(0,-2),e=JSON.stringify(e);else if(nc.isArray(e)&&function(e){return nc.isArray(e)&&!e.some(ac)}(e)||(nc.isFileList(e)||nc.endsWith(n,"[]"))&&(s=nc.toArray(e)))return n=sc(n),s.forEach((function(e,r){!nc.isUndefined(e)&&null!==e&&t.append(!0===a?lc([n],r,i):null===a?n:n+"[]",l(e))})),!1;return!!ac(e)||(t.append(lc(o,n,i),l(e)),!1)}const u=[],d=Object.assign(cc,{defaultVisitor:c,convertValue:l,isVisitable:ac});if(!nc.isObject(e))throw new TypeError("data must be an object");return function e(n,r){if(!nc.isUndefined(n)){if(-1!==u.indexOf(n))throw Error("Circular reference detected in "+r.join("."));u.push(n),nc.forEach(n,(function(n,i){!0===(!(nc.isUndefined(n)||null===n)&&o.call(t,n,nc.isString(i)?i.trim():i,r,d))&&e(n,r?r.concat(i):[i])})),u.pop()}}(e),t}function dc(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&&uc(e,this,t)}const fc=pc.prototype;function hc(e){return encodeURIComponent(e).replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%20/g,"+").replace(/%5B/gi,"[").replace(/%5D/gi,"]")}function mc(e,t,n){if(!t)return e;const r=n&&n.encode||hc;nc.isFunction(n)&&(n={serialize:n});const o=n&&n.serialize;let i;if(i=o?o(t,n):nc.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}fc.append=function(e,t){this._pairs.push([e,t])},fc.toString=function(e){const t=e?function(t){return e.call(this,t,dc)}:dc;return this._pairs.map((function(e){return t(e[0])+"="+t(e[1])}),"").join("&")};class gc{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){nc.forEach(this.handlers,(function(t){null!==t&&e(t)}))}}var yc={silentJSONParsing:!0,forcedJSONParsing:!0,clarifyTimeoutError:!1},bc={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 vc="undefined"!=typeof window&&"undefined"!=typeof document,wc="object"==typeof navigator&&navigator||void 0,xc=vc&&(!wc||["ReactNative","NativeScript","NS"].indexOf(wc.product)<0),Cc="undefined"!=typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope&&"function"==typeof self.importScripts,Ec=vc&&window.location.href||"http://localhost";var kc={...Object.freeze({__proto__:null,hasBrowserEnv:vc,hasStandardBrowserEnv:xc,hasStandardBrowserWebWorkerEnv:Cc,navigator:wc,origin:Ec}),...bc};function Sc(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&&nc.isArray(r)?r.length:i,s)return nc.hasOwnProp(r,i)?r[i]=[r[i],n]:r[i]=n,!a;r[i]&&nc.isObject(r[i])||(r[i]=[]);return t(e,n,r[i],o)&&nc.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(nc.isFormData(e)&&nc.isFunction(e.entries)){const n={};return nc.forEachEntry(e,((e,r)=>{t(function(e){return nc.matchAll(/\w+|\[(\w*)]/g,e).map((e=>"[]"===e[0]?"":e[1]||e[0]))}(e),r,n,0)})),n}return null}const Ic={transitional:yc,adapter:["xhr","http","fetch"],transformRequest:[function(e,t){const n=t.getContentType()||"",r=n.indexOf("application/json")>-1,o=nc.isObject(e);o&&nc.isHTMLForm(e)&&(e=new FormData(e));if(nc.isFormData(e))return r?JSON.stringify(Sc(e)):e;if(nc.isArrayBuffer(e)||nc.isBuffer(e)||nc.isStream(e)||nc.isFile(e)||nc.isBlob(e)||nc.isReadableStream(e))return e;if(nc.isArrayBufferView(e))return e.buffer;if(nc.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 uc(e,new kc.classes.URLSearchParams,Object.assign({visitor:function(e,t,n,r){return kc.isNode&&nc.isBuffer(e)?(this.append(t,e.toString("base64")),!1):r.defaultVisitor.apply(this,arguments)}},t))}(e,this.formSerializer).toString();if((i=nc.isFileList(e))||n.indexOf("multipart/form-data")>-1){const t=this.env&&this.env.FormData;return uc(i?{"files[]":e}:e,t&&new t,this.formSerializer)}}return o||r?(t.setContentType("application/json",!1),function(e,t,n){if(nc.isString(e))try{return(t||JSON.parse)(e),nc.trim(e)}catch(e){if("SyntaxError"!==e.name)throw e}return(n||JSON.stringify)(e)}(e)):e}],transformResponse:[function(e){const t=this.transitional||Ic.transitional,n=t&&t.forcedJSONParsing,r="json"===this.responseType;if(nc.isResponse(e)||nc.isReadableStream(e))return e;if(e&&nc.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 rc.from(e,rc.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:kc.classes.FormData,Blob:kc.classes.Blob},validateStatus:function(e){return e>=200&&e<300},headers:{common:{Accept:"application/json, text/plain, */*","Content-Type":void 0}}};nc.forEach(["delete","get","head","post","put","patch"],(e=>{Ic.headers[e]={}}));const _c=nc.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 Ac=Symbol("internals");function Nc(e){return e&&String(e).trim().toLowerCase()}function Oc(e){return!1===e||null==e?e:nc.isArray(e)?e.map(Oc):String(e)}function Rc(e,t,n,r,o){return nc.isFunction(r)?r.call(this,t,n):(o&&(t=n),nc.isString(t)?nc.isString(r)?-1!==t.indexOf(r):nc.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=Nc(t);if(!o)throw new Error("header name must be a non-empty string");const i=nc.findKey(r,o);(!i||void 0===r[i]||!0===n||void 0===n&&!1!==r[i])&&(r[i||t]=Oc(e))}const i=(e,t)=>nc.forEach(e,((e,n)=>o(e,n,t)));if(nc.isPlainObject(e)||e instanceof this.constructor)i(e,t);else if(nc.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]&&_c[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(nc.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=Nc(e)){const n=nc.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(nc.isFunction(t))return t.call(this,e,n);if(nc.isRegExp(t))return t.exec(e);throw new TypeError("parser must be boolean|regexp|function")}}}has(e,t){if(e=Nc(e)){const n=nc.findKey(this,e);return!(!n||void 0===this[n]||t&&!Rc(0,this[n],n,t))}return!1}delete(e,t){const n=this;let r=!1;function o(e){if(e=Nc(e)){const o=nc.findKey(n,e);!o||t&&!Rc(0,n[o],o,t)||(delete n[o],r=!0)}}return nc.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&&!Rc(0,this[o],o,e,!0)||(delete this[o],r=!0)}return r}normalize(e){const t=this,n={};return nc.forEach(this,((r,o)=>{const i=nc.findKey(n,o);if(i)return t[i]=Oc(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]=Oc(r),n[a]=!0})),this}concat(...e){return this.constructor.concat(this,...e)}toJSON(e){const t=Object.create(null);return nc.forEach(this,((n,r)=>{null!=n&&!1!==n&&(t[r]=e&&nc.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[Ac]=this[Ac]={accessors:{}}).accessors,n=this.prototype;function r(e){const r=Nc(e);t[r]||(!function(e,t){const n=nc.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 nc.isArray(e)?e.forEach(r):r(e),this}};function Mc(e,t){const n=this||Ic,r=t||n,o=Tc.from(r.headers);let i=r.data;return nc.forEach(e,(function(e){i=e.call(n,i,o.normalize(),t?t.status:void 0)})),o.normalize(),i}function Pc(e){return!(!e||!e.__CANCEL__)}function Dc(e,t,n){rc.call(this,null==e?"canceled":e,rc.ERR_CANCELED,t,n),this.name="CanceledError"}function Bc(e,t,n){const r=n.config.validateStatus;n.status&&r&&!r(n.status)?t(new rc("Request failed with status code "+n.status,[rc.ERR_BAD_REQUEST,rc.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"]),nc.reduceDescriptors(Tc.prototype,(({value:e},t)=>{let n=t[0].toUpperCase()+t.slice(1);return{get:()=>e,set(e){this[n]=e}}})),nc.freezeMethods(Tc),nc.inherits(Dc,rc,{__CANCEL__:!0});const jc=(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 p=c&&l-c;return p?Math.round(1e3*d/p):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)},Fc=(e,t)=>{const n=null!=e;return[r=>t[0]({lengthComputable:n,total:e,loaded:r}),t[1]]},Lc=e=>(...t)=>nc.asap((()=>e(...t)));var Vc=kc.hasStandardBrowserEnv?((e,t)=>n=>(n=new URL(n,kc.origin),e.protocol===n.protocol&&e.host===n.host&&(t||e.port===n.port)))(new URL(kc.origin),kc.navigator&&/(msie|trident)/i.test(kc.navigator.userAgent)):()=>!0,zc=kc.hasStandardBrowserEnv?{write(e,t,n,r,o,i){const a=[e+"="+encodeURIComponent(t)];nc.isNumber(n)&&a.push("expires="+new Date(n).toGMTString()),nc.isString(r)&&a.push("path="+r),nc.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 Gc(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 Wc(e,t){t=t||{};const n={};function r(e,t,n,r){return nc.isPlainObject(e)&&nc.isPlainObject(t)?nc.merge.call({caseless:r},e,t):nc.isPlainObject(t)?nc.merge({},t):nc.isArray(t)?t.slice():t}function o(e,t,n,o){return nc.isUndefined(t)?nc.isUndefined(e)?void 0:r(void 0,e,0,o):r(e,t,0,o)}function i(e,t){if(!nc.isUndefined(t))return r(void 0,t)}function a(e,t){return nc.isUndefined(t)?nc.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 nc.forEach(Object.keys(Object.assign({},e,t)),(function(r){const i=l[r]||o,a=i(e[r],t[r],r);nc.isUndefined(a)&&i!==s||(n[r]=a)})),n}var Xc=e=>{const t=Wc({},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=mc(Gc(t.baseURL,t.url),e.params,e.paramsSerializer),l&&s.set("Authorization","Basic "+btoa((l.username||"")+":"+(l.password?unescape(encodeURIComponent(l.password)):""))),nc.isFormData(r))if(kc.hasStandardBrowserEnv||kc.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(kc.hasStandardBrowserEnv&&(o&&nc.isFunction(o)&&(o=o(t)),o||!1!==o&&Vc(t.url))){const e=i&&a&&zc.read(a);e&&s.set(i,e)}return t};var Zc="undefined"!=typeof XMLHttpRequest&&function(e){return new Promise((function(t,n){const r=Xc(e);let o=r.data;const i=Tc.from(r.headers).normalize();let a,s,l,c,u,{responseType:d,onUploadProgress:p,onDownloadProgress:f}=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());Bc((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 rc("Request aborted",rc.ECONNABORTED,e,m)),m=null)},m.onerror=function(){n(new rc("Network Error",rc.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||yc;r.timeoutErrorMessage&&(t=r.timeoutErrorMessage),n(new rc(t,o.clarifyTimeoutError?rc.ETIMEDOUT:rc.ECONNABORTED,e,m)),m=null},void 0===o&&i.setContentType(null),"setRequestHeader"in m&&nc.forEach(i.toJSON(),(function(e,t){m.setRequestHeader(t,e)})),nc.isUndefined(r.withCredentials)||(m.withCredentials=!!r.withCredentials),d&&"json"!==d&&(m.responseType=r.responseType),f&&([l,u]=jc(f,!0),m.addEventListener("progress",l)),p&&m.upload&&([s,c]=jc(p),m.upload.addEventListener("progress",s),m.upload.addEventListener("loadend",c)),(r.cancelToken||r.signal)&&(a=t=>{m&&(n(!t||t.type?new Dc(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===kc.protocols.indexOf(y)?n(new rc("Unsupported protocol "+y+":",rc.ERR_BAD_REQUEST,e)):m.send(o||null)}))};const $c=(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 rc?t:new Dc(t instanceof Error?t.message:t))}};let i=t&&setTimeout((()=>{i=null,o(new rc(`timeout ${t} of ms exceeded`,rc.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=()=>nc.asap(a),s}},Yc=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},Uc=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()}},Jc=(e,t,n,r)=>{const o=async function*(e,t){for await(const n of Uc(e))yield*Yc(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})},Kc="function"==typeof fetch&&"function"==typeof Request&&"function"==typeof Response,Qc=Kc&&"function"==typeof ReadableStream,qc=Kc&&("function"==typeof TextEncoder?(eu=new TextEncoder,e=>eu.encode(e)):async e=>new Uint8Array(await new Response(e).arrayBuffer()));var eu;const tu=(e,...t)=>{try{return!!e(...t)}catch(e){return!1}},nu=Qc&&tu((()=>{let e=!1;const t=new Request(kc.origin,{body:new ReadableStream,method:"POST",get duplex(){return e=!0,"half"}}).headers.has("Content-Type");return e&&!t})),ru=Qc&&tu((()=>nc.isReadableStream(new Response("").body))),ou={stream:ru&&(e=>e.body)};var iu;Kc&&(iu=new Response,["text","arrayBuffer","blob","formData","stream"].forEach((e=>{!ou[e]&&(ou[e]=nc.isFunction(iu[e])?t=>t[e]():(t,n)=>{throw new rc(`Response type '${e}' is not supported`,rc.ERR_NOT_SUPPORT,n)})})));const au=async(e,t)=>{const n=nc.toFiniteNumber(e.getContentLength());return null==n?(async e=>{if(null==e)return 0;if(nc.isBlob(e))return e.size;if(nc.isSpecCompliantForm(e)){const t=new Request(kc.origin,{method:"POST",body:e});return(await t.arrayBuffer()).byteLength}return nc.isArrayBufferView(e)||nc.isArrayBuffer(e)?e.byteLength:(nc.isURLSearchParams(e)&&(e+=""),nc.isString(e)?(await qc(e)).byteLength:void 0)})(t):n};var su=Kc&&(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:p}=Xc(e);c=c?(c+"").toLowerCase():"text";let f,h=$c([o,i&&i.toAbortSignal()],a);const m=h&&h.unsubscribe&&(()=>{h.unsubscribe()});let g;try{if(l&&nu&&"get"!==n&&"head"!==n&&0!==(g=await au(u,r))){let e,n=new Request(t,{method:"POST",body:r,duplex:"half"});if(nc.isFormData(r)&&(e=n.headers.get("content-type"))&&u.setContentType(e),n.body){const[e,t]=Fc(g,jc(Lc(l)));r=Jc(n.body,65536,e,t)}}nc.isString(d)||(d=d?"include":"omit");const o="credentials"in Request.prototype;f=new Request(t,{...p,signal:h,method:n.toUpperCase(),headers:u.normalize().toJSON(),body:r,duplex:"half",credentials:o?d:void 0});let i=await fetch(f);const a=ru&&("stream"===c||"response"===c);if(ru&&(s||a&&m)){const e={};["status","statusText","headers"].forEach((t=>{e[t]=i[t]}));const t=nc.toFiniteNumber(i.headers.get("content-length")),[n,r]=s&&Fc(t,jc(Lc(s),!0))||[];i=new Response(Jc(i.body,65536,n,(()=>{r&&r(),m&&m()})),e)}c=c||"text";let y=await ou[nc.findKey(ou,c)||"text"](i,e);return!a&&m&&m(),await new Promise(((t,n)=>{Bc(t,n,{data:y,headers:Tc.from(i.headers),status:i.status,statusText:i.statusText,config:e,request:f})}))}catch(t){if(m&&m(),t&&"TypeError"===t.name&&/fetch/i.test(t.message))throw Object.assign(new rc("Network Error",rc.ERR_NETWORK,e,f),{cause:t.cause||t});throw rc.from(t,t&&t.code,e,f)}});const lu={http:null,xhr:Zc,fetch:su};nc.forEach(lu,((e,t)=>{if(e){try{Object.defineProperty(e,"name",{value:t})}catch(e){}Object.defineProperty(e,"adapterName",{value:t})}}));const cu=e=>`- ${e}`,uu=e=>nc.isFunction(e)||null===e||!1===e;var du=e=>{e=nc.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,!uu(n)&&(r=lu[(t=String(n)).toLowerCase()],void 0===r))throw new rc(`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 rc("There is no suitable adapter to dispatch the request "+(t?e.length>1?"since :\n"+e.map(cu).join("\n"):" "+cu(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 Dc(null,e)}function fu(e){pu(e),e.headers=Tc.from(e.headers),e.data=Mc.call(e,e.transformRequest),-1!==["post","put","patch"].indexOf(e.method)&&e.headers.setContentType("application/x-www-form-urlencoded",!1);return du(e.adapter||Ic.adapter)(e).then((function(t){return pu(e),t.data=Mc.call(e,e.transformResponse,t),t.headers=Tc.from(t.headers),t}),(function(t){return Pc(t)||(pu(e),t&&t.response&&(t.response.data=Mc.call(e,e.transformResponse,t.response),t.response.headers=Tc.from(t.response.headers))),Promise.reject(t)}))}const hu="1.7.9",mu={};["object","boolean","number","function","string","symbol"].forEach(((e,t)=>{mu[e]=function(n){return typeof n===e||"a"+(t<1?"n ":" ")+e}}));const gu={};mu.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 rc(r(o," has been removed"+(t?" in "+t:"")),rc.ERR_DEPRECATED);return t&&!gu[o]&&(gu[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)}},mu.spelling=function(e){return(t,n)=>(console.warn(`${n} is likely a misspelling of ${e}`),!0)};var yu={assertOptions:function(e,t,n){if("object"!=typeof e)throw new rc("options must be an object",rc.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 rc("option "+i+" must be "+n,rc.ERR_BAD_OPTION_VALUE)}else if(!0!==n)throw new rc("Unknown option "+i,rc.ERR_BAD_OPTION)}},validators:mu};const bu=yu.validators;let vu=class{constructor(e){this.defaults=e,this.interceptors={request:new gc,response:new gc}}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=Wc(this.defaults,t);const{transitional:n,paramsSerializer:r,headers:o}=t;void 0!==n&&yu.assertOptions(n,{silentJSONParsing:bu.transitional(bu.boolean),forcedJSONParsing:bu.transitional(bu.boolean),clarifyTimeoutError:bu.transitional(bu.boolean)},!1),null!=r&&(nc.isFunction(r)?t.paramsSerializer={serialize:r}:yu.assertOptions(r,{encode:bu.function,serialize:bu.function},!0)),yu.assertOptions(t,{baseUrl:bu.spelling("baseURL"),withXsrfToken:bu.spelling("withXSRFToken")},!0),t.method=(t.method||this.defaults.method||"get").toLowerCase();let i=o&&nc.merge(o.common,o[t.method]);o&&nc.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=[fu.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 p=t;for(d=0;d<u;){const e=a[d++],t=a[d++];try{p=e(p)}catch(e){t.call(this,e);break}}try{c=fu.call(this,p)}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 mc(Gc((e=Wc(this.defaults,e)).baseURL,e.url),e.params,e.paramsSerializer)}};nc.forEach(["delete","get","head","options"],(function(e){vu.prototype[e]=function(t,n){return this.request(Wc(n||{},{method:e,url:t,data:(n||{}).data}))}})),nc.forEach(["post","put","patch"],(function(e){function t(t){return function(n,r,o){return this.request(Wc(o||{},{method:e,headers:t?{"Content-Type":"multipart/form-data"}:{},url:n,data:r}))}}vu.prototype[e]=t(),vu.prototype[e+"Form"]=t(!0)}));const wu={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(wu).forEach((([e,t])=>{wu[t]=e}));const xu=function e(t){const n=new vu(t),r=ml(vu.prototype.request,n);return nc.extend(r,vu.prototype,n,{allOwnKeys:!0}),nc.extend(r,n,null,{allOwnKeys:!0}),r.create=function(n){return e(Wc(t,n))},r}(Ic);xu.Axios=vu,xu.CanceledError=Dc,xu.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 Dc(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}}},xu.isCancel=Pc,xu.VERSION=hu,xu.toFormData=uc,xu.AxiosError=rc,xu.Cancel=xu.CanceledError,xu.all=function(e){return Promise.all(e)},xu.spread=function(e){return function(t){return e.apply(null,t)}},xu.isAxiosError=function(e){return nc.isObject(e)&&!0===e.isAxiosError},xu.mergeConfig=Wc,xu.AxiosHeaders=Tc,xu.formToJSON=e=>Sc(nc.isHTMLForm(e)?new FormData(e):e),xu.getAdapter=du,xu.HttpStatusCode=wu,xu.default=xu;const{Axios:Cu,AxiosError:Eu,CanceledError:ku,isCancel:Su,CancelToken:Iu,VERSION:_u,all:Au,Cancel:Nu,isAxiosError:Ou,spread:Ru,toFormData:Tu,AxiosHeaders:Mu,HttpStatusCode:Pu,formToJSON:Du,getAdapter:Bu,mergeConfig:ju}=xu;let Fu;const Lu=new Uint8Array(16);function Vu(){if(!Fu&&(Fu="undefined"!=typeof crypto&&crypto.getRandomValues&&crypto.getRandomValues.bind(crypto),!Fu))throw new Error("crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported");return Fu(Lu)}const zu=[];for(let e=0;e<256;++e)zu.push((e+256).toString(16).slice(1));var Gu={randomUUID:"undefined"!=typeof crypto&&crypto.randomUUID&&crypto.randomUUID.bind(crypto)};function Hu(e,t,n){if(Gu.randomUUID&&!e)return Gu.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 zu[e[t+0]]+zu[e[t+1]]+zu[e[t+2]]+zu[e[t+3]]+"-"+zu[e[t+4]]+zu[e[t+5]]+"-"+zu[e[t+6]]+zu[e[t+7]]+"-"+zu[e[t+8]]+zu[e[t+9]]+"-"+zu[e[t+10]]+zu[e[t+11]]+zu[e[t+12]]+zu[e[t+13]]+zu[e[t+14]]+zu[e[t+15]]}(r)}class Wu{constructor(e){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())}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=t[e];this._zustand.on_node_action({type:"update",node:{frontend: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]&&(n.frontend=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 _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();default:console.warn("Unhandled worker event",e,t)}}async receive_nodespace_event({event:e,data:t}){switch(e){case"after_set_value":if(!this._zustand)return;return this._zustand.on_node_action({type:"update",node:{id:t.node,io:{[t.io]:{value:t.result}}},id:t.node,from_remote:!0});case"after_update_value_options":if(!this._zustand)return;return this._zustand.on_node_action({type:"update",node:{id:t.node,io:{[t.io]:{value_options:t.result}}},id:t.node,from_remote:!0});case"triggerstart":if(!this._zustand)return;return this._zustand.on_node_action({type:"update",node:{id:t.node,in_trigger:!0},id:t.node,from_remote:!0});case"triggerdone":if(!this._zustand)return;return this._zustand.on_node_action({type:"update",node:{id:t.node,in_trigger:!1},id:t.node,from_remote:!0});case"node_trigger_error":if(!this._zustand)return;return this._zustand.on_node_action({type:"error",errortype:"trigger",error:t.error,id:t.node,tb:t.tb,from_remote:!0});case"node_removed":if(!this._zustand)return;return this._zustand.on_node_action({type:"delete",id:t.node,from_remote:!0});case"node_added":return this._receive_node_added(t.node);case"after_disconnect":case"after_unforward":if(!t.result)return;if(!Array.isArray(t.result))return;if(4!==t.result.length)return;if(!this._zustand)return;return this._zustand.on_edge_action({type:"delete",from_remote:!0,src_nid:t.result[0],src_ioid:t.result[1],trg_nid:t.result[2],trg_ioid:t.result[3]});case"after_connect":case"after_forward":if(!t.result)return;if(!Array.isArray(t.result))return;if(4!==t.result.length)return;return this._receive_edge_added(...t.result);case"after_add_shelf":case"after_remove_shelf":if(!t.result)return;if(!this._zustand)return;return this._zustand.lib.libstate.getState().set({lib:t.result});case"progress":if(!this._zustand)return;if(t.node)return this._zustand.on_node_action({type:"update",node:{id:t.node,progress:t.info},id:t.node,from_remote:!0});console.warn("Unhandled nodepsace event",e,t);break;default:console.warn("Unhandled nodepsace event",e,t)}}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 Xu extends Wu{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 xu.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 Xu({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 $u(e,t,{checkForDefaultPrevented:n=!0}={}){return function(r){if(e?.(r),!1===n||!r.defaultPrevented)return t?.(r)}}function Yu(e,t){if("function"==typeof e)return e(t);null!=e&&(e.current=t)}function Uu(...e){return t=>{let n=!1;const r=e.map((e=>{const r=Yu(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():Yu(e[t],null)}}}}function Ju(...t){return e.useCallback(Uu(...t),t)}var Ku,Qu={exports:{}},qu={};var ed,td,nd={};
|
|
28
|
+
*/var z=(L||(L=1,"production"===process.env.NODE_ENV?N.exports=function(){if(D)return O;D=1;var e=t,n=j(),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 p={hasValue:!1,value:null};d.current=p}else p=d.current;d=s((function(){function e(e){if(!a){if(a=!0,o=e,e=c(e),void 0!==u&&p.hasValue){var t=p.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 f=o(e,d[0],d[1]);return a((function(){p.hasValue=!0,p.value=f}),[f]),l(f),f},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=j(),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;V.useSyncExternalStoreWithSelector=function(e,t,n,c,u){var d=i(null);if(null===d.current){var p={hasValue:!1,value:null};d.current=p}else p=d.current;d=s((function(){function e(e){if(!a){if(a=!0,o=e,e=c(e),void 0!==u&&p.hasValue){var t=p.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 f=o(e,d[0],d[1]);return a((function(){p.hasValue=!0,p.value=f}),[f]),l(f),f},"undefined"!=typeof __REACT_DEVTOOLS_GLOBAL_HOOK__&&"function"==typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop&&__REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop(Error())}()),V)),N.exports),G=_(z);const{useDebugValue:H}=t,{useSyncExternalStoreWithSelector:W}=G;let X=!1;const Z=e=>e;const $=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=Z,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=W(e.subscribe,e.getState,e.getServerState||e.getInitialState,t,n);return H(r),r}(t,e,n);return Object.assign(n,t),n},Y=e=>e?$(e):$;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",frontend:{pos:[NaN,NaN],size:[200,100],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=JSON.stringify(te),re=e=>{if(!e.id)throw new Error("Node must have an id");const t=JSON.parse(ne),{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},oe=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 ie(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=ie(e[r]))&&(t+=(t&&" ")+n);else for(let n in e)e[n]&&(t+=(t&&" ")+n);return t}const{useDebugValue:ae}=t,{useSyncExternalStoreWithSelector:se}=G,le=e=>e;function ce(e,t=le,n){const r=se(e.subscribe,e.getState,e.getServerState||e.getInitialState,t,n);return ae(r),r}const ue=(e,t)=>{const n=I(e),r=(e,r=t)=>ce(n,e,r);return Object.assign(r,n),r};function de(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 fe(){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 he(r)}function he(e){this._=e}function me(e,t){for(var n,r=0,o=e.length;r<o;++r)if((n=e[r]).name===t)return n.value}function ge(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}he.prototype=fe.prototype={constructor:he,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]=ge(r[n],e.name,t);else if(null==t)for(n in r)r[n]=ge(r[n],e.name,null);return this}for(;++i<a;)if((n=(e=o[i]).type)&&(n=me(r[n],e.name)))return n},copy:function(){var e={},t=this._;for(var n in t)e[n]=t[n].slice();return new he(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 ye="http://www.w3.org/1999/xhtml",be={svg:"http://www.w3.org/2000/svg",xhtml:ye,xlink:"http://www.w3.org/1999/xlink",xml:"http://www.w3.org/XML/1998/namespace",xmlns:"http://www.w3.org/2000/xmlns/"};function ve(e){var t=e+="",n=t.indexOf(":");return n>=0&&"xmlns"!==(t=e.slice(0,n))&&(e=e.slice(n+1)),be.hasOwnProperty(t)?{space:be[t],local:e}:e}function we(e){return function(){var t=this.ownerDocument,n=this.namespaceURI;return n===ye&&t.documentElement.namespaceURI===ye?t.createElement(e):t.createElementNS(n,e)}}function xe(e){return function(){return this.ownerDocument.createElementNS(e.space,e.local)}}function Ce(e){var t=ve(e);return(t.local?xe:we)(t)}function Ee(){}function ke(e){return null==e?Ee:function(){return this.querySelector(e)}}function Se(){return[]}function Ie(e){return null==e?Se:function(){return this.querySelectorAll(e)}}function _e(e){return function(){return null==(t=e.apply(this,arguments))?[]:Array.isArray(t)?t:Array.from(t);var t}}function Ae(e){return function(){return this.matches(e)}}function Ne(e){return function(t){return t.matches(e)}}var Oe=Array.prototype.find;function Re(){return this.firstElementChild}var Te=Array.prototype.filter;function Me(){return Array.from(this.children)}function Pe(e){return new Array(e.length)}function De(e,t){this.ownerDocument=e.ownerDocument,this.namespaceURI=e.namespaceURI,this._next=null,this._parent=e,this.__data__=t}function Be(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 De(e,i[s]);for(;s<l;++s)(a=t[s])&&(o[s]=a)}function je(e,t,n,r,o,i,a){var s,l,c,u=new Map,d=t.length,p=i.length,f=new Array(d);for(s=0;s<d;++s)(l=t[s])&&(f[s]=c=a.call(l,l.__data__,s,t)+"",u.has(c)?o[s]=l:u.set(c,l));for(s=0;s<p;++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 De(e,i[s]);for(s=0;s<d;++s)(l=t[s])&&u.get(f[s])===l&&(o[s]=l)}function Fe(e){return e.__data__}function Le(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 ze(e){return function(){this.removeAttribute(e)}}function Ge(e){return function(){this.removeAttributeNS(e.space,e.local)}}function He(e,t){return function(){this.setAttribute(e,t)}}function We(e,t){return function(){this.setAttributeNS(e.space,e.local,t)}}function Xe(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 $e(e){return e.ownerDocument&&e.ownerDocument.defaultView||e.document&&e||e.defaultView}function Ye(e){return function(){this.style.removeProperty(e)}}function Ue(e,t,n){return function(){this.style.setProperty(e,t,n)}}function Je(e,t,n){return function(){var r=t.apply(this,arguments);null==r?this.style.removeProperty(e):this.style.setProperty(e,r,n)}}function Ke(e,t){return e.style.getPropertyValue(t)||$e(e).getComputedStyle(e,null).getPropertyValue(t)}function Qe(e){return function(){delete this[e]}}function qe(e,t){return function(){this[e]=t}}function et(e,t){return function(){var n=t.apply(this,arguments);null==n?delete this[e]:this[e]=n}}function tt(e){return e.trim().split(/^|\s+/)}function nt(e){return e.classList||new rt(e)}function rt(e){this._node=e,this._names=tt(e.getAttribute("class")||"")}function ot(e,t){for(var n=nt(e),r=-1,o=t.length;++r<o;)n.add(t[r])}function it(e,t){for(var n=nt(e),r=-1,o=t.length;++r<o;)n.remove(t[r])}function at(e){return function(){ot(this,e)}}function st(e){return function(){it(this,e)}}function lt(e,t){return function(){(t.apply(this,arguments)?ot:it)(this,e)}}function ct(){this.textContent=""}function ut(e){return function(){this.textContent=e}}function dt(e){return function(){var t=e.apply(this,arguments);this.textContent=null==t?"":t}}function pt(){this.innerHTML=""}function ft(e){return function(){this.innerHTML=e}}function ht(e){return function(){var t=e.apply(this,arguments);this.innerHTML=null==t?"":t}}function mt(){this.nextSibling&&this.parentNode.appendChild(this)}function gt(){this.previousSibling&&this.parentNode.insertBefore(this,this.parentNode.firstChild)}function yt(){return null}function bt(){var e=this.parentNode;e&&e.removeChild(this)}function vt(){var e=this.cloneNode(!1),t=this.parentNode;return t?t.insertBefore(e,this.nextSibling):e}function wt(){var e=this.cloneNode(!0),t=this.parentNode;return t?t.insertBefore(e,this.nextSibling):e}function xt(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 Ct(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=$e(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 kt(e,t){return function(){return Et(this,e,t)}}function St(e,t){return function(){return Et(this,e,t.apply(this,arguments))}}De.prototype={constructor:De,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)}},rt.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 It=[null];function _t(e,t){this._groups=e,this._parents=t}function At(){return new _t([[document.documentElement]],It)}function Nt(e){return"string"==typeof e?new _t([[document.querySelector(e)]],[document.documentElement]):new _t([[e]],It)}function Ot(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]}_t.prototype=At.prototype={constructor:_t,select:function(e){"function"!=typeof e&&(e=ke(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 _t(r,this._parents)},selectAll:function(e){e="function"==typeof e?_e(e):Ie(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 _t(r,o)},selectChild:function(e){return this.select(null==e?Re:function(e){return function(){return Oe.call(this.children,e)}}("function"==typeof e?e:Ne(e)))},selectChildren:function(e){return this.selectAll(null==e?Me:function(e){return function(){return Te.call(this.children,e)}}("function"==typeof e?e:Ne(e)))},filter:function(e){"function"!=typeof e&&(e=Ae(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 _t(r,this._parents)},data:function(e,t){if(!arguments.length)return Array.from(this,Fe);var n,r=t?je:Be,o=this._parents,i=this._groups;"function"!=typeof e&&(n=e,e=function(){return n});for(var a=i.length,s=new Array(a),l=new Array(a),c=new Array(a),u=0;u<a;++u){var d=o[u],p=i[u],f=p.length,h=Le(e.call(d,d&&d.__data__,u,o)),m=h.length,g=l[u]=new Array(m),y=s[u]=new Array(m);r(d,p,g,y,c[u]=new Array(f),h,t);for(var b,v,w=0,x=0;w<m;++w)if(b=g[w]){for(w>=x&&(x=w+1);!(v=y[x])&&++x<m;);b._next=v||null}}return(s=new _t(s,o))._enter=l,s._exit=c,s},enter:function(){return new _t(this._enter||this._groups.map(Pe),this._parents)},exit:function(){return new _t(this._exit||this._groups.map(Pe),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],p=u.length,f=s[l]=new Array(p),h=0;h<p;++h)(c=u[h]||d[h])&&(f[h]=c);for(;l<o;++l)s[l]=n[l];return new _t(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 _t(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=ve(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?Ge:ze:"function"==typeof t?n.local?Ze:Xe:n.local?We:He)(n,t))},style:function(e,t,n){return arguments.length>1?this.each((null==t?Ye:"function"==typeof t?Je:Ue)(e,t,null==n?"":n)):Ke(this.node(),e)},property:function(e,t){return arguments.length>1?this.each((null==t?Qe:"function"==typeof t?et:qe)(e,t)):this.node()[e]},classed:function(e,t){var n=tt(e+"");if(arguments.length<2){for(var r=nt(this.node()),o=-1,i=n.length;++o<i;)if(!r.contains(n[o]))return!1;return!0}return this.each(("function"==typeof t?lt:t?at:st)(n,t))},text:function(e){return arguments.length?this.each(null==e?ct:("function"==typeof e?dt:ut)(e)):this.node().textContent},html:function(e){return arguments.length?this.each(null==e?pt:("function"==typeof e?ht:ft)(e)):this.node().innerHTML},raise:function(){return this.each(mt)},lower:function(){return this.each(gt)},append:function(e){var t="function"==typeof e?e:Ce(e);return this.select((function(){return this.appendChild(t.apply(this,arguments))}))},insert:function(e,t){var n="function"==typeof e?e:Ce(e),r=null==t?yt:"function"==typeof t?t:ke(t);return this.select((function(){return this.insertBefore(n.apply(this,arguments),r.apply(this,arguments)||null)}))},remove:function(){return this.each(bt)},clone:function(e){return this.select(e?wt:vt)},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?Ct:xt,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?St:kt)(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 Rt={passive:!1},Tt={capture:!0,passive:!1};function Mt(e){e.stopImmediatePropagation()}function Pt(e){e.preventDefault(),e.stopImmediatePropagation()}function Dt(e){var t=e.document.documentElement,n=Nt(e).on("dragstart.drag",Pt,Tt);"onselectstart"in t?n.on("selectstart.drag",Pt,Tt):(t.__noselect=t.style.MozUserSelect,t.style.MozUserSelect="none")}function Bt(e,t){var n=e.document.documentElement,r=Nt(e).on("dragstart.drag",null);t&&(r.on("click.drag",Pt,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 jt=e=>()=>e;function Ft(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 Lt(e){return!e.ctrlKey&&!e.button}function Vt(){return this.parentNode}function zt(e,t){return null==t?{x:e.x,y:e.y}:t}function Gt(){return navigator.maxTouchPoints||"ontouchstart"in this}function Ht(e,t,n){e.prototype=t.prototype=n,n.constructor=e}function Wt(e,t){var n=Object.create(e.prototype);for(var r in t)n[r]=t[r];return n}function Xt(){}Ft.prototype.on=function(){var e=this._.on.apply(this._,arguments);return e===this._?this:e};var Zt=.7,$t=1/Zt,Yt="\\s*([+-]?\\d+)\\s*",Ut="\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)\\s*",Jt="\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)%\\s*",Kt=/^#([0-9a-f]{3,8})$/,Qt=new RegExp(`^rgb\\(${Yt},${Yt},${Yt}\\)$`),qt=new RegExp(`^rgb\\(${Jt},${Jt},${Jt}\\)$`),en=new RegExp(`^rgba\\(${Yt},${Yt},${Yt},${Ut}\\)$`),tn=new RegExp(`^rgba\\(${Jt},${Jt},${Jt},${Ut}\\)$`),nn=new RegExp(`^hsl\\(${Ut},${Jt},${Jt}\\)$`),rn=new RegExp(`^hsla\\(${Ut},${Jt},${Jt},${Ut}\\)$`),on={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 an(){return this.rgb().formatHex()}function sn(){return this.rgb().formatRgb()}function ln(e){var t,n;return e=(e+"").trim().toLowerCase(),(t=Kt.exec(e))?(n=t[1].length,t=parseInt(t[1],16),6===n?cn(t):3===n?new pn(t>>8&15|t>>4&240,t>>4&15|240&t,(15&t)<<4|15&t,1):8===n?un(t>>24&255,t>>16&255,t>>8&255,(255&t)/255):4===n?un(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=qt.exec(e))?new pn(255*t[1]/100,255*t[2]/100,255*t[3]/100,1):(t=en.exec(e))?un(t[1],t[2],t[3],t[4]):(t=tn.exec(e))?un(255*t[1]/100,255*t[2]/100,255*t[3]/100,t[4]):(t=nn.exec(e))?bn(t[1],t[2]/100,t[3]/100,1):(t=rn.exec(e))?bn(t[1],t[2]/100,t[3]/100,t[4]):on.hasOwnProperty(e)?cn(on[e]):"transparent"===e?new pn(NaN,NaN,NaN,0):null}function cn(e){return new pn(e>>16&255,e>>8&255,255&e,1)}function un(e,t,n,r){return r<=0&&(e=t=n=NaN),new pn(e,t,n,r)}function dn(e,t,n,r){return 1===arguments.length?((o=e)instanceof Xt||(o=ln(o)),o?new pn((o=o.rgb()).r,o.g,o.b,o.opacity):new pn):new pn(e,t,n,null==r?1:r);var o}function pn(e,t,n,r){this.r=+e,this.g=+t,this.b=+n,this.opacity=+r}function fn(){return`#${yn(this.r)}${yn(this.g)}${yn(this.b)}`}function hn(){const e=mn(this.opacity);return`${1===e?"rgb(":"rgba("}${gn(this.r)}, ${gn(this.g)}, ${gn(this.b)}${1===e?")":`, ${e})`}`}function mn(e){return isNaN(e)?1:Math.max(0,Math.min(1,e))}function gn(e){return Math.max(0,Math.min(255,Math.round(e)||0))}function yn(e){return((e=gn(e))<16?"0":"")+e.toString(16)}function bn(e,t,n,r){return r<=0?e=t=n=NaN:n<=0||n>=1?e=t=NaN:t<=0&&(e=NaN),new wn(e,t,n,r)}function vn(e){if(e instanceof wn)return new wn(e.h,e.s,e.l,e.opacity);if(e instanceof Xt||(e=ln(e)),!e)return new wn;if(e instanceof wn)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 wn(a,s,l,e.opacity)}function wn(e,t,n,r){this.h=+e,this.s=+t,this.l=+n,this.opacity=+r}function xn(e){return(e=(e||0)%360)<0?e+360:e}function Cn(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(Xt,ln,{copy(e){return Object.assign(new this.constructor,this,e)},displayable(){return this.rgb().displayable()},hex:an,formatHex:an,formatHex8:function(){return this.rgb().formatHex8()},formatHsl:function(){return vn(this).formatHsl()},formatRgb:sn,toString:sn}),Ht(pn,dn,Wt(Xt,{brighter(e){return e=null==e?$t:Math.pow($t,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(gn(this.r),gn(this.g),gn(this.b),mn(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:fn,formatHex:fn,formatHex8:function(){return`#${yn(this.r)}${yn(this.g)}${yn(this.b)}${yn(255*(isNaN(this.opacity)?1:this.opacity))}`},formatRgb:hn,toString:hn})),Ht(wn,(function(e,t,n,r){return 1===arguments.length?vn(e):new wn(e,t,n,null==r?1:r)}),Wt(Xt,{brighter(e){return e=null==e?$t:Math.pow($t,e),new wn(this.h,this.s,this.l*e,this.opacity)},darker(e){return e=null==e?Zt:Math.pow(Zt,e),new wn(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 wn(xn(this.h),Cn(this.s),Cn(this.l),mn(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=mn(this.opacity);return`${1===e?"hsl(":"hsla("}${xn(this.h)}, ${100*Cn(this.s)}%, ${100*Cn(this.l)}%${1===e?")":`, ${e})`}`}}));var kn=e=>()=>e;function Sn(e){return 1==(e=+e)?In: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):kn(isNaN(t)?n:t)}}function In(e,t){var n=t-e;return n?function(e,t){return function(n){return e+n*t}}(e,n):kn(isNaN(e)?t:e)}var _n=function e(t){var n=Sn(t);function r(e,t){var r=n((e=dn(e)).r,(t=dn(t)).r),o=n(e.g,t.g),i=n(e.b,t.b),a=In(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 An(e,t){return e=+e,t=+t,function(n){return e*(1-n)+t*n}}var Nn=/[-+]?(?:\d+\.?\d*|\.?\d+)(?:[eE][-+]?\d+)?/g,On=new RegExp(Nn.source,"g");function Rn(e,t){var n,r,o,i=Nn.lastIndex=On.lastIndex=0,a=-1,s=[],l=[];for(e+="",t+="";(n=Nn.exec(e))&&(r=On.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:An(n,r)})),i=On.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,Mn=180/Math.PI,Pn={translateX:0,translateY:0,rotate:0,skewX:0,scaleX:1,scaleY:1};function Dn(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)*Mn,skewX:Math.atan(l)*Mn,scaleX:a,scaleY:s}}function Bn(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:An(e,o)},{i:l-2,x:An(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:An(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:An(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:An(e,n)},{i:s-2,x:An(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 jn=Bn((function(e){const t=new("function"==typeof DOMMatrix?DOMMatrix:WebKitCSSMatrix)(e+"");return t.isIdentity?Pn:Dn(t.a,t.b,t.c,t.d,t.e,t.f)}),"px, ","px)","deg)"),Fn=Bn((function(e){return null==e?Pn:(Tn||(Tn=document.createElementNS("http://www.w3.org/2000/svg","g")),Tn.setAttribute("transform",e),(e=Tn.transform.baseVal.consolidate())?Dn((e=e.matrix).a,e.b,e.c,e.d,e.e,e.f):Pn)}),", ",")",")");function Ln(e){return((e=Math.exp(e))+1/e)/2}var Vn,zn,Gn=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],p=o[2],f=u-s,h=d-l,m=f*f+h*h;if(m<1e-12)a=Math.log(p/c)/t,i=function(e){return[s+e*f,l+e*h,c*Math.exp(t*e*a)]};else{var g=Math.sqrt(m),y=(p*p-c*c+r*m)/(2*c*n*g),b=(p*p-c*c-r*m)/(2*p*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,o=e*a,i=Ln(v),u=c/(n*g)*(i*(r=t*o+v,((r=Math.exp(2*r))-1)/(r+1))-function(e){return((e=Math.exp(e))-1/e)/2}(v));return[s+u*f,l+u*h,c*i/Ln(t*o+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,Wn=0,Xn=0,Zn=0,$n=0,Yn=0,Un="object"==typeof performance&&performance.now?performance:Date,Jn="object"==typeof window&&window.requestAnimationFrame?window.requestAnimationFrame.bind(window):function(e){setTimeout(e,17)};function Kn(){return $n||(Jn(Qn),$n=Un.now()+Yn)}function Qn(){$n=0}function qn(){this._call=this._time=this._next=null}function er(e,t,n){var r=new qn;return r.restart(e,t,n),r}function tr(){$n=(Zn=Un.now())+Yn,Hn=Wn=0;try{!function(){Kn(),++Hn;for(var e,t=Vn;t;)(e=$n-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);zn=e,rr(r)}(),$n=0}}function nr(){var e=Un.now(),t=e-Zn;t>1e3&&(Yn-=t,Zn=e)}function rr(e){Hn||(Wn&&(Wn=clearTimeout(Wn)),e-$n>24?(e<1/0&&(Wn=setTimeout(tr,e-Un.now()-Yn)),Xn&&(Xn=clearInterval(Xn))):(Xn||(Zn=Un.now(),Xn=setInterval(nr,1e3)),Hn=1,Jn(tr)))}function or(e,t,n){var r=new qn;return t=null==t?0:+t,r.restart((n=>{r.stop(),e(n+t)}),t,n),r}qn.prototype=er.prototype={constructor:qn,restart:function(e,t,n){if("function"!=typeof e)throw new TypeError("callback is not a function");n=(null==n?Kn():+n)+(null==t?0:+t),this._next||zn===this||(zn?zn._next=this:Vn=this,zn=this),this._call=e,this._time=n,rr()},stop:function(){this._call&&(this._call=null,this._time=1/0,rr())}};var ir=fe("start","end","cancel","interrupt"),ar=[];function sr(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,p;if(1!==n.state)return l();for(c in o)if((p=o[c]).name===n.name){if(3===p.state)return or(a);4===p.state?(p.state=6,p.timer.stop(),p.on.call("interrupt",e,e.__data__,p.index,p.group),delete o[c]):+c<t&&(p.state=6,p.timer.stop(),p.on.call("cancel",e,e.__data__,p.index,p.group),delete o[c])}if(or((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)(p=n.tween[c].value.call(e,e.__data__,n.index,n.group))&&(r[++u]=p);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=er(i,0,n.time)}(e,n,{name:t,index:r,group:o,on:ir,tween:ar,time:i.time,delay:i.delay,duration:i.duration,ease:i.ease,timer:null,state:0})}function lr(e,t){var n=ur(e,t);if(n.state>0)throw new Error("too late; already scheduled");return n}function cr(e,t){var n=ur(e,t);if(n.state>3)throw new Error("too late; already running");return n}function ur(e,t){var n=e.__transition;if(!n||!(n=n[t]))throw new Error("transition not found");return n}function dr(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=cr(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 fr(e,t,n){var r,o;if("function"!=typeof n)throw new Error;return function(){var i=cr(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 hr(e,t,n){var r=e._id;return e.each((function(){var e=cr(this,r);(e.value||(e.value={}))[t]=n.apply(this,arguments)})),function(e){return ur(e,r).value[t]}}function mr(e,t){var n;return("number"==typeof t?An:t instanceof ln?_n:(n=ln(t))?(t=n,_n):Rn)(e,t)}function gr(e){return function(){this.removeAttribute(e)}}function yr(e){return function(){this.removeAttributeNS(e.space,e.local)}}function br(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 vr(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 wr(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 xr(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 Cr(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 kr(e,t){return function(){lr(this,e).delay=+t.apply(this,arguments)}}function Sr(e,t){return t=+t,function(){lr(this,e).delay=t}}function Ir(e,t){return function(){cr(this,e).duration=+t.apply(this,arguments)}}function _r(e,t){return t=+t,function(){cr(this,e).duration=t}}var Ar=At.prototype.constructor;function Nr(e){return function(){this.style.removeProperty(e)}}var Or=0;function Rr(e,t,n,r){this._groups=e,this._parents=t,this._name=n,this._id=r}function Tr(){return++Or}var Mr=At.prototype;Rr.prototype={constructor:Rr,select:function(e){var t=this._name,n=this._id;"function"!=typeof e&&(e=ke(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),p=0;p<u;++p)(s=c[p])&&(l=e.call(s,s.__data__,p,c))&&("__data__"in s&&(l.__data__=s.__data__),d[p]=l,sr(d[p],t,n,p,d,ur(s,n)));return new Rr(i,this._parents,t,n)},selectAll:function(e){var t=this._name,n=this._id;"function"!=typeof e&&(e=Ie(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 p,f=e.call(l,l.__data__,d,c),h=ur(l,n),m=0,g=f.length;m<g;++m)(p=f[m])&&sr(p,t,n,m,f,h);i.push(f),a.push(l)}return new Rr(i,a,t,n)},selectChild:Mr.selectChild,selectChildren:Mr.selectChildren,filter:function(e){"function"!=typeof e&&(e=Ae(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 Rr(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,p=a[s]=new Array(d),f=0;f<d;++f)(l=c[f]||u[f])&&(p[f]=l);for(;s<r;++s)a[s]=t[s];return new Rr(a,this._parents,this._name,this._id)},selection:function(){return new Ar(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=ur(a,t);sr(a,e,n,c,s,{time:u.time+u.delay+u.duration,delay:0,duration:u.duration,ease:u.ease})}return new Rr(r,this._parents,e,n)},call:Mr.call,nodes:Mr.nodes,node:Mr.node,size:Mr.size,empty:Mr.empty,each:Mr.each,on:function(e,t){var n=this._id;return arguments.length<2?ur(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)?lr:cr;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=ve(e),r="transform"===n?Fn:mr;return this.attrTween(e,"function"==typeof t?(n.local?xr:wr)(n,r,hr(this,"attr."+e,t)):null==t?(n.local?yr:gr)(n):(n.local?vr:br)(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=ve(e);return this.tween(n,(r.local?Cr:Er)(r,t))},style:function(e,t,n){var r="transform"==(e+="")?jn:mr;return null==t?this.styleTween(e,function(e,t){var n,r,o;return function(){var i=Ke(this,e),a=(this.style.removeProperty(e),Ke(this,e));return i===a?null:i===n&&a===r?o:o=t(n=i,r=a)}}(e,r)).on("end.style."+e,Nr(e)):"function"==typeof t?this.styleTween(e,function(e,t,n){var r,o,i;return function(){var a=Ke(this,e),s=n(this),l=s+"";return null==s&&(this.style.removeProperty(e),l=s=Ke(this,e)),a===l?null:a===r&&l===o?i:(o=l,i=t(r=a,s))}}(e,r,hr(this,"style."+e,t))).each(function(e,t){var n,r,o,i,a="style."+t,s="end."+a;return function(){var l=cr(this,e),c=l.on,u=null==l.value[a]?i||(i=Nr(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=Ke(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}}(hr(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=ur(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:fr)(n,e,t))},delay:function(e){var t=this._id;return arguments.length?this.each(("function"==typeof e?kr:Sr)(t,e)):ur(this.node(),t).delay},duration:function(e){var t=this._id;return arguments.length?this.each(("function"==typeof e?Ir:_r)(t,e)):ur(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(){cr(this,e).ease=t}}(t,e)):ur(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;cr(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=cr(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]:Mr[Symbol.iterator]};var Pr={time:null,delay:0,duration:250,ease:function(e){return((e*=2)<=1?e*e*e:(e-=2)*e*e+2)/2}};function Dr(e,t){for(var n;!(n=e.__transition)||!(n=n[t]);)if(!(e=e.parentNode))throw new Error(`transition ${t} not found`);return n}At.prototype.interrupt=function(e){return this.each((function(){dr(this,e)}))},At.prototype.transition=function(e){var t,n;e instanceof Rr?(t=e._id,e=e._name):(t=Tr(),(n=Pr).time=Kn(),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])&&sr(a,e,t,c,s,n||Dr(a,t));return new Rr(r,this._parents,e,t)};var Br=e=>()=>e;function jr(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 Fr(e,t,n){this.k=e,this.x=t,this.y=n}Fr.prototype={constructor:Fr,scale:function(e){return 1===e?this:new Fr(this.k*e,this.x,this.y)},translate:function(e,t){return 0===e&0===t?this:new Fr(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 Lr=new Fr(1,0,0);function Vr(e){e.stopImmediatePropagation()}function zr(e){e.preventDefault(),e.stopImmediatePropagation()}function Gr(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 Wr(){return this.__zoom||Lr}function Xr(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 $r(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 Yr(){var e,t,n,r=Gr,o=Hr,i=$r,a=Xr,s=Zr,l=[0,1/0],c=[[-1/0,-1/0],[1/0,1/0]],u=250,d=Gn,p=fe("start","zoom","end"),f=0,h=10;function m(e){e.property("__zoom",Wr).on("wheel.zoom",C,{passive:!1}).on("mousedown.zoom",E).on("dblclick.zoom",k).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 Fr(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 Fr(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,p="function"==typeof t?t.apply(e,i):t,f=d(u.invert(l).concat(c/u.k),p.invert(l).concat(c/p.k));return function(e){if(1===e)e=p;else{var t=f(e),n=c/t[2];e=new Fr(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=Ot(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)],dr(this),n.start()}zr(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 E(e,...t){if(!n&&r.apply(this,arguments)){var o=e.currentTarget,a=w(this,t,!0).event(e),s=Nt(e.view).on("mousemove.zoom",(function(e){if(zr(e),!a.moved){var t=e.clientX-u,n=e.clientY-d;a.moved=t*t+n*n>f}a.event(e).zoom("mouse",i(y(a.that.__zoom,a.mouse[0]=Ot(e,o),a.mouse[1]),a.extent,c))}),!0).on("mouseup.zoom",(function(e){s.on("mousemove.zoom mouseup.zoom",null),Bt(e.view,a.moved),zr(e),a.event(e).end()}),!0),l=Ot(e,o),u=e.clientX,d=e.clientY;Dt(e.view),Vr(e),a.mouse=[l,this.__zoom.invert(l)],dr(this),a.start()}}function k(e,...t){if(r.apply(this,arguments)){var n=this.__zoom,a=Ot(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);zr(e),u>0?Nt(this).transition().duration(u).call(v,d,a,e):Nt(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=Ot(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)),dr(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(zr(e),n=0;n<u;++n)o=Ot(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],p=s.touch0[1],f=s.touch1[0],h=s.touch1[1],m=(m=f[0]-d[0])*m+(m=f[1]-d[1])*m,b=(b=h[0]-p[0])*b+(b=h[1]-p[1])*b;r=g(r,Math.sqrt(m/b)),o=[(d[0]+f[0])/2,(d[1]+f[1])/2],a=[(p[0]+h[0])/2,(p[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=Ot(i,this),Math.hypot(t[0]-i[0],t[1]-i[1])<h)){var c=Nt(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",Wr),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(Lr.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=Nt(this.that).datum();p.call(e,this.that,new jr(e,{sourceEvent:this.sourceEvent,target:m,transform:this.that.__zoom,dispatch:p}),t)}},m.wheelDelta=function(e){return arguments.length?(a="function"==typeof e?e:Br(+e),m):a},m.filter=function(e){return arguments.length?(r="function"==typeof e?e:Br(!!e),m):r},m.touchable=function(e){return arguments.length?(s="function"==typeof e?e:Br(!!e),m):s},m.extent=function(e){return arguments.length?(o="function"==typeof e?e:Br([[+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=p.on.apply(p,arguments);return e===p?m:e},m.clickDistance=function(e){return arguments.length?(f=(e=+e)*e,m):Math.sqrt(f)},m.tapDistance=function(e){return arguments.length?(h=+e,m):h},m}Fr.prototype;const Ur=i(null),Jr=Ur.Provider,Kr=()=>"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".`,qr=()=>"The React Flow parent container needs a width and a height to render the graph.",eo=()=>"Only child nodes can use a parent extent.",to=()=>"Can't create edge. An edge needs a source and a target.",no=e=>`Marker type "${e}" doesn't exist.`,ro=(e,t)=>`Couldn't create edge for ${e?"target":"source"} handle id: "${e?t.targetHandle:t.sourceHandle}", edge id: ${t.id}.`,oo=()=>"Handle: No node id found. Make sure to only use a Handle inside a custom Node.",io=e=>`Edge type "${e}" not found. Using fallback type "default".`,ao=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.`,so=(()=>"[React Flow]: Seems like you have not used zustand provider as an ancestor. Help: https://reactflow.dev/error#001")();function lo(e,t){const n=o(Ur);if(null===n)throw new Error(so);return ce(n,e,t)}const co=()=>{const e=o(Ur);if(null===e)throw new Error(so);return a((()=>({getState:e.getState,setState:e.setState,subscribe:e.subscribe,destroy:e.destroy})),[e])},uo=e=>e.userSelectionActive?"none":"all";function po({position:e,children:n,className:r,style:o,...i}){const a=lo(uo),s=`${e}`.split("-");return t.createElement("div",{className:ie(["react-flow__panel",r,...s]),style:{...o,pointerEvents:a},...i},n)}function fo({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 ho=r((({x:e,y:n,label:r,labelStyle:o={},labelShowBg:i=!0,labelBgStyle:a={},labelBgPadding:l=[2,4],labelBgBorderRadius:d=2,children:p,className:f,...h})=>{const m=u(null),[g,y]=c({x:0,y:0,width:0,height:0}),b=ie(["react-flow__edge-textwrapper",f]);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),p):null}));const mo=e=>({width:e.offsetWidth,height:e.offsetHeight}),go=(e,t=0,n=1)=>Math.min(Math.max(e,t),n),yo=(e={x:0,y:0},t)=>({x:go(e.x,t[0][0],t[1][0]),y:go(e.y,t[0][1],t[1][1])}),bo=(e,t,n)=>e<t?go(Math.abs(e-t),1,50)/50:e>n?-go(Math.abs(e-n),1,50)/50:0,vo=(e,t)=>[20*bo(e.x,35,t.width-35),20*bo(e.y,35,t.height-35)],wo=e=>e.getRootNode?.()||window?.document,xo=(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)}),Co=({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}),ko=e=>({...e.positionAbsolute||{x:0,y:0},width:e.width||0,height:e.height||0}),So=(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)},Io=e=>!isNaN(e)&&isFinite(e),_o=Symbol.for("internals"),Ao=["Enter"," ","Escape"],No=(e,t)=>{"development"===process.env.NODE_ENV&&console.warn(`[React Flow]: ${t} Help: https://reactflow.dev/error#${e}`)};function Oo(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 Ro=e=>"clientX"in e,To=(e,t)=>{const n=Ro(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)}},Mo=()=>"undefined"!=typeof navigator&&navigator?.userAgent?.indexOf("Mac")>=0,Po=({id:e,path:n,labelX:r,labelY:o,label:i,labelStyle:a,labelShowBg:s,labelBgStyle:l,labelBgPadding:c,labelBgBorderRadius:u,style:d,markerEnd:p,markerStart:f,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:p,markerStart:f}),h&&t.createElement("path",{d:n,fill:"none",strokeOpacity:0,strokeWidth:h,className:"react-flow__edge-interaction"}),i&&Io(r)&&Io(o)?t.createElement(ho,{x:r,y:o,label:i,labelStyle:a,labelShowBg:s,labelBgStyle:l,labelBgPadding:c,labelBgBorderRadius:u}):null);function Do(e,t,n){return void 0===n?n:r=>{const o=t().edges.find((t=>t.id===e));o&&n(r,{...o})}}function Bo({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 jo({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 Fo,Lo,Vo,zo,Go,Ho;function Wo({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 Xo({sourceX:e,sourceY:t,sourcePosition:n=Ho.Bottom,targetX:r,targetY:o,targetPosition:i=Ho.Top}){const[a,s]=Wo({pos:n,x1:e,y1:t,x2:r,y2:o}),[l,c]=Wo({pos:i,x1:r,y1:o,x2:e,y2:t}),[u,d,p,f]=jo({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,p,f]}Po.displayName="BaseEdge",function(e){e.Strict="strict",e.Loose="loose"}(Fo||(Fo={})),function(e){e.Free="free",e.Vertical="vertical",e.Horizontal="horizontal"}(Lo||(Lo={})),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"}(zo||(zo={})),function(e){e.Arrow="arrow",e.ArrowClosed="arrowclosed"}(Go||(Go={})),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:p,style:f,markerEnd:h,markerStart:m,interactionWidth:g})=>{const[y,b,v]=Xo({sourceX:e,sourceY:n,sourcePosition:i,targetX:r,targetY:o,targetPosition:a});return t.createElement(Po,{path:y,labelX:b,labelY:v,label:s,labelStyle:l,labelShowBg:c,labelBgStyle:u,labelBgPadding:d,labelBgBorderRadius:p,style:f,markerEnd:h,markerStart:m,interactionWidth:g})}));Zo.displayName="SimpleBezierEdge";const $o={[Ho.Left]:{x:-1,y:0},[Ho.Right]:{x:1,y:0},[Ho.Top]:{x:0,y:-1},[Ho.Bottom]:{x:0,y:1}},Yo=(e,t)=>Math.sqrt(Math.pow(t.x-e.x,2)+Math.pow(t.y-e.y,2));function Uo({source:e,sourcePosition:t=Ho.Bottom,target:n,targetPosition:r=Ho.Top,center:o,offset:i}){const a=$o[t],s=$o[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",p=u[d];let f,h,m=[];const g={x:0,y:0},y={x:0,y:0},[b,v,w,x]=Bo({sourceX:e.x,sourceY:e.y,targetX:n.x,targetY:n.y});if(a[d]*s[d]==-1){f=o.x??b,h=o.y??v;const e=[{x:f,y:l.y},{x:f,y:c.y}],t=[{x:l.x,y:h},{x:c.x,y:h}];m=a[d]===p?"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===p?u:o:a.y===p?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]===p?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))?(f=(b.x+v.x)/2,h=m[0].y):(f=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],f,h,w,x]}function Jo({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,p,f,h]=Uo({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(Yo(e,t)/2,Yo(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,p,f,h]}const Ko=r((({sourceX:e,sourceY:n,targetX:r,targetY:o,label:i,labelStyle:a,labelShowBg:s,labelBgStyle:l,labelBgPadding:c,labelBgBorderRadius:u,style:d,sourcePosition:p=Ho.Bottom,targetPosition:f=Ho.Top,markerEnd:h,markerStart:m,pathOptions:g,interactionWidth:y})=>{const[b,v,w]=Jo({sourceX:e,sourceY:n,sourcePosition:p,targetX:r,targetY:o,targetPosition:f,borderRadius:g?.borderRadius,offset:g?.offset});return t.createElement(Po,{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})}));Ko.displayName="SmoothStepEdge";const Qo=r((e=>t.createElement(Ko,{...e,pathOptions:a((()=>({borderRadius:0,offset:e.pathOptions?.offset})),[e.pathOptions?.offset])})));Qo.displayName="StepEdge";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,markerEnd:p,markerStart:f,interactionWidth:h})=>{const[m,g,y]=function({sourceX:e,sourceY:t,targetX:n,targetY:r}){const[o,i,a,s]=Bo({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(Po,{path:m,labelX:g,labelY:y,label:i,labelStyle:a,labelShowBg:s,labelBgStyle:l,labelBgPadding:c,labelBgBorderRadius:u,style:d,markerEnd:p,markerStart:f,interactionWidth:h})}));function ei(e,t){return e>=0?.5*e:25*t*Math.sqrt(-e)}function ti({pos:e,x1:t,y1:n,x2:r,y2:o,c:i}){switch(e){case Ho.Left:return[t-ei(t-r,i),n];case Ho.Right:return[t+ei(r-t,i),n];case Ho.Top:return[t,n-ei(n-o,i)];case Ho.Bottom:return[t,n+ei(o-n,i)]}}function ni({sourceX:e,sourceY:t,sourcePosition:n=Ho.Bottom,targetX:r,targetY:o,targetPosition:i=Ho.Top,curvature:a=.25}){const[s,l]=ti({pos:n,x1:e,y1:t,x2:r,y2:o,c:a}),[c,u]=ti({pos:i,x1:r,y1:o,x2:e,y2:t,c:a}),[d,p,f,h]=jo({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,p,f,h]}qo.displayName="StraightEdge";const ri=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:p,style:f,markerEnd:h,markerStart:m,pathOptions:g,interactionWidth:y})=>{const[b,v,w]=ni({sourceX:e,sourceY:n,sourcePosition:i,targetX:r,targetY:o,targetPosition:a,curvature:g?.curvature});return t.createElement(Po,{path:b,labelX:v,labelY:w,label:s,labelStyle:l,labelShowBg:c,labelBgStyle:u,labelBgPadding:d,labelBgBorderRadius:p,style:f,markerEnd:h,markerStart:m,interactionWidth:y})}));ri.displayName="BezierEdge";const oi=i(null),ii=oi.Provider;oi.Consumer;const ai=({source:e,sourceHandle:t,target:n,targetHandle:r})=>`reactflow__edge-${e}${t||""}-${n}${r||""}`,si=(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("&")}`},li=({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},ci=({x:e,y:t},[n,r,o])=>({x:e*o+n,y:t*o+r}),ui=(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}},di=(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}=ui(n,t).positionAbsolute;return xo(e,Co({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}=ui(e,s),d={x:u.x,y:u.y,width:t||0,height:n||0},p=So(l,d);(void 0===t||void 0===n||null===t||null===n||i&&p>0||p>=(t||0)*(n||0)||e.dragging)&&c.push(e)})),c},fi=(e,t)=>{const n=e.map((e=>e.id));return t.filter((e=>n.includes(e.source)||n.includes(e.target)))},hi=(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=go(l,r,o);return{x:t/2-(e.x+e.width/2)*c,y:n/2-(e.y+e.height/2)*c,zoom:c}},mi=(e,t=0)=>e.transition().duration(t);function gi(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 yi={source:null,target:null,sourceHandle:null,targetHandle:null},bi=()=>({handleDomNode:null,isValid:!1,connection:yi,endHandle:null});function vi(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={...bi(),handleDomNode:l};if(l){const e=wi(void 0,l),o=l.getAttribute("data-nodeid"),a=l.getAttribute("data-handleid"),u=l.classList.contains("connectable"),d=l.classList.contains("connectableend"),p={source:s?o:n,sourceHandle:s?a:r,target:s?n:o,targetHandle:s?r:a};c.connection=p;u&&d&&(t===Fo.Strict?s&&"source"===e||!s&&"target"===e:o!==n||a!==r)&&(c.endHandle={nodeId:o,handleId:a,type:e},c.isValid=i(p))}return c}function wi(e,t){return e||(t?.classList.contains("target")?"target":t?.classList.contains("source")?"source":null)}function xi(e){e?.classList.remove("valid","connecting","react-flow__handle-valid","react-flow__handle-connecting")}function Ci(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=wo(e.target),{connectionMode:d,domNode:p,autoPanOnConnect:f,connectionRadius:h,onConnectStart:m,panBy:g,getNodes:y,cancelConnection:b}=i();let v,w=0;const{x:x,y:C}=To(e),E=u?.elementFromPoint(x,C),k=wi(l,E),S=p?.getBoundingClientRect();if(!S||!k)return;let I,_=To(e,S),A=!1,N=null,O=!1,R=null;const T=function({nodes:e,nodeId:t,handleId:n,handleType:r}){return e.reduce(((e,o)=>{if(o[_o]){const{handleBounds:i}=o[_o];let a=[],s=[];i&&(a=gi(o,i,"source",`${t}-${n}-${r}`),s=gi(o,i,"target",`${t}-${n}-${r}`)),e.push(...a,...s)}return e}),[])}({nodes:y(),nodeId:n,handleId:t,handleType:k}),M=()=>{if(!f)return;const[e,t]=vo(_,S);g({x:e,y:t}),w=requestAnimationFrame(M)};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=wi(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:bi()};if(1===c.length)return c[0];const d=c.some((({validHandleResult:e})=>e.isValid)),p=c.some((({handle:e})=>"target"===e.type));return c.find((({handle:e,validHandleResult:t})=>p?"target"===e.type:!d||t.isValid))||c[0]}(e,u,li(_,r,!1,[1,1]),h,T,(e=>vi(e,d,n,t,o?"target":"source",s,u)));if(v=l,A||(M(),A=!0),R=c.handleDomNode,N=c.connection,O=c.isValid,a({connectionPosition:v&&O?ci({x:v.x,y:v.y},r):_,connectionStatus:Ci(!!v,O),connectionEndHandle:c.endHandle}),!v&&!O&&!R)return xi(I);N.source!==N.target&&R&&(xi(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),xi(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:k,connectionStartHandle:{nodeId:n,handleId:t,type:k},connectionEndHandle:null}),m?.(e,{nodeId:n,handleId:t,handleType:k}),u.addEventListener("mousemove",P),u.addEventListener("mouseup",D),u.addEventListener("touchmove",P),u.addEventListener("touchend",D)}const ki=()=>!0,Si=e=>({connectionStartHandle:e.connectionStartHandle,connectOnClick:e.connectOnClick,noPanClassName:e.noPanClassName}),Ii=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:p,onTouchStart:f,...h},m)=>{const g=l||null,y="target"===e,b=co(),v=o(oi),{connectOnClick:w,noPanClassName:x}=lo(Si,de),{connecting:C,clickConnecting:E}=lo(((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),de);v||b.getState().onError?.("010",oo());const k=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 No("006",to()),t;let n;return n=(e=>"id"in e&&"source"in e&&"target"in e)(e)?{...e}:{...e,id:ai(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=Ro(e);a&&(t&&0===e.button||!t)&&Ei({event:e,handleId:g,nodeId:v,onConnect:k,isTarget:y,getState:b.getState,setState:b.setState,isValidConnection:r||b.getState().isValidConnection||ki}),t?p?.(e):f?.(e)};return t.createElement("div",{"data-handleid":g,"data-nodeid":v,"data-handlepos":n,"data-id":`${v}-${g}-${e}`,className:ie(["react-flow__handle",`react-flow__handle-${n}`,"nodrag",x,d,{source:!y,target:y,connectable:i,connectablestart:a,connectableend:s,connecting:E,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=wo(t.target),u=r||l||ki,{connection:d,isValid:p}=vi({nodeId:v,id:g,type:e},s,i.nodeId,i.handleId||null,i.type,u,c);p&&k(d),o?.(t),b.setState({connectionClickStartHandle:null})}:void 0,ref:m,...h},u)}));Ii.displayName="Handle";var _i=r(Ii);const Ai=({data:e,isConnectable:n,targetPosition:r=Ho.Top,sourcePosition:o=Ho.Bottom})=>t.createElement(t.Fragment,null,t.createElement(_i,{type:"target",position:r,isConnectable:n}),e?.label,t.createElement(_i,{type:"source",position:o,isConnectable:n}));Ai.displayName="DefaultNode";var Ni=r(Ai);const Oi=({data:e,isConnectable:n,sourcePosition:r=Ho.Bottom})=>t.createElement(t.Fragment,null,e?.label,t.createElement(_i,{type:"source",position:r,isConnectable:n}));Oi.displayName="InputNode";var Ri=r(Oi);const Ti=({data:e,isConnectable:n,targetPosition:r=Ho.Top})=>t.createElement(t.Fragment,null,t.createElement(_i,{type:"target",position:r,isConnectable:n}),e?.label);Ti.displayName="OutputNode";var Mi=r(Ti);const Pi=()=>null;Pi.displayName="GroupNode";const Di=e=>({selectedNodes:e.getNodes().filter((e=>e.selected)),selectedEdges:e.edges.filter((e=>e.selected)).map((e=>({...e})))}),Bi=e=>e.id;function ji(e,t){return de(e.selectedNodes.map(Bi),t.selectedNodes.map(Bi))&&de(e.selectedEdges.map(Bi),t.selectedEdges.map(Bi))}const Fi=r((({onSelectionChange:e})=>{const t=co(),{selectedNodes:n,selectedEdges:r}=lo(Di,ji);return s((()=>{const o={nodes:n,edges:r};e?.(o),t.getState().onSelectionChange.forEach((e=>e(o)))}),[n,r,e]),null}));Fi.displayName="SelectionListener";const Li=e=>!!e.onSelectionChange;function Vi({onSelectionChange:e}){const n=lo(Li);return e||n?t.createElement(Fi,{onSelectionChange:e}):null}const zi=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 Gi(e,t){s((()=>{void 0!==e&&t(e)}),[e])}function Hi(e,t,n){s((()=>{void 0!==t&&n({[e]:t})}),[t])}const Wi=({nodes:e,edges:t,defaultNodes:n,defaultEdges:r,onConnect:o,onConnectStart:i,onConnectEnd:a,onClickConnectStart:l,onClickConnectEnd:c,nodesDraggable:u,nodesConnectable:d,nodesFocusable:p,edgesFocusable:f,edgesUpdatable:h,elevateNodesOnSelect:m,minZoom:g,maxZoom:y,nodeExtent:b,onNodesChange:v,onEdgesChange:w,elementsSelectable:x,connectionMode:C,snapGrid:E,snapToGrid:k,translateExtent:S,connectOnClick:I,defaultEdgeOptions:_,fitView:A,fitViewOptions:N,onNodesDelete:O,onEdgesDelete:R,onNodeDrag:T,onNodeDragStart:M,onNodeDragStop:P,onSelectionDrag:D,onSelectionDragStart:B,onSelectionDragStop:j,noPanClassName:F,nodeOrigin:L,rfId:V,autoPanOnConnect:z,autoPanOnNodeDrag:G,onError:H,connectionRadius:W,isValidConnection:X,nodeDragThreshold:Z})=>{const{setNodes:$,setEdges:Y,setDefaultNodesAndEdges:U,setMinZoom:J,setMaxZoom:K,setTranslateExtent:Q,setNodeExtent:q,reset:ee}=lo(zi,de),te=co();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",p,te.setState),Hi("edgesFocusable",f,te.setState),Hi("edgesUpdatable",h,te.setState),Hi("elementsSelectable",x,te.setState),Hi("elevateNodesOnSelect",m,te.setState),Hi("snapToGrid",k,te.setState),Hi("snapGrid",E,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",T,te.setState),Hi("onNodeDragStart",M,te.setState),Hi("onNodeDragStop",P,te.setState),Hi("onSelectionDrag",D,te.setState),Hi("onSelectionDragStart",B,te.setState),Hi("onSelectionDragStop",j,te.setState),Hi("noPanClassName",F,te.setState),Hi("nodeOrigin",L,te.setState),Hi("rfId",V,te.setState),Hi("autoPanOnConnect",z,te.setState),Hi("autoPanOnNodeDrag",G,te.setState),Hi("onError",H,te.setState),Hi("connectionRadius",W,te.setState),Hi("isValidConnection",X,te.setState),Hi("nodeDragThreshold",Z,te.setState),Gi(e,$),Gi(t,Y),Gi(g,J),Gi(y,K),Gi(S,Q),Gi(b,q),null},Xi={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%)"},$i="react-flow__node-desc",Yi="react-flow__edge-desc",Ui=e=>e.ariaLiveMessage;function Ji({rfId:e}){const n=lo(Ui);return t.createElement("div",{id:`react-flow__aria-live-${e}`,"aria-live":"assertive","aria-atomic":"true",style:Zi},n)}function Ki({rfId:e,disableKeyboardA11y:n}){return t.createElement(t.Fragment,null,t.createElement("div",{id:`${$i}-${e}`,style:Xi},"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:`${Yi}-${e}`,style:Xi},"Press enter or space to select an edge. You can then press delete to remove it or escape to cancel."),!n&&t.createElement(Ji,{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)&&Oo(e))return!1;const n=ea(e.code,d);i.current.add(e[n]),qi(l,i.current,!1)&&(e.preventDefault(),r(!0))},n=e=>{if((!o.current||o.current&&!t.actInsideInputWithModifier)&&Oo(e))return!1;const n=ea(e.code,d);qi(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 qi(e,t,n){return e.filter((e=>n||e.length===t.size)).some((e=>e.every((e=>t.has(e)))))}function ea(e,t){return t.includes(e)?"code":"key"}function ta(e,t,n,r){const o=e.parentNode||e.parentId;if(!o)return n;const i=t.get(o),a=ui(i,r);return ta(i,t,{x:(n.x??0)+a.x,y:(n.y??0)+a.y,z:(i[_o]?.z??0)>(n.z??0)?i[_o]?.z??0:n.z??0},r)}function na(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}=ta(r,e,{...r.position,z:r[_o]?.z??0},t);r.positionAbsolute={x:o,y:i},r[_o].z=a,n?.[r.id]&&(r[_o].isParent=!0)}}))}function ra(e,t,n,r){const o=new Map,i={},a=r?1e3:0;return e.forEach((e=>{const n=(Io(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,_o,{enumerable:!1,value:{handleBounds:c?void 0:r?.[_o]?.handleBounds,z:n}}),o.set(e.id,s)})),na(o,n,i),o}function oa(e,t={}){const{getNodes:n,width:r,height:o,minZoom:i,maxZoom:a,d3Zoom:s,d3Selection:l,fitViewOnInitDone:c,fitViewOnInit:u,nodeOrigin:d}=e(),p=t.initial&&!c&&u;if(s&&l&&(p||!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=di(e,d),{x:c,y:u,zoom:p}=hi(n,r,o,t.minZoom??i,t.maxZoom??a,t.padding??.1),f=Lr.translate(c,u).scale(p);return"number"==typeof t.duration&&t.duration>0?s.transform(mi(l,t.duration),f):s.transform(l,f),!0}}return!1}function ia(e,t){return e.forEach((e=>{const n=t.get(e.id);n&&t.set(n.id,{...n,[_o]:n[_o],selected:e.selected})})),new Map(t)}function aa(e,t){return t.map((t=>{const n=e.find((e=>e.id===t.id));return n&&(t.selected=n.selected),t}))}function sa({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:ia(e,o)}),a?.(e)),t?.length&&(c&&r({edges:aa(t,i)}),s?.(t))}const la=()=>{},ca={zoomIn:la,zoomOut:la,zoomTo:la,getZoom:()=>1,setViewport:la,getViewport:()=>({x:0,y:0,zoom:1}),fitView:()=>!1,setCenter:la,fitBounds:la,project:e=>e,screenToFlowPosition:e=>e,flowToScreenPosition:e=>e,viewportInitialized:!1},ua=e=>({d3Zoom:e.d3Zoom,d3Selection:e.d3Selection});function da(){const e=(()=>{const e=co(),{d3Zoom:t,d3Selection:n}=lo(ua,de),r=a((()=>n&&t?{zoomIn:e=>t.scaleBy(mi(n,e?.duration),1.2),zoomOut:e=>t.scaleBy(mi(n,e?.duration),1/1.2),zoomTo:(e,r)=>t.scaleTo(mi(n,r?.duration),e),getZoom:()=>e.getState().transform[2],setViewport:(r,o)=>{const[i,a,s]=e.getState().transform,l=Lr.translate(r.x??i,r.y??a).scale(r.zoom??s);t.transform(mi(n,o?.duration),l)},getViewport:()=>{const[t,n,r]=e.getState().transform;return{x:t,y:n,zoom:r}},fitView:t=>oa(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,p=Lr.translate(u,d).scale(c);t.transform(mi(n,i?.duration),p)},fitBounds:(r,o)=>{const{width:i,height:a,minZoom:s,maxZoom:l}=e.getState(),{x:c,y:u,zoom:d}=hi(r,i,a,s,l,o?.padding??.1),p=Lr.translate(c,u).scale(d);t.transform(mi(n,o?.duration),p)},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"),li(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 li(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=ci(t,n);return{x:a.x+o,y:a.y+i}},viewportInitialized:!0}:ca),[t,n]);return r})(),t=co(),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"}))))}}),[]),p=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}}}),[]),f=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(),p=(e||[]).map((e=>e.id)),f=(n||[]).map((e=>e.id)),h=o().reduce(((e,t)=>{const n=t.parentNode||t.parentId,r=!p.includes(t.id)&&n&&e.find((e=>e.id===n));return("boolean"!=typeof t.deletable||t.deletable)&&(p.includes(t.id)||r)&&e.push(t),e}),[]),m=i.filter((e=>"boolean"!=typeof e.deletable||e.deletable)),g=m.filter((e=>f.includes(e.id)));if(h||g){const e=fi(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=Io((r=e).width)&&Io(r.height)&&Io(r.x)&&Io(r.y);var r;const o=n?null:t.getState().nodeInternals.get(e.id);if(!n&&!o)return[null,null,n];return[n?e:ko(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=ko(e),r=So(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=So(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:p,deleteElements:f,getIntersectingNodes:m,isNodeIntersecting:g})),[e,n,r,o,i,s,c,u,d,p,f,m,g])}const pa={actInsideInputWithModifier:!1};const fa={position:"absolute",width:"100%",height:"100%",top:0,left:0},ha=e=>({x:e.x,y:e.y,zoom:e.k}),ma=(e,t)=>e.target.closest(`.${t}`),ga=(e,t)=>2===t&&Array.isArray(e)&&e.includes(2),ya=e=>{const t=e.ctrlKey&&Mo()?10:1;return-e.deltaY*(1===e.deltaMode?.05:e.deltaMode?1:.002)*t},ba=e=>({d3Zoom:e.d3Zoom,d3Selection:e.d3Selection,d3ZoomHandler:e.d3ZoomHandler,userSelectionActive:e.userSelectionActive}),va=({onMove:e,onMoveStart:n,onMoveEnd:r,onPaneContextMenu:o,zoomOnScroll:i=!0,zoomOnPinch:a=!0,panOnScroll:l=!1,panOnScrollSpeed:c=.5,panOnScrollMode:d=Lo.Free,zoomOnDoubleClick:p=!0,elementsSelectable:f,panOnDrag:h=!0,defaultViewport:m,translateExtent:g,minZoom:y,maxZoom:b,zoomActivationKeyCode:v,preventScrolling:w=!0,children:x,noWheelClassName:C,noPanClassName:E})=>{const k=u(),S=co(),I=u(!1),_=u(!1),A=u(null),N=u({x:0,y:0,zoom:0}),{d3Zoom:O,d3Selection:R,d3ZoomHandler:T,userSelectionActive:M}=lo(ba,de),P=Qi(v),D=u(0),B=u(!1),j=u();return function(e){const t=co();s((()=>{let n;const r=()=>{if(!e.current)return;const n=mo(e.current);0!==n.height&&0!==n.width||t.getState().onError?.("004",qr()),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=Yr().scaleExtent([y,b]).translateExtent(g),n=Nt(A.current).call(t),r=Lr.translate(m.x,m.y).scale(go(m.zoom,y,b)),o=[[0,0],[e.width,e.height]],i=t.constrain()(r,o,g);t.transform(n,i),t.wheelDelta(ya),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||M?void 0!==T&&R.on("wheel.zoom",(function(e,t){if(!w&&"wheel"===e.type&&!e.ctrlKey||ma(e,C))return null;e.preventDefault(),T.call(this,e,t)}),{passive:!1}):R.on("wheel.zoom",(t=>{if(ma(t,C))return!1;t.preventDefault(),t.stopImmediatePropagation();const o=R.property("__zoom").k||1;if(t.ctrlKey&&a){const e=Ot(t),n=ya(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===Lo.Vertical?0:t.deltaX*i,l=d===Lo.Horizontal?0:t.deltaY*i;!Mo()&&t.shiftKey&&d!==Lo.Vertical&&(s=t.deltaY*i,l=0),O.translateBy(R,-s/o*c,-l/o*c,{internal:!0});const u=ha(R.property("__zoom")),{onViewportChangeStart:p,onViewportChange:f,onViewportChangeEnd:h}=S.getState();clearTimeout(j.current),B.current||(B.current=!0,n?.(t,u),p?.(u)),B.current&&(e?.(t,u),f?.(u),j.current=setTimeout((()=>{r?.(t,u),h?.(u),B.current=!1}),150))}),{passive:!1}))}),[M,l,d,R,O,T,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=ha(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&&(M&&!I.current?O.on("zoom",null):M||O.on("zoom",(t=>{const{onViewportChange:n}=S.getState();if(S.setState({transform:[t.transform.x,t.transform.y,t.transform.k]}),_.current=!(!o||!ga(h,D.current??0)),(e||n)&&!t.sourceEvent?.internal){const r=ha(t.transform);n?.(r),e?.(t.sourceEvent,r)}})))}),[M,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&&ga(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=ha(e.transform);N.current=n,clearTimeout(k.current),k.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&&(ma(e,"react-flow__node")||ma(e,"react-flow__edge")))return!0;if(!(h||t||l||p||a))return!1;if(M)return!1;if(!p&&"dblclick"===e.type)return!1;if(ma(e,C)&&"wheel"===e.type)return!1;if(ma(e,E)&&("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}))}),[M,O,i,a,l,p,h,f,P]),t.createElement("div",{className:"react-flow__renderer",ref:A,style:fa},x)},wa=e=>({userSelectionActive:e.userSelectionActive,userSelectionRect:e.userSelectionRect});function xa(){const{userSelectionActive:e,userSelectionRect:n}=lo(wa,de);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 Ca(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&&Ca(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&&Ca(t,o);break;case"remove":return t}return t.push(o),t}),n)}function ka(e,t){return Ea(e,t)}function Sa(e,t){return Ea(e,t)}const Ia=(e,t)=>({id:e,type:"select",selected:t});function _a(e,t){return e.reduce(((e,n)=>{const r=t.includes(n.id);return!n.selected&&r?(n.selected=!0,e.push(Ia(n.id,!0))):n.selected&&!r&&(n.selected=!1,e.push(Ia(n.id,!1))),e}),[])}const Aa=(e,t)=>n=>{n.target===t.current&&e?.(n)},Na=e=>({userSelectionActive:e.userSelectionActive,elementsSelectable:e.elementsSelectable,dragging:e.paneDragging}),Oa=r((({isSelecting:e,selectionMode:n=Vo.Full,panOnDrag:r,onSelectionStart:o,onSelectionEnd:i,onPaneClick:a,onPaneContextMenu:s,onPaneScroll:l,onPaneMouseEnter:c,onPaneMouseMove:d,onPaneMouseLeave:p,children:f})=>{const h=u(null),m=co(),g=u(0),y=u(0),b=u(),{userSelectionActive:v,elementsSelectable:w,dragging:x}=lo(Na,de),C=()=>{m.setState({userSelectionActive:!1,userSelectionRect:null}),g.current=0,y.current=0},E=e=>{a?.(e),m.getState().resetSelectedElements(),m.setState({nodesSelectionActive:!1})},k=l?e=>l(e):void 0,S=w&&(e||v);return t.createElement("div",{className:ie(["react-flow__pane",{dragging:x,selection:e}]),onClick:S?void 0:Aa(E,h),onContextMenu:Aa((e=>{Array.isArray(r)&&r?.includes(2)?e.preventDefault():s?.(e)}),h),onWheel:Aa(k,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),p=r.startX??0,f=r.startY??0,h={...r,x:d.x<p?d.x:p,y:d.y<f?d.y:f,width:Math.abs(d.x-p),height:Math.abs(d.y-f)},v=u(),w=pi(o,h,a,n===Vo.Partial,!0,c),x=fi(w,i).map((e=>e.id)),C=w.map((e=>e.id));if(g.current!==C.length){g.current=C.length;const e=_a(v,C);e.length&&s?.(e)}if(y.current!==x.length){y.current=x.length;const e=_a(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&&E?.(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()}:p,ref:h,style:fa},f,t.createElement(xa,null))}));function Ra(e,t){const n=e.parentNode||e.parentId;if(!n)return!1;const r=t.get(n);return!!r&&(!!r.selected||Ra(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 Ma(e,t,n,r){return Array.from(e.values()).filter((n=>(n.selected||n.id===r)&&(!n.parentNode||n.parentId||!Ra(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 Pa(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}=ui(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}=ui(t,o).positionAbsolute;s=t&&Io(r)&&Io(i)&&Io(t.width)&&Io(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",eo()),s=a;let c={x:0,y:0};if(l){const e=n.get(l);c=ui(e,o).positionAbsolute}const u=s&&"parent"!==s?yo(t,s):t;return{position:{x:u.x-c.x,y:u.y-c.y},positionAbsolute:u}}function Da({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]}Oa.displayName="Pane";const Ba=(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,...mo(e)}}))};function ja(e,t,n){return void 0===n?n:r=>{const o=t().nodeInternals.get(e);o&&n(r,{...o})}}function Fa({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",ao(e))}function La(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=co(),[p,f]=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),E=function(){const e=co(),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=Nt(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:p}=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=di(h.current,u);y=Co(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=Pa(r,o,n,i,u,p);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),f(!0);const b=o?r:La(i);if(b&&v.current){const[e,t]=Da({nodeId:o,dragItems:h.current,nodeInternals:n});b(v.current,e,t)}},c=()=>{if(!y.current)return;const[e,t]=vo(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 p=o?c:La(u);a&&i||r||!o||n.get(o)?.selected||l(),o&&i&&a&&Fa({id:o,store:d,nodeRef:e});const f=E(t);if(m.current=f,h.current=Ma(n,s,f,o),p&&h.current){const[e,r]=Da({nodeId:o,dragItems:h.current,nodeInternals:n});p(t.sourceEvent,e,r)}};if(!t){const t=function(){var e,t,n,r,o=Lt,i=Vt,a=zt,s=Gt,l={},c=fe("start","drag","end"),u=0,d=0;function p(e){e.on("mousedown.drag",f).filter(s).on("touchstart.drag",g).on("touchmove.drag",y,Rt).on("touchend.drag touchcancel.drag",b).style("touch-action","none").style("-webkit-tap-highlight-color","rgba(0,0,0,0)")}function f(a,s){if(!r&&o.call(this,a,s)){var l=v(this,i.call(this,a,s),a,s,"mouse");l&&(Nt(a.view).on("mousemove.drag",h,Tt).on("mouseup.drag",m,Tt),Dt(a.view),Mt(a),n=!1,e=a.clientX,t=a.clientY,l("start",a))}}function h(r){if(Pt(r),!n){var o=r.clientX-e,i=r.clientY-t;n=o*o+i*i>d}l.mouse("drag",r)}function m(e){Nt(e.view).on("mousemove.drag mouseup.drag",null),Bt(e.view,n),Pt(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]))&&(Mt(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])&&(Pt(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])&&(Mt(e),n("end",e,o[t]))}function v(e,t,n,r,o,i){var s,d,f,h=c.copy(),m=Ot(i||n,t);if(null!=(f=a.call(e,new Ft("beforestart",{sourceEvent:n,target:p,identifier:o,active:u,x:m[0],y:m[1],dx:0,dy:0,dispatch:h}),r)))return s=f.x-m[0]||0,d=f.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=Ot(c||a,t),g=u}h.call(i,e,new Ft(i,{sourceEvent:a,subject:f,target:p,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 p.filter=function(e){return arguments.length?(o="function"==typeof e?e:jt(!!e),p):o},p.container=function(e){return arguments.length?(i="function"==typeof e?e:jt(e),p):i},p.subject=function(e){return arguments.length?(a="function"==typeof e?e:jt(e),p):a},p.touchable=function(e){return arguments.length?(s="function"==typeof e?e:jt(!!e),p):s},p.on=function(){var e=c.on.apply(c,arguments);return e===c?p:e},p.clickDistance=function(e){return arguments.length?(d=(e=+e)*e,p):Math.sqrt(d)},p}().on("start",(e=>{const{domNode:t,nodeDragThreshold:n}=d.getState();0===n&&u(e),C.current=!1;const r=E(e);m.current=r,y.current=t?.getBoundingClientRect()||null,b.current=To(e.sourceEvent,y.current)})).on("drag",(e=>{const t=E(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&&(f(!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:La(i);if(t(h.current,!1,!1),a){const[t,r]=Da({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,E]),p}function za(){const e=co(),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,p=a?s[1]:5,f=t.isShiftPressed?4:1,h=t.x*d*f,m=t.y*p*f,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}=Pa(e,t,n,r,void 0,l);e.position=i,e.positionAbsolute=o}return e}));o(g,!0,!1)}),[]);return t}const Ga={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:p,onMouseEnter:f,onMouseMove:h,onMouseLeave:m,onContextMenu:g,onDoubleClick:y,style:b,className:v,isDraggable:w,isSelectable:x,isConnectable:C,isFocusable:E,selectNodesOnDrag:k,sourcePosition:S,targetPosition:I,hidden:_,resizeObserver:A,dragHandle:N,zIndex:O,isParent:R,noDragClassName:T,noPanClassName:M,initialized:P,disableKeyboardA11y:D,ariaLabel:B,rfId:j,hasHandleBounds:F})=>{const L=co(),V=u(null),z=u(null),G=u(S),H=u(I),W=u(r),X=x||w||p||f||h||m,Z=za(),$=ja(n,L.getState,f),Y=ja(n,L.getState,h),U=ja(n,L.getState,m),J=ja(n,L.getState,g),K=ja(n,L.getState,y);s((()=>()=>{z.current&&(A?.unobserve(z.current),z.current=null)}),[]),s((()=>{if(V.current&&!_){const e=V.current;P&&F&&z.current===e||(z.current&&A?.unobserve(z.current),A?.observe(e),z.current=e)}}),[_,P,F]),s((()=>{const e=W.current!==r,t=G.current!==S,o=H.current!==I;V.current&&(e||t||o)&&(e&&(W.current=r),t&&(G.current=S),o&&(H.current=I),L.getState().updateNodeDimensions([{id:n,nodeElement:V.current,forceUpdate:!0}]))}),[n,r,S,I]);const Q=Va({nodeRef:V,disabled:_||!w,noDragClassName:T,handleSelector:N,nodeId:n,isSelectable:x,selectNodesOnDrag:k});return _?null:t.createElement("div",{className:ie(["react-flow__node",`react-flow__node-${r}`,{[M]:w},v,{selected:d,selectable:x,parent:R,dragging:Q}]),ref:V,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:$,onMouseMove:Y,onMouseLeave:U,onContextMenu:J,onClick:e=>{const{nodeDragThreshold:t}=L.getState();if(x&&(!k||!w||t>0)&&Fa({id:n,store:L,nodeRef:V}),p){const t=L.getState().nodeInternals.get(n);t&&p(e,{...t})}},onDoubleClick:K,onKeyDown:E?e=>{if(!Oo(e)&&!D)if(Ao.includes(e.key)&&x){const t="Escape"===e.key;Fa({id:n,store:L,unselect:t,nodeRef:V})}else w&&d&&Object.prototype.hasOwnProperty.call(Ga,e.key)&&(L.setState({ariaLiveMessage:`Moved selected node ${e.key.replace("Arrow","").toLowerCase()}. New position, x: ${~~i}, y: ${~~a}`}),Z({x:Ga[e.key].x,y:Ga[e.key].y,isShiftPressed:e.shiftKey}))}:void 0,tabIndex:E?0:void 0,role:E?"button":void 0,"aria-describedby":D?void 0:`${$i}-${j}`,"aria-label":B},t.createElement(ii,{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 Wa=e=>{const t=e.getNodes().filter((e=>e.selected));return{...di(t,e.nodeOrigin),transformString:`translate(${e.transform[0]}px,${e.transform[1]}px) scale(${e.transform[2]})`,userSelectionActive:e.userSelectionActive}};var Xa=r((function({onSelectionContextMenu:e,noPanClassName:n,disableKeyboardA11y:r}){const o=co(),{width:i,height:a,x:l,y:c,transformString:d,userSelectionActive:p}=lo(Wa,de),f=za(),h=u(null);if(s((()=>{r||h.current?.focus({preventScroll:!0})}),[r]),Va({nodeRef:h}),p||!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:ie(["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(Ga,e.key)&&f({x:Ga[e.key].x,y:Ga[e.key].y,isShiftPressed:e.shiftKey})},style:{width:i,height:a,top:c,left:l}}))}));const Za=e=>e.nodesSelectionActive,$a=({children:e,onPaneClick:n,onPaneMouseEnter:r,onPaneMouseMove:o,onPaneMouseLeave:i,onPaneContextMenu:a,onPaneScroll:l,deleteKeyCode:c,onMove:u,onMoveStart:d,onMoveEnd:p,selectionKeyCode:f,selectionOnDrag:h,selectionMode:m,onSelectionStart:g,onSelectionEnd:y,multiSelectionKeyCode:b,panActivationKeyCode:v,zoomActivationKeyCode:w,elementsSelectable:x,zoomOnScroll:C,zoomOnPinch:E,panOnScroll:k,panOnScrollSpeed:S,panOnScrollMode:I,zoomOnDoubleClick:_,panOnDrag:A,defaultViewport:N,translateExtent:O,minZoom:R,maxZoom:T,preventScrolling:M,onSelectionContextMenu:P,noWheelClassName:D,noPanClassName:B,disableKeyboardA11y:j})=>{const F=lo(Za),L=Qi(f),V=Qi(v),z=V||A,G=V||k,H=L||h&&!0!==z;return(({deleteKeyCode:e,multiSelectionKeyCode:t})=>{const n=co(),{deleteElements:r}=da(),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(va,{onMove:u,onMoveStart:d,onMoveEnd:p,onPaneContextMenu:a,elementsSelectable:x,zoomOnScroll:C,zoomOnPinch:E,panOnScroll:G,panOnScrollSpeed:S,panOnScrollMode:I,zoomOnDoubleClick:_,panOnDrag:!L&&z,defaultViewport:N,translateExtent:O,minZoom:R,maxZoom:T,zoomActivationKeyCode:w,preventScrolling:M,noWheelClassName:D,noPanClassName:B},t.createElement(Oa,{onSelectionStart:g,onSelectionEnd:y,onPaneClick:n,onPaneMouseEnter:r,onPaneMouseMove:o,onPaneMouseLeave:i,onPaneContextMenu:a,onPaneScroll:l,panOnDrag:z,isSelecting:!!H,selectionMode:m},e,F&&t.createElement(Xa,{onSelectionContextMenu:P,noPanClassName:B,disableKeyboardA11y:j})))};$a.displayName="FlowRenderer";var Ya=r($a);function Ua(e){return{...{input:Ha(e.input||Ri),default:Ha(e.default||Ni),output:Ha(e.output||Mi),group:Ha(e.group||Pi)},...Object.keys(e).filter((e=>!["input","default","output","group"].includes(e))).reduce(((t,n)=>(t[n]=Ha(e[n]||Ni),t)),{})}}const Ja=e=>({nodesDraggable:e.nodesDraggable,nodesConnectable:e.nodesConnectable,nodesFocusable:e.nodesFocusable,elementsSelectable:e.elementsSelectable,updateNodeDimensions:e.updateNodeDimensions,onError:e.onError}),Ka=e=>{const{nodesDraggable:n,nodesConnectable:r,nodesFocusable:o,elementsSelectable:i,updateNodeDimensions:c,onError:d}=lo(Ja,de),p=(f=e.onlyRenderVisibleElements,lo(l((e=>f?pi(e.nodeInternals,{x:0,y:0,width:e.width,height:e.height},e.transform,!0):e.getNodes()),[f])));var f;const h=u(),m=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 h.current=e,e}),[]);return s((()=>()=>{h?.current?.disconnect()}),[]),t.createElement("div",{className:"react-flow__nodes",style:fa},p.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),p=!!(a.connectable||r&&void 0===a.connectable),f=!!(a.focusable||o&&void 0===a.focusable),h=e.nodeExtent?yo(a.positionAbsolute,e.nodeExtent):a.positionAbsolute,g=h?.x??0,y=h?.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:p,isFocusable:f,resizeObserver:m,dragHandle:a.dragHandle,zIndex:a[_o]?.z??0,isParent:!!a[_o]?.isParent,noDragClassName:e.noDragClassName,noPanClassName:e.noPanClassName,initialized:!!a.width&&!!a.height,rfId:e.rfId,disableKeyboardA11y:e.disableKeyboardA11y,ariaLabel:a.ariaLabel,hasHandleBounds:!!a[_o]?.handleBounds})})))};Ka.displayName="NodeRenderer";var Qa=r(Ka);const qa=(e,t,n)=>n===Ho.Left?e-t:n===Ho.Right?e+t:e,es=(e,t,n)=>n===Ho.Top?e-t:n===Ho.Bottom?e+t:e,ts="react-flow__edgeupdater",ns=({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:ie([ts,`${ts}-${l}`]),cx:qa(n,o,e),cy:es(r,o,e),r:o,stroke:"transparent",fill:"transparent"}),rs=()=>!0;var os=e=>{const n=({id:n,className:r,type:o,data:i,onClick:s,onEdgeDoubleClick:l,selected:d,animated:p,label:f,labelStyle:h,labelShowBg:m,labelBgStyle:g,labelBgPadding:y,labelBgBorderRadius:b,style:v,source:w,target:x,sourceX:C,sourceY:E,targetX:k,targetY:S,sourcePosition:I,targetPosition:_,elementsSelectable:A,hidden:N,sourceHandleId:O,targetHandleId:R,onContextMenu:T,onMouseEnter:M,onMouseMove:P,onMouseLeave:D,reconnectRadius:B,onReconnect:j,onReconnectStart:F,onReconnectEnd:L,markerEnd:V,markerStart:z,rfId:G,ariaLabel:H,isFocusable:W,isReconnectable:X,pathOptions:Z,interactionWidth:$,disableKeyboardA11y:Y})=>{const U=u(null),[J,K]=c(!1),[Q,q]=c(!1),ee=co(),te=a((()=>`url('#${si(z,G)}')`),[z,G]),ne=a((()=>`url('#${si(V,G)}')`),[V,G]);if(N)return null;const re=Do(n,ee.getState,l),oe=Do(n,ee.getState,T),ae=Do(n,ee.getState,M),se=Do(n,ee.getState,P),le=Do(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||rs,c=t,u=r.find((e=>e.id===n));q(!0),F?.(e,u,s);Ei({event:e,handleId:a,nodeId:i,onConnect:e=>j?.(u,e),isTarget:c,getState:ee.getState,setState:ee.setState,isValidConnection:l,edgeUpdaterType:s,onReconnectEnd:e=>{q(!1),L?.(e,u,s)}})},ue=()=>K(!0),de=()=>K(!1),pe=!A&&!s;return t.createElement("g",{className:ie(["react-flow__edge",`react-flow__edge-${o}`,r,{selected:d,animated:p,inactive:pe,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:ae,onMouseMove:se,onMouseLeave:le,onKeyDown:W?e=>{if(!Y&&Ao.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:W?0:void 0,role:W?"button":"img","data-testid":`rf__edge-${n}`,"aria-label":null===H?void 0:H||`Edge from ${w} to ${x}`,"aria-describedby":W?`${Yi}-${G}`:void 0,ref:U},!Q&&t.createElement(e,{id:n,source:w,target:x,selected:d,animated:p,label:f,labelStyle:h,labelShowBg:m,labelBgStyle:g,labelBgPadding:y,labelBgBorderRadius:b,data:i,style:v,sourceX:C,sourceY:E,targetX:k,targetY:S,sourcePosition:I,targetPosition:_,sourceHandleId:O,targetHandleId:R,markerStart:te,markerEnd:ne,pathOptions:Z,interactionWidth:$}),X&&t.createElement(t.Fragment,null,("source"===X||!0===X)&&t.createElement(ns,{position:I,centerX:C,centerY:E,radius:B,onMouseDown:e=>ce(e,!0),onMouseEnter:ue,onMouseOut:de,type:"source"}),("target"===X||!0===X)&&t.createElement(ns,{position:_,centerX:k,centerY:S,radius:B,onMouseDown:e=>ce(e,!1),onMouseEnter:ue,onMouseOut:de,type:"target"})))};return n.displayName="EdgeWrapper",r(n)};function is(e){return{...{default:os(e.default||ri),straight:os(e.bezier||qo),step:os(e.step||Qo),smoothstep:os(e.step||Ko),simplebezier:os(e.simplebezier||Zo)},...Object.keys(e).filter((e=>!["default","bezier"].includes(e))).reduce(((t,n)=>(t[n]=os(e[n]||ri),t)),{})}}function as(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 ss(e,t){return e?1!==e.length&&t?t&&e.find((e=>e.id===t))||null:e[0]:null}function ls(e){const t=e?.[_o]?.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 cs=[{level:0,isMaxLevel:!0,edges:[]}];function us(e,t,n){const r=lo(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=Co({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)),p=Math.max(0,Math.min(u.y2,c.y2)-Math.max(u.y,c.y));return Math.ceil(d*p)>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=Io(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?.[_o]?.z||0,e?.[_o]?.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?cs:i}(r,t,n)}const ds={[Go.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"}),[Go.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=co();return a((()=>Object.prototype.hasOwnProperty.call(ds,e)?ds[e]:(t.getState().onError?.("009",no(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},fs=({defaultColor:e,rfId:n})=>{const r=lo(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=si(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}))))};fs.displayName="MarkerDefinitions";var hs=r(fs);const ms=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}),gs=({defaultMarkerColor:e,onlyRenderVisibleElements:n,elevateEdgesOnSelect:r,rfId:o,edgeTypes:i,noPanClassName:a,onEdgeContextMenu:s,onEdgeMouseEnter:l,onEdgeMouseMove:c,onEdgeMouseLeave:u,onEdgeClick:d,onEdgeDoubleClick:p,onReconnect:f,onReconnectStart:h,onReconnectEnd:m,reconnectRadius:g,children:y,disableKeyboardA11y:b})=>{const{edgesFocusable:v,edgesUpdatable:w,elementsSelectable:x,width:C,height:E,connectionMode:k,nodeInternals:S,onError:I}=lo(ms,de),_=us(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:E,className:"react-flow__edges react-flow__container"},y&&t.createElement(hs,{defaultColor:e,rfId:o}),t.createElement("g",null,r.map((e=>{const[n,r,y]=ls(S.get(e.source)),[C,E,_]=ls(S.get(e.target));if(!y||!_)return null;let A=e.type||"default";i[A]||(I?.("011",io(A)),A="default");const N=i[A]||i.default,O=k===Fo.Strict?E.target:(E.target??[]).concat(E.source??[]),R=ss(r.source,e.sourceHandle),T=ss(O,e.targetHandle),M=R?.position||Ho.Bottom,P=T?.position||Ho.Top,D=!!(e.focusable||v&&void 0===e.focusable),B=e.reconnectable||e.updatable,j=void 0!==f&&(B||w&&void 0===B);if(!R||!T)return I?.("008",ro(R,e)),null;const{sourceX:F,sourceY:L,targetX:V,targetY:z}=((e,t,n,r,o,i)=>{const a=as(n,e,t),s=as(i,r,o);return{sourceX:a.x,sourceY:a.y,targetX:s.x,targetY:s.y}})(n,R,M,C,T,P);return t.createElement(N,{key:e.id,id:e.id,className:ie([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:L,targetX:V,targetY:z,sourcePosition:M,targetPosition:P,elementsSelectable:x,onContextMenu:s,onMouseEnter:l,onMouseMove:c,onMouseLeave:u,onClick:d,onEdgeDoubleClick:p,onReconnect:f,onReconnectStart:h,onReconnectEnd:m,reconnectRadius:g,rfId:o,ariaLabel:e.ariaLabel,isFocusable:D,isReconnectable:j,pathOptions:"pathOptions"in e?e.pathOptions:void 0,interactionWidth:e.interactionWidth,disableKeyboardA11y:b})})))))),y):null};gs.displayName="EdgeRenderer";var ys=r(gs);const bs=e=>`translate(${e.transform[0]}px,${e.transform[1]}px) scale(${e.transform[2]})`;function vs({children:e}){const n=lo(bs);return t.createElement("div",{className:"react-flow__viewport react-flow__container",style:{transform:n}},e)}const ws={[Ho.Left]:Ho.Right,[Ho.Right]:Ho.Left,[Ho.Top]:Ho.Bottom,[Ho.Bottom]:Ho.Top},xs=({nodeId:e,handleType:n,style:r,type:o=zo.Bezier,CustomComponent:i,connectionStatus:a})=>{const{fromNode:s,handleId:c,toX:u,toY:d,connectionMode:p}=lo(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]),de),f=s?.[_o]?.handleBounds;let h=f?.[n];if(p===Fo.Loose&&(h=h||f?.["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?ws[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 E={sourceX:b,sourceY:v,sourcePosition:w,targetX:u,targetY:d,targetPosition:x};return o===zo.Bezier?[C]=ni(E):o===zo.Step?[C]=Jo({...E,borderRadius:0}):o===zo.SmoothStep?[C]=Jo(E):o===zo.SimpleBezier?[C]=Xo(E):C=`M${b},${v} ${u},${d}`,t.createElement("path",{d:C,fill:"none",className:"react-flow__connection-path",style:r})};xs.displayName="ConnectionLine";const Cs=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}=lo(Cs,de);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:ie(["react-flow__connection",u])},t.createElement(xs,{nodeId:i,handleType:a,style:n,type:r,CustomComponent:o,connectionStatus:u}))):null}function ks(e,t){const n=u(null),r=co();return a((()=>{if("development"===process.env.NODE_ENV){const t=Object.keys(e);de(n.current,t)&&r.getState().onError?.("002",Kr()),n.current=t}return t(e)}),[e])}const Ss=({nodeTypes:e,edgeTypes:n,onMove:r,onMoveStart:o,onMoveEnd:i,onInit:a,onNodeClick:l,onEdgeClick:c,onNodeDoubleClick:d,onEdgeDoubleClick:p,onNodeMouseEnter:f,onNodeMouseMove:h,onNodeMouseLeave:m,onNodeContextMenu:g,onSelectionContextMenu:y,onSelectionStart:b,onSelectionEnd:v,connectionLineType:w,connectionLineStyle:x,connectionLineComponent:C,connectionLineContainerStyle:E,selectionKeyCode:k,selectionOnDrag:S,selectionMode:I,multiSelectionKeyCode:_,panActivationKeyCode:A,zoomActivationKeyCode:N,deleteKeyCode:O,onlyRenderVisibleElements:R,elementsSelectable:T,selectNodesOnDrag:M,defaultViewport:P,translateExtent:D,minZoom:B,maxZoom:j,preventScrolling:F,defaultMarkerColor:L,zoomOnScroll:V,zoomOnPinch:z,panOnScroll:G,panOnScrollSpeed:H,panOnScrollMode:W,zoomOnDoubleClick:X,panOnDrag:Z,onPaneClick:$,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:pe,nodeExtent:fe,rfId:he})=>{const me=ks(e,Ua),ge=ks(n,is);return function(e){const t=da(),n=u(!1);s((()=>{!n.current&&t.viewportInitialized&&e&&(setTimeout((()=>e(t)),1),n.current=!0)}),[e,t.viewportInitialized])}(a),t.createElement(Ya,{onPaneClick:$,onPaneMouseEnter:Y,onPaneMouseMove:U,onPaneMouseLeave:J,onPaneContextMenu:Q,onPaneScroll:K,deleteKeyCode:O,selectionKeyCode:k,selectionOnDrag:S,selectionMode:I,onSelectionStart:b,onSelectionEnd:v,multiSelectionKeyCode:_,panActivationKeyCode:A,zoomActivationKeyCode:N,elementsSelectable:T,onMove:r,onMoveStart:o,onMoveEnd:i,zoomOnScroll:V,zoomOnPinch:z,zoomOnDoubleClick:X,panOnScroll:G,panOnScrollSpeed:H,panOnScrollMode:W,panOnDrag:Z,defaultViewport:P,translateExtent:D,minZoom:B,maxZoom:j,onSelectionContextMenu:y,preventScrolling:F,noDragClassName:se,noWheelClassName:le,noPanClassName:ce,disableKeyboardA11y:de},t.createElement(vs,null,t.createElement(ys,{edgeTypes:ge,onEdgeClick:c,onEdgeDoubleClick:p,onlyRenderVisibleElements:R,onEdgeContextMenu:q,onEdgeMouseEnter:ee,onEdgeMouseMove:te,onEdgeMouseLeave:ne,onReconnect:re,onReconnectStart:oe,onReconnectEnd:ie,reconnectRadius:ae,defaultMarkerColor:L,noPanClassName:ce,elevateEdgesOnSelect:!!ue,disableKeyboardA11y:de,rfId:he},t.createElement(Es,{style:x,type:w,component:C,containerStyle:E})),t.createElement("div",{className:"react-flow__edgelabel-renderer"}),t.createElement(Qa,{nodeTypes:me,onNodeClick:l,onNodeDoubleClick:d,onNodeMouseEnter:f,onNodeMouseMove:h,onNodeMouseLeave:m,onNodeContextMenu:g,selectNodesOnDrag:M,onlyRenderVisibleElements:R,noPanClassName:ce,noDragClassName:se,disableKeyboardA11y:de,nodeOrigin:pe,nodeExtent:fe,rfId:he})))};Ss.displayName="GraphView";var Is=r(Ss);const _s=[[Number.NEGATIVE_INFINITY,Number.NEGATIVE_INFINITY],[Number.POSITIVE_INFINITY,Number.POSITIVE_INFINITY]],As={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:_s,nodeExtent:_s,nodesSelectionActive:!1,userSelectionActive:!1,userSelectionRect:null,connectionNodeId:null,connectionHandleId:null,connectionHandleType:"source",connectionPosition:{x:0,y:0},connectionStatus:null,connectionMode:Fo.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:No,isValidConnection:void 0},Ns=()=>((e,t)=>e?ue(e,t):ue)(((e,t)=>({...As,setNodes:n=>{const{nodeInternals:r,nodeOrigin:o,elevateNodesOnSelect:i}=t();e({nodeInternals:ra(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?ra(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:p}=new window.DOMMatrixReadOnly(d.transform),f=n.reduce(((e,t)=>{const n=o.get(t.id);if(n?.hidden)o.set(n.id,{...n,[_o]:{...n[_o],handleBounds:void 0}});else if(n){const r=mo(t.nodeElement);!(!r.width||!r.height||n.width===r.width&&n.height===r.height&&!t.forceUpdate)&&(o.set(n.id,{...n,[_o]:{...n[_o],handleBounds:{source:Ba(".source",t.nodeElement,p,c),target:Ba(".target",t.nodeElement,p,c)}},...r}),e.push({id:n.id,type:"dimensions",dimensions:r}))}return e}),[]);na(o,c);const h=a||i&&!a&&oa(t,{initial:!0,...s});e({nodeInternals:new Map(o),fitViewOnInitDone:h}),f?.length>0&&r?.(f)},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=ra(ka(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=>Ia(e,!0))):(a=_a(i(),n),s=_a(o,[])),sa({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=>Ia(e,!0))):(a=_a(o,n),s=_a(i(),[])),sa({changedNodes:s,changedEdges:a,get:t,set:e})},unselectNodesAndEdges:({nodes:n,edges:r}={})=>{const{edges:o,getNodes:i}=t(),a=r||o;sa({changedNodes:(n||i()).map((e=>(e.selected=!1,Ia(e.id,!1)))),changedEdges:a.map((e=>Ia(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();sa({changedNodes:r().filter((e=>e.selected)).map((e=>Ia(e.id,!1))),changedEdges:n.filter((e=>e.selected)).map((e=>Ia(e.id,!1))),get:t,set:e})},setNodeExtent:n=>{const{nodeInternals:r}=t();r.forEach((e=>{e.positionAbsolute=yo(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=Lr.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:As.connectionNodeId,connectionHandleId:As.connectionHandleId,connectionHandleType:As.connectionHandleType,connectionStatus:As.connectionStatus,connectionStartHandle:As.connectionStartHandle,connectionEndHandle:As.connectionEndHandle}),reset:()=>e({...As})})),Object.is),Os=({children:e})=>{const n=u(null);return n.current||(n.current=Ns()),t.createElement(Jr,{value:n.current},e)};Os.displayName="ReactFlowProvider";const Rs=({children:e})=>o(Ur)?t.createElement(t.Fragment,null,e):t.createElement(Os,null,e);Rs.displayName="ReactFlowWrapper";const Ts={input:Ri,default:Ni,output:Mi,group:Pi},Ms={default:ri,straight:qo,step:Qo,smoothstep:Ko,simplebezier:Zo},Ps=[0,0],Ds=[15,15],Bs={x:0,y:0,zoom:1},js={width:"100%",height:"100%",overflow:"hidden",position:"relative",zIndex:0},Fs=n((({nodes:e,edges:n,defaultNodes:r,defaultEdges:o,className:i,nodeTypes:a=Ts,edgeTypes:s=Ms,onNodeClick:l,onEdgeClick:c,onInit:u,onMove:d,onMoveStart:p,onMoveEnd:f,onConnect:h,onConnectStart:m,onConnectEnd:g,onClickConnectStart:y,onClickConnectEnd:b,onNodeMouseEnter:v,onNodeMouseMove:w,onNodeMouseLeave:x,onNodeContextMenu:C,onNodeDoubleClick:E,onNodeDragStart:k,onNodeDrag:S,onNodeDragStop:I,onNodesDelete:_,onEdgesDelete:A,onSelectionChange:N,onSelectionDragStart:O,onSelectionDrag:R,onSelectionDragStop:T,onSelectionContextMenu:M,onSelectionStart:P,onSelectionEnd:D,connectionMode:B=Fo.Strict,connectionLineType:j=zo.Bezier,connectionLineStyle:F,connectionLineComponent:L,connectionLineContainerStyle:V,deleteKeyCode:z="Backspace",selectionKeyCode:G="Shift",selectionOnDrag:H=!1,selectionMode:W=Vo.Full,panActivationKeyCode:X="Space",multiSelectionKeyCode:Z=(Mo()?"Meta":"Control"),zoomActivationKeyCode:$=(Mo()?"Meta":"Control"),snapToGrid:Y=!1,snapGrid:U=Ds,onlyRenderVisibleElements:J=!1,selectNodesOnDrag:K=!0,nodesDraggable:Q,nodesConnectable:q,nodesFocusable:ee,nodeOrigin:te=Ps,edgesFocusable:ne,edgesUpdatable:re,elementsSelectable:oe,defaultViewport:ae=Bs,minZoom:se=.5,maxZoom:le=2,translateExtent:ce=_s,preventScrolling:ue=!0,nodeExtent:de,defaultMarkerColor:pe="#b1b1b7",zoomOnScroll:fe=!0,zoomOnPinch:he=!0,panOnScroll:me=!1,panOnScrollSpeed:ge=.5,panOnScrollMode:ye=Lo.Free,zoomOnDoubleClick:be=!0,panOnDrag:ve=!0,onPaneClick:we,onPaneMouseEnter:xe,onPaneMouseMove:Ce,onPaneMouseLeave:Ee,onPaneScroll:ke,onPaneContextMenu:Se,children:Ie,onEdgeContextMenu:_e,onEdgeDoubleClick:Ae,onEdgeMouseEnter:Ne,onEdgeMouseMove:Oe,onEdgeMouseLeave:Re,onEdgeUpdate:Te,onEdgeUpdateStart:Me,onEdgeUpdateEnd:Pe,onReconnect:De,onReconnectStart:Be,onReconnectEnd:je,reconnectRadius:Fe=10,edgeUpdaterRadius:Le=10,onNodesChange:Ve,onEdgesChange:ze,noDragClassName:Ge="nodrag",noWheelClassName:He="nowheel",noPanClassName:We="nopan",fitView:Xe=!1,fitViewOptions:Ze,connectOnClick:$e=!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,...js},ref:ct,className:ie(["react-flow",i]),"data-testid":"rf__wrapper",id:at},t.createElement(Rs,null,t.createElement(Is,{onInit:u,onMove:d,onMoveStart:p,onMoveEnd:f,onNodeClick:l,onEdgeClick:c,onNodeMouseEnter:v,onNodeMouseMove:w,onNodeMouseLeave:x,onNodeContextMenu:C,onNodeDoubleClick:E,nodeTypes:a,edgeTypes:s,connectionLineType:j,connectionLineStyle:F,connectionLineComponent:L,connectionLineContainerStyle:V,selectionKeyCode:G,selectionOnDrag:H,selectionMode:W,deleteKeyCode:z,multiSelectionKeyCode:Z,panActivationKeyCode:X,zoomActivationKeyCode:$,onlyRenderVisibleElements:J,selectNodesOnDrag:K,defaultViewport:ae,translateExtent:ce,minZoom:se,maxZoom:le,preventScrolling:ue,zoomOnScroll:fe,zoomOnPinch:he,zoomOnDoubleClick:be,panOnScroll:me,panOnScrollSpeed:ge,panOnScrollMode:ye,panOnDrag:ve,onPaneClick:we,onPaneMouseEnter:xe,onPaneMouseMove:Ce,onPaneMouseLeave:Ee,onPaneScroll:ke,onPaneContextMenu:Se,onSelectionContextMenu:M,onSelectionStart:P,onSelectionEnd:D,onEdgeContextMenu:_e,onEdgeDoubleClick:Ae,onEdgeMouseEnter:Ne,onEdgeMouseMove:Oe,onEdgeMouseLeave:Re,onReconnect:De??Te,onReconnectStart:Be??Me,onReconnectEnd:je??Pe,reconnectRadius:Fe??Le,defaultMarkerColor:pe,noDragClassName:Ge,noWheelClassName:He,noPanClassName:We,elevateEdgesOnSelect:Qe,rfId:ut,disableKeyboardA11y:qe,nodeOrigin:te,nodeExtent:de}),t.createElement(Wi,{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:Ve,onEdgesChange:ze,snapToGrid:Y,snapGrid:U,connectionMode:B,translateExtent:ce,connectOnClick:$e,defaultEdgeOptions:Je,fitView:Xe,fitViewOptions:Ze,onNodesDelete:_,onEdgesDelete:A,onNodeDragStart:k,onNodeDrag:S,onNodeDragStop:I,onSelectionDrag:R,onSelectionDragStart:O,onSelectionDragStop:T,noPanClassName:We,nodeOrigin:te,rfId:ut,autoPanOnConnect:et,autoPanOnNodeDrag:tt,onError:ot,connectionRadius:nt,isValidConnection:rt,nodeDragThreshold:st}),t.createElement(Vi,{onSelectionChange:N}),Ie,t.createElement(fo,{proOptions:Ue,position:Ye}),t.createElement(Ki,{rfId:ut,disableKeyboardA11y:qe})))}));Fs.displayName="ReactFlow";const Ls=e=>e.getNodes();const Vs=e=>e.edges;const zs=({id:e,x:n,y:r,width:o,height:i,style:a,color:s,strokeColor:l,strokeWidth:c,className:u,borderRadius:d,shapeRendering:p,onClick:f,selected:h})=>{const{background:m,backgroundColor:g}=a||{},y=s||m||g;return t.createElement("rect",{className:ie(["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:p,onClick:f?t=>f(t,e):void 0})};zs.displayName="MiniMapNode";var Gs=r(zs);const Hs=e=>e.nodeOrigin,Ws=e=>e.getNodes().filter((e=>!e.hidden&&e.width&&e.height)),Xs=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=Gs,onClick:s}){const l=lo(Ws,de),c=lo(Hs),u=Xs(n),d=Xs(e),p=Xs(r),f="undefined"==typeof window||window.chrome?"crispEdges":"geometricPrecision";return t.createElement(t.Fragment,null,l.map((e=>{const{x:n,y:r}=ui(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:p(e),color:u(e),borderRadius:o,strokeColor:d(e),strokeWidth:i,shapeRendering:f,onClick:s,id:e.id})})))}));const $s=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=di(t,e.nodeOrigin),o=n,Eo(xo(Co(r),Co(o)))):n,rfId:e.rfId};var r,o};function Ys({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:p="none",maskStrokeWidth:f=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 E=co(),k=u(null),{boundingRect:S,viewBB:I,rfId:_}=lo($s,de),A=e?.width??200,N=e?.height??150,O=S.width/A,R=S.height/N,T=Math.max(O,R),M=T*A,P=T*N,D=C*T,B=S.x-(M-S.width)/2-D,j=S.y-(P-S.height)/2-D,F=M+2*D,L=P+2*D,V=`react-flow__minimap-desc-${_}`,z=u(0);z.current=T,s((()=>{if(k.current){const e=Nt(k.current),t=e=>{const{transform:t,d3Selection:n,d3Zoom:r}=E.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}=E.getState();if("mousemove"!==e.sourceEvent.type||!n||!r)return;const s=z.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=Lr.translate(l.x,l.y).scale(t[2]),d=r.constrain()(u,c,o);r.transform(n,d)},r=Yr().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=Ot(e);m(e,{x:t[0],y:t[1]})}:void 0,H=g?(e,t)=>{const n=E.getState().nodeInternals.get(t);g(e,n)}:void 0;return t.createElement(po,{position:h,style:e,className:ie(["react-flow__minimap",n]),"data-testid":"rf__minimap"},t.createElement("svg",{width:A,height:N,viewBox:`${B} ${j} ${F} ${L}`,role:"img","aria-labelledby":V,ref:k,onClick:G},v&&t.createElement("title",{id:V},v),t.createElement(Zs,{onClick:H,nodeColor:o,nodeStrokeColor:r,nodeBorderRadius:a,nodeClassName:i,nodeStrokeWidth:l,nodeComponent:c}),t.createElement("path",{className:"react-flow__minimap-mask",d:`M${B-D},${j-D}h${F+2*D}v${L+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:p,strokeWidth:f,pointerEvents:"none"})))}Ys.displayName="MiniMap";var Us,Js=r(Ys);function Ks({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"}(Us||(Us={}));const qs={[Us.Dots]:"#91919a",[Us.Lines]:"#eee",[Us.Cross]:"#e2e2e2"},el={[Us.Dots]:1,[Us.Lines]:1,[Us.Cross]:6},tl=e=>({transform:e.transform,patternId:`pattern-${e.rfId}`});function nl({id:e,variant:n=Us.Dots,gap:r=20,size:o,lineWidth:i=1,offset:a=2,color:s,style:l,className:c}){const d=u(null),{transform:p,patternId:f}=lo(tl,de),h=s||qs[n],m=o||el[n],g=n===Us.Dots,y=n===Us.Cross,b=Array.isArray(r)?r:[r,r],v=[b[0]*p[2]||1,b[1]*p[2]||1],w=m*p[2],x=y?[w,w]:v,C=g?[w/a,w/a]:[x[0]/a,x[1]/a];return t.createElement("svg",{className:ie(["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:f+e,x:p[0]%v[0],y:p[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(Ks,{dimensions:x,color:h,lineWidth:i})),t.createElement("rect",{x:"0",y:"0",width:"100%",height:"100%",fill:`url(#${f+e})`}))}nl.displayName="Background";var rl=r(nl);const ol=({src_nid:e,src_ioid:t,trg_nid:n,trg_ioid:r})=>[`${e}:${t}`,`${n}:${r}`].sort().join("--"),il=0,al=10,sl=20,ll=30,cl=al,ul=e=>"string"==typeof e?e:e===il?"DEBUG":e===al?"INFO":e===sl?"WARN":e===ll?"ERROR":"UNKNOWN";class dl{constructor(e,t=al){this.name=e,this.level=(e=>{if("number"==typeof e)return e;const t=e.toLowerCase();if("debug"===t)return il;if("info"===t)return al;if("warn"===t||"warning"===t)return sl;if("error"===t)return ll;throw new Error(`Unknown log level: ${e}`)})(t),this._level_name=ul(t)}set_level(e){this.level=e,this._level_name=ul(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<=il&&console.debug(this._fomat_message(e,...t))}info(e,...t){this.level<=al&&console.info(this._fomat_message(e,...t))}warn(e,...t){this.level<=sl&&console.warn(this._fomat_message(e,...t))}error(e,...t){this.level<=ll&&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),fl=(e,t,n)=>{if(((e,t)=>{const n=e.frontend||{};if(n.size||(n.size=[200,100]),!n.pos||2!==n.pos.length||isNaN(n.pos[0])||null===n.pos[0]||isNaN(n.pos[1])||null===n.pos[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.pos=[i.x-n.size[0]/2,i.y-n.size[1]/2]}else n.pos=[0,0];n.collapsed||(n.collapsed=!1),e.frontend=n})(e,n),void 0===(e=re(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.frontend.pos[0],y:e.frontend.pos[1]},data:{UseNodeStore:t},type:"default",...e}},hl=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)=>re(oe(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,fl(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})}}},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;oe(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)}}fl(r,t,s),s.logger.debug("update_action",r),t.setState(re(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:ka(n,t().nodes)}),r(n)},onEdgesChange:n=>{e({edges:Sa(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:{frontend:{pos:[t.position.x,t.position.y]}},from_remote:!1});break;case"dimensions":t.dimensions&&r({type:"update",id:t.id,node:{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:{expand_node_props:!1},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:[]}))),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=ol(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=ol(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()},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 dl("fn",cl)};return s};function ml(e,t){return function(){return e.apply(t,arguments)}}const{toString:gl}=Object.prototype,{getPrototypeOf:yl}=Object,bl=(e=>t=>{const n=gl.call(t);return e[n]||(e[n]=n.slice(8,-1).toLowerCase())})(Object.create(null)),vl=e=>(e=e.toLowerCase(),t=>bl(t)===e),wl=e=>t=>typeof t===e,{isArray:xl}=Array,Cl=wl("undefined");const El=vl("ArrayBuffer");const kl=wl("string"),Sl=wl("function"),Il=wl("number"),_l=e=>null!==e&&"object"==typeof e,Al=e=>{if("object"!==bl(e))return!1;const t=yl(e);return!(null!==t&&t!==Object.prototype&&null!==Object.getPrototypeOf(t)||Symbol.toStringTag in e||Symbol.iterator in e)},Nl=vl("Date"),Ol=vl("File"),Rl=vl("Blob"),Tl=vl("FileList"),Ml=vl("URLSearchParams"),[Pl,Dl,Bl,jl]=["ReadableStream","Request","Response","Headers"].map(vl);function Fl(e,t,{allOwnKeys:n=!1}={}){if(null==e)return;let r,o;if("object"!=typeof e&&(e=[e]),xl(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 Ll(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,zl=e=>!Cl(e)&&e!==Vl;const Gl=(Hl="undefined"!=typeof Uint8Array&&yl(Uint8Array),e=>Hl&&e instanceof Hl);var Hl;const Wl=vl("HTMLFormElement"),Xl=(({hasOwnProperty:e})=>(t,n)=>e.call(t,n))(Object.prototype),Zl=vl("RegExp"),$l=(e,t)=>{const n=Object.getOwnPropertyDescriptors(e),r={};Fl(n,((n,o)=>{let i;!1!==(i=t(n,o,e))&&(r[o]=i||n)})),Object.defineProperties(e,r)},Yl="abcdefghijklmnopqrstuvwxyz",Ul="0123456789",Jl={DIGIT:Ul,ALPHA:Yl,ALPHA_DIGIT:Yl+Yl.toUpperCase()+Ul};const Kl=vl("AsyncFunction"),Ql=(ql="function"==typeof setImmediate,ec=Sl(Vl.postMessage),ql?setImmediate:ec?((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 ql,ec;const tc="undefined"!=typeof queueMicrotask?queueMicrotask.bind(Vl):"undefined"!=typeof process&&process.nextTick||Ql;var nc={isArray:xl,isArrayBuffer:El,isBuffer:function(e){return null!==e&&!Cl(e)&&null!==e.constructor&&!Cl(e.constructor)&&Sl(e.constructor.isBuffer)&&e.constructor.isBuffer(e)},isFormData:e=>{let t;return e&&("function"==typeof FormData&&e instanceof FormData||Sl(e.append)&&("formdata"===(t=bl(e))||"object"===t&&Sl(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:kl,isNumber:Il,isBoolean:e=>!0===e||!1===e,isObject:_l,isPlainObject:Al,isReadableStream:Pl,isRequest:Dl,isResponse:Bl,isHeaders:jl,isUndefined:Cl,isDate:Nl,isFile:Ol,isBlob:Rl,isRegExp:Zl,isFunction:Sl,isStream:e=>_l(e)&&Sl(e.pipe),isURLSearchParams:Ml,isTypedArray:Gl,isFileList:Tl,forEach:Fl,merge:function e(){const{caseless:t}=zl(this)&&this||{},n={},r=(r,o)=>{const i=t&&Ll(n,o)||o;Al(n[i])&&Al(r)?n[i]=e(n[i],r):Al(r)?n[i]=e({},r):xl(r)?n[i]=r.slice():n[i]=r};for(let e=0,t=arguments.length;e<t;e++)arguments[e]&&Fl(arguments[e],r);return n},extend:(e,t,n,{allOwnKeys:r}={})=>(Fl(t,((t,r)=>{n&&Sl(t)?e[r]=ml(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&&yl(e)}while(e&&(!n||n(e,t))&&e!==Object.prototype);return t},kindOf:bl,kindOfTest:vl,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(xl(e))return e;let t=e.length;if(!Il(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:Wl,hasOwnProperty:Xl,hasOwnProp:Xl,reduceDescriptors:$l,freezeMethods:e=>{$l(e,((t,n)=>{if(Sl(e)&&-1!==["arguments","caller","callee"].indexOf(n))return!1;const r=e[n];Sl(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 xl(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:Ll,global:Vl,isContextDefined:zl,ALPHABET:Jl,generateString:(e=16,t=Jl.ALPHA_DIGIT)=>{let n="";const{length:r}=t;for(;e--;)n+=t[Math.random()*r|0];return n},isSpecCompliantForm:function(e){return!!(e&&Sl(e.append)&&"FormData"===e[Symbol.toStringTag]&&e[Symbol.iterator])},toJSONObject:e=>{const t=new Array(10),n=(e,r)=>{if(_l(e)){if(t.indexOf(e)>=0)return;if(!("toJSON"in e)){t[r]=e;const o=xl(e)?[]:{};return Fl(e,((e,t)=>{const i=n(e,r+1);!Cl(i)&&(o[t]=i)})),t[r]=void 0,o}}return e};return n(e,0)},isAsyncFn:Kl,isThenable:e=>e&&(_l(e)||Sl(e))&&Sl(e.then)&&Sl(e.catch),setImmediate:Ql,asap:tc};function rc(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)}nc.inherits(rc,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:nc.toJSONObject(this.config),code:this.code,status:this.status}}});const oc=rc.prototype,ic={};["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=>{ic[e]={value:e}})),Object.defineProperties(rc,ic),Object.defineProperty(oc,"isAxiosError",{value:!0}),rc.from=(e,t,n,r,o,i)=>{const a=Object.create(oc);return nc.toFlatObject(e,a,(function(e){return e!==Error.prototype}),(e=>"isAxiosError"!==e)),rc.call(a,e.message,t,n,r,o),a.cause=e,a.name=e.name,i&&Object.assign(a,i),a};function ac(e){return nc.isPlainObject(e)||nc.isArray(e)}function sc(e){return nc.endsWith(e,"[]")?e.slice(0,-2):e}function lc(e,t,n){return e?e.concat(t).map((function(e,t){return e=sc(e),!n&&t?"["+e+"]":e})).join(n?".":""):t}const cc=nc.toFlatObject(nc,{},null,(function(e){return/^is[A-Z]/.test(e)}));function uc(e,t,n){if(!nc.isObject(e))throw new TypeError("target must be an object");t=t||new FormData;const r=(n=nc.toFlatObject(n,{metaTokens:!0,dots:!1,indexes:!1},!1,(function(e,t){return!nc.isUndefined(t[e])}))).metaTokens,o=n.visitor||c,i=n.dots,a=n.indexes,s=(n.Blob||"undefined"!=typeof Blob&&Blob)&&nc.isSpecCompliantForm(t);if(!nc.isFunction(o))throw new TypeError("visitor must be a function");function l(e){if(null===e)return"";if(nc.isDate(e))return e.toISOString();if(!s&&nc.isBlob(e))throw new rc("Blob is not supported. Use a Buffer instead.");return nc.isArrayBuffer(e)||nc.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(nc.endsWith(n,"{}"))n=r?n:n.slice(0,-2),e=JSON.stringify(e);else if(nc.isArray(e)&&function(e){return nc.isArray(e)&&!e.some(ac)}(e)||(nc.isFileList(e)||nc.endsWith(n,"[]"))&&(s=nc.toArray(e)))return n=sc(n),s.forEach((function(e,r){!nc.isUndefined(e)&&null!==e&&t.append(!0===a?lc([n],r,i):null===a?n:n+"[]",l(e))})),!1;return!!ac(e)||(t.append(lc(o,n,i),l(e)),!1)}const u=[],d=Object.assign(cc,{defaultVisitor:c,convertValue:l,isVisitable:ac});if(!nc.isObject(e))throw new TypeError("data must be an object");return function e(n,r){if(!nc.isUndefined(n)){if(-1!==u.indexOf(n))throw Error("Circular reference detected in "+r.join("."));u.push(n),nc.forEach(n,(function(n,i){!0===(!(nc.isUndefined(n)||null===n)&&o.call(t,n,nc.isString(i)?i.trim():i,r,d))&&e(n,r?r.concat(i):[i])})),u.pop()}}(e),t}function dc(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&&uc(e,this,t)}const fc=pc.prototype;function hc(e){return encodeURIComponent(e).replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%20/g,"+").replace(/%5B/gi,"[").replace(/%5D/gi,"]")}function mc(e,t,n){if(!t)return e;const r=n&&n.encode||hc;nc.isFunction(n)&&(n={serialize:n});const o=n&&n.serialize;let i;if(i=o?o(t,n):nc.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}fc.append=function(e,t){this._pairs.push([e,t])},fc.toString=function(e){const t=e?function(t){return e.call(this,t,dc)}:dc;return this._pairs.map((function(e){return t(e[0])+"="+t(e[1])}),"").join("&")};class gc{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){nc.forEach(this.handlers,(function(t){null!==t&&e(t)}))}}var yc={silentJSONParsing:!0,forcedJSONParsing:!0,clarifyTimeoutError:!1},bc={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 vc="undefined"!=typeof window&&"undefined"!=typeof document,wc="object"==typeof navigator&&navigator||void 0,xc=vc&&(!wc||["ReactNative","NativeScript","NS"].indexOf(wc.product)<0),Cc="undefined"!=typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope&&"function"==typeof self.importScripts,Ec=vc&&window.location.href||"http://localhost";var kc={...Object.freeze({__proto__:null,hasBrowserEnv:vc,hasStandardBrowserEnv:xc,hasStandardBrowserWebWorkerEnv:Cc,navigator:wc,origin:Ec}),...bc};function Sc(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&&nc.isArray(r)?r.length:i,s)return nc.hasOwnProp(r,i)?r[i]=[r[i],n]:r[i]=n,!a;r[i]&&nc.isObject(r[i])||(r[i]=[]);return t(e,n,r[i],o)&&nc.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(nc.isFormData(e)&&nc.isFunction(e.entries)){const n={};return nc.forEachEntry(e,((e,r)=>{t(function(e){return nc.matchAll(/\w+|\[(\w*)]/g,e).map((e=>"[]"===e[0]?"":e[1]||e[0]))}(e),r,n,0)})),n}return null}const Ic={transitional:yc,adapter:["xhr","http","fetch"],transformRequest:[function(e,t){const n=t.getContentType()||"",r=n.indexOf("application/json")>-1,o=nc.isObject(e);o&&nc.isHTMLForm(e)&&(e=new FormData(e));if(nc.isFormData(e))return r?JSON.stringify(Sc(e)):e;if(nc.isArrayBuffer(e)||nc.isBuffer(e)||nc.isStream(e)||nc.isFile(e)||nc.isBlob(e)||nc.isReadableStream(e))return e;if(nc.isArrayBufferView(e))return e.buffer;if(nc.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 uc(e,new kc.classes.URLSearchParams,Object.assign({visitor:function(e,t,n,r){return kc.isNode&&nc.isBuffer(e)?(this.append(t,e.toString("base64")),!1):r.defaultVisitor.apply(this,arguments)}},t))}(e,this.formSerializer).toString();if((i=nc.isFileList(e))||n.indexOf("multipart/form-data")>-1){const t=this.env&&this.env.FormData;return uc(i?{"files[]":e}:e,t&&new t,this.formSerializer)}}return o||r?(t.setContentType("application/json",!1),function(e,t,n){if(nc.isString(e))try{return(t||JSON.parse)(e),nc.trim(e)}catch(e){if("SyntaxError"!==e.name)throw e}return(n||JSON.stringify)(e)}(e)):e}],transformResponse:[function(e){const t=this.transitional||Ic.transitional,n=t&&t.forcedJSONParsing,r="json"===this.responseType;if(nc.isResponse(e)||nc.isReadableStream(e))return e;if(e&&nc.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 rc.from(e,rc.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:kc.classes.FormData,Blob:kc.classes.Blob},validateStatus:function(e){return e>=200&&e<300},headers:{common:{Accept:"application/json, text/plain, */*","Content-Type":void 0}}};nc.forEach(["delete","get","head","post","put","patch"],(e=>{Ic.headers[e]={}}));const _c=nc.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 Ac=Symbol("internals");function Nc(e){return e&&String(e).trim().toLowerCase()}function Oc(e){return!1===e||null==e?e:nc.isArray(e)?e.map(Oc):String(e)}function Rc(e,t,n,r,o){return nc.isFunction(r)?r.call(this,t,n):(o&&(t=n),nc.isString(t)?nc.isString(r)?-1!==t.indexOf(r):nc.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=Nc(t);if(!o)throw new Error("header name must be a non-empty string");const i=nc.findKey(r,o);(!i||void 0===r[i]||!0===n||void 0===n&&!1!==r[i])&&(r[i||t]=Oc(e))}const i=(e,t)=>nc.forEach(e,((e,n)=>o(e,n,t)));if(nc.isPlainObject(e)||e instanceof this.constructor)i(e,t);else if(nc.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]&&_c[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(nc.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=Nc(e)){const n=nc.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(nc.isFunction(t))return t.call(this,e,n);if(nc.isRegExp(t))return t.exec(e);throw new TypeError("parser must be boolean|regexp|function")}}}has(e,t){if(e=Nc(e)){const n=nc.findKey(this,e);return!(!n||void 0===this[n]||t&&!Rc(0,this[n],n,t))}return!1}delete(e,t){const n=this;let r=!1;function o(e){if(e=Nc(e)){const o=nc.findKey(n,e);!o||t&&!Rc(0,n[o],o,t)||(delete n[o],r=!0)}}return nc.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&&!Rc(0,this[o],o,e,!0)||(delete this[o],r=!0)}return r}normalize(e){const t=this,n={};return nc.forEach(this,((r,o)=>{const i=nc.findKey(n,o);if(i)return t[i]=Oc(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]=Oc(r),n[a]=!0})),this}concat(...e){return this.constructor.concat(this,...e)}toJSON(e){const t=Object.create(null);return nc.forEach(this,((n,r)=>{null!=n&&!1!==n&&(t[r]=e&&nc.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[Ac]=this[Ac]={accessors:{}}).accessors,n=this.prototype;function r(e){const r=Nc(e);t[r]||(!function(e,t){const n=nc.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 nc.isArray(e)?e.forEach(r):r(e),this}};function Mc(e,t){const n=this||Ic,r=t||n,o=Tc.from(r.headers);let i=r.data;return nc.forEach(e,(function(e){i=e.call(n,i,o.normalize(),t?t.status:void 0)})),o.normalize(),i}function Pc(e){return!(!e||!e.__CANCEL__)}function Dc(e,t,n){rc.call(this,null==e?"canceled":e,rc.ERR_CANCELED,t,n),this.name="CanceledError"}function Bc(e,t,n){const r=n.config.validateStatus;n.status&&r&&!r(n.status)?t(new rc("Request failed with status code "+n.status,[rc.ERR_BAD_REQUEST,rc.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"]),nc.reduceDescriptors(Tc.prototype,(({value:e},t)=>{let n=t[0].toUpperCase()+t.slice(1);return{get:()=>e,set(e){this[n]=e}}})),nc.freezeMethods(Tc),nc.inherits(Dc,rc,{__CANCEL__:!0});const jc=(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 p=c&&l-c;return p?Math.round(1e3*d/p):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)},Fc=(e,t)=>{const n=null!=e;return[r=>t[0]({lengthComputable:n,total:e,loaded:r}),t[1]]},Lc=e=>(...t)=>nc.asap((()=>e(...t)));var Vc=kc.hasStandardBrowserEnv?((e,t)=>n=>(n=new URL(n,kc.origin),e.protocol===n.protocol&&e.host===n.host&&(t||e.port===n.port)))(new URL(kc.origin),kc.navigator&&/(msie|trident)/i.test(kc.navigator.userAgent)):()=>!0,zc=kc.hasStandardBrowserEnv?{write(e,t,n,r,o,i){const a=[e+"="+encodeURIComponent(t)];nc.isNumber(n)&&a.push("expires="+new Date(n).toGMTString()),nc.isString(r)&&a.push("path="+r),nc.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 Gc(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 Wc(e,t){t=t||{};const n={};function r(e,t,n,r){return nc.isPlainObject(e)&&nc.isPlainObject(t)?nc.merge.call({caseless:r},e,t):nc.isPlainObject(t)?nc.merge({},t):nc.isArray(t)?t.slice():t}function o(e,t,n,o){return nc.isUndefined(t)?nc.isUndefined(e)?void 0:r(void 0,e,0,o):r(e,t,0,o)}function i(e,t){if(!nc.isUndefined(t))return r(void 0,t)}function a(e,t){return nc.isUndefined(t)?nc.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 nc.forEach(Object.keys(Object.assign({},e,t)),(function(r){const i=l[r]||o,a=i(e[r],t[r],r);nc.isUndefined(a)&&i!==s||(n[r]=a)})),n}var Xc=e=>{const t=Wc({},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=mc(Gc(t.baseURL,t.url),e.params,e.paramsSerializer),l&&s.set("Authorization","Basic "+btoa((l.username||"")+":"+(l.password?unescape(encodeURIComponent(l.password)):""))),nc.isFormData(r))if(kc.hasStandardBrowserEnv||kc.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(kc.hasStandardBrowserEnv&&(o&&nc.isFunction(o)&&(o=o(t)),o||!1!==o&&Vc(t.url))){const e=i&&a&&zc.read(a);e&&s.set(i,e)}return t};var Zc="undefined"!=typeof XMLHttpRequest&&function(e){return new Promise((function(t,n){const r=Xc(e);let o=r.data;const i=Tc.from(r.headers).normalize();let a,s,l,c,u,{responseType:d,onUploadProgress:p,onDownloadProgress:f}=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());Bc((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 rc("Request aborted",rc.ECONNABORTED,e,m)),m=null)},m.onerror=function(){n(new rc("Network Error",rc.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||yc;r.timeoutErrorMessage&&(t=r.timeoutErrorMessage),n(new rc(t,o.clarifyTimeoutError?rc.ETIMEDOUT:rc.ECONNABORTED,e,m)),m=null},void 0===o&&i.setContentType(null),"setRequestHeader"in m&&nc.forEach(i.toJSON(),(function(e,t){m.setRequestHeader(t,e)})),nc.isUndefined(r.withCredentials)||(m.withCredentials=!!r.withCredentials),d&&"json"!==d&&(m.responseType=r.responseType),f&&([l,u]=jc(f,!0),m.addEventListener("progress",l)),p&&m.upload&&([s,c]=jc(p),m.upload.addEventListener("progress",s),m.upload.addEventListener("loadend",c)),(r.cancelToken||r.signal)&&(a=t=>{m&&(n(!t||t.type?new Dc(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===kc.protocols.indexOf(y)?n(new rc("Unsupported protocol "+y+":",rc.ERR_BAD_REQUEST,e)):m.send(o||null)}))};const $c=(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 rc?t:new Dc(t instanceof Error?t.message:t))}};let i=t&&setTimeout((()=>{i=null,o(new rc(`timeout ${t} of ms exceeded`,rc.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=()=>nc.asap(a),s}},Yc=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},Uc=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()}},Jc=(e,t,n,r)=>{const o=async function*(e,t){for await(const n of Uc(e))yield*Yc(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})},Kc="function"==typeof fetch&&"function"==typeof Request&&"function"==typeof Response,Qc=Kc&&"function"==typeof ReadableStream,qc=Kc&&("function"==typeof TextEncoder?(eu=new TextEncoder,e=>eu.encode(e)):async e=>new Uint8Array(await new Response(e).arrayBuffer()));var eu;const tu=(e,...t)=>{try{return!!e(...t)}catch(e){return!1}},nu=Qc&&tu((()=>{let e=!1;const t=new Request(kc.origin,{body:new ReadableStream,method:"POST",get duplex(){return e=!0,"half"}}).headers.has("Content-Type");return e&&!t})),ru=Qc&&tu((()=>nc.isReadableStream(new Response("").body))),ou={stream:ru&&(e=>e.body)};var iu;Kc&&(iu=new Response,["text","arrayBuffer","blob","formData","stream"].forEach((e=>{!ou[e]&&(ou[e]=nc.isFunction(iu[e])?t=>t[e]():(t,n)=>{throw new rc(`Response type '${e}' is not supported`,rc.ERR_NOT_SUPPORT,n)})})));const au=async(e,t)=>{const n=nc.toFiniteNumber(e.getContentLength());return null==n?(async e=>{if(null==e)return 0;if(nc.isBlob(e))return e.size;if(nc.isSpecCompliantForm(e)){const t=new Request(kc.origin,{method:"POST",body:e});return(await t.arrayBuffer()).byteLength}return nc.isArrayBufferView(e)||nc.isArrayBuffer(e)?e.byteLength:(nc.isURLSearchParams(e)&&(e+=""),nc.isString(e)?(await qc(e)).byteLength:void 0)})(t):n};var su=Kc&&(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:p}=Xc(e);c=c?(c+"").toLowerCase():"text";let f,h=$c([o,i&&i.toAbortSignal()],a);const m=h&&h.unsubscribe&&(()=>{h.unsubscribe()});let g;try{if(l&&nu&&"get"!==n&&"head"!==n&&0!==(g=await au(u,r))){let e,n=new Request(t,{method:"POST",body:r,duplex:"half"});if(nc.isFormData(r)&&(e=n.headers.get("content-type"))&&u.setContentType(e),n.body){const[e,t]=Fc(g,jc(Lc(l)));r=Jc(n.body,65536,e,t)}}nc.isString(d)||(d=d?"include":"omit");const o="credentials"in Request.prototype;f=new Request(t,{...p,signal:h,method:n.toUpperCase(),headers:u.normalize().toJSON(),body:r,duplex:"half",credentials:o?d:void 0});let i=await fetch(f);const a=ru&&("stream"===c||"response"===c);if(ru&&(s||a&&m)){const e={};["status","statusText","headers"].forEach((t=>{e[t]=i[t]}));const t=nc.toFiniteNumber(i.headers.get("content-length")),[n,r]=s&&Fc(t,jc(Lc(s),!0))||[];i=new Response(Jc(i.body,65536,n,(()=>{r&&r(),m&&m()})),e)}c=c||"text";let y=await ou[nc.findKey(ou,c)||"text"](i,e);return!a&&m&&m(),await new Promise(((t,n)=>{Bc(t,n,{data:y,headers:Tc.from(i.headers),status:i.status,statusText:i.statusText,config:e,request:f})}))}catch(t){if(m&&m(),t&&"TypeError"===t.name&&/fetch/i.test(t.message))throw Object.assign(new rc("Network Error",rc.ERR_NETWORK,e,f),{cause:t.cause||t});throw rc.from(t,t&&t.code,e,f)}});const lu={http:null,xhr:Zc,fetch:su};nc.forEach(lu,((e,t)=>{if(e){try{Object.defineProperty(e,"name",{value:t})}catch(e){}Object.defineProperty(e,"adapterName",{value:t})}}));const cu=e=>`- ${e}`,uu=e=>nc.isFunction(e)||null===e||!1===e;var du=e=>{e=nc.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,!uu(n)&&(r=lu[(t=String(n)).toLowerCase()],void 0===r))throw new rc(`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 rc("There is no suitable adapter to dispatch the request "+(t?e.length>1?"since :\n"+e.map(cu).join("\n"):" "+cu(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 Dc(null,e)}function fu(e){pu(e),e.headers=Tc.from(e.headers),e.data=Mc.call(e,e.transformRequest),-1!==["post","put","patch"].indexOf(e.method)&&e.headers.setContentType("application/x-www-form-urlencoded",!1);return du(e.adapter||Ic.adapter)(e).then((function(t){return pu(e),t.data=Mc.call(e,e.transformResponse,t),t.headers=Tc.from(t.headers),t}),(function(t){return Pc(t)||(pu(e),t&&t.response&&(t.response.data=Mc.call(e,e.transformResponse,t.response),t.response.headers=Tc.from(t.response.headers))),Promise.reject(t)}))}const hu="1.7.9",mu={};["object","boolean","number","function","string","symbol"].forEach(((e,t)=>{mu[e]=function(n){return typeof n===e||"a"+(t<1?"n ":" ")+e}}));const gu={};mu.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 rc(r(o," has been removed"+(t?" in "+t:"")),rc.ERR_DEPRECATED);return t&&!gu[o]&&(gu[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)}},mu.spelling=function(e){return(t,n)=>(console.warn(`${n} is likely a misspelling of ${e}`),!0)};var yu={assertOptions:function(e,t,n){if("object"!=typeof e)throw new rc("options must be an object",rc.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 rc("option "+i+" must be "+n,rc.ERR_BAD_OPTION_VALUE)}else if(!0!==n)throw new rc("Unknown option "+i,rc.ERR_BAD_OPTION)}},validators:mu};const bu=yu.validators;let vu=class{constructor(e){this.defaults=e,this.interceptors={request:new gc,response:new gc}}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=Wc(this.defaults,t);const{transitional:n,paramsSerializer:r,headers:o}=t;void 0!==n&&yu.assertOptions(n,{silentJSONParsing:bu.transitional(bu.boolean),forcedJSONParsing:bu.transitional(bu.boolean),clarifyTimeoutError:bu.transitional(bu.boolean)},!1),null!=r&&(nc.isFunction(r)?t.paramsSerializer={serialize:r}:yu.assertOptions(r,{encode:bu.function,serialize:bu.function},!0)),yu.assertOptions(t,{baseUrl:bu.spelling("baseURL"),withXsrfToken:bu.spelling("withXSRFToken")},!0),t.method=(t.method||this.defaults.method||"get").toLowerCase();let i=o&&nc.merge(o.common,o[t.method]);o&&nc.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=[fu.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 p=t;for(d=0;d<u;){const e=a[d++],t=a[d++];try{p=e(p)}catch(e){t.call(this,e);break}}try{c=fu.call(this,p)}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 mc(Gc((e=Wc(this.defaults,e)).baseURL,e.url),e.params,e.paramsSerializer)}};nc.forEach(["delete","get","head","options"],(function(e){vu.prototype[e]=function(t,n){return this.request(Wc(n||{},{method:e,url:t,data:(n||{}).data}))}})),nc.forEach(["post","put","patch"],(function(e){function t(t){return function(n,r,o){return this.request(Wc(o||{},{method:e,headers:t?{"Content-Type":"multipart/form-data"}:{},url:n,data:r}))}}vu.prototype[e]=t(),vu.prototype[e+"Form"]=t(!0)}));const wu={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(wu).forEach((([e,t])=>{wu[t]=e}));const xu=function e(t){const n=new vu(t),r=ml(vu.prototype.request,n);return nc.extend(r,vu.prototype,n,{allOwnKeys:!0}),nc.extend(r,n,null,{allOwnKeys:!0}),r.create=function(n){return e(Wc(t,n))},r}(Ic);xu.Axios=vu,xu.CanceledError=Dc,xu.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 Dc(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}}},xu.isCancel=Pc,xu.VERSION=hu,xu.toFormData=uc,xu.AxiosError=rc,xu.Cancel=xu.CanceledError,xu.all=function(e){return Promise.all(e)},xu.spread=function(e){return function(t){return e.apply(null,t)}},xu.isAxiosError=function(e){return nc.isObject(e)&&!0===e.isAxiosError},xu.mergeConfig=Wc,xu.AxiosHeaders=Tc,xu.formToJSON=e=>Sc(nc.isHTMLForm(e)?new FormData(e):e),xu.getAdapter=du,xu.HttpStatusCode=wu,xu.default=xu;const{Axios:Cu,AxiosError:Eu,CanceledError:ku,isCancel:Su,CancelToken:Iu,VERSION:_u,all:Au,Cancel:Nu,isAxiosError:Ou,spread:Ru,toFormData:Tu,AxiosHeaders:Mu,HttpStatusCode:Pu,formToJSON:Du,getAdapter:Bu,mergeConfig:ju}=xu;let Fu;const Lu=new Uint8Array(16);function Vu(){if(!Fu&&(Fu="undefined"!=typeof crypto&&crypto.getRandomValues&&crypto.getRandomValues.bind(crypto),!Fu))throw new Error("crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported");return Fu(Lu)}const zu=[];for(let e=0;e<256;++e)zu.push((e+256).toString(16).slice(1));var Gu={randomUUID:"undefined"!=typeof crypto&&crypto.randomUUID&&crypto.randomUUID.bind(crypto)};function Hu(e,t,n){if(Gu.randomUUID&&!e)return Gu.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 zu[e[t+0]]+zu[e[t+1]]+zu[e[t+2]]+zu[e[t+3]]+"-"+zu[e[t+4]]+zu[e[t+5]]+"-"+zu[e[t+6]]+zu[e[t+7]]+"-"+zu[e[t+8]]+zu[e[t+9]]+"-"+zu[e[t+10]]+zu[e[t+11]]+zu[e[t+12]]+zu[e[t+13]]+zu[e[t+14]]+zu[e[t+15]]}(r)}class Wu{constructor(e){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())}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=t[e];this._zustand.on_node_action({type:"update",node:{frontend: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]&&(n.frontend=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 _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();default:console.warn("Unhandled worker event",e,t)}}async receive_nodespace_event({event:e,data:t}){switch(e){case"after_set_value":if(!this._zustand)return;return this._zustand.on_node_action({type:"update",node:{id:t.node,io:{[t.io]:{value:t.result}}},id:t.node,from_remote:!0});case"after_update_value_options":if(!this._zustand)return;return this._zustand.on_node_action({type:"update",node:{id:t.node,io:{[t.io]:{value_options:t.result}}},id:t.node,from_remote:!0});case"triggerstart":if(!this._zustand)return;return this._zustand.on_node_action({type:"update",node:{id:t.node,in_trigger:!0},id:t.node,from_remote:!0});case"triggerdone":if(!this._zustand)return;return this._zustand.on_node_action({type:"update",node:{id:t.node,in_trigger:!1},id:t.node,from_remote:!0});case"node_trigger_error":if(!this._zustand)return;return this._zustand.on_node_action({type:"error",errortype:"trigger",error:t.error,id:t.node,tb:t.tb,from_remote:!0});case"node_removed":if(!this._zustand)return;return this._zustand.on_node_action({type:"delete",id:t.node,from_remote:!0});case"node_added":return this._receive_node_added(t.node);case"after_disconnect":case"after_unforward":if(!t.result)return;if(!Array.isArray(t.result))return;if(4!==t.result.length)return;if(!this._zustand)return;return this._zustand.on_edge_action({type:"delete",from_remote:!0,src_nid:t.result[0],src_ioid:t.result[1],trg_nid:t.result[2],trg_ioid:t.result[3]});case"after_connect":case"after_forward":if(!t.result)return;if(!Array.isArray(t.result))return;if(4!==t.result.length)return;return this._receive_edge_added(...t.result);case"after_add_shelf":case"after_remove_shelf":if(!t.result)return;if(!this._zustand)return;return this._zustand.lib.libstate.getState().set({lib:t.result});case"progress":if(!this._zustand)return;if(t.node)return this._zustand.on_node_action({type:"update",node:{id:t.node,progress:t.info},id:t.node,from_remote:!0});console.warn("Unhandled nodepsace event",e,t);break;default:console.warn("Unhandled nodepsace event",e,t)}}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 Xu extends Wu{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 xu.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 Xu({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 $u(e,t,{checkForDefaultPrevented:n=!0}={}){return function(r){if(e?.(r),!1===n||!r.defaultPrevented)return t?.(r)}}function Yu(e,t){if("function"==typeof e)return e(t);null!=e&&(e.current=t)}function Uu(...e){return t=>{let n=!1;const r=e.map((e=>{const r=Yu(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():Yu(e[t],null)}}}}function Ju(...t){return e.useCallback(Uu(...t),t)}var Ku,Qu={exports:{}},qu={};var ed,td,nd={};
|
|
29
29
|
/**
|
|
30
30
|
* @license React
|
|
31
31
|
* react-jsx-runtime.development.js
|
|
@@ -142,5 +142,5 @@ function(e,t){const n=Ry(e,t);return"production"!==process.env.NODE_ENV?(...t)=>
|
|
|
142
142
|
* content-type
|
|
143
143
|
* Copyright(c) 2015 Douglas Christopher Wilson
|
|
144
144
|
* MIT Licensed
|
|
145
|
-
*/var Cj=function(){if(wj)return xj;wj=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 xj.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},xj.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},xj}(),Ej=new Map,kj=function(e){return e.cloneNode(!0)},Sj=function(){return"file:"===window.location.protocol},Ij=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=Cj.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(Sj()?"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||Sj()&&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()},_j={},Aj=function(e,t){_j[e]=_j[e]||[],_j[e].push(t)},Nj=function(e,t,n){if(Ej.has(e)){var r=Ej.get(e);if(void 0===r)return void Aj(e,n);if(r instanceof SVGSVGElement)return void n(null,kj(r))}Ej.set(e,void 0),Aj(e,n),Ij(e,t,(function(t,n){var r;t?Ej.set(e,t):(null===(r=n.responseXML)||void 0===r?void 0:r.documentElement)instanceof SVGSVGElement&&Ej.set(e,n.responseXML.documentElement),function(e){for(var t=function(t,n){setTimeout((function(){if(Array.isArray(_j[e])){var n=Ej.get(e),r=_j[e][t];n instanceof SVGSVGElement&&r(null,kj(n)),n instanceof Error&&r(n),t===_j[e].length-1&&delete _j[e]}}),0)},n=0,r=_j[e].length;n<r;n++)t(n)}(e)}))},Oj=function(e,t,n){Ij(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)}))},Rj=0,Tj=[],Mj={},Pj="http://www.w3.org/1999/xlink",Dj=function(e,t,n,r,o,i,a){var s=e.getAttribute("data-src")||e.getAttribute("src");if(s){if(-1!==Tj.indexOf(e))return Tj.splice(Tj.indexOf(e),1),void(e=null);Tj.push(e),e.setAttribute("src",""),(r?Nj:Oj)(s,o,(function(r,o){if(!o)return Tj.splice(Tj.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 p=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",p);var f=e.getAttribute("style");f&&o.setAttribute("style",f),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+"-"+ ++Rj,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(Pj,"href");l&&l.toString()==="#"+g[e].id&&i.push(r[a])}for(var c=0,u=i.length;c<u;c++)i[c].setAttributeNS(Pj,"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,E=o.querySelectorAll("script"),k=[],S=0,I=E.length;S<I;S++)(C=E[S].getAttribute("type"))&&"application/ecmascript"!==C&&"application/javascript"!==C&&"text/javascript"!==C||((x=E[S].innerText||E[S].textContent)&&k.push(x),o.removeChild(E[S]));if(k.length>0&&("always"===t||"once"===t&&!Mj[s])){for(var _=0,A=k.length;_<A;_++)new Function(k[_])(window);Mj[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",Pj),i(o),!e.parentNode)return Tj.splice(Tj.indexOf(e),1),e=null,void a(new Error("Parent node is null"));e.parentNode.replaceChild(o,e),Tj.splice(Tj.indexOf(e),1),e=null,a(null,o)}))}else a(new Error("Invalid data-src or src attribute"))},Bj=["afterInjection","beforeInjection","desc","evalScripts","fallback","httpRequestWithCredentials","loading","renumerateIRIElements","src","title","useRequestCache","wrapper"],jj="http://www.w3.org/2000/svg",Fj="http://www.w3.org/1999/xlink",Lj=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}jw(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,p=this.props.beforeInjection,f=this.props.afterInjection,h=this.props.wrapper;"svg"===h?((t=document.createElementNS(jj,h)).setAttribute("xmlns",jj),t.setAttribute("xmlns:xlink",Fj),n=document.createElementNS(jj,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,p=void 0===d?"never":d,f=n.httpRequestWithCredentials,h=void 0!==f&&f,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++)Dj(e[b],p,g,u,h,l,(function(t,n){a(t,n),e&&"length"in e&&e.length===++y&&o(y)}));else e?Dj(e,p,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{f(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{p(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})(Xm({},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=Dw(t,Bj),a=o;return e.createElement(a,Xm({},i,{ref:this.refCallback},"svg"===o?{xmlns:jj,xmlnsXlink:Fj}:{}),this.state.isLoading&&r&&e.createElement(r,null),this.state.hasError&&n&&e.createElement(n,null))},n}(e.Component);Lj.defaultProps={afterInjection:function(){},beforeInjection:function(){},desc:"",evalScripts:"never",fallback:null,httpRequestWithCredentials:!1,loading:null,onError:function(){},renumerateIRIElements:!0,title:"",useRequestCache:!0,wrapper:"div"},Lj.propTypes={afterInjection:fh.func,beforeInjection:fh.func,desc:fh.string,evalScripts:fh.oneOf(["always","once","never"]),fallback:fh.oneOfType([fh.func,fh.object,fh.string]),httpRequestWithCredentials:fh.bool,loading:fh.oneOfType([fh.func,fh.object,fh.string]),onError:fh.func,renumerateIRIElements:fh.bool,src:fh.string.isRequired,title:fh.string,useRequestCache:fh.bool,wrapper:fh.oneOf(["div","span","svg"])};const Vj=({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%"}})),zj=({value:t})=>e.createElement(Lj,{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%")}}),Gj=({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,")"))},Hj=({io:t})=>{let n=t.fullvalue;return void 0===n&&(n=t.value),void 0===n&&(n={}),e.createElement(bj,{data:n})},Wj={float:({io:e,inputconverter:t})=>UB({io:e,inputconverter:t,parser:parseFloat}),int:({io:e,inputconverter:t})=>UB({io:e,inputconverter:t,parser:parseInt}),bool:({io:t,inputconverter:n})=>{const r=o(RF),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:JB,str:JB,color:({io:t})=>{const n=o(RF),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(UM,{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:tj,enum:tj,bytes:Gj},Xj={Inputrenderer:Wj,Outputrenderer:{},HandlePreviewRenderer:{bytes:Gj},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(vj,{tabledata:n})},image:({io:t})=>{let n=t.fullvalue;return null==n&&(n=t.value),void 0===n&&(n=""),e.createElement(Vj,{value:n})},svg:({io:t})=>{let n=t.fullvalue;return null==n&&(n=t.value),void 0===n&&(n=""),e.createElement(zj,{value:n})},dict:Hj,bytes:Gj},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)})`}}},Zj=(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}},$j=({children:t,plugins:n,fnrf_zst:r})=>{const[o,i]=v(Zj,Xj),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(Yj.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)},Yj=i({Inputrenderer:Xj.Inputrenderer,Outputrenderer:Xj.Outputrenderer,HandlePreviewRenderer:Xj.HandlePreviewRenderer,DataOverlayRenderer:Xj.DataOverlayRenderer,DataPreviewViewRenderer:Xj.DataPreviewViewRenderer,DataViewRenderer:Xj.DataViewRenderer,InLineRenderer:Xj.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)=>{}}),Uj=({component:t,...n})=>e.createElement(t,{...n}),Jj=e=>{const t=o(RF).render_options(),[n]=Kj(e.type,t.typemap||{});if(!n)return Hj;const{DataOverlayRenderer:r,DataPreviewViewRenderer:i}=o(Yj);return r[n]?r[n]:i[n]?i[n]:Hj},Kj=(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=>Kj(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]},Qj=({io:t,typestring:n,preview:r,...i})=>{const[a,s]=c(!1),[l,u]=c(!1),[d,p]=t?(e=>{const t=o(RF).render_options(),[n]=Kj(e.type,t.typemap||{}),{HandlePreviewRenderer:r,DataPreviewViewRenderer:i}=o(Yj),a=Jj(e);return n?r[n]?[r[n],a]:i[n]?[i[n],a]:[Hj,a]:[Hj,a]})(t):[void 0,void 0];return e.createElement(oM,null,e.createElement(iM,{open:a||l,onOpenChange:u},e.createElement(aM,{asChild:!0},e.createElement(_i,{id:t.id,...i})),e.createElement(sM,null,e.createElement(lM,{className:"iotooltipcontent",sideOffset:5},e.createElement("div",{className:"iotooltip_container"},e.createElement("div",{className:"iotooltip_header"},a?e.createElement(ew,{onClick:()=>s(!1)}):e.createElement(qv,{onClick:()=>s(!0)}),p&&e.createElement(gx,{title:t.full_id,trigger:e.createElement(tw,null),onOpenChange:e=>{e&&t.try_get_full_value&&t.try_get_full_value(),s(e)}},e.createElement(Uj,{component:p,io:t}))),d?e.createElement(Uj,{component:d,io:t}):`no preview available for "${n}"`),e.createElement(cM,{className:"iotooltipcontentarrow"})))))},qj={"":[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)]},eF=({io:t})=>{const n=o(RF).render_options(),[r,i]=Kj(t.render_options.type,n.typemap||{}),{Inputrenderer:a}=o(Yj),s=r?t.value_options?.options?tj:a[r]:void 0,l=qj[(i&&n.inputconverter?.[i])??""];return e.createElement("div",{className:"nodeinput"},e.createElement(Qj,{io:t,typestring:r,position:Ho.Left,type:"target"}),s&&e.createElement("div",{className:"iovaluefield nodrag"},e.createElement(s,{io:t,inputconverter:l})),e.createElement("div",{className:"ioname"},t.name),e.createElement(Qj,{io:t,typestring:r,position:Ho.Right,type:"source"}))},tF=({io:t,typestring:n})=>{const{InLineRenderer:r}=o(Yj);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)},nF=({io:t})=>{const n=o(RF).render_options(),[r]=Kj(t.type,n.typemap||{}),{Outputrenderer:i}=o(Yj),a=r?i[r]:void 0;return e.createElement("div",{className:"nodeoutput"},e.createElement(Qj,{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(tF,{io:t,typestring:r})))};function rF(e){return`${Math.floor(e/60)}:${Math.floor(e%60).toString().padStart(2,"0")}`}function oF(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 iF=({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,p=t,f=l;r&&!0!==r&&1!==r&&(null!==t&&(p=t*r),d=n*r,void 0!==l&&(f=l*r));const h=rF(o);void 0===f&&o>0&&(f=(d-u)/o);const m=f?1/f:void 0,[g,y]=f?oF(f,a):[void 0,""],[b,v]=m?oF(m,1e3):[void 0,""],w=m&&m>1?b?`${b}${v}s/`+i:"?":(g||"?")+`${y}${i}/s`,x=r?oF(d,a).join(""):d.toString(),C=r&&null!==p?oF(p,a).join(""):p?.toString()??"?",E=f?rF(f&&null!==p?(p-d)/f:0):"?",k=s?`${s}: `:"";if(null!==t){const e=` ${x}/${C} [${h} < ${E}, ${w}${c??""}]`;return`${k}${(d/t*100).toFixed(0)}%${e}`}return`${k}${x}${i} [${h}, ${w}${c??""}]`}(t))))},aF=({node_data:t})=>{const n=o(RF);return e.createElement("div",{className:"nodeheader",title:t.description||t.node_name},e.createElement("div",{className:"nodeheader_element"},e.createElement(ow,{fontSize:"inherit",className:"triggerbutton",onClick:()=>{n.on_node_action({type:"trigger",from_remote:!1,id:t.id})}}),e.createElement(rw,{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(nw,{fontSize:"inherit"})))},sF=({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(RF).render_options(),[n]=Kj(e.type,t.typemap||{}),r=Jj(e),{DataPreviewViewRenderer:i,DataViewRenderer:a}=o(Yj);return n?a[n]?[a[n],r]:i[n]?[i[n],r]:[Hj,r]:[Hj,r]})(n):[void 0,void 0];return e.createElement("div",{className:"nodrag nodedatabody"},r&&n&&e.createElement(gx,{title:n.full_id,trigger:e.createElement("div",null,e.createElement(Uj,{component:r,io:n})),onOpenChange:e=>{e&&n?.try_get_full_value&&n?.try_get_full_value()}},e.createElement(Uj,{component:i,io:n})))},lF=({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(nF,{key:t.id,io:t}))),e.createElement(sF,{node_data:t}),n.map((t=>t.hidden?null:e.createElement(eF,{key:t.id,io:t}))))},cF=({node_data:t})=>{const[n,r]=c(t.name);s((()=>{r(t.name)}),[t]);const i=o(RF);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}})}})},uF=({node_data:t})=>t.progress?e.createElement(iF,{style:{height:"idle"===t.progress.prefix?"0px":void 0},state:t.progress,className:"nodeprogress"}):null,dF=({node_data:t})=>e.createElement("div",{className:"nodefooter"},t.error&&e.createElement("div",{className:"nodeerror"},t.error),e.createElement(uF,{node_data:t})),pF=({io:t})=>{const n=e.useContext(RF).render_options(),[r,o]=Kj(t.render_options.type,n.typemap||{}),{Inputrenderer:i}=e.useContext(Yj),a=r?t.value_options?.options?tj:i[r]:void 0,s=qj[(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}))))},fF=({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})))),hF=({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",null,e.createElement("div",{className:"nodesettings_section"},e.createElement("div",{className:"nodesettings_component"},e.createElement("div",null,"Name"),e.createElement("div",null,e.createElement(cF,{node_data:n})))),e.createElement("div",{className:"nodesettings_section"},e.createElement("div",null,"Inputs"),r.map((t=>e.createElement(pF,{io:t,key:t.id})))),e.createElement("div",{className:"nodesettings_section"},e.createElement("div",null,"Outputs"),o.map((t=>e.createElement(fF,{io:t,key:t.id})))))},mF=()=>{const t=e.useContext(RF),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(hF,{nodestore:r}):e.createElement("div",null,"Node not found")},gF=()=>{const t=e.useContext(RF),n=t.local_settings((e=>e.view_settings.expand_node_props)),r=t.local_settings((e=>e.update_view_settings)),o=e=>{r({expand_node_props:e})};return e.createElement("div",{className:"nodesettings_container"},e.createElement("div",{className:"nodesettings_expander"},n?e.createElement(Qv,{onClick:()=>{o(!1)}}):e.createElement(iw,{onClick:()=>{o(!0)}})),e.createElement("div",{className:"nodesettings_content "+(n?"expanded":"collapsed")},n&&e.createElement(mF,null)))},yF=e=>({nodes:e.nodes,edges:e.edges,onNodesChange:e.onNodesChange,onEdgesChange:e.onEdgesChange,onConnect:e.onConnect}),bF={default:({data:t})=>{const n=t.UseNodeStore(),r=n.frontend.collapsed||!1,[o,i]=c(!1);return s((()=>{let e;return n.in_trigger?i(!0):o&&(e=setTimeout((()=>i(!1)),200)),()=>clearTimeout(e)}),[n.in_trigger,o]),e.createElement(e.Fragment,null,e.createElement("div",{className:"innernode"+(o?" intrigger":"")+(n.error?" error":"")},e.createElement(aF,{node_data:n}),e.createElement(cF,{node_data:n}),r?null:e.createElement(lF,{node_data:n}),e.createElement(dF,{node_data:n})))}},vF={default:({id:t,sourceX:n,sourceY:r,targetX:o,targetY:i,sourcePosition:a,targetPosition:s,data:l,...c})=>{const[u]=ni({sourceX:n,sourceY:r,sourcePosition:a,targetX:o,targetY:i,targetPosition:s});return e.createElement(e.Fragment,null,e.createElement(Po,{id:t,path:u,...c}))}},wF=()=>{const t=da();return o(RF).rf_instance=t,e.createElement(e.Fragment,null)},xF=()=>{const t=o(RF),n=Qi("Delete"),r=lo(Vs,de),i=lo(Ls,de);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)},CF=({id:t,top:n,left:r,right:i,bottom:a,...s})=>{const{getNode:c,setNodes:u,addNodes:d,setEdges:p}=da(),f=o(RF),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((()=>{f.on_node_action({type:"delete",id:t,from_remote:!1})}),[t,u,p]),g=f.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"))},EF=t=>{const n=o(RF),r=u(null);s((()=>{n.reactflowRef=r.current}),[r]);const[i,a]=c(null),d=l((()=>a(null)),[a]),{nodes:p,edges:f,onNodesChange:h,onEdgesChange:m,onConnect:g}=n.useReactFlowStore(AT(yF));return e.createElement("div",{className:"reactflowlayer"},e.createElement(Fs,{nodes:p,edges:f,onNodesChange:h,onEdgesChange:m,onConnect:g,nodeTypes:bF,edgeTypes:vF,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(wF,null),e.createElement(xF,null),e.createElement(rl,{color:"#888",gap:16,size:1}),t.minimap&&e.createElement(Js,{nodeStrokeWidth:3,pannable:!t.static,zoomable:!t.static,zoomStep:3}),i&&e.createElement(CF,{onClick:d,...i})))},kF=i(void 0),SF=n(((t,n)=>{const{asChild:r,children:o,className:i,style:a,...s}=t,[l,d]=c(!1),p=u(null),[f,h]=c(null),[m,g]=c({}),y=t.htime||300,b=t.vtime||300,v=t.hdelay||0,C=t.vdelay||200;w(n,(()=>p.current),[]);let E;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};E=e.cloneElement(t,{ref:p,className:n,style:r,...s})}else E=e.createElement("div",{ref:p,...s,className:`smooth-expand ${l?"smooth-expand-expanded":""} ${i||""}`,style:{...a,...m}},o);const k=e.createElement(kF.Provider,{value:{isExpanded:l,toggleExpand:async()=>{p.current&&(l?await(async()=>{if(!p.current)return;if(!f)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]=f,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]),p.current.style.transition="",g({}),d(!1)})():await(async()=>{if(!p.current)return;p.current.style.transition="none",p.current.style.position="",p.current.style.top="",p.current.style.left="",p.current.style.width="",p.current.style.height="";const e=p.current.getBoundingClientRect();h([e.left,e.top,e.width,e.height]),p.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])})())}}},E);return l?x.createPortal(k,document.body):k}));SF.Trigger=function({children:t}){const n=o(kF);if(!n)throw new Error("SmoothExpandComponent.Trigger must be used within a SmoothExpandComponent");return e.createElement("div",{style:{cursor:"pointer"},onClick:n.toggleExpand},t)},SF.Expanded=function({children:t}){const n=o(kF);if(!n)throw new Error("SmoothExpandComponent.Expanded must be used within a SmoothExpandComponent");return n.isExpanded?e.createElement(e.Fragment,null,t):null},SF.Collapsed=function({children:t}){const n=o(kF);if(!n)throw new Error("SmoothExpandComponent.Collapsed must be used within a SmoothExpandComponent");return n.isExpanded?null:e.createElement(e.Fragment,null,t)};const IF=e.createContext(void 0),_F=n(((t,n)=>{const{asChild:r,children:o,className:i,style:a,...d}=t,p=u(null);w(n,(()=>p.current),[]);const[f,h]=c(!1),m=l((async()=>{try{const e=p.current;if(!e)return;if(f){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)}}),[f]);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:p,className:n,style:r,...d})}else g=e.createElement("div",{ref:p,...d,className:i,style:a},o);return e.createElement(IF.Provider,{value:{isFullScreen:f,toggleFullscreen:m}},g)}));_F.Trigger=function({children:t}){const n=e.useContext(IF);if(!n)throw new Error("FullScreenComponent.Trigger must be used within a FullScreenComponent");return e.createElement("div",{style:{cursor:"pointer"},onClick:n.toggleFullscreen},t)},_F.InFullScreen=function({children:t}){const n=e.useContext(IF);if(!n)throw new Error("FullScreenComponent.Expanded must be used within a FullScreenComponent");return n.isFullScreen?e.createElement(e.Fragment,null,t):null},_F.OutFullScreen=function({children:t}){const n=e.useContext(IF);if(!n)throw new Error("FullScreenComponent.Collapsed must be used within a FullScreenComponent");return n.isFullScreen?null:e.createElement(e.Fragment,null,t)};const AF=({fnrf_zst:t,header:n,flow:r,library:o})=>{const[i,a]=c(t.options.worker);t.workermanager&&(t.workermanager.on_setWorker=a),t.set_worker(i),t.auto_progress();const s=t.plugins();return e.createElement($j,{plugins:s,fnrf_zst:t},e.createElement(RF.Provider,{value:t},e.createElement(SF,{asChild:!0},e.createElement(_F,{asChild:!0},e.createElement("div",{className:"funcnodesreactflowcontainer funcnodescontainer"},n.show&&e.createElement(HS,{...n}),e.createElement("div",{className:"funcnodesreactflowbody"},i&&o.show&&e.createElement(IT,null),e.createElement(EF,{...r}),i&&e.createElement(gF,null)),e.createElement("div",{className:"funcnodesflaotingmenu"},e.createElement(_F.OutFullScreen,null,r.allowExpand&&e.createElement(SF.Trigger,null,e.createElement(SF.Expanded,null,e.createElement(hx,null)),e.createElement(SF.Collapsed,null,e.createElement(mx,null)))),r.allowFullScreen&&e.createElement(_F.Trigger,null,e.createElement(_F.OutFullScreen,null,e.createElement(tw,null)),e.createElement(_F.InFullScreen,null,e.createElement(fx,null)))))))))},NF={},OF={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},library:{show:!0}},RF=i(hl(OF)),TF=t=>{let n=Q(t,{...OF,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=NF),void 0===NF[n.id]){const e=hl(n);NF[n.id]=e}if(n.worker&&n.worker.set_zustand(NF[n.id]),NF[n.id].options.debug=n.debug,n.useWorkerManager){const e=new Zu(n.workermanager_url,NF[n.id]);NF[n.id].workermanager=e}return e.createElement(AF,{fnrf_zst:NF[n.id],header:n.header,library:n.library,flow:n.flow})},MF={set_io_value:({nid:e,ioid:t,value:n,set_default:r=!1})=>{const i=o(RF);i.worker?.set_io_value({nid:e,ioid:t,value:n,set_default:r})}},PF=t=>{const n=new dl("FuncNodes",t.debug?"debug":"info");n.debug("Initalizing FuncNodes with props:",t);let r=Q(t,{...OF,id:Hu()}).new_obj;if(void 0===t.worker&&void 0!==t.worker_url&&(r.useWorkerManager=!1,r.worker=new Xu({url:t.worker_url,uuid:r.id,on_sync_complete:t.on_sync_complete})),void 0!==r.worker){const e=hl(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:"App",style:{height:"100%",width:"100%"}},e.createElement(TF,{...r}))};export{RF as FuncNodesContext,hl as FuncNodesReactFlowZustand,Wu as FuncNodesWorker,TF as FuncnodesReactFlow,EF as ReactFlowLayer,$j as RenderMappingProvider,Xu as WebSocketWorker,re as assert_full_node,Q as deep_update,PF as default,MF as helperfunctions};
|
|
145
|
+
*/var Cj=function(){if(wj)return xj;wj=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 xj.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},xj.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},xj}(),Ej=new Map,kj=function(e){return e.cloneNode(!0)},Sj=function(){return"file:"===window.location.protocol},Ij=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=Cj.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(Sj()?"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||Sj()&&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()},_j={},Aj=function(e,t){_j[e]=_j[e]||[],_j[e].push(t)},Nj=function(e,t,n){if(Ej.has(e)){var r=Ej.get(e);if(void 0===r)return void Aj(e,n);if(r instanceof SVGSVGElement)return void n(null,kj(r))}Ej.set(e,void 0),Aj(e,n),Ij(e,t,(function(t,n){var r;t?Ej.set(e,t):(null===(r=n.responseXML)||void 0===r?void 0:r.documentElement)instanceof SVGSVGElement&&Ej.set(e,n.responseXML.documentElement),function(e){for(var t=function(t,n){setTimeout((function(){if(Array.isArray(_j[e])){var n=Ej.get(e),r=_j[e][t];n instanceof SVGSVGElement&&r(null,kj(n)),n instanceof Error&&r(n),t===_j[e].length-1&&delete _j[e]}}),0)},n=0,r=_j[e].length;n<r;n++)t(n)}(e)}))},Oj=function(e,t,n){Ij(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)}))},Rj=0,Tj=[],Mj={},Pj="http://www.w3.org/1999/xlink",Dj=function(e,t,n,r,o,i,a){var s=e.getAttribute("data-src")||e.getAttribute("src");if(s){if(-1!==Tj.indexOf(e))return Tj.splice(Tj.indexOf(e),1),void(e=null);Tj.push(e),e.setAttribute("src",""),(r?Nj:Oj)(s,o,(function(r,o){if(!o)return Tj.splice(Tj.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 p=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",p);var f=e.getAttribute("style");f&&o.setAttribute("style",f),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+"-"+ ++Rj,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(Pj,"href");l&&l.toString()==="#"+g[e].id&&i.push(r[a])}for(var c=0,u=i.length;c<u;c++)i[c].setAttributeNS(Pj,"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,E=o.querySelectorAll("script"),k=[],S=0,I=E.length;S<I;S++)(C=E[S].getAttribute("type"))&&"application/ecmascript"!==C&&"application/javascript"!==C&&"text/javascript"!==C||((x=E[S].innerText||E[S].textContent)&&k.push(x),o.removeChild(E[S]));if(k.length>0&&("always"===t||"once"===t&&!Mj[s])){for(var _=0,A=k.length;_<A;_++)new Function(k[_])(window);Mj[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",Pj),i(o),!e.parentNode)return Tj.splice(Tj.indexOf(e),1),e=null,void a(new Error("Parent node is null"));e.parentNode.replaceChild(o,e),Tj.splice(Tj.indexOf(e),1),e=null,a(null,o)}))}else a(new Error("Invalid data-src or src attribute"))},Bj=["afterInjection","beforeInjection","desc","evalScripts","fallback","httpRequestWithCredentials","loading","renumerateIRIElements","src","title","useRequestCache","wrapper"],jj="http://www.w3.org/2000/svg",Fj="http://www.w3.org/1999/xlink",Lj=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}jw(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,p=this.props.beforeInjection,f=this.props.afterInjection,h=this.props.wrapper;"svg"===h?((t=document.createElementNS(jj,h)).setAttribute("xmlns",jj),t.setAttribute("xmlns:xlink",Fj),n=document.createElementNS(jj,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,p=void 0===d?"never":d,f=n.httpRequestWithCredentials,h=void 0!==f&&f,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++)Dj(e[b],p,g,u,h,l,(function(t,n){a(t,n),e&&"length"in e&&e.length===++y&&o(y)}));else e?Dj(e,p,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{f(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{p(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})(Xm({},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=Dw(t,Bj),a=o;return e.createElement(a,Xm({},i,{ref:this.refCallback},"svg"===o?{xmlns:jj,xmlnsXlink:Fj}:{}),this.state.isLoading&&r&&e.createElement(r,null),this.state.hasError&&n&&e.createElement(n,null))},n}(e.Component);Lj.defaultProps={afterInjection:function(){},beforeInjection:function(){},desc:"",evalScripts:"never",fallback:null,httpRequestWithCredentials:!1,loading:null,onError:function(){},renumerateIRIElements:!0,title:"",useRequestCache:!0,wrapper:"div"},Lj.propTypes={afterInjection:fh.func,beforeInjection:fh.func,desc:fh.string,evalScripts:fh.oneOf(["always","once","never"]),fallback:fh.oneOfType([fh.func,fh.object,fh.string]),httpRequestWithCredentials:fh.bool,loading:fh.oneOfType([fh.func,fh.object,fh.string]),onError:fh.func,renumerateIRIElements:fh.bool,src:fh.string.isRequired,title:fh.string,useRequestCache:fh.bool,wrapper:fh.oneOf(["div","span","svg"])};const Vj=({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%"}})),zj=({value:t})=>e.createElement(Lj,{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%")}}),Gj=({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,")"))},Hj=({io:t})=>{let n=t.fullvalue;return void 0===n&&(n=t.value),void 0===n&&(n={}),e.createElement(bj,{data:n})},Wj={float:({io:e,inputconverter:t})=>UB({io:e,inputconverter:t,parser:parseFloat}),int:({io:e,inputconverter:t})=>UB({io:e,inputconverter:t,parser:parseInt}),bool:({io:t,inputconverter:n})=>{const r=o(RF),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:JB,str:JB,color:({io:t})=>{const n=o(RF),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(UM,{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:tj,enum:tj,bytes:Gj},Xj={Inputrenderer:Wj,Outputrenderer:{},HandlePreviewRenderer:{bytes:Gj},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(vj,{tabledata:n})},image:({io:t})=>{let n=t.fullvalue;return null==n&&(n=t.value),void 0===n&&(n=""),e.createElement(Vj,{value:n})},svg:({io:t})=>{let n=t.fullvalue;return null==n&&(n=t.value),void 0===n&&(n=""),e.createElement(zj,{value:n})},dict:Hj,bytes:Gj},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)})`}}},Zj=(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}},$j=({children:t,plugins:n,fnrf_zst:r})=>{const[o,i]=v(Zj,Xj),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(Yj.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)},Yj=i({Inputrenderer:Xj.Inputrenderer,Outputrenderer:Xj.Outputrenderer,HandlePreviewRenderer:Xj.HandlePreviewRenderer,DataOverlayRenderer:Xj.DataOverlayRenderer,DataPreviewViewRenderer:Xj.DataPreviewViewRenderer,DataViewRenderer:Xj.DataViewRenderer,InLineRenderer:Xj.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)=>{}}),Uj=({component:t,...n})=>e.createElement(t,{...n}),Jj=e=>{const t=o(RF).render_options(),[n]=Kj(e.type,t.typemap||{});if(!n)return Hj;const{DataOverlayRenderer:r,DataPreviewViewRenderer:i}=o(Yj);return r[n]?r[n]:i[n]?i[n]:Hj},Kj=(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=>Kj(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]},Qj=({io:t,typestring:n,preview:r,...i})=>{const[a,s]=c(!1),[l,u]=c(!1),[d,p]=t?(e=>{const t=o(RF).render_options(),[n]=Kj(e.type,t.typemap||{}),{HandlePreviewRenderer:r,DataPreviewViewRenderer:i}=o(Yj),a=Jj(e);return n?r[n]?[r[n],a]:i[n]?[i[n],a]:[Hj,a]:[Hj,a]})(t):[void 0,void 0];return e.createElement(oM,null,e.createElement(iM,{open:a||l,onOpenChange:u},e.createElement(aM,{asChild:!0},e.createElement(_i,{id:t.id,"data-type":n,...i})),e.createElement(sM,null,e.createElement(lM,{className:"iotooltipcontent",sideOffset:5},e.createElement("div",{className:"iotooltip_container"},e.createElement("div",{className:"iotooltip_header"},a?e.createElement(ew,{onClick:()=>s(!1)}):e.createElement(qv,{onClick:()=>s(!0)}),p&&e.createElement(gx,{title:t.full_id,trigger:e.createElement(tw,null),onOpenChange:e=>{e&&t.try_get_full_value&&t.try_get_full_value(),s(e)}},e.createElement(Uj,{component:p,io:t}))),d?e.createElement(Uj,{component:d,io:t}):`no preview available for "${n}"`),e.createElement(cM,{className:"iotooltipcontentarrow"})))))},qj={"":[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)]},eF=({io:t})=>{const n=o(RF).render_options(),[r,i]=Kj(t.render_options.type,n.typemap||{}),{Inputrenderer:a}=o(Yj),s=r?t.value_options?.options?tj:a[r]:void 0,l=qj[(i&&n.inputconverter?.[i])??""];return e.createElement("div",{className:"nodeinput","data-type":r},e.createElement(Qj,{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(Qj,{io:t,typestring:r,position:Ho.Right,type:"source"}))},tF=({io:t,typestring:n})=>{const{InLineRenderer:r}=o(Yj);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)},nF=({io:t})=>{const n=o(RF).render_options(),[r]=Kj(t.type,n.typemap||{}),{Outputrenderer:i}=o(Yj),a=r?i[r]:void 0;return e.createElement("div",{className:"nodeoutput","data-type":r},e.createElement(Qj,{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(tF,{io:t,typestring:r})))};function rF(e){return`${Math.floor(e/60)}:${Math.floor(e%60).toString().padStart(2,"0")}`}function oF(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 iF=({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,p=t,f=l;r&&!0!==r&&1!==r&&(null!==t&&(p=t*r),d=n*r,void 0!==l&&(f=l*r));const h=rF(o);void 0===f&&o>0&&(f=(d-u)/o);const m=f?1/f:void 0,[g,y]=f?oF(f,a):[void 0,""],[b,v]=m?oF(m,1e3):[void 0,""],w=m&&m>1?b?`${b}${v}s/`+i:"?":(g||"?")+`${y}${i}/s`,x=r?oF(d,a).join(""):d.toString(),C=r&&null!==p?oF(p,a).join(""):p?.toString()??"?",E=f?rF(f&&null!==p?(p-d)/f:0):"?",k=s?`${s}: `:"";if(null!==t){const e=` ${x}/${C} [${h} < ${E}, ${w}${c??""}]`;return`${k}${(d/t*100).toFixed(0)}%${e}`}return`${k}${x}${i} [${h}, ${w}${c??""}]`}(t))))},aF=({node_data:t})=>{const n=o(RF);return e.createElement("div",{className:"nodeheader",title:t.description||t.node_name},e.createElement("div",{className:"nodeheader_element"},e.createElement(ow,{fontSize:"inherit",className:"triggerbutton",onClick:()=>{n.on_node_action({type:"trigger",from_remote:!1,id:t.id})}}),e.createElement(rw,{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(nw,{fontSize:"inherit"})))},sF=({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(RF).render_options(),[n]=Kj(e.type,t.typemap||{}),r=Jj(e),{DataPreviewViewRenderer:i,DataViewRenderer:a}=o(Yj);return n?a[n]?[a[n],r]:i[n]?[i[n],r]:[Hj,r]:[Hj,r]})(n):[void 0,void 0];return e.createElement("div",{className:"nodrag nodedatabody"},r&&n&&e.createElement(gx,{title:n.full_id,trigger:e.createElement("div",null,e.createElement(Uj,{component:r,io:n})),onOpenChange:e=>{e&&n?.try_get_full_value&&n?.try_get_full_value()}},e.createElement(Uj,{component:i,io:n})))},lF=({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(nF,{key:t.id,io:t}))),e.createElement(sF,{node_data:t}),n.map((t=>t.hidden?null:e.createElement(eF,{key:t.id,io:t}))))},cF=({node_data:t})=>{const[n,r]=c(t.name);s((()=>{r(t.name)}),[t]);const i=o(RF);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}})}})},uF=({node_data:t})=>t.progress?e.createElement(iF,{style:{height:"idle"===t.progress.prefix?"0px":void 0},state:t.progress,className:"nodeprogress"}):null,dF=({node_data:t})=>e.createElement("div",{className:"nodefooter"},t.error&&e.createElement("div",{className:"nodeerror"},t.error),e.createElement(uF,{node_data:t})),pF=({io:t})=>{const n=e.useContext(RF).render_options(),[r,o]=Kj(t.render_options.type,n.typemap||{}),{Inputrenderer:i}=e.useContext(Yj),a=r?t.value_options?.options?tj:i[r]:void 0,s=qj[(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}))))},fF=({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})))),hF=({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",null,e.createElement("div",{className:"nodesettings_section"},e.createElement("div",{className:"nodesettings_component"},e.createElement("div",null,"Name"),e.createElement("div",null,e.createElement(cF,{node_data:n})))),e.createElement("div",{className:"nodesettings_section"},e.createElement("div",null,"Inputs"),r.map((t=>e.createElement(pF,{io:t,key:t.id})))),e.createElement("div",{className:"nodesettings_section"},e.createElement("div",null,"Outputs"),o.map((t=>e.createElement(fF,{io:t,key:t.id})))))},mF=()=>{const t=e.useContext(RF),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(hF,{nodestore:r}):e.createElement("div",null,"Node not found")},gF=()=>{const t=e.useContext(RF),n=t.local_settings((e=>e.view_settings.expand_node_props)),r=t.local_settings((e=>e.update_view_settings)),o=e=>{r({expand_node_props:e})};return e.createElement("div",{className:"nodesettings_container"},e.createElement("div",{className:"nodesettings_expander"},n?e.createElement(Qv,{onClick:()=>{o(!1)}}):e.createElement(iw,{onClick:()=>{o(!0)}})),e.createElement("div",{className:"nodesettings_content "+(n?"expanded":"collapsed")},n&&e.createElement(mF,null)))},yF=e=>({nodes:e.nodes,edges:e.edges,onNodesChange:e.onNodesChange,onEdgesChange:e.onEdgesChange,onConnect:e.onConnect}),bF={default:({data:t})=>{const n=t.UseNodeStore(),r=n.frontend.collapsed||!1,[o,i]=c(!1);return s((()=>{let e;return n.in_trigger?i(!0):o&&(e=setTimeout((()=>i(!1)),200)),()=>clearTimeout(e)}),[n.in_trigger,o]),e.createElement(e.Fragment,null,e.createElement("div",{className:"innernode"+(o?" intrigger":"")+(n.error?" error":"")},e.createElement(aF,{node_data:n}),e.createElement(cF,{node_data:n}),r?null:e.createElement(lF,{node_data:n}),e.createElement(dF,{node_data:n})))}},vF={default:({id:t,sourceX:n,sourceY:r,targetX:o,targetY:i,sourcePosition:a,targetPosition:s,data:l,...c})=>{const[u]=ni({sourceX:n,sourceY:r,sourcePosition:a,targetX:o,targetY:i,targetPosition:s});return e.createElement(e.Fragment,null,e.createElement(Po,{id:t,path:u,...c}))}},wF=()=>{const t=da();return o(RF).rf_instance=t,e.createElement(e.Fragment,null)},xF=()=>{const t=o(RF),n=Qi("Delete"),r=lo(Vs,de),i=lo(Ls,de);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)},CF=({id:t,top:n,left:r,right:i,bottom:a,...s})=>{const{getNode:c,setNodes:u,addNodes:d,setEdges:p}=da(),f=o(RF),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((()=>{f.on_node_action({type:"delete",id:t,from_remote:!1})}),[t,u,p]),g=f.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"))},EF=t=>{const n=o(RF),r=u(null);s((()=>{n.reactflowRef=r.current}),[r]);const[i,a]=c(null),d=l((()=>a(null)),[a]),{nodes:p,edges:f,onNodesChange:h,onEdgesChange:m,onConnect:g}=n.useReactFlowStore(AT(yF));return e.createElement("div",{className:"reactflowlayer"},e.createElement(Fs,{nodes:p,edges:f,onNodesChange:h,onEdgesChange:m,onConnect:g,nodeTypes:bF,edgeTypes:vF,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(wF,null),e.createElement(xF,null),e.createElement(rl,{color:"#888",gap:16,size:1}),t.minimap&&e.createElement(Js,{nodeStrokeWidth:3,pannable:!t.static,zoomable:!t.static,zoomStep:3}),i&&e.createElement(CF,{onClick:d,...i})))},kF=i(void 0),SF=n(((t,n)=>{const{asChild:r,children:o,className:i,style:a,...s}=t,[l,d]=c(!1),p=u(null),[f,h]=c(null),[m,g]=c({}),y=t.htime||300,b=t.vtime||300,v=t.hdelay||0,C=t.vdelay||200;w(n,(()=>p.current),[]);let E;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};E=e.cloneElement(t,{ref:p,className:n,style:r,...s})}else E=e.createElement("div",{ref:p,...s,className:`smooth-expand ${l?"smooth-expand-expanded":""} ${i||""}`,style:{...a,...m}},o);const k=e.createElement(kF.Provider,{value:{isExpanded:l,toggleExpand:async()=>{p.current&&(l?await(async()=>{if(!p.current)return;if(!f)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]=f,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]),p.current.style.transition="",g({}),d(!1)})():await(async()=>{if(!p.current)return;p.current.style.transition="none",p.current.style.position="",p.current.style.top="",p.current.style.left="",p.current.style.width="",p.current.style.height="";const e=p.current.getBoundingClientRect();h([e.left,e.top,e.width,e.height]),p.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])})())}}},E);return l?x.createPortal(k,document.body):k}));SF.Trigger=function({children:t}){const n=o(kF);if(!n)throw new Error("SmoothExpandComponent.Trigger must be used within a SmoothExpandComponent");return e.createElement("div",{style:{cursor:"pointer"},onClick:n.toggleExpand},t)},SF.Expanded=function({children:t}){const n=o(kF);if(!n)throw new Error("SmoothExpandComponent.Expanded must be used within a SmoothExpandComponent");return n.isExpanded?e.createElement(e.Fragment,null,t):null},SF.Collapsed=function({children:t}){const n=o(kF);if(!n)throw new Error("SmoothExpandComponent.Collapsed must be used within a SmoothExpandComponent");return n.isExpanded?null:e.createElement(e.Fragment,null,t)};const IF=e.createContext(void 0),_F=n(((t,n)=>{const{asChild:r,children:o,className:i,style:a,...d}=t,p=u(null);w(n,(()=>p.current),[]);const[f,h]=c(!1),m=l((async()=>{try{const e=p.current;if(!e)return;if(f){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)}}),[f]);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:p,className:n,style:r,...d})}else g=e.createElement("div",{ref:p,...d,className:i,style:a},o);return e.createElement(IF.Provider,{value:{isFullScreen:f,toggleFullscreen:m}},g)}));_F.Trigger=function({children:t}){const n=e.useContext(IF);if(!n)throw new Error("FullScreenComponent.Trigger must be used within a FullScreenComponent");return e.createElement("div",{style:{cursor:"pointer"},onClick:n.toggleFullscreen},t)},_F.InFullScreen=function({children:t}){const n=e.useContext(IF);if(!n)throw new Error("FullScreenComponent.Expanded must be used within a FullScreenComponent");return n.isFullScreen?e.createElement(e.Fragment,null,t):null},_F.OutFullScreen=function({children:t}){const n=e.useContext(IF);if(!n)throw new Error("FullScreenComponent.Collapsed must be used within a FullScreenComponent");return n.isFullScreen?null:e.createElement(e.Fragment,null,t)};const AF=({fnrf_zst:t,header:n,flow:r,library:o})=>{const[i,a]=c(t.options.worker);t.workermanager&&(t.workermanager.on_setWorker=a),t.set_worker(i),t.auto_progress();const s=t.plugins();return e.createElement($j,{plugins:s,fnrf_zst:t},e.createElement(RF.Provider,{value:t},e.createElement(SF,{asChild:!0},e.createElement(_F,{asChild:!0},e.createElement("div",{className:"funcnodesreactflowcontainer funcnodescontainer"},n.show&&e.createElement(HS,{...n}),e.createElement("div",{className:"funcnodesreactflowbody"},i&&o.show&&e.createElement(IT,null),e.createElement(EF,{...r}),i&&r.showNodeSettings&&e.createElement(gF,null)),e.createElement("div",{className:"funcnodesflaotingmenu"},e.createElement(_F.OutFullScreen,null,r.allowExpand&&e.createElement(SF.Trigger,null,e.createElement(SF.Expanded,null,e.createElement(hx,null)),e.createElement(SF.Collapsed,null,e.createElement(mx,null)))),r.allowFullScreen&&e.createElement(_F.Trigger,null,e.createElement(_F.OutFullScreen,null,e.createElement(tw,null)),e.createElement(_F.InFullScreen,null,e.createElement(fx,null)))))))))},NF={},OF={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}},RF=i(hl(OF)),TF=t=>{let n=Q(t,{...OF,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=NF),void 0===NF[n.id]){const e=hl(n);NF[n.id]=e}if(n.worker&&n.worker.set_zustand(NF[n.id]),NF[n.id].options.debug=n.debug,n.useWorkerManager){const e=new Zu(n.workermanager_url,NF[n.id]);NF[n.id].workermanager=e}return e.createElement(AF,{fnrf_zst:NF[n.id],header:n.header,library:n.library,flow:n.flow})},MF={set_io_value:({nid:e,ioid:t,value:n,set_default:r=!1})=>{const i=o(RF);i.worker?.set_io_value({nid:e,ioid:t,value:n,set_default:r})}},PF=t=>{const n=new dl("FuncNodes",t.debug?"debug":"info");n.debug("Initalizing FuncNodes with props:",t);let r=Q(t,{...OF,id:Hu()}).new_obj;if(void 0===t.worker&&void 0!==t.worker_url&&(r.useWorkerManager=!1,r.worker=new Xu({url:t.worker_url,uuid:r.id,on_sync_complete:r.on_sync_complete})),void 0!==r.worker){const e=hl(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:"App",style:{height:"100%",width:"100%"}},e.createElement(TF,{...r}))};export{RF as FuncNodesContext,hl as FuncNodesReactFlowZustand,Wu as FuncNodesWorker,TF as FuncnodesReactFlow,EF as ReactFlowLayer,$j as RenderMappingProvider,Xu as WebSocketWorker,re as assert_full_node,Q as deep_update,PF as default,MF as helperfunctions};
|
|
146
146
|
//# sourceMappingURL=index.esm.mjs.map
|