react-cosmos-diagram 0.1.1 → 0.3.0

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.
Files changed (81) hide show
  1. package/README.md +146 -0
  2. package/dist/esm/components/Edges/Anchor.d.ts +2 -2
  3. package/dist/esm/components/Edges/Anchor.d.ts.map +1 -1
  4. package/dist/esm/components/Edges/EdgeWrapper/index.d.ts.map +1 -1
  5. package/dist/esm/components/Edges/EdgeWrapper/type.d.ts +4 -2
  6. package/dist/esm/components/Edges/EdgeWrapper/type.d.ts.map +1 -1
  7. package/dist/esm/components/Port/utils.d.ts +9 -1
  8. package/dist/esm/components/Port/utils.d.ts.map +1 -1
  9. package/dist/esm/components/ReactDiagramProvider/type.d.ts +1 -0
  10. package/dist/esm/components/ReactDiagramProvider/type.d.ts.map +1 -1
  11. package/dist/esm/components/StoreUpdater/index.d.ts +2 -2
  12. package/dist/esm/components/StoreUpdater/index.d.ts.map +1 -1
  13. package/dist/esm/container/ConnectionLineRenderer/ConnectionPath.d.ts +17 -0
  14. package/dist/esm/container/ConnectionLineRenderer/ConnectionPath.d.ts.map +1 -0
  15. package/dist/esm/container/ConnectionLineRenderer/index.d.ts +11 -0
  16. package/dist/esm/container/ConnectionLineRenderer/index.d.ts.map +1 -0
  17. package/dist/esm/container/ConnectionLineRenderer/type.d.ts +15 -0
  18. package/dist/esm/container/ConnectionLineRenderer/type.d.ts.map +1 -0
  19. package/dist/esm/container/EdgeRenderer/index.d.ts +3 -4
  20. package/dist/esm/container/EdgeRenderer/index.d.ts.map +1 -1
  21. package/dist/esm/container/EdgeRenderer/type.d.ts +3 -3
  22. package/dist/esm/container/EdgeRenderer/type.d.ts.map +1 -1
  23. package/dist/esm/container/ReactDiagram/DiagramView.d.ts +1 -1
  24. package/dist/esm/container/ReactDiagram/DiagramView.d.ts.map +1 -1
  25. package/dist/esm/container/ReactDiagram/index.d.ts +4 -0
  26. package/dist/esm/container/ReactDiagram/index.d.ts.map +1 -1
  27. package/dist/esm/index.d.ts +4 -6
  28. package/dist/esm/index.d.ts.map +1 -1
  29. package/dist/esm/index.js +158 -136
  30. package/dist/esm/store/initialState.d.ts.map +1 -1
  31. package/dist/esm/types/core.d.ts +6 -2
  32. package/dist/esm/types/core.d.ts.map +1 -1
  33. package/dist/esm/types/index.d.ts +1 -0
  34. package/dist/esm/types/index.d.ts.map +1 -1
  35. package/dist/esm/utils/graph.d.ts +1 -1
  36. package/dist/esm/utils/graph.d.ts.map +1 -1
  37. package/dist/style.css +45 -7
  38. package/dist/umd/components/Edges/Anchor.d.ts +2 -2
  39. package/dist/umd/components/Edges/Anchor.d.ts.map +1 -1
  40. package/dist/umd/components/Edges/EdgeWrapper/index.d.ts.map +1 -1
  41. package/dist/umd/components/Edges/EdgeWrapper/type.d.ts +4 -2
  42. package/dist/umd/components/Edges/EdgeWrapper/type.d.ts.map +1 -1
  43. package/dist/umd/components/Port/utils.d.ts +9 -1
  44. package/dist/umd/components/Port/utils.d.ts.map +1 -1
  45. package/dist/umd/components/ReactDiagramProvider/type.d.ts +1 -0
  46. package/dist/umd/components/ReactDiagramProvider/type.d.ts.map +1 -1
  47. package/dist/umd/components/StoreUpdater/index.d.ts +2 -2
  48. package/dist/umd/components/StoreUpdater/index.d.ts.map +1 -1
  49. package/dist/umd/container/ConnectionLineRenderer/ConnectionPath.d.ts +17 -0
  50. package/dist/umd/container/ConnectionLineRenderer/ConnectionPath.d.ts.map +1 -0
  51. package/dist/umd/container/ConnectionLineRenderer/index.d.ts +11 -0
  52. package/dist/umd/container/ConnectionLineRenderer/index.d.ts.map +1 -0
  53. package/dist/umd/container/ConnectionLineRenderer/type.d.ts +15 -0
  54. package/dist/umd/container/ConnectionLineRenderer/type.d.ts.map +1 -0
  55. package/dist/umd/container/EdgeRenderer/index.d.ts +3 -4
  56. package/dist/umd/container/EdgeRenderer/index.d.ts.map +1 -1
  57. package/dist/umd/container/EdgeRenderer/type.d.ts +3 -3
  58. package/dist/umd/container/EdgeRenderer/type.d.ts.map +1 -1
  59. package/dist/umd/container/ReactDiagram/DiagramView.d.ts +1 -1
  60. package/dist/umd/container/ReactDiagram/DiagramView.d.ts.map +1 -1
  61. package/dist/umd/container/ReactDiagram/index.d.ts +4 -0
  62. package/dist/umd/container/ReactDiagram/index.d.ts.map +1 -1
  63. package/dist/umd/index.d.ts +4 -6
  64. package/dist/umd/index.d.ts.map +1 -1
  65. package/dist/umd/index.js +2 -2
  66. package/dist/umd/store/initialState.d.ts.map +1 -1
  67. package/dist/umd/types/core.d.ts +6 -2
  68. package/dist/umd/types/core.d.ts.map +1 -1
  69. package/dist/umd/types/index.d.ts +1 -0
  70. package/dist/umd/types/index.d.ts.map +1 -1
  71. package/dist/umd/utils/graph.d.ts +1 -1
  72. package/dist/umd/utils/graph.d.ts.map +1 -1
  73. package/package.json +2 -3
  74. package/dist/esm/components/ConnectionEdge/ConnectionPath.d.ts +0 -13
  75. package/dist/esm/components/ConnectionEdge/ConnectionPath.d.ts.map +0 -1
  76. package/dist/esm/components/ConnectionEdge/index.d.ts +0 -8
  77. package/dist/esm/components/ConnectionEdge/index.d.ts.map +0 -1
  78. package/dist/umd/components/ConnectionEdge/ConnectionPath.d.ts +0 -13
  79. package/dist/umd/components/ConnectionEdge/ConnectionPath.d.ts.map +0 -1
  80. package/dist/umd/components/ConnectionEdge/index.d.ts +0 -8
  81. package/dist/umd/components/ConnectionEdge/index.d.ts.map +0 -1
package/dist/umd/index.js CHANGED
@@ -1,4 +1,4 @@
1
- !function(t,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports,require("react/jsx-runtime"),require("react")):"function"==typeof define&&define.amd?define(["exports","react/jsx-runtime","react"],e):e((t="undefined"!=typeof globalThis?globalThis:t||self).ReactCosmosDiagram={},t.jsxRuntime,t.React)}(this,(function(t,e,n){"use strict";const o=t=>{let e;const n=new Set,o=(t,o)=>{const r="function"==typeof t?t(e):t;if(!Object.is(r,e)){const t=e;e=(null!=o?o:"object"!=typeof r)?r:Object.assign({},e,r),n.forEach((n=>n(e,t)))}},r=()=>e,i={setState:o,getState:r,subscribe:t=>(n.add(t),()=>n.delete(t)),destroy:()=>{console.warn("[DEPRECATED] The `destroy` method will be unsupported in a future version. Instead use unsubscribe function returned by subscribe. Everything will be garbage-collected if store is garbage-collected."),n.clear()}};return e=t(o,r,i),i};function r(t){return t&&t.__esModule&&Object.prototype.hasOwnProperty.call(t,"default")?t.default:t}var i,a,s,u={exports:{}},l={},c={exports:{}},d={};function h(){return a||(a=1,c.exports=function(){if(i)return d;i=1;var t=n,e="function"==typeof Object.is?Object.is:function(t,e){return t===e&&(0!==t||1/t==1/e)||t!=t&&e!=e},o=t.useState,r=t.useEffect,a=t.useLayoutEffect,s=t.useDebugValue;function u(t){var n=t.getSnapshot;t=t.value;try{var o=n();return!e(t,o)}catch(t){return!0}}var l="undefined"==typeof window||void 0===window.document||void 0===window.document.createElement?function(t,e){return e()}:function(t,e){var n=e(),i=o({inst:{value:n,getSnapshot:e}}),l=i[0].inst,c=i[1];return a((function(){l.value=n,l.getSnapshot=e,u(l)&&c({inst:l})}),[t,n,e]),r((function(){return u(l)&&c({inst:l}),t((function(){u(l)&&c({inst:l})}))}),[t]),s(n),n};return d.useSyncExternalStore=void 0!==t.useSyncExternalStore?t.useSyncExternalStore:l,d}()),c.exports}
1
+ !function(t,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports,require("react/jsx-runtime"),require("react")):"function"==typeof define&&define.amd?define(["exports","react/jsx-runtime","react"],e):e((t="undefined"!=typeof globalThis?globalThis:t||self).ReactCosmosDiagram={},t.jsxRuntime,t.React)}(this,(function(t,e,n){"use strict";const o=t=>{let e;const n=new Set,o=(t,o)=>{const r="function"==typeof t?t(e):t;if(!Object.is(r,e)){const t=e;e=(null!=o?o:"object"!=typeof r)?r:Object.assign({},e,r),n.forEach((n=>n(e,t)))}},r=()=>e,i={setState:o,getState:r,subscribe:t=>(n.add(t),()=>n.delete(t)),destroy:()=>{console.warn("[DEPRECATED] The `destroy` method will be unsupported in a future version. Instead use unsubscribe function returned by subscribe. Everything will be garbage-collected if store is garbage-collected."),n.clear()}};return e=t(o,r,i),i};function r(t){return t&&t.__esModule&&Object.prototype.hasOwnProperty.call(t,"default")?t.default:t}var i,a,s,u={exports:{}},c={},l={exports:{}},d={};function h(){return a||(a=1,l.exports=function(){if(i)return d;i=1;var t=n,e="function"==typeof Object.is?Object.is:function(t,e){return t===e&&(0!==t||1/t==1/e)||t!=t&&e!=e},o=t.useState,r=t.useEffect,a=t.useLayoutEffect,s=t.useDebugValue;function u(t){var n=t.getSnapshot;t=t.value;try{var o=n();return!e(t,o)}catch(t){return!0}}var c="undefined"==typeof window||void 0===window.document||void 0===window.document.createElement?function(t,e){return e()}:function(t,e){var n=e(),i=o({inst:{value:n,getSnapshot:e}}),c=i[0].inst,l=i[1];return a((function(){c.value=n,c.getSnapshot=e,u(c)&&l({inst:c})}),[t,n,e]),r((function(){return u(c)&&l({inst:c}),t((function(){u(c)&&l({inst:c})}))}),[t]),s(n),n};return d.useSyncExternalStore=void 0!==t.useSyncExternalStore?t.useSyncExternalStore:c,d}()),l.exports}
2
2
  /**
3
3
  * @license React
4
4
  * use-sync-external-store-shim/with-selector.production.min.js
@@ -7,4 +7,4 @@
7
7
  *
8
8
  * This source code is licensed under the MIT license found in the
9
9
  * LICENSE file in the root directory of this source tree.
10
- */u.exports=function(){if(s)return l;s=1;var t=n,e=h(),o="function"==typeof Object.is?Object.is:function(t,e){return t===e&&(0!==t||1/t==1/e)||t!=t&&e!=e},r=e.useSyncExternalStore,i=t.useRef,a=t.useEffect,u=t.useMemo,c=t.useDebugValue;return l.useSyncExternalStoreWithSelector=function(t,e,n,s,l){var d=i(null);if(null===d.current){var h={hasValue:!1,value:null};d.current=h}else h=d.current;d=u((function(){function t(t){if(!a){if(a=!0,r=t,t=s(t),void 0!==l&&h.hasValue){var e=h.value;if(l(e,t))return i=e}return i=t}if(e=i,o(r,t))return e;var n=s(t);return void 0!==l&&l(e,n)?e:(r=t,i=n)}var r,i,a=!1,u=void 0===n?null:n;return[function(){return t(e())},null===u?void 0:function(){return t(u())}]}),[e,n,s,l]);var f=r(t,d[0],d[1]);return a((function(){h.hasValue=!0,h.value=f}),[f]),c(f),f},l}();var f=r(u.exports);const{useSyncExternalStoreWithSelector:g}=f;let p=!1;const m=n.createContext(null),y=m.Provider,v={"001":()=>"Seems like you have not used zustand provider as an ancestor","002":()=>"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.","010":t=>`Node type "${t}" not found. Using fallback type "default".`,"011":()=>"Only child nodes can use a parent extent","020":()=>"Can`t create edge. An edge needs a source and a target.","021":t=>`The old edge with id=${t} does not exist.`,"022":t=>`Marker type "${t}" doesn't exist.`},x=v["001"]();function b(t,e){const o=n.useContext(m);if(null===o)throw new Error(x);return function(t,e=t.getState,o){o&&!p&&(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"),p=!0);const r=g(t.subscribe,t.getState,t.getServerState||t.getState,e,o);return n.useDebugValue(r),r}(o,t,e)}const w=()=>{const t=n.useContext(m);if(null===t)throw new Error(x);return n.useMemo((()=>({getState:t.getState,setState:t.setState,subscribe:t.subscribe,destroy:t.destroy})),[t])};var _={value:()=>{}};function E(){for(var t,e=0,n=arguments.length,o={};e<n;++e){if(!(t=arguments[e]+"")||t in o||/[\s.]/.test(t))throw new Error("illegal type: "+t);o[t]=[]}return new S(o)}function S(t){this._=t}function N(t,e){for(var n,o=0,r=t.length;o<r;++o)if((n=t[o]).name===e)return n.value}function M(t,e,n){for(var o=0,r=t.length;o<r;++o)if(t[o].name===e){t[o]=_,t=t.slice(0,o).concat(t.slice(o+1));break}return null!=n&&t.push({name:e,value:n}),t}S.prototype=E.prototype={constructor:S,on:function(t,e){var n,o,r=this._,i=(o=r,(t+"").trim().split(/^|\s+/).map((function(t){var e="",n=t.indexOf(".");if(n>=0&&(e=t.slice(n+1),t=t.slice(0,n)),t&&!o.hasOwnProperty(t))throw new Error("unknown type: "+t);return{type:t,name:e}}))),a=-1,s=i.length;if(!(arguments.length<2)){if(null!=e&&"function"!=typeof e)throw new Error("invalid callback: "+e);for(;++a<s;)if(n=(t=i[a]).type)r[n]=M(r[n],t.name,e);else if(null==e)for(n in r)r[n]=M(r[n],t.name,null);return this}for(;++a<s;)if((n=(t=i[a]).type)&&(n=N(r[n],t.name)))return n},copy:function(){var t={},e=this._;for(var n in e)t[n]=e[n].slice();return new S(t)},call:function(t,e){if((n=arguments.length-2)>0)for(var n,o,r=new Array(n),i=0;i<n;++i)r[i]=arguments[i+2];if(!this._.hasOwnProperty(t))throw new Error("unknown type: "+t);for(i=0,n=(o=this._[t]).length;i<n;++i)o[i].value.apply(e,r)},apply:function(t,e,n){if(!this._.hasOwnProperty(t))throw new Error("unknown type: "+t);for(var o=this._[t],r=0,i=o.length;r<i;++r)o[r].value.apply(e,n)}};var k="http://www.w3.org/1999/xhtml",P={svg:"http://www.w3.org/2000/svg",xhtml:k,xlink:"http://www.w3.org/1999/xlink",xml:"http://www.w3.org/XML/1998/namespace",xmlns:"http://www.w3.org/2000/xmlns/"};function C(t){var e=t+="",n=e.indexOf(":");return n>=0&&"xmlns"!==(e=t.slice(0,n))&&(t=t.slice(n+1)),P.hasOwnProperty(e)?{space:P[e],local:t}:t}function A(t){return function(){var e=this.ownerDocument,n=this.namespaceURI;return n===k&&e.documentElement.namespaceURI===k?e.createElement(t):e.createElementNS(n,t)}}function $(t){return function(){return this.ownerDocument.createElementNS(t.space,t.local)}}function B(t){var e=C(t);return(e.local?$:A)(e)}function T(){}function I(t){return null==t?T:function(){return this.querySelector(t)}}function j(){return[]}function R(t){return null==t?j:function(){return this.querySelectorAll(t)}}function D(t){return function(){return null==(e=t.apply(this,arguments))?[]:Array.isArray(e)?e:Array.from(e);var e}}function z(t){return function(){return this.matches(t)}}function X(t){return function(e){return e.matches(t)}}var O=Array.prototype.find;function Y(){return this.firstElementChild}var L=Array.prototype.filter;function U(){return Array.from(this.children)}function q(t){return new Array(t.length)}function V(t,e){this.ownerDocument=t.ownerDocument,this.namespaceURI=t.namespaceURI,this._next=null,this._parent=t,this.__data__=e}function Z(t,e,n,o,r,i){for(var a,s=0,u=e.length,l=i.length;s<l;++s)(a=e[s])?(a.__data__=i[s],o[s]=a):n[s]=new V(t,i[s]);for(;s<u;++s)(a=e[s])&&(r[s]=a)}function F(t,e,n,o,r,i,a){var s,u,l,c=new Map,d=e.length,h=i.length,f=new Array(d);for(s=0;s<d;++s)(u=e[s])&&(f[s]=l=a.call(u,u.__data__,s,e)+"",c.has(l)?r[s]=u:c.set(l,u));for(s=0;s<h;++s)l=a.call(t,i[s],s,i)+"",(u=c.get(l))?(o[s]=u,u.__data__=i[s],c.delete(l)):n[s]=new V(t,i[s]);for(s=0;s<d;++s)(u=e[s])&&c.get(f[s])===u&&(r[s]=u)}function W(t){return t.__data__}function H(t){return"object"==typeof t&&"length"in t?t:Array.from(t)}function K(t,e){return t<e?-1:t>e?1:t>=e?0:NaN}function G(t){return function(){this.removeAttribute(t)}}function Q(t){return function(){this.removeAttributeNS(t.space,t.local)}}function J(t,e){return function(){this.setAttribute(t,e)}}function tt(t,e){return function(){this.setAttributeNS(t.space,t.local,e)}}function et(t,e){return function(){var n=e.apply(this,arguments);null==n?this.removeAttribute(t):this.setAttribute(t,n)}}function nt(t,e){return function(){var n=e.apply(this,arguments);null==n?this.removeAttributeNS(t.space,t.local):this.setAttributeNS(t.space,t.local,n)}}function ot(t){return t.ownerDocument&&t.ownerDocument.defaultView||t.document&&t||t.defaultView}function rt(t){return function(){this.style.removeProperty(t)}}function it(t,e,n){return function(){this.style.setProperty(t,e,n)}}function at(t,e,n){return function(){var o=e.apply(this,arguments);null==o?this.style.removeProperty(t):this.style.setProperty(t,o,n)}}function st(t,e){return t.style.getPropertyValue(e)||ot(t).getComputedStyle(t,null).getPropertyValue(e)}function ut(t){return function(){delete this[t]}}function lt(t,e){return function(){this[t]=e}}function ct(t,e){return function(){var n=e.apply(this,arguments);null==n?delete this[t]:this[t]=n}}function dt(t){return t.trim().split(/^|\s+/)}function ht(t){return t.classList||new ft(t)}function ft(t){this._node=t,this._names=dt(t.getAttribute("class")||"")}function gt(t,e){for(var n=ht(t),o=-1,r=e.length;++o<r;)n.add(e[o])}function pt(t,e){for(var n=ht(t),o=-1,r=e.length;++o<r;)n.remove(e[o])}function mt(t){return function(){gt(this,t)}}function yt(t){return function(){pt(this,t)}}function vt(t,e){return function(){(e.apply(this,arguments)?gt:pt)(this,t)}}function xt(){this.textContent=""}function bt(t){return function(){this.textContent=t}}function wt(t){return function(){var e=t.apply(this,arguments);this.textContent=null==e?"":e}}function _t(){this.innerHTML=""}function Et(t){return function(){this.innerHTML=t}}function St(t){return function(){var e=t.apply(this,arguments);this.innerHTML=null==e?"":e}}function Nt(){this.nextSibling&&this.parentNode.appendChild(this)}function Mt(){this.previousSibling&&this.parentNode.insertBefore(this,this.parentNode.firstChild)}function kt(){return null}function Pt(){var t=this.parentNode;t&&t.removeChild(this)}function Ct(){var t=this.cloneNode(!1),e=this.parentNode;return e?e.insertBefore(t,this.nextSibling):t}function At(){var t=this.cloneNode(!0),e=this.parentNode;return e?e.insertBefore(t,this.nextSibling):t}function $t(t){return function(){var e=this.__on;if(e){for(var n,o=0,r=-1,i=e.length;o<i;++o)n=e[o],t.type&&n.type!==t.type||n.name!==t.name?e[++r]=n:this.removeEventListener(n.type,n.listener,n.options);++r?e.length=r:delete this.__on}}}function Bt(t,e,n){return function(){var o,r=this.__on,i=function(t){return function(e){t.call(this,e,this.__data__)}}(e);if(r)for(var a=0,s=r.length;a<s;++a)if((o=r[a]).type===t.type&&o.name===t.name)return this.removeEventListener(o.type,o.listener,o.options),this.addEventListener(o.type,o.listener=i,o.options=n),void(o.value=e);this.addEventListener(t.type,i,n),o={type:t.type,name:t.name,value:e,listener:i,options:n},r?r.push(o):this.__on=[o]}}function Tt(t,e,n){var o=ot(t),r=o.CustomEvent;"function"==typeof r?r=new r(e,n):(r=o.document.createEvent("Event"),n?(r.initEvent(e,n.bubbles,n.cancelable),r.detail=n.detail):r.initEvent(e,!1,!1)),t.dispatchEvent(r)}function It(t,e){return function(){return Tt(this,t,e)}}function jt(t,e){return function(){return Tt(this,t,e.apply(this,arguments))}}V.prototype={constructor:V,appendChild:function(t){return this._parent.insertBefore(t,this._next)},insertBefore:function(t,e){return this._parent.insertBefore(t,e)},querySelector:function(t){return this._parent.querySelector(t)},querySelectorAll:function(t){return this._parent.querySelectorAll(t)}},ft.prototype={add:function(t){this._names.indexOf(t)<0&&(this._names.push(t),this._node.setAttribute("class",this._names.join(" ")))},remove:function(t){var e=this._names.indexOf(t);e>=0&&(this._names.splice(e,1),this._node.setAttribute("class",this._names.join(" ")))},contains:function(t){return this._names.indexOf(t)>=0}};var Rt=[null];function Dt(t,e){this._groups=t,this._parents=e}function zt(){return new Dt([[document.documentElement]],Rt)}function Xt(t){return"string"==typeof t?new Dt([[document.querySelector(t)]],[document.documentElement]):new Dt([[t]],Rt)}function Ot(t,e){if(t=function(t){let e;for(;e=t.sourceEvent;)t=e;return t}(t),void 0===e&&(e=t.currentTarget),e){var n=e.ownerSVGElement||e;if(n.createSVGPoint){var o=n.createSVGPoint();return o.x=t.clientX,o.y=t.clientY,[(o=o.matrixTransform(e.getScreenCTM().inverse())).x,o.y]}if(e.getBoundingClientRect){var r=e.getBoundingClientRect();return[t.clientX-r.left-e.clientLeft,t.clientY-r.top-e.clientTop]}}return[t.pageX,t.pageY]}Dt.prototype=zt.prototype={constructor:Dt,select:function(t){"function"!=typeof t&&(t=I(t));for(var e=this._groups,n=e.length,o=new Array(n),r=0;r<n;++r)for(var i,a,s=e[r],u=s.length,l=o[r]=new Array(u),c=0;c<u;++c)(i=s[c])&&(a=t.call(i,i.__data__,c,s))&&("__data__"in i&&(a.__data__=i.__data__),l[c]=a);return new Dt(o,this._parents)},selectAll:function(t){t="function"==typeof t?D(t):R(t);for(var e=this._groups,n=e.length,o=[],r=[],i=0;i<n;++i)for(var a,s=e[i],u=s.length,l=0;l<u;++l)(a=s[l])&&(o.push(t.call(a,a.__data__,l,s)),r.push(a));return new Dt(o,r)},selectChild:function(t){return this.select(null==t?Y:function(t){return function(){return O.call(this.children,t)}}("function"==typeof t?t:X(t)))},selectChildren:function(t){return this.selectAll(null==t?U:function(t){return function(){return L.call(this.children,t)}}("function"==typeof t?t:X(t)))},filter:function(t){"function"!=typeof t&&(t=z(t));for(var e=this._groups,n=e.length,o=new Array(n),r=0;r<n;++r)for(var i,a=e[r],s=a.length,u=o[r]=[],l=0;l<s;++l)(i=a[l])&&t.call(i,i.__data__,l,a)&&u.push(i);return new Dt(o,this._parents)},data:function(t,e){if(!arguments.length)return Array.from(this,W);var n,o=e?F:Z,r=this._parents,i=this._groups;"function"!=typeof t&&(n=t,t=function(){return n});for(var a=i.length,s=new Array(a),u=new Array(a),l=new Array(a),c=0;c<a;++c){var d=r[c],h=i[c],f=h.length,g=H(t.call(d,d&&d.__data__,c,r)),p=g.length,m=u[c]=new Array(p),y=s[c]=new Array(p);o(d,h,m,y,l[c]=new Array(f),g,e);for(var v,x,b=0,w=0;b<p;++b)if(v=m[b]){for(b>=w&&(w=b+1);!(x=y[w])&&++w<p;);v._next=x||null}}return(s=new Dt(s,r))._enter=u,s._exit=l,s},enter:function(){return new Dt(this._enter||this._groups.map(q),this._parents)},exit:function(){return new Dt(this._exit||this._groups.map(q),this._parents)},join:function(t,e,n){var o=this.enter(),r=this,i=this.exit();return"function"==typeof t?(o=t(o))&&(o=o.selection()):o=o.append(t+""),null!=e&&(r=e(r))&&(r=r.selection()),null==n?i.remove():n(i),o&&r?o.merge(r).order():r},merge:function(t){for(var e=t.selection?t.selection():t,n=this._groups,o=e._groups,r=n.length,i=o.length,a=Math.min(r,i),s=new Array(r),u=0;u<a;++u)for(var l,c=n[u],d=o[u],h=c.length,f=s[u]=new Array(h),g=0;g<h;++g)(l=c[g]||d[g])&&(f[g]=l);for(;u<r;++u)s[u]=n[u];return new Dt(s,this._parents)},selection:function(){return this},order:function(){for(var t=this._groups,e=-1,n=t.length;++e<n;)for(var o,r=t[e],i=r.length-1,a=r[i];--i>=0;)(o=r[i])&&(a&&4^o.compareDocumentPosition(a)&&a.parentNode.insertBefore(o,a),a=o);return this},sort:function(t){function e(e,n){return e&&n?t(e.__data__,n.__data__):!e-!n}t||(t=K);for(var n=this._groups,o=n.length,r=new Array(o),i=0;i<o;++i){for(var a,s=n[i],u=s.length,l=r[i]=new Array(u),c=0;c<u;++c)(a=s[c])&&(l[c]=a);l.sort(e)}return new Dt(r,this._parents).order()},call:function(){var t=arguments[0];return arguments[0]=this,t.apply(null,arguments),this},nodes:function(){return Array.from(this)},node:function(){for(var t=this._groups,e=0,n=t.length;e<n;++e)for(var o=t[e],r=0,i=o.length;r<i;++r){var a=o[r];if(a)return a}return null},size:function(){let t=0;for(const e of this)++t;return t},empty:function(){return!this.node()},each:function(t){for(var e=this._groups,n=0,o=e.length;n<o;++n)for(var r,i=e[n],a=0,s=i.length;a<s;++a)(r=i[a])&&t.call(r,r.__data__,a,i);return this},attr:function(t,e){var n=C(t);if(arguments.length<2){var o=this.node();return n.local?o.getAttributeNS(n.space,n.local):o.getAttribute(n)}return this.each((null==e?n.local?Q:G:"function"==typeof e?n.local?nt:et:n.local?tt:J)(n,e))},style:function(t,e,n){return arguments.length>1?this.each((null==e?rt:"function"==typeof e?at:it)(t,e,null==n?"":n)):st(this.node(),t)},property:function(t,e){return arguments.length>1?this.each((null==e?ut:"function"==typeof e?ct:lt)(t,e)):this.node()[t]},classed:function(t,e){var n=dt(t+"");if(arguments.length<2){for(var o=ht(this.node()),r=-1,i=n.length;++r<i;)if(!o.contains(n[r]))return!1;return!0}return this.each(("function"==typeof e?vt:e?mt:yt)(n,e))},text:function(t){return arguments.length?this.each(null==t?xt:("function"==typeof t?wt:bt)(t)):this.node().textContent},html:function(t){return arguments.length?this.each(null==t?_t:("function"==typeof t?St:Et)(t)):this.node().innerHTML},raise:function(){return this.each(Nt)},lower:function(){return this.each(Mt)},append:function(t){var e="function"==typeof t?t:B(t);return this.select((function(){return this.appendChild(e.apply(this,arguments))}))},insert:function(t,e){var n="function"==typeof t?t:B(t),o=null==e?kt:"function"==typeof e?e:I(e);return this.select((function(){return this.insertBefore(n.apply(this,arguments),o.apply(this,arguments)||null)}))},remove:function(){return this.each(Pt)},clone:function(t){return this.select(t?At:Ct)},datum:function(t){return arguments.length?this.property("__data__",t):this.node().__data__},on:function(t,e,n){var o,r,i=function(t){return t.trim().split(/^|\s+/).map((function(t){var e="",n=t.indexOf(".");return n>=0&&(e=t.slice(n+1),t=t.slice(0,n)),{type:t,name:e}}))}(t+""),a=i.length;if(!(arguments.length<2)){for(s=e?Bt:$t,o=0;o<a;++o)this.each(s(i[o],e,n));return this}var s=this.node().__on;if(s)for(var u,l=0,c=s.length;l<c;++l)for(o=0,u=s[l];o<a;++o)if((r=i[o]).type===u.type&&r.name===u.name)return u.value},dispatch:function(t,e){return this.each(("function"==typeof e?jt:It)(t,e))},[Symbol.iterator]:function*(){for(var t=this._groups,e=0,n=t.length;e<n;++e)for(var o,r=t[e],i=0,a=r.length;i<a;++i)(o=r[i])&&(yield o)}};const Yt={passive:!1},Lt={capture:!0,passive:!1};function Ut(t){t.stopImmediatePropagation()}function qt(t){t.preventDefault(),t.stopImmediatePropagation()}function Vt(t){var e=t.document.documentElement,n=Xt(t).on("dragstart.drag",qt,Lt);"onselectstart"in e?n.on("selectstart.drag",qt,Lt):(e.__noselect=e.style.MozUserSelect,e.style.MozUserSelect="none")}function Zt(t,e){var n=t.document.documentElement,o=Xt(t).on("dragstart.drag",null);e&&(o.on("click.drag",qt,Lt),setTimeout((function(){o.on("click.drag",null)}),0)),"onselectstart"in n?o.on("selectstart.drag",null):(n.style.MozUserSelect=n.__noselect,delete n.__noselect)}var Ft=t=>()=>t;function Wt(t,{sourceEvent:e,subject:n,target:o,identifier:r,active:i,x:a,y:s,dx:u,dy:l,dispatch:c}){Object.defineProperties(this,{type:{value:t,enumerable:!0,configurable:!0},sourceEvent:{value:e,enumerable:!0,configurable:!0},subject:{value:n,enumerable:!0,configurable:!0},target:{value:o,enumerable:!0,configurable:!0},identifier:{value:r,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:u,enumerable:!0,configurable:!0},dy:{value:l,enumerable:!0,configurable:!0},_:{value:c}})}function Ht(t){return!t.ctrlKey&&!t.button}function Kt(){return this.parentNode}function Gt(t,e){return null==e?{x:t.x,y:t.y}:e}function Qt(){return navigator.maxTouchPoints||"ontouchstart"in this}function Jt(t,e,n){t.prototype=e.prototype=n,n.constructor=t}function te(t,e){var n=Object.create(t.prototype);for(var o in e)n[o]=e[o];return n}function ee(){}Wt.prototype.on=function(){var t=this._.on.apply(this._,arguments);return t===this._?this:t};var ne=.7,oe=1/ne,re="\\s*([+-]?\\d+)\\s*",ie="\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)\\s*",ae="\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)%\\s*",se=/^#([0-9a-f]{3,8})$/,ue=new RegExp(`^rgb\\(${re},${re},${re}\\)$`),le=new RegExp(`^rgb\\(${ae},${ae},${ae}\\)$`),ce=new RegExp(`^rgba\\(${re},${re},${re},${ie}\\)$`),de=new RegExp(`^rgba\\(${ae},${ae},${ae},${ie}\\)$`),he=new RegExp(`^hsl\\(${ie},${ae},${ae}\\)$`),fe=new RegExp(`^hsla\\(${ie},${ae},${ae},${ie}\\)$`),ge={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 pe(){return this.rgb().formatHex()}function me(){return this.rgb().formatRgb()}function ye(t){var e,n;return t=(t+"").trim().toLowerCase(),(e=se.exec(t))?(n=e[1].length,e=parseInt(e[1],16),6===n?ve(e):3===n?new we(e>>8&15|e>>4&240,e>>4&15|240&e,(15&e)<<4|15&e,1):8===n?xe(e>>24&255,e>>16&255,e>>8&255,(255&e)/255):4===n?xe(e>>12&15|e>>8&240,e>>8&15|e>>4&240,e>>4&15|240&e,((15&e)<<4|15&e)/255):null):(e=ue.exec(t))?new we(e[1],e[2],e[3],1):(e=le.exec(t))?new we(255*e[1]/100,255*e[2]/100,255*e[3]/100,1):(e=ce.exec(t))?xe(e[1],e[2],e[3],e[4]):(e=de.exec(t))?xe(255*e[1]/100,255*e[2]/100,255*e[3]/100,e[4]):(e=he.exec(t))?ke(e[1],e[2]/100,e[3]/100,1):(e=fe.exec(t))?ke(e[1],e[2]/100,e[3]/100,e[4]):ge.hasOwnProperty(t)?ve(ge[t]):"transparent"===t?new we(NaN,NaN,NaN,0):null}function ve(t){return new we(t>>16&255,t>>8&255,255&t,1)}function xe(t,e,n,o){return o<=0&&(t=e=n=NaN),new we(t,e,n,o)}function be(t,e,n,o){return 1===arguments.length?((r=t)instanceof ee||(r=ye(r)),r?new we((r=r.rgb()).r,r.g,r.b,r.opacity):new we):new we(t,e,n,null==o?1:o);var r}function we(t,e,n,o){this.r=+t,this.g=+e,this.b=+n,this.opacity=+o}function _e(){return`#${Me(this.r)}${Me(this.g)}${Me(this.b)}`}function Ee(){const t=Se(this.opacity);return`${1===t?"rgb(":"rgba("}${Ne(this.r)}, ${Ne(this.g)}, ${Ne(this.b)}${1===t?")":`, ${t})`}`}function Se(t){return isNaN(t)?1:Math.max(0,Math.min(1,t))}function Ne(t){return Math.max(0,Math.min(255,Math.round(t)||0))}function Me(t){return((t=Ne(t))<16?"0":"")+t.toString(16)}function ke(t,e,n,o){return o<=0?t=e=n=NaN:n<=0||n>=1?t=e=NaN:e<=0&&(t=NaN),new Ce(t,e,n,o)}function Pe(t){if(t instanceof Ce)return new Ce(t.h,t.s,t.l,t.opacity);if(t instanceof ee||(t=ye(t)),!t)return new Ce;if(t instanceof Ce)return t;var e=(t=t.rgb()).r/255,n=t.g/255,o=t.b/255,r=Math.min(e,n,o),i=Math.max(e,n,o),a=NaN,s=i-r,u=(i+r)/2;return s?(a=e===i?(n-o)/s+6*(n<o):n===i?(o-e)/s+2:(e-n)/s+4,s/=u<.5?i+r:2-i-r,a*=60):s=u>0&&u<1?0:a,new Ce(a,s,u,t.opacity)}function Ce(t,e,n,o){this.h=+t,this.s=+e,this.l=+n,this.opacity=+o}function Ae(t){return(t=(t||0)%360)<0?t+360:t}function $e(t){return Math.max(0,Math.min(1,t||0))}function Be(t,e,n){return 255*(t<60?e+(n-e)*t/60:t<180?n:t<240?e+(n-e)*(240-t)/60:e)}Jt(ee,ye,{copy(t){return Object.assign(new this.constructor,this,t)},displayable(){return this.rgb().displayable()},hex:pe,formatHex:pe,formatHex8:function(){return this.rgb().formatHex8()},formatHsl:function(){return Pe(this).formatHsl()},formatRgb:me,toString:me}),Jt(we,be,te(ee,{brighter(t){return t=null==t?oe:Math.pow(oe,t),new we(this.r*t,this.g*t,this.b*t,this.opacity)},darker(t){return t=null==t?ne:Math.pow(ne,t),new we(this.r*t,this.g*t,this.b*t,this.opacity)},rgb(){return this},clamp(){return new we(Ne(this.r),Ne(this.g),Ne(this.b),Se(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:_e,formatHex:_e,formatHex8:function(){return`#${Me(this.r)}${Me(this.g)}${Me(this.b)}${Me(255*(isNaN(this.opacity)?1:this.opacity))}`},formatRgb:Ee,toString:Ee})),Jt(Ce,(function(t,e,n,o){return 1===arguments.length?Pe(t):new Ce(t,e,n,null==o?1:o)}),te(ee,{brighter(t){return t=null==t?oe:Math.pow(oe,t),new Ce(this.h,this.s,this.l*t,this.opacity)},darker(t){return t=null==t?ne:Math.pow(ne,t),new Ce(this.h,this.s,this.l*t,this.opacity)},rgb(){var t=this.h%360+360*(this.h<0),e=isNaN(t)||isNaN(this.s)?0:this.s,n=this.l,o=n+(n<.5?n:1-n)*e,r=2*n-o;return new we(Be(t>=240?t-240:t+120,r,o),Be(t,r,o),Be(t<120?t+240:t-120,r,o),this.opacity)},clamp(){return new Ce(Ae(this.h),$e(this.s),$e(this.l),Se(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 t=Se(this.opacity);return`${1===t?"hsl(":"hsla("}${Ae(this.h)}, ${100*$e(this.s)}%, ${100*$e(this.l)}%${1===t?")":`, ${t})`}`}}));var Te=t=>()=>t;function Ie(t){return 1==(t=+t)?je:function(e,n){return n-e?function(t,e,n){return t=Math.pow(t,n),e=Math.pow(e,n)-t,n=1/n,function(o){return Math.pow(t+o*e,n)}}(e,n,t):Te(isNaN(e)?n:e)}}function je(t,e){var n=e-t;return n?function(t,e){return function(n){return t+n*e}}(t,n):Te(isNaN(t)?e:t)}var Re=function t(e){var n=Ie(e);function o(t,e){var o=n((t=be(t)).r,(e=be(e)).r),r=n(t.g,e.g),i=n(t.b,e.b),a=je(t.opacity,e.opacity);return function(e){return t.r=o(e),t.g=r(e),t.b=i(e),t.opacity=a(e),t+""}}return o.gamma=t,o}(1);function De(t,e){return t=+t,e=+e,function(n){return t*(1-n)+e*n}}var ze=/[-+]?(?:\d+\.?\d*|\.?\d+)(?:[eE][-+]?\d+)?/g,Xe=new RegExp(ze.source,"g");function Oe(t,e){var n,o,r,i=ze.lastIndex=Xe.lastIndex=0,a=-1,s=[],u=[];for(t+="",e+="";(n=ze.exec(t))&&(o=Xe.exec(e));)(r=o.index)>i&&(r=e.slice(i,r),s[a]?s[a]+=r:s[++a]=r),(n=n[0])===(o=o[0])?s[a]?s[a]+=o:s[++a]=o:(s[++a]=null,u.push({i:a,x:De(n,o)})),i=Xe.lastIndex;return i<e.length&&(r=e.slice(i),s[a]?s[a]+=r:s[++a]=r),s.length<2?u[0]?function(t){return function(e){return t(e)+""}}(u[0].x):function(t){return function(){return t}}(e):(e=u.length,function(t){for(var n,o=0;o<e;++o)s[(n=u[o]).i]=n.x(t);return s.join("")})}var Ye,Le=180/Math.PI,Ue={translateX:0,translateY:0,rotate:0,skewX:0,scaleX:1,scaleY:1};function qe(t,e,n,o,r,i){var a,s,u;return(a=Math.sqrt(t*t+e*e))&&(t/=a,e/=a),(u=t*n+e*o)&&(n-=t*u,o-=e*u),(s=Math.sqrt(n*n+o*o))&&(n/=s,o/=s,u/=s),t*o<e*n&&(t=-t,e=-e,u=-u,a=-a),{translateX:r,translateY:i,rotate:Math.atan2(e,t)*Le,skewX:Math.atan(u)*Le,scaleX:a,scaleY:s}}function Ve(t,e,n,o){function r(t){return t.length?t.pop()+" ":""}return function(i,a){var s=[],u=[];return i=t(i),a=t(a),function(t,o,r,i,a,s){if(t!==r||o!==i){var u=a.push("translate(",null,e,null,n);s.push({i:u-4,x:De(t,r)},{i:u-2,x:De(o,i)})}else(r||i)&&a.push("translate("+r+e+i+n)}(i.translateX,i.translateY,a.translateX,a.translateY,s,u),function(t,e,n,i){t!==e?(t-e>180?e+=360:e-t>180&&(t+=360),i.push({i:n.push(r(n)+"rotate(",null,o)-2,x:De(t,e)})):e&&n.push(r(n)+"rotate("+e+o)}(i.rotate,a.rotate,s,u),function(t,e,n,i){t!==e?i.push({i:n.push(r(n)+"skewX(",null,o)-2,x:De(t,e)}):e&&n.push(r(n)+"skewX("+e+o)}(i.skewX,a.skewX,s,u),function(t,e,n,o,i,a){if(t!==n||e!==o){var s=i.push(r(i)+"scale(",null,",",null,")");a.push({i:s-4,x:De(t,n)},{i:s-2,x:De(e,o)})}else 1===n&&1===o||i.push(r(i)+"scale("+n+","+o+")")}(i.scaleX,i.scaleY,a.scaleX,a.scaleY,s,u),i=a=null,function(t){for(var e,n=-1,o=u.length;++n<o;)s[(e=u[n]).i]=e.x(t);return s.join("")}}}var Ze=Ve((function(t){const e=new("function"==typeof DOMMatrix?DOMMatrix:WebKitCSSMatrix)(t+"");return e.isIdentity?Ue:qe(e.a,e.b,e.c,e.d,e.e,e.f)}),"px, ","px)","deg)"),Fe=Ve((function(t){return null==t?Ue:(Ye||(Ye=document.createElementNS("http://www.w3.org/2000/svg","g")),Ye.setAttribute("transform",t),(t=Ye.transform.baseVal.consolidate())?qe((t=t.matrix).a,t.b,t.c,t.d,t.e,t.f):Ue)}),", ",")",")");function We(t){return((t=Math.exp(t))+1/t)/2}var He,Ke,Ge=function t(e,n,o){function r(t,r){var i,a,s=t[0],u=t[1],l=t[2],c=r[0],d=r[1],h=r[2],f=c-s,g=d-u,p=f*f+g*g;if(p<1e-12)a=Math.log(h/l)/e,i=function(t){return[s+t*f,u+t*g,l*Math.exp(e*t*a)]};else{var m=Math.sqrt(p),y=(h*h-l*l+o*p)/(2*l*n*m),v=(h*h-l*l-o*p)/(2*h*n*m),x=Math.log(Math.sqrt(y*y+1)-y),b=Math.log(Math.sqrt(v*v+1)-v);a=(b-x)/e,i=function(t){var o,r=t*a,i=We(x),c=l/(n*m)*(i*(o=e*r+x,((o=Math.exp(2*o))-1)/(o+1))-function(t){return((t=Math.exp(t))-1/t)/2}(x));return[s+c*f,u+c*g,l*i/We(e*r+x)]}}return i.duration=1e3*a*e/Math.SQRT2,i}return r.rho=function(e){var n=Math.max(.001,+e),o=n*n;return t(n,o,o*o)},r}(Math.SQRT2,2,4),Qe=0,Je=0,tn=0,en=1e3,nn=0,on=0,rn=0,an="object"==typeof performance&&performance.now?performance:Date,sn="object"==typeof window&&window.requestAnimationFrame?window.requestAnimationFrame.bind(window):function(t){setTimeout(t,17)};function un(){return on||(sn(ln),on=an.now()+rn)}function ln(){on=0}function cn(){this._call=this._time=this._next=null}function dn(t,e,n){var o=new cn;return o.restart(t,e,n),o}function hn(){on=(nn=an.now())+rn,Qe=Je=0;try{!function(){un(),++Qe;for(var t,e=He;e;)(t=on-e._time)>=0&&e._call.call(void 0,t),e=e._next;--Qe}()}finally{Qe=0,function(){var t,e,n=He,o=1/0;for(;n;)n._call?(o>n._time&&(o=n._time),t=n,n=n._next):(e=n._next,n._next=null,n=t?t._next=e:He=e);Ke=t,gn(o)}(),on=0}}function fn(){var t=an.now(),e=t-nn;e>en&&(rn-=e,nn=t)}function gn(t){Qe||(Je&&(Je=clearTimeout(Je)),t-on>24?(t<1/0&&(Je=setTimeout(hn,t-an.now()-rn)),tn&&(tn=clearInterval(tn))):(tn||(nn=an.now(),tn=setInterval(fn,en)),Qe=1,sn(hn)))}function pn(t,e,n){var o=new cn;return e=null==e?0:+e,o.restart((n=>{o.stop(),t(n+e)}),e,n),o}cn.prototype=dn.prototype={constructor:cn,restart:function(t,e,n){if("function"!=typeof t)throw new TypeError("callback is not a function");n=(null==n?un():+n)+(null==e?0:+e),this._next||Ke===this||(Ke?Ke._next=this:He=this,Ke=this),this._call=t,this._time=n,gn()},stop:function(){this._call&&(this._call=null,this._time=1/0,gn())}};var mn=E("start","end","cancel","interrupt"),yn=[],vn=0,xn=1,bn=2,wn=3,_n=4,En=5,Sn=6;function Nn(t,e,n,o,r,i){var a=t.__transition;if(a){if(n in a)return}else t.__transition={};!function(t,e,n){var o,r=t.__transition;function i(t){n.state=xn,n.timer.restart(a,n.delay,n.time),n.delay<=t&&a(t-n.delay)}function a(i){var l,c,d,h;if(n.state!==xn)return u();for(l in r)if((h=r[l]).name===n.name){if(h.state===wn)return pn(a);h.state===_n?(h.state=Sn,h.timer.stop(),h.on.call("interrupt",t,t.__data__,h.index,h.group),delete r[l]):+l<e&&(h.state=Sn,h.timer.stop(),h.on.call("cancel",t,t.__data__,h.index,h.group),delete r[l])}if(pn((function(){n.state===wn&&(n.state=_n,n.timer.restart(s,n.delay,n.time),s(i))})),n.state=bn,n.on.call("start",t,t.__data__,n.index,n.group),n.state===bn){for(n.state=wn,o=new Array(d=n.tween.length),l=0,c=-1;l<d;++l)(h=n.tween[l].value.call(t,t.__data__,n.index,n.group))&&(o[++c]=h);o.length=c+1}}function s(e){for(var r=e<n.duration?n.ease.call(null,e/n.duration):(n.timer.restart(u),n.state=En,1),i=-1,a=o.length;++i<a;)o[i].call(t,r);n.state===En&&(n.on.call("end",t,t.__data__,n.index,n.group),u())}function u(){for(var o in n.state=Sn,n.timer.stop(),delete r[e],r)return;delete t.__transition}r[e]=n,n.timer=dn(i,0,n.time)}(t,n,{name:e,index:o,group:r,on:mn,tween:yn,time:i.time,delay:i.delay,duration:i.duration,ease:i.ease,timer:null,state:vn})}function Mn(t,e){var n=Pn(t,e);if(n.state>vn)throw new Error("too late; already scheduled");return n}function kn(t,e){var n=Pn(t,e);if(n.state>wn)throw new Error("too late; already running");return n}function Pn(t,e){var n=t.__transition;if(!n||!(n=n[e]))throw new Error("transition not found");return n}function Cn(t,e){var n,o,r,i=t.__transition,a=!0;if(i){for(r in e=null==e?null:e+"",i)(n=i[r]).name===e?(o=n.state>bn&&n.state<En,n.state=Sn,n.timer.stop(),n.on.call(o?"interrupt":"cancel",t,t.__data__,n.index,n.group),delete i[r]):a=!1;a&&delete t.__transition}}function An(t,e){var n,o;return function(){var r=kn(this,t),i=r.tween;if(i!==n)for(var a=0,s=(o=n=i).length;a<s;++a)if(o[a].name===e){(o=o.slice()).splice(a,1);break}r.tween=o}}function $n(t,e,n){var o,r;if("function"!=typeof n)throw new Error;return function(){var i=kn(this,t),a=i.tween;if(a!==o){r=(o=a).slice();for(var s={name:e,value:n},u=0,l=r.length;u<l;++u)if(r[u].name===e){r[u]=s;break}u===l&&r.push(s)}i.tween=r}}function Bn(t,e,n){var o=t._id;return t.each((function(){var t=kn(this,o);(t.value||(t.value={}))[e]=n.apply(this,arguments)})),function(t){return Pn(t,o).value[e]}}function Tn(t,e){var n;return("number"==typeof e?De:e instanceof ye?Re:(n=ye(e))?(e=n,Re):Oe)(t,e)}function In(t){return function(){this.removeAttribute(t)}}function jn(t){return function(){this.removeAttributeNS(t.space,t.local)}}function Rn(t,e,n){var o,r,i=n+"";return function(){var a=this.getAttribute(t);return a===i?null:a===o?r:r=e(o=a,n)}}function Dn(t,e,n){var o,r,i=n+"";return function(){var a=this.getAttributeNS(t.space,t.local);return a===i?null:a===o?r:r=e(o=a,n)}}function zn(t,e,n){var o,r,i;return function(){var a,s,u=n(this);if(null!=u)return(a=this.getAttribute(t))===(s=u+"")?null:a===o&&s===r?i:(r=s,i=e(o=a,u));this.removeAttribute(t)}}function Xn(t,e,n){var o,r,i;return function(){var a,s,u=n(this);if(null!=u)return(a=this.getAttributeNS(t.space,t.local))===(s=u+"")?null:a===o&&s===r?i:(r=s,i=e(o=a,u));this.removeAttributeNS(t.space,t.local)}}function On(t,e){var n,o;function r(){var r=e.apply(this,arguments);return r!==o&&(n=(o=r)&&function(t,e){return function(n){this.setAttributeNS(t.space,t.local,e.call(this,n))}}(t,r)),n}return r._value=e,r}function Yn(t,e){var n,o;function r(){var r=e.apply(this,arguments);return r!==o&&(n=(o=r)&&function(t,e){return function(n){this.setAttribute(t,e.call(this,n))}}(t,r)),n}return r._value=e,r}function Ln(t,e){return function(){Mn(this,t).delay=+e.apply(this,arguments)}}function Un(t,e){return e=+e,function(){Mn(this,t).delay=e}}function qn(t,e){return function(){kn(this,t).duration=+e.apply(this,arguments)}}function Vn(t,e){return e=+e,function(){kn(this,t).duration=e}}var Zn=zt.prototype.constructor;function Fn(t){return function(){this.style.removeProperty(t)}}var Wn=0;function Hn(t,e,n,o){this._groups=t,this._parents=e,this._name=n,this._id=o}function Kn(){return++Wn}var Gn=zt.prototype;Hn.prototype={constructor:Hn,select:function(t){var e=this._name,n=this._id;"function"!=typeof t&&(t=I(t));for(var o=this._groups,r=o.length,i=new Array(r),a=0;a<r;++a)for(var s,u,l=o[a],c=l.length,d=i[a]=new Array(c),h=0;h<c;++h)(s=l[h])&&(u=t.call(s,s.__data__,h,l))&&("__data__"in s&&(u.__data__=s.__data__),d[h]=u,Nn(d[h],e,n,h,d,Pn(s,n)));return new Hn(i,this._parents,e,n)},selectAll:function(t){var e=this._name,n=this._id;"function"!=typeof t&&(t=R(t));for(var o=this._groups,r=o.length,i=[],a=[],s=0;s<r;++s)for(var u,l=o[s],c=l.length,d=0;d<c;++d)if(u=l[d]){for(var h,f=t.call(u,u.__data__,d,l),g=Pn(u,n),p=0,m=f.length;p<m;++p)(h=f[p])&&Nn(h,e,n,p,f,g);i.push(f),a.push(u)}return new Hn(i,a,e,n)},selectChild:Gn.selectChild,selectChildren:Gn.selectChildren,filter:function(t){"function"!=typeof t&&(t=z(t));for(var e=this._groups,n=e.length,o=new Array(n),r=0;r<n;++r)for(var i,a=e[r],s=a.length,u=o[r]=[],l=0;l<s;++l)(i=a[l])&&t.call(i,i.__data__,l,a)&&u.push(i);return new Hn(o,this._parents,this._name,this._id)},merge:function(t){if(t._id!==this._id)throw new Error;for(var e=this._groups,n=t._groups,o=e.length,r=n.length,i=Math.min(o,r),a=new Array(o),s=0;s<i;++s)for(var u,l=e[s],c=n[s],d=l.length,h=a[s]=new Array(d),f=0;f<d;++f)(u=l[f]||c[f])&&(h[f]=u);for(;s<o;++s)a[s]=e[s];return new Hn(a,this._parents,this._name,this._id)},selection:function(){return new Zn(this._groups,this._parents)},transition:function(){for(var t=this._name,e=this._id,n=Kn(),o=this._groups,r=o.length,i=0;i<r;++i)for(var a,s=o[i],u=s.length,l=0;l<u;++l)if(a=s[l]){var c=Pn(a,e);Nn(a,t,n,l,s,{time:c.time+c.delay+c.duration,delay:0,duration:c.duration,ease:c.ease})}return new Hn(o,this._parents,t,n)},call:Gn.call,nodes:Gn.nodes,node:Gn.node,size:Gn.size,empty:Gn.empty,each:Gn.each,on:function(t,e){var n=this._id;return arguments.length<2?Pn(this.node(),n).on.on(t):this.each(function(t,e,n){var o,r,i=function(t){return(t+"").trim().split(/^|\s+/).every((function(t){var e=t.indexOf(".");return e>=0&&(t=t.slice(0,e)),!t||"start"===t}))}(e)?Mn:kn;return function(){var a=i(this,t),s=a.on;s!==o&&(r=(o=s).copy()).on(e,n),a.on=r}}(n,t,e))},attr:function(t,e){var n=C(t),o="transform"===n?Fe:Tn;return this.attrTween(t,"function"==typeof e?(n.local?Xn:zn)(n,o,Bn(this,"attr."+t,e)):null==e?(n.local?jn:In)(n):(n.local?Dn:Rn)(n,o,e))},attrTween:function(t,e){var n="attr."+t;if(arguments.length<2)return(n=this.tween(n))&&n._value;if(null==e)return this.tween(n,null);if("function"!=typeof e)throw new Error;var o=C(t);return this.tween(n,(o.local?On:Yn)(o,e))},style:function(t,e,n){var o="transform"==(t+="")?Ze:Tn;return null==e?this.styleTween(t,function(t,e){var n,o,r;return function(){var i=st(this,t),a=(this.style.removeProperty(t),st(this,t));return i===a?null:i===n&&a===o?r:r=e(n=i,o=a)}}(t,o)).on("end.style."+t,Fn(t)):"function"==typeof e?this.styleTween(t,function(t,e,n){var o,r,i;return function(){var a=st(this,t),s=n(this),u=s+"";return null==s&&(this.style.removeProperty(t),u=s=st(this,t)),a===u?null:a===o&&u===r?i:(r=u,i=e(o=a,s))}}(t,o,Bn(this,"style."+t,e))).each(function(t,e){var n,o,r,i,a="style."+e,s="end."+a;return function(){var u=kn(this,t),l=u.on,c=null==u.value[a]?i||(i=Fn(e)):void 0;l===n&&r===c||(o=(n=l).copy()).on(s,r=c),u.on=o}}(this._id,t)):this.styleTween(t,function(t,e,n){var o,r,i=n+"";return function(){var a=st(this,t);return a===i?null:a===o?r:r=e(o=a,n)}}(t,o,e),n).on("end.style."+t,null)},styleTween:function(t,e,n){var o="style."+(t+="");if(arguments.length<2)return(o=this.tween(o))&&o._value;if(null==e)return this.tween(o,null);if("function"!=typeof e)throw new Error;return this.tween(o,function(t,e,n){var o,r;function i(){var i=e.apply(this,arguments);return i!==r&&(o=(r=i)&&function(t,e,n){return function(o){this.style.setProperty(t,e.call(this,o),n)}}(t,i,n)),o}return i._value=e,i}(t,e,null==n?"":n))},text:function(t){return this.tween("text","function"==typeof t?function(t){return function(){var e=t(this);this.textContent=null==e?"":e}}(Bn(this,"text",t)):function(t){return function(){this.textContent=t}}(null==t?"":t+""))},textTween:function(t){var e="text";if(arguments.length<1)return(e=this.tween(e))&&e._value;if(null==t)return this.tween(e,null);if("function"!=typeof t)throw new Error;return this.tween(e,function(t){var e,n;function o(){var o=t.apply(this,arguments);return o!==n&&(e=(n=o)&&function(t){return function(e){this.textContent=t.call(this,e)}}(o)),e}return o._value=t,o}(t))},remove:function(){return this.on("end.remove",function(t){return function(){var e=this.parentNode;for(var n in this.__transition)if(+n!==t)return;e&&e.removeChild(this)}}(this._id))},tween:function(t,e){var n=this._id;if(t+="",arguments.length<2){for(var o,r=Pn(this.node(),n).tween,i=0,a=r.length;i<a;++i)if((o=r[i]).name===t)return o.value;return null}return this.each((null==e?An:$n)(n,t,e))},delay:function(t){var e=this._id;return arguments.length?this.each(("function"==typeof t?Ln:Un)(e,t)):Pn(this.node(),e).delay},duration:function(t){var e=this._id;return arguments.length?this.each(("function"==typeof t?qn:Vn)(e,t)):Pn(this.node(),e).duration},ease:function(t){var e=this._id;return arguments.length?this.each(function(t,e){if("function"!=typeof e)throw new Error;return function(){kn(this,t).ease=e}}(e,t)):Pn(this.node(),e).ease},easeVarying:function(t){if("function"!=typeof t)throw new Error;return this.each(function(t,e){return function(){var n=e.apply(this,arguments);if("function"!=typeof n)throw new Error;kn(this,t).ease=n}}(this._id,t))},end:function(){var t,e,n=this,o=n._id,r=n.size();return new Promise((function(i,a){var s={value:a},u={value:function(){0==--r&&i()}};n.each((function(){var n=kn(this,o),r=n.on;r!==t&&((e=(t=r).copy())._.cancel.push(s),e._.interrupt.push(s),e._.end.push(u)),n.on=e})),0===r&&i()}))},[Symbol.iterator]:Gn[Symbol.iterator]};var Qn={time:null,delay:0,duration:250,ease:function(t){return((t*=2)<=1?t*t*t:(t-=2)*t*t+2)/2}};function Jn(t,e){for(var n;!(n=t.__transition)||!(n=n[e]);)if(!(t=t.parentNode))throw new Error(`transition ${e} not found`);return n}zt.prototype.interrupt=function(t){return this.each((function(){Cn(this,t)}))},zt.prototype.transition=function(t){var e,n;t instanceof Hn?(e=t._id,t=t._name):(e=Kn(),(n=Qn).time=un(),t=null==t?null:t+"");for(var o=this._groups,r=o.length,i=0;i<r;++i)for(var a,s=o[i],u=s.length,l=0;l<u;++l)(a=s[l])&&Nn(a,t,e,l,s,n||Jn(a,e));return new Hn(o,this._parents,t,e)};var to=t=>()=>t;function eo(t,{sourceEvent:e,target:n,transform:o,dispatch:r}){Object.defineProperties(this,{type:{value:t,enumerable:!0,configurable:!0},sourceEvent:{value:e,enumerable:!0,configurable:!0},target:{value:n,enumerable:!0,configurable:!0},transform:{value:o,enumerable:!0,configurable:!0},_:{value:r}})}function no(t,e,n){this.k=t,this.x=e,this.y=n}no.prototype={constructor:no,scale:function(t){return 1===t?this:new no(this.k*t,this.x,this.y)},translate:function(t,e){return 0===t&0===e?this:new no(this.k,this.x+this.k*t,this.y+this.k*e)},apply:function(t){return[t[0]*this.k+this.x,t[1]*this.k+this.y]},applyX:function(t){return t*this.k+this.x},applyY:function(t){return t*this.k+this.y},invert:function(t){return[(t[0]-this.x)/this.k,(t[1]-this.y)/this.k]},invertX:function(t){return(t-this.x)/this.k},invertY:function(t){return(t-this.y)/this.k},rescaleX:function(t){return t.copy().domain(t.range().map(this.invertX,this).map(t.invert,t))},rescaleY:function(t){return t.copy().domain(t.range().map(this.invertY,this).map(t.invert,t))},toString:function(){return"translate("+this.x+","+this.y+") scale("+this.k+")"}};var oo=new no(1,0,0);function ro(t){t.stopImmediatePropagation()}function io(t){t.preventDefault(),t.stopImmediatePropagation()}function ao(t){return!(t.ctrlKey&&"wheel"!==t.type||t.button)}function so(){var t=this;return t instanceof SVGElement?(t=t.ownerSVGElement||t).hasAttribute("viewBox")?[[(t=t.viewBox.baseVal).x,t.y],[t.x+t.width,t.y+t.height]]:[[0,0],[t.width.baseVal.value,t.height.baseVal.value]]:[[0,0],[t.clientWidth,t.clientHeight]]}function uo(){return this.__zoom||oo}function lo(t){return-t.deltaY*(1===t.deltaMode?.05:t.deltaMode?1:.002)*(t.ctrlKey?10:1)}function co(){return navigator.maxTouchPoints||"ontouchstart"in this}function ho(t,e,n){var o=t.invertX(e[0][0])-n[0][0],r=t.invertX(e[1][0])-n[1][0],i=t.invertY(e[0][1])-n[0][1],a=t.invertY(e[1][1])-n[1][1];return t.translate(r>o?(o+r)/2:Math.min(0,o)||Math.max(0,r),a>i?(i+a)/2:Math.min(0,i)||Math.max(0,a))}function fo(t,e){if(Object.is(t,e))return!0;if("object"!=typeof t||null===t||"object"!=typeof e||null===e)return!1;if(t instanceof Map&&e instanceof Map){if(t.size!==e.size)return!1;for(const[n,o]of t)if(!Object.is(o,e.get(n)))return!1;return!0}if(t instanceof Set&&e instanceof Set){if(t.size!==e.size)return!1;for(const n of t)if(!e.has(n))return!1;return!0}const n=Object.keys(t);if(n.length!==Object.keys(e).length)return!1;for(let o=0;o<n.length;o++)if(!Object.prototype.hasOwnProperty.call(e,n[o])||!Object.is(t[n[o]],e[n[o]]))return!1;return!0}no.prototype;const go=Symbol.for("internals"),po=t=>!isNaN(t)&&isFinite(t),mo=t=>({width:t.offsetWidth,height:t.offsetHeight}),yo=(t,e=0,n=1)=>Math.min(Math.max(t,e),n),vo=(t={x:0,y:0},e)=>({x:yo(t.x,e[0][0],e[1][0]),y:yo(t.y,e[0][1],e[1][1])}),xo=({x:t,y:e,width:n,height:o})=>({x:t,y:e,x2:t+n,y2:e+o}),bo=({x:t,y:e,x2:n,y2:o})=>({x:t,y:e,width:n-t,height:o-e}),wo=t=>"clientX"in t,_o=(t,e)=>{const n=wo(t),o=n?t.clientX:t.touches?.[0].clientX,r=n?t.clientY:t.touches?.[0].clientY;return{x:o-(e?.left??0),y:r-(e?.top??0)}},Eo=(t,e,n,o)=>{const r=e-n;return t<n?yo(Math.abs(t-n),1,50)/50*o:t>r?-yo(Math.abs(t-r),1,50)/50*o:0},So=(t,e)=>[Eo(t.x,e.width,30,10),Eo(t.y,e.height,30,10)],No=t=>{const{x:e,y:n,k:o}=t;return{x:e,y:n,zoom:o}},Mo=(t,e)=>t.target.closest(`.${e}`),ko=(t,e)=>{const{x:n,y:o,zoom:r}=t,{x:i,y:a,k:s}=e;return n!==i||o!==a||r!==s},Po=t=>({d3Zoom:t.d3Zoom,d3Selection:t.d3Selection,elementsSelectable:t.elementsSelectable});function Co({noPanClassName:t,panning:o,minZoom:r,maxZoom:i,defaultViewport:a,translateExtent:s,children:u,onMove:l,onMoveStart:c,onMoveEnd:d}){const h=w(),f=n.useRef(!1),g=n.useRef(null),p=n.useRef(),m=n.useRef({x:0,y:0,zoom:0}),y=n.useRef(),{d3Zoom:v,d3Selection:x}=b(Po,fo);return n.useEffect((()=>{if(g.current){const t=g.current.getBoundingClientRect(),e=function(){var t,e,n,o=ao,r=so,i=ho,a=lo,s=co,u=[0,1/0],l=[[-1/0,-1/0],[1/0,1/0]],c=250,d=Ge,h=E("start","zoom","end"),f=500,g=150,p=0,m=10;function y(t){t.property("__zoom",uo).on("wheel.zoom",N,{passive:!1}).on("mousedown.zoom",M).on("dblclick.zoom",k).filter(s).on("touchstart.zoom",P).on("touchmove.zoom",C).on("touchend.zoom touchcancel.zoom",A).style("-webkit-tap-highlight-color","rgba(0,0,0,0)")}function v(t,e){return(e=Math.max(u[0],Math.min(u[1],e)))===t.k?t:new no(e,t.x,t.y)}function x(t,e,n){var o=e[0]-n[0]*t.k,r=e[1]-n[1]*t.k;return o===t.x&&r===t.y?t:new no(t.k,o,r)}function b(t){return[(+t[0][0]+ +t[1][0])/2,(+t[0][1]+ +t[1][1])/2]}function w(t,e,n,o){t.on("start.zoom",(function(){_(this,arguments).event(o).start()})).on("interrupt.zoom end.zoom",(function(){_(this,arguments).event(o).end()})).tween("zoom",(function(){var t=this,i=arguments,a=_(t,i).event(o),s=r.apply(t,i),u=null==n?b(s):"function"==typeof n?n.apply(t,i):n,l=Math.max(s[1][0]-s[0][0],s[1][1]-s[0][1]),c=t.__zoom,h="function"==typeof e?e.apply(t,i):e,f=d(c.invert(u).concat(l/c.k),h.invert(u).concat(l/h.k));return function(t){if(1===t)t=h;else{var e=f(t),n=l/e[2];t=new no(n,u[0]-e[0]*n,u[1]-e[1]*n)}a.zoom(null,t)}}))}function _(t,e,n){return!n&&t.__zooming||new S(t,e)}function S(t,e){this.that=t,this.args=e,this.active=0,this.sourceEvent=null,this.extent=r.apply(t,e),this.taps=0}function N(t,...e){if(o.apply(this,arguments)){var n=_(this,e).event(t),r=this.__zoom,s=Math.max(u[0],Math.min(u[1],r.k*Math.pow(2,a.apply(this,arguments)))),c=Ot(t);if(n.wheel)n.mouse[0][0]===c[0]&&n.mouse[0][1]===c[1]||(n.mouse[1]=r.invert(n.mouse[0]=c)),clearTimeout(n.wheel);else{if(r.k===s)return;n.mouse=[c,r.invert(c)],Cn(this),n.start()}io(t),n.wheel=setTimeout((function(){n.wheel=null,n.end()}),g),n.zoom("mouse",i(x(v(r,s),n.mouse[0],n.mouse[1]),n.extent,l))}}function M(t,...e){if(!n&&o.apply(this,arguments)){var r=t.currentTarget,a=_(this,e,!0).event(t),s=Xt(t.view).on("mousemove.zoom",(function(t){if(io(t),!a.moved){var e=t.clientX-c,n=t.clientY-d;a.moved=e*e+n*n>p}a.event(t).zoom("mouse",i(x(a.that.__zoom,a.mouse[0]=Ot(t,r),a.mouse[1]),a.extent,l))}),!0).on("mouseup.zoom",(function(t){s.on("mousemove.zoom mouseup.zoom",null),Zt(t.view,a.moved),io(t),a.event(t).end()}),!0),u=Ot(t,r),c=t.clientX,d=t.clientY;Vt(t.view),ro(t),a.mouse=[u,this.__zoom.invert(u)],Cn(this),a.start()}}function k(t,...e){if(o.apply(this,arguments)){var n=this.__zoom,a=Ot(t.changedTouches?t.changedTouches[0]:t,this),s=n.invert(a),u=n.k*(t.shiftKey?.5:2),d=i(x(v(n,u),a,s),r.apply(this,e),l);io(t),c>0?Xt(this).transition().duration(c).call(w,d,a,t):Xt(this).call(y.transform,d,a,t)}}function P(n,...r){if(o.apply(this,arguments)){var i,a,s,u,l=n.touches,c=l.length,d=_(this,r,n.changedTouches.length===c).event(n);for(ro(n),a=0;a<c;++a)u=[u=Ot(s=l[a],this),this.__zoom.invert(u),s.identifier],d.touch0?d.touch1||d.touch0[2]===u[2]||(d.touch1=u,d.taps=0):(d.touch0=u,i=!0,d.taps=1+!!t);t&&(t=clearTimeout(t)),i&&(d.taps<2&&(e=u[0],t=setTimeout((function(){t=null}),f)),Cn(this),d.start())}}function C(t,...e){if(this.__zooming){var n,o,r,a,s=_(this,e).event(t),u=t.changedTouches,c=u.length;for(io(t),n=0;n<c;++n)r=Ot(o=u[n],this),s.touch0&&s.touch0[2]===o.identifier?s.touch0[0]=r:s.touch1&&s.touch1[2]===o.identifier&&(s.touch1[0]=r);if(o=s.that.__zoom,s.touch1){var d=s.touch0[0],h=s.touch0[1],f=s.touch1[0],g=s.touch1[1],p=(p=f[0]-d[0])*p+(p=f[1]-d[1])*p,m=(m=g[0]-h[0])*m+(m=g[1]-h[1])*m;o=v(o,Math.sqrt(p/m)),r=[(d[0]+f[0])/2,(d[1]+f[1])/2],a=[(h[0]+g[0])/2,(h[1]+g[1])/2]}else{if(!s.touch0)return;r=s.touch0[0],a=s.touch0[1]}s.zoom("touch",i(x(o,r,a),s.extent,l))}}function A(t,...o){if(this.__zooming){var r,i,a=_(this,o).event(t),s=t.changedTouches,u=s.length;for(ro(t),n&&clearTimeout(n),n=setTimeout((function(){n=null}),f),r=0;r<u;++r)i=s[r],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(e[0]-i[0],e[1]-i[1])<m)){var l=Xt(this).on("dblclick.zoom");l&&l.apply(this,arguments)}}}return y.transform=function(t,e,n,o){var r=t.selection?t.selection():t;r.property("__zoom",uo),t!==r?w(t,e,n,o):r.interrupt().each((function(){_(this,arguments).event(o).start().zoom(null,"function"==typeof e?e.apply(this,arguments):e).end()}))},y.scaleBy=function(t,e,n,o){y.scaleTo(t,(function(){return this.__zoom.k*("function"==typeof e?e.apply(this,arguments):e)}),n,o)},y.scaleTo=function(t,e,n,o){y.transform(t,(function(){var t=r.apply(this,arguments),o=this.__zoom,a=null==n?b(t):"function"==typeof n?n.apply(this,arguments):n,s=o.invert(a),u="function"==typeof e?e.apply(this,arguments):e;return i(x(v(o,u),a,s),t,l)}),n,o)},y.translateBy=function(t,e,n,o){y.transform(t,(function(){return i(this.__zoom.translate("function"==typeof e?e.apply(this,arguments):e,"function"==typeof n?n.apply(this,arguments):n),r.apply(this,arguments),l)}),null,o)},y.translateTo=function(t,e,n,o,a){y.transform(t,(function(){var t=r.apply(this,arguments),a=this.__zoom,s=null==o?b(t):"function"==typeof o?o.apply(this,arguments):o;return i(oo.translate(s[0],s[1]).scale(a.k).translate("function"==typeof e?-e.apply(this,arguments):-e,"function"==typeof n?-n.apply(this,arguments):-n),t,l)}),o,a)},S.prototype={event:function(t){return t&&(this.sourceEvent=t),this},start:function(){return 1==++this.active&&(this.that.__zooming=this,this.emit("start")),this},zoom:function(t,e){return this.mouse&&"mouse"!==t&&(this.mouse[1]=e.invert(this.mouse[0])),this.touch0&&"touch"!==t&&(this.touch0[1]=e.invert(this.touch0[0])),this.touch1&&"touch"!==t&&(this.touch1[1]=e.invert(this.touch1[0])),this.that.__zoom=e,this.emit("zoom"),this},end:function(){return 0==--this.active&&(delete this.that.__zooming,this.emit("end")),this},emit:function(t){var e=Xt(this.that).datum();h.call(t,this.that,new eo(t,{sourceEvent:this.sourceEvent,target:y,type:t,transform:this.that.__zoom,dispatch:h}),e)}},y.wheelDelta=function(t){return arguments.length?(a="function"==typeof t?t:to(+t),y):a},y.filter=function(t){return arguments.length?(o="function"==typeof t?t:to(!!t),y):o},y.touchable=function(t){return arguments.length?(s="function"==typeof t?t:to(!!t),y):s},y.extent=function(t){return arguments.length?(r="function"==typeof t?t:to([[+t[0][0],+t[0][1]],[+t[1][0],+t[1][1]]]),y):r},y.scaleExtent=function(t){return arguments.length?(u[0]=+t[0],u[1]=+t[1],y):[u[0],u[1]]},y.translateExtent=function(t){return arguments.length?(l[0][0]=+t[0][0],l[1][0]=+t[1][0],l[0][1]=+t[0][1],l[1][1]=+t[1][1],y):[[l[0][0],l[0][1]],[l[1][0],l[1][1]]]},y.constrain=function(t){return arguments.length?(i=t,y):i},y.duration=function(t){return arguments.length?(c=+t,y):c},y.interpolate=function(t){return arguments.length?(d=t,y):d},y.on=function(){var t=h.on.apply(h,arguments);return t===h?y:t},y.clickDistance=function(t){return arguments.length?(p=(t=+t)*t,y):Math.sqrt(p)},y.tapDistance=function(t){return arguments.length?(m=+t,y):m},y}().scaleExtent([r,i]).translateExtent(s),n=Xt(g.current).call(e),o=oo.translate(a.x,a.y).scale(yo(a.zoom,r,i)),u=[[0,0],[t.width,t.height]],l=e.constrain()(o,u,s);e.transform(n,l),p.current=n.on("wheel.zoom"),h.setState({d3Zoom:e,d3Selection:n,transform:[l.x,l.y,l.k],domNode:g.current.closest(".react-diagram")})}}),[s]),n.useEffect((()=>{v&&x&&x.on("wheel.zoom",((t,e)=>{t.preventDefault(),g.current&&p.current&&p.current.call(g.current,t,e)}))}),[v,x,p,o]),n.useEffect((()=>{v&&v.on("start",(t=>{if(!t.sourceEvent)return null;if(f.current=!0,c){const e=No(t.transform);m.current=e,c?.(t.sourceEvent,e)}}))}),[v,c]),n.useEffect((()=>{v&&v.on("zoom",(t=>{if(h.setState({transform:[t.transform.x,t.transform.y,t.transform.k]}),l){const e=No(t.transform);l?.(t.sourceEvent,e)}}))}),[v,l]),n.useEffect((()=>{v&&v.on("end",(t=>{if(f.current=!1,d&&ko(m.current,t.transform)){const e=No(t.transform);m.current=e,clearTimeout(y.current),y.current=setTimeout((()=>{d?.(t.sourceEvent,e)}),0)}}))}),[v]),n.useEffect((()=>{v&&v.filter((e=>{if(Mo(e,t)&&"wheel"!==e.type)return!1;if(!o)return!1;return!(e.button&&!(e.button<=1))}))}),[v,o]),e.jsx("div",{className:"react-diagram__pane react-diagram__container",ref:g,children:u})}const Ao=t=>`translate(${t.transform[0]}px,${t.transform[1]}px) scale(${t.transform[2]})`;function $o({children:t}){const n=b(Ao);return e.jsx("div",{className:"react-diagram__viewport react-diagram__container",style:{transform:n},children:t})}function Bo({rect:t}){const{width:n,height:o,x:r,y:i}=t;return n&&o&&r&&i?e.jsx("div",{className:"react-diagram__drag-box react-diagram__container",style:{width:n,height:o,transform:`translate(${r}px, ${i}px)`}}):null}function To(t){if("string"==typeof t||"number"==typeof t)return""+t;let e="";if(Array.isArray(t))for(let n,o=0;o<t.length;o++)""!==(n=To(t[o]))&&(e+=(e&&" ")+n);else for(let n in t)t[n]&&(e+=(e&&" ")+n);return e}var Io=n.memo((function({rect:t,transform:o}){const r=n.useRef(null),{width:i,height:a,x:s,y:u}=t;return e.jsx("div",{className:To(["react-diagram__selection-box","react-diagram__container"]),style:{transform:o},children:e.jsx("div",{ref:r,className:"react-diagram__selection-box-rect",tabIndex:-1,style:{width:i,height:a,top:u,left:s}})})}));const jo=t=>"source"in t&&"target"in t,Ro=(t,e=[0,0])=>{if(!t)return{x:0,y:0,positionAbsolute:{x:0,y:0}};const n=(t.width??0)*e[0],o=(t.height??0)*e[1],r={x:t.position.x-n,y:t.position.y-o};return{...r,positionAbsolute:t.positionAbsolute?{x:t.positionAbsolute.x-n,y:t.positionAbsolute.y-o}:r}},Do=(t,e,[n,o,r]=[0,0,1],i=!1,a=!1,s=[0,0])=>{const u={x:(e.x-n)/r,y:(e.y-o)/r,width:e.width/r,height:e.height/r},l=[];return t.forEach((t=>{const{width:e,height:n,selectable:o=!0,hidden:r=!1}=t;if(a&&!o||r)return!1;const{positionAbsolute:c}=Ro(t,s),d={x:c.x,y:c.y,width:e||0,height:n||0},h=((t,e)=>{const n=Math.max(0,Math.min(t.x+t.width,e.x+e.width)-Math.max(t.x,e.x)),o=Math.max(0,Math.min(t.y+t.height,e.y+e.height)-Math.max(t.y,e.y));return Math.ceil(n*o)})(u,d);(void 0===e||void 0===n||null===e||null===n||i&&h>0||h>=(e||0)*(n||0)||t.dragging)&&l.push(t)})),l},zo=(t,e)=>{if(void 0===t)return"";if("string"==typeof t)return t;return`${e?`${e}__`:""}${Object.keys(t).sort().map((e=>`${e}=${t[e]}`)).join("&")}`},Xo=({source:t,target:e})=>`reactdiagram__edge-${t}-${e}`,Oo=(t,e=[0,0])=>{if(0===t.length)return{x:0,y:0,width:0,height:0};const n=t.reduce(((t,n)=>{const{x:o,y:r}=Ro(n,e).positionAbsolute,i=xo({x:o,y:r,width:n.width||0,height:n.height||0});return a=t,s=i,{x:Math.min(a.x,s.x),y:Math.min(a.y,s.y),x2:Math.max(a.x2,s.x2),y2:Math.max(a.y2,s.y2)};var a,s}),{x:1/0,y:1/0,x2:-1/0,y2:-1/0});return bo(n)},Yo=(t,e)=>{const n=t.find((t=>t.id===e.parentNode));if(n){const t=e.position.x+e.width-n.width,o=e.position.y+e.height-n.height;if(t>0||o>0||e.position.x<0||e.position.y<0){if(n.style={...n.style}||{},n.style.width=n.style.width??n.width,n.style.height=n.style.height??n.height,t>0&&(n.style.width+=t),o>0&&(n.style.height+=o),e.position.x<0){const t=Math.abs(e.position.x);n.position.x=n.position.x-t,n.style.width+=t,e.position.x=0}if(e.position.y<0){const t=Math.abs(e.position.y);n.position.y=n.position.y-t,n.style.height+=t,e.position.y=0}n.width=n.style.width,n.height=n.style.height}}},Lo=(t,e)=>{if(t.some((t=>"reset"===t.type)))return t.filter((t=>"reset"===t.type)).map((t=>t.item));const n=t.filter((t=>"add"===t.type)).map((t=>t.item));return e.reduce(((e,n)=>{const o=t.filter((t=>t.id===n.id));if(0===o.length)return e.push(n),e;const r={...n};for(const t of o)if(t)switch(t.type){case"select":r.selected=t.selected;break;case"position":void 0!==t.position&&(r.position=t.position),void 0!==t.positionAbsolute&&(r.positionAbsolute=t.positionAbsolute),void 0!==t.dragging&&(r.dragging=t.dragging),r.expandParent&&Yo(e,r);break;case"dimensions":void 0!==t.dimensions&&(r.width=t.dimensions.width,r.height=t.dimensions.height),void 0!==t.updateStyle&&(r.style={...r.style||{},...t.dimensions}),"boolean"==typeof t.resizing&&(r.resizing=t.resizing),r.expandParent&&Yo(e,r);break;case"remove":return e}return e.push(r),e}),n)};function Uo(t,e){return Lo(t,e)}function qo(t,e){return Lo(t,e)}const Vo=(t,e)=>({id:t,type:"select",selected:e});function Zo(t,e){return t.reduce(((t,n)=>{const o=e.includes(n.id);return!n.selected&&o?(n.selected=!0,t.push(Vo(n.id,!0))):n.selected&&!o&&(n.selected=!1,t.push(Vo(n.id,!1))),t}),[])}const Fo=t=>({elementsSelectable:t.elementsSelectable,transform:`translate(${t.transform[0]}px,${t.transform[1]}px) scale(${t.transform[2]})`});function Wo({children:t,dragSelectionKeyPressed:o}){const r=w(),i=n.useRef(null),a=n.useRef(0),s=n.useRef(),{elementsSelectable:u,transform:l}=b(Fo,fo),[c,d]=n.useState({x:0,y:0}),[h,f]=n.useState({width:0,height:0,x:0,y:0}),[g,p]=n.useState({width:0,height:0,x:0,y:0}),[m,y]=n.useState(!1),[v,x]=n.useState(!1),_=()=>{d({x:0,y:0}),f({width:0,height:0,x:0,y:0}),y(!1)},E=u&&o;return e.jsxs("div",{ref:i,className:"react-diagram__container react-diagram__drag-selection",onClick:t=>{t.target===i.current&&(r.getState().resetSelectedElements(),y(!1),x(!1))},onMouseDown:E?t=>{const{resetSelectedElements:e,domNode:n}=r.getState();if(s.current=n?.getBoundingClientRect(),!u||0!==t.button||t.target!==i.current||!s.current||!o)return;const{x:a,y:l}=_o(t,s.current);e(),f({width:0,height:0,x:a,y:l}),d({x:a,y:l})}:void 0,onMouseMove:E?t=>{const{nodeInternals:e,transform:n,nodeOrigin:i,getNodes:u,onNodesChange:l}=r.getState();if(!(c.x>0&&c.y>0)||!s.current||!o)return;y(!0),x(!1);const d=_o(t,s.current),h=c.x??0,g=c.y??0,m={x:d.x<h?d.x:h,y:d.y<g?d.y:g,width:Math.abs(d.x-h),height:Math.abs(d.y-g)},v=u(),b=Do(e,m,n,!1,!0,i),w=b.map((t=>t.id)),_=Oo(b,i);if(p(_),a.current!==w.length){a.current=w.length;const t=Zo(v,w);t.length&&l?.(t)}f(m)}:void 0,onMouseUp:u&&h?t=>{0===t.button&&(x(a.current>0),_())}:void 0,onMouseLeave:E?()=>{x(a.current>0),_()}:void 0,children:[t,m&&e.jsx(Bo,{rect:h}),v&&e.jsx(Io,{rect:g,transform:l})]})}Wo.displayName="DragSelection";const Ho=t=>{const{minZoom:e,maxZoom:n,translateExtent:o}=t;return{minZoom:e,maxZoom:n,translateExtent:o}};function Ko({children:t,multiSelectionKeyCode:o,noPanClassName:r,panning:i,defaultViewport:a,onMove:s,onMoveStart:u,onMoveEnd:l}){const{minZoom:c,maxZoom:d,translateExtent:h}=b(Ho),[f,g]=n.useState(!1);!function(t="Meta"){const e=w(),[o,r]=n.useState(!1),i=e=>{e.key===t&&r(!0)},a=()=>{r(!1)};n.useEffect((()=>(document.addEventListener("keydown",i),document.addEventListener("keyup",a),()=>{document.removeEventListener("keydown",i),document.removeEventListener("keyup",a)})),[]),n.useEffect((()=>{e.setState({multiSelectionActive:o})}),[o])}(o);const p=t=>{"Shift"===t.key&&g(!0)},m=()=>{g(!1)};return n.useEffect((()=>(document.addEventListener("keydown",p),document.addEventListener("keyup",m),()=>{document.removeEventListener("keydown",p),document.removeEventListener("keyup",m)})),[]),e.jsx(Co,{noPanClassName:r,panning:i&&!f,minZoom:c,maxZoom:d,translateExtent:h,defaultViewport:a,onMove:s,onMoveStart:u,onMoveEnd:l,children:e.jsx(Wo,{dragSelectionKeyPressed:f,children:e.jsx($o,{children:t})})})}Ko.displayName="DiagramRenderer";var Go,Qo=n.memo(Ko);t.Position=void 0,(Go=t.Position||(t.Position={})).Left="left",Go.Top="top",Go.Right="right",Go.Bottom="bottom",t.MarkerType=void 0,(t.MarkerType||(t.MarkerType={})).Arrow="arrow";const Jo=t=>({nodesDraggable:t.nodesDraggable,elementsSelectable:t.elementsSelectable,updateNodeDimensions:t.updateNodeDimensions,onError:t.onError});function tr({nodeTypes:o,onNodeClick:r,onNodeMouseEnter:i,onNodeMouseMove:a,onNodeMouseLeave:s,onNodeContextMenu:u,onNodeDoubleClick:l,...c}){const{nodesDraggable:d,elementsSelectable:h,updateNodeDimensions:f,onError:g}=b(Jo,fo),p=b(n.useCallback((t=>t.getNodes()),[])),m=n.useRef(),y=n.useMemo((()=>{if("undefined"==typeof ResizeObserver)return null;const t=new ResizeObserver((t=>{const e=t.map((t=>({id:t.target.getAttribute("data-id"),nodeElement:t.target,forceUpdate:!0})));f(e)}));return m.current=t,t}),[]);return n.useEffect((()=>()=>{m?.current?.disconnect()}),[]),e.jsx("div",{className:"react-diagram__nodes react-diagram__container",children:p.map((n=>{const{data:f,type:p,id:m,className:v,style:x,ariaLabel:b,positionAbsolute:w,hidden:_,selected:E,selectable:S,draggable:N}=n;let M=p||"default";o[M]||(g?.("010",M),M="default");const k=o[M]||o.default,P=!!(N||d&&void 0===N),C=!!(S||h&&void 0===S),A={id:m,className:v,style:{...x,width:n.width,height:n.height},ariaLabel:b},$={onClick:r,onMouseEnter:i,onMouseMove:a,onMouseLeave:s,onContextMenu:u,onDoubleClick:l},B={positionX:w?.x||0,positionY:w?.y||0,sourcePosition:t.Position.Bottom,targetPosition:t.Position.Top},T={selected:!!E,isSelectable:C,isDraggable:P,hidden:_,isParent:!!n[go]?.isParent,initialized:!!n.width&&!!n.height};return e.jsx(k,{...c,...A,...B,...$,...T,zIndex:n[go]?.z??0,type:M,data:f,resizeObserver:y},m)}))})}tr.displayName="NodeRenderer";var er=n.memo(tr);const nr={[t.MarkerType.Arrow]:({color:t="none",strokeWidth:n=1})=>e.jsx("polyline",{stroke:t,strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:n,fill:t,points:"-5,-4 0,0 -5,4 -5,-4"})};const or=({id:t,type:o,color:r,width:i=12.5,height:a=12.5,markerUnits:s="strokeWidth",strokeWidth:u,orient:l="auto-start-reverse"})=>{const c=function(t){const e=w();return n.useMemo((()=>Object.prototype.hasOwnProperty.call(nr,t)?nr[t]:(e.getState().onError?.("022",t),null)),[t])}(o);return c?e.jsx("marker",{className:"react-diagram__arrowhead",id:t,markerWidth:`${i}`,markerHeight:`${a}`,viewBox:"-10 -10 20 20",markerUnits:s,orient:l,refX:"0",refY:"0",children:e.jsx(c,{color:r,strokeWidth:u})}):null},rr=({defaultColor:t,rfId:o})=>{const r=b(n.useCallback((({defaultColor:t,rfId:e})=>n=>{const o=[];return n.edges.reduce(((n,r)=>([r.markerStart,r.markerEnd].forEach((r=>{if(r&&"object"==typeof r){const i=zo(r,e);o.includes(i)||(n.push({id:i,color:r.color||t,...r}),o.push(i))}})),n)),[]).sort(((t,e)=>t.id.localeCompare(e.id)))})({defaultColor:t,rfId:o}),[t,o]),((t,e)=>!(t.length!==e.length||t.some(((t,n)=>t.id!==e[n].id)))));return e.jsx("defs",{children:r.map((t=>e.jsx(or,{id:t.id,type:t.type,color:t.color,width:t.width,height:t.height,markerUnits:t.markerUnits,strokeWidth:t.strokeWidth,orient:t.orient},t.id)))})};rr.displayName="MarkerComponent";var ir=n.memo(rr);var ar=n.memo((function({x:t,y:o,label:r,labelStyle:i={},labelShowBg:a=!0,labelBgStyle:s={},labelBgPadding:u=[2,4],labelBgBorderRadius:l=2,children:c,className:d,...h}){const f=n.useRef(null),[g,p]=n.useState({x:0,y:0,width:0,height:0}),m=To(["react-diagram__edge-text-wrapper",d]);return n.useEffect((()=>{if(f.current){const t=f.current.getBBox();p({x:t.x,y:t.y,width:t.width,height:t.height})}}),[r]),void 0!==r&&r?e.jsxs("g",{transform:`translate(${t-g.width/2} ${o-g.height/2})`,className:m,visibility:g.width?"visible":"hidden",...h,children:[a&&e.jsx("rect",{width:g.width+2*u[0],x:-u[0],y:-u[1],height:g.height+2*u[1],className:"react-diagram__edge-text-bg",style:s,rx:l,ry:l}),e.jsx("text",{className:"react-diagram__edge-text",y:g.height/2,dy:"0.3em",ref:f,style:i,children:r}),c]}):null}));function sr({path:t,labelX:n,labelY:o,label:r,labelStyle:i,labelShowBg:a,labelBgStyle:s,labelBgPadding:u,labelBgBorderRadius:l,style:c,markerEnd:d,markerStart:h}){return e.jsxs(e.Fragment,{children:[e.jsx("path",{style:c,d:t,fill:"none",className:"react-diagram__edge-path",markerEnd:d,markerStart:h}),r&&po(n)&&po(o)?e.jsx(ar,{x:n,y:o,label:r,labelStyle:i,labelShowBg:a,labelBgStyle:s,labelBgPadding:u,labelBgBorderRadius:l}):null]})}sr.displayName="BaseEdge";const ur=({sourceX:t,sourceY:e,targetX:n,targetY:o})=>{const r=Math.abs(n-t)/2,i=n<t?n+r:n-r,a=Math.abs(o-e)/2;return[i,o<e?o+a:o-a,r,a]},lr=n.memo((({sourceX:t,sourceY:n,targetX:o,targetY:r,label:i,labelStyle:a,labelShowBg:s,labelBgStyle:u,labelBgPadding:l,labelBgBorderRadius:c,style:d,markerEnd:h,markerStart:f})=>{const[g,p,m]=(({sourceX:t,sourceY:e,targetX:n,targetY:o})=>{const[r,i,a,s]=ur({sourceX:t,sourceY:e,targetX:n,targetY:o});return[`M ${t},${e}L ${n},${o}`,r,i,a,s]})({sourceX:t,sourceY:n,targetX:o,targetY:r});return e.jsx(sr,{path:g,labelX:p,labelY:m,label:i,labelStyle:a,labelShowBg:s,labelBgStyle:u,labelBgPadding:l,labelBgBorderRadius:c,style:d,markerEnd:h,markerStart:f})}));lr.displayName="StraightEdge";const cr={[t.Position.Left]:{x:-1,y:0},[t.Position.Right]:{x:1,y:0},[t.Position.Top]:{x:0,y:-1},[t.Position.Bottom]:{x:0,y:1}},dr=({source:e,sourcePosition:n=t.Position.Bottom,target:o})=>n===t.Position.Left||n===t.Position.Right?e.x<o.x?{x:1,y:0}:{x:-1,y:0}:e.y<o.y?{x:0,y:1}:{x:0,y:-1},hr=(t,e)=>Math.sqrt(Math.pow(e.x-t.x,2)+Math.pow(e.y-t.y,2));function fr({sourceX:e,sourceY:n,sourcePosition:o=t.Position.Bottom,targetX:r,targetY:i,targetPosition:a=t.Position.Top,borderRadius:s=5,centerX:u,centerY:l,offset:c=20}){const[d,h,f,g,p]=function({source:e,sourcePosition:n=t.Position.Bottom,target:o,targetPosition:r=t.Position.Top,center:i,offset:a}){const s=cr[n],u=cr[r],l={x:e.x+s.x*a,y:e.y+s.y*a},c={x:o.x+u.x*a,y:o.y+u.y*a},d=dr({source:l,sourcePosition:n,target:c}),h=0!==d.x?"x":"y",f=d[h];let g=[],p=0,m=0;const[y,v,x,b]=ur({sourceX:e.x,sourceY:e.y,targetX:o.x,targetY:o.y});if(s[h]*u[h]==-1){p=i.x||y,m=i.y||v;const t=[{x:p,y:l.y},{x:p,y:c.y}],e=[{x:l.x,y:m},{x:c.x,y:m}];g=s[h]!==f?"x"===h?e:t:"x"===h?t:e}return[[e,l,...g,c,o],p,m,x,b]}({source:{x:e,y:n},sourcePosition:o,target:{x:r,y:i},targetPosition:a,center:{x:u,y:l},offset:c});return[d.reduce(((t,e,n)=>{let o="";return o=n>0&&n<d.length-1?function(t,e,n,o){const r=Math.min(hr(t,e)/2,hr(e,n)/2,o),{x:i,y:a}=e;if(t.x===i&&i===n.x||t.y===a&&a===n.y)return`L${i} ${a}`;if(t.y===a)return`L ${i+r*(t.x<n.x?-1:1)},${a}Q ${i},${a} ${i},${a+r*(t.y<n.y?1:-1)}`;const s=t.x<n.x?1:-1;return`L ${i},${a+r*(t.y<n.y?-1:1)}Q ${i},${a} ${i+r*s},${a}`}(d[n-1],e,d[n+1],s):`${0===n?"M":"L"}${e.x} ${e.y}`,t+=o}),""),h,f,g,p]}const gr=n.memo((({sourceX:n,sourceY:o,targetX:r,targetY:i,label:a,labelStyle:s,labelShowBg:u,labelBgStyle:l,labelBgPadding:c,labelBgBorderRadius:d,style:h,sourcePosition:f=t.Position.Bottom,targetPosition:g=t.Position.Top,markerEnd:p,markerStart:m,pathOptions:y})=>{const[v,x,b]=fr({sourceX:n,sourceY:o,sourcePosition:f,targetX:r,targetY:i,targetPosition:g,borderRadius:y?.borderRadius,offset:y?.offset});return e.jsx(sr,{path:v,labelX:x,labelY:b,label:a,labelStyle:s,labelShowBg:u,labelBgStyle:l,labelBgPadding:c,labelBgBorderRadius:d,style:h,markerEnd:p,markerStart:m})}));gr.displayName="StepEdge";const pr=(t,e)=>t>=0?.5*t:25*e*Math.sqrt(-t),mr=({pos:e,x1:n,y1:o,x2:r,y2:i,c:a})=>{switch(e){case t.Position.Left:return[n-pr(n-r,a),o];case t.Position.Right:return[n+pr(r-n,a),o];case t.Position.Top:return[n,o-pr(o-i,a)];case t.Position.Bottom:return[n,o+pr(i-o,a)]}},yr=({sourceX:e,sourceY:n,sourcePosition:o=t.Position.Bottom,targetX:r,targetY:i,targetPosition:a=t.Position.Top,curvature:s=.25})=>{const[u,l]=mr({pos:o,x1:e,y1:n,x2:r,y2:i,c:s}),[c,d]=mr({pos:a,x1:r,y1:i,x2:e,y2:n,c:s}),[h,f,g,p]=(({sourceX:t,sourceY:e,targetX:n,targetY:o,sourceControlX:r,sourceControlY:i,targetControlX:a,targetControlY:s})=>{const u=.125,l=.375,c=t*u+r*l+a*l+n*u,d=e*u+i*l+s*l+o*u;return[c,d,Math.abs(c-t),Math.abs(d-e)]})({sourceX:e,sourceY:n,targetX:r,targetY:i,sourceControlX:u,sourceControlY:l,targetControlX:c,targetControlY:d});return[`M${e},${n} C${u},${l} ${c},${d} ${r},${i}`,h,f,g,p]},vr=n.memo((({sourceX:n,sourceY:o,targetX:r,targetY:i,sourcePosition:a=t.Position.Bottom,targetPosition:s=t.Position.Top,label:u,labelStyle:l,labelShowBg:c,labelBgStyle:d,labelBgPadding:h,labelBgBorderRadius:f,style:g,markerEnd:p,markerStart:m,pathOptions:y})=>{const[v,x,b]=yr({sourceX:n,sourceY:o,sourcePosition:a,targetX:r,targetY:i,targetPosition:s,curvature:y?.curvature});return e.jsx(sr,{path:v,labelX:x,labelY:b,label:u,labelStyle:l,labelShowBg:c,labelBgStyle:d,labelBgPadding:h,labelBgBorderRadius:f,style:g,markerEnd:p,markerStart:m})}));vr.displayName="BezierEdge";const xr=t=>t?.classList.contains("target")?"target":t?.classList.contains("source")?"source":null,br=(t,e,n,o)=>(e[n]||[]).reduce(((e,r)=>(`${t.id}-${n}`!==o&&e.push({type:n,nodeId:t.id,x:(t.positionAbsolute?.x??0)+r.x+r.width/2,y:(t.positionAbsolute?.y??0)+r.y+r.height/2}),e)),[]),wr=({isAnchor:t=!1,event:e,nodeId:n,portType:o,getState:r,setState:i,onConnect:a,onEdgeUpdateEnd:s})=>{const u=(l=e.target,l.getRootNode?.()||window?.document);var l;const{domNode:c,autoPanOnConnect:d,getNodes:h,cancelConnection:f,onConnectStart:g,onConnectEnd:p,panBy:m}=r(),y=c?.getBoundingClientRect(),{x:v,y:x}=_o(e),b=u?.elementFromPoint(v,x),w=t?o:xr(b),_=(({nodes:t,nodeId:e,portType:n})=>t.reduce(((t,o)=>{if(o[go]){const{portBounds:r}=o[go];let i=[],a=[];r&&(i=br(o,r,"source",`${e}-${n}`),a=br(o,r,"target",`${e}-${n}`)),t.push(...i,...a)}return t}),[]))({nodes:h(),nodeId:n,portType:o});let E=_o(e,y),S=null,N=!1,M=null,k=0,P=!1;if(!y||!o)return;const C=()=>{if(!d)return;const[t,e]=So(E,y);m({x:t,y:e}),k=requestAnimationFrame(C)};i({connectionPosition:E,connectionNodeId:n,connectionPortType:w}),g?.(e,{nodeId:n,portType:o});const A=t=>{E=_o(t,y),S=((t,e,n)=>{let o=null,r=1/0;return n.forEach((n=>{const i=Math.sqrt(Math.pow(n.x-t.x,2)+Math.pow(n.y-t.y,2));i<=e&&i<r&&(r=i,o=n)})),o})(E,20,_),P||(C(),P=!0);const e=((t,e,n,o,r)=>{const i="target"===o,a={isValid:!1,connection:{source:null,target:null}},s=r.querySelector(`.react-diagram__port[data-id="${e?.nodeId}-${e?.type}"]`),{x:u,y:l}=_o(t),c=r.elementFromPoint(u,l),d=c?.classList.contains("react-diagram__port")?c:s;if(d){const t=xr(d),e=d.getAttribute("data-nodeid"),o={source:i?e:n,target:i?n:e};a.connection=o,(i&&"source"===t||!i&&"target"===t)&&(a.isValid=!0)}return a})(t,S,n,o,u);if(N=e.isValid,M=e.connection,S&&N){const{x:t,y:e}=S;i({connectionPosition:{x:t,y:e}})}else i({connectionPosition:E})},$=t=>{N&&M&&a?.(M),p?.(t),o&&s?.(t),f(),cancelAnimationFrame(k),N=!1,M=null,P=!1,u.removeEventListener("mousemove",A),u.removeEventListener("mouseup",$),u.removeEventListener("touchmove",A),u.removeEventListener("touchend",$)};u.addEventListener("mousemove",A),u.addEventListener("mouseup",$),u.addEventListener("touchmove",A),u.addEventListener("touchend",$)},_r=(e,n,o)=>o===t.Position.Left?e-n:o===t.Position.Right?e+n:e,Er=(e,n,o)=>o===t.Position.Top?e-n:o===t.Position.Bottom?e+n:e,Sr="react-diagram__edgeupdater";function Nr({position:t,centerX:n,centerY:o,radius:r=10,onMouseDown:i,onMouseEnter:a,onMouseOut:s,type:u}){return e.jsx("circle",{className:To([Sr,`${Sr}-${u}`]),cx:_r(n,r,t),cy:Er(o,r,t),r:r,stroke:"transparent",fill:"transparent",onMouseDown:i,onMouseEnter:a,onMouseOut:s})}function Mr(t,e,n){return void 0===n?n:o=>{const r=e().edges.find((e=>e.id===t));r&&n(o,{...r})}}const kr=t=>{const o=o=>{const{id:r,className:i,style:a,type:s,data:u,rfId:l,ariaLabel:c,source:d,sourcePort:h,target:f,targetPort:g,markerEnd:p,markerStart:m,label:y,labelStyle:v,labelShowBg:x,labelBgStyle:b,labelBgPadding:_,labelBgBorderRadius:E,sourceX:S,sourceY:N,targetX:M,targetY:k,sourcePosition:P,targetPosition:C,selected:A,elementsSelectable:$,hidden:B,isFocusable:T,onClick:I,onDoubleClick:j,onContextMenu:R,onMouseEnter:D,onMouseMove:z,onMouseLeave:X,onEdgeUpdate:O,onEdgeUpdateStart:Y,onEdgeUpdateEnd:L}=o,U=n.useRef(null),[q,V]=n.useState(!1),Z=w(),F=n.useMemo((()=>`url(#${zo(m,l)})`),[m,l]),W=n.useMemo((()=>`url(#${zo(p,l)})`),[p,l]);if(B)return null;const H=t=>e=>{if(0!==e.button)return;const{edges:n}=Z.getState(),i=o[t],a=n.find((t=>t.id===r));V(!0),Y?.(e,a,t);wr({isAnchor:!0,event:e,nodeId:i,portType:t,getState:Z.getState,setState:Z.setState,onConnect:t=>O?.(a,t),onEdgeUpdateEnd:e=>{V(!1),L?.(e,a,t)}})},K=Mr(r,Z.getState,j),G=Mr(r,Z.getState,R),Q=Mr(r,Z.getState,D),J=Mr(r,Z.getState,z),tt=Mr(r,Z.getState,X),et=To(["react-diagram__edge",`react-diagram__edge-${s}`,i,{selected:A,inactive:!$}]),nt={markerStart:F,markerEnd:W},ot={source:d,sourcePort:h,target:f,targetPort:g},rt={label:y,labelStyle:v,labelShowBg:x,labelBgStyle:b,labelBgPadding:_,labelBgBorderRadius:E},it={sourceX:S,sourceY:N,targetX:M,targetY:k,sourcePosition:P,targetPosition:C},at={onClick:t=>{const{edges:e}=Z.getState();if(I){const n=e.find((t=>t.id===r));I(t,n)}},onDoubleClick:K,onContextMenu:G,onMouseEnter:Q,onMouseMove:J,onMouseLeave:tt};return e.jsxs("g",{...at,ref:U,className:et,tabIndex:T?0:void 0,role:T?"button":void 0,"aria-label":null===c?void 0:c||`Edge from ${d} to ${f}`,"aria-describedby":T?`react-diagram__edge-desc-${l}`:void 0,children:[!q&&e.jsx(t,{...ot,...nt,...rt,...it,id:r,data:u,style:a,selected:A}),e.jsx(Nr,{position:P,centerX:S,centerY:N,radius:10,onMouseDown:H("target"),onMouseEnter:console.log,onMouseOut:console.log,type:"source"}),e.jsx(Nr,{position:C,centerX:M,centerY:k,radius:10,onMouseDown:H("source"),onMouseEnter:console.log,onMouseOut:console.log,type:"target"})]})};return o.displayName="EdgeWrapper",n.memo(o)},Pr=t=>{const e={default:kr(t.straight||lr),step:kr(t.step||gr),bezier:kr(t.bezier||vr)},n=Object.keys(t).filter((t=>!Object.keys(e).includes(t))).reduce(((e,n)=>(e[n]=kr(t[n]||gr),e)),{});return{...e,...n}};function Cr(e,n,o=null){const r=(o?.x||0)+n.x,i=(o?.y||0)+n.y,a=o?.width||n.width,s=o?.height||n.height;switch(e){case t.Position.Top:return{x:r+a/2,y:i};case t.Position.Right:return{x:r+a,y:i+s/2};case t.Position.Bottom:return{x:r+a/2,y:i+s};case t.Position.Left:return{x:r,y:i+s/2}}}function Ar(t,e){return t?1!==t.length&&e?e&&t.find((t=>t.id===e))||null:t[0]:null}function $r(t){const e=t?.[go]?.portBounds||null,n=e&&t?.width&&t?.height&&void 0!==t?.positionAbsolute?.x&&void 0!==t?.positionAbsolute?.y;return[{x:t?.positionAbsolute?.x||0,y:t?.positionAbsolute?.y||0,width:t?.width||0,height:t?.height||0},e,!!n]}const Br=t=>({edges:t.edges,width:t.width,height:t.height,nodeInternals:t.nodeInternals,onError:t.onError});function Tr({rfId:n,edgeTypes:o,children:r,noPanClassName:i,onEdgeClick:a,onEdgeDoubleClick:s,onEdgeContextMenu:u,onEdgeMouseEnter:l,onEdgeMouseMove:c,onEdgeMouseLeave:d,onEdgeUpdate:h,onEdgeUpdateStart:f,onEdgeUpdateEnd:g}){const{edges:p,width:m,height:y,nodeInternals:v}=b(Br,fo);return e.jsxs(e.Fragment,{children:[e.jsxs("svg",{width:m||"100vw",height:y||"100vh",className:"react-diagram__edges react-diagram__container",children:[e.jsx(ir,{defaultColor:"#000000",rfId:n}),e.jsx("g",{children:p.map((r=>{const{data:p,type:m,id:y,className:x,style:b,ariaLabel:w,source:_,sourcePort:E,target:S,targetPort:N,markerEnd:M,markerStart:k,label:P,labelStyle:C,labelShowBg:A,labelBgStyle:$,labelBgPadding:B,labelBgBorderRadius:T}=r,[I,j,R]=$r(v.get(_)),[D,z,X]=$r(v.get(S));if(!R||!X)return null;const O=m||"step",Y=o[O]||o.default,L=z.target,U=Ar(j.source,E),q=Ar(L,N),V=U?.position||t.Position.Bottom,Z=q?.position||t.Position.Top,F=!!r.focusable;if(!U||!q)return null;const W={id:y,className:To([x,i]),style:b,ariaLabel:w},H={source:_,sourcePort:E,target:S,targetPort:N},K={markerEnd:M,markerStart:k},G={label:P,labelStyle:C,labelShowBg:A,labelBgStyle:$,labelBgPadding:B,labelBgBorderRadius:T},Q=((t,e,n,o,r,i)=>{const a=Cr(n,t,e),s=Cr(i,o,r);return{sourceX:a.x,sourceY:a.y,targetX:s.x,targetY:s.y}})(I,U,V,D,q,Z),J={...Q,sourcePosition:V,targetPosition:Z},tt={onClick:a,onDoubleClick:s,onContextMenu:u,onMouseEnter:l,onMouseMove:c,onMouseLeave:d,onEdgeUpdate:h,onEdgeUpdateStart:f,onEdgeUpdateEnd:g};return e.jsx(Y,{...W,...H,...K,...G,...J,...tt,rfId:n,type:O,data:p,isFocusable:F},y)}))})]}),r]})}Tr.displayName="EdgeRenderer";var Ir=n.memo(Tr);const jr={[t.Position.Left]:t.Position.Right,[t.Position.Right]:t.Position.Left,[t.Position.Top]:t.Position.Bottom,[t.Position.Bottom]:t.Position.Top};function Rr({style:t,nodeId:o,portType:r}){const{fromNode:i,toX:a,toY:s}=b(n.useCallback((t=>({fromNode:t.nodeInternals.get(o),toX:(t.connectionPosition.x-t.transform[0])/t.transform[2],toY:(t.connectionPosition.y-t.transform[1])/t.transform[2]})),[o]),fo),u=i?.[go]?.portBounds,l=u?.[r];if(!i||!l)return null;const c=l[0],d=c?c.x+c.width/2:(i.width??0)/2,h=c?c.y+c.height/2:i.height??0,f=(i.positionAbsolute?.x??0)+d,g=(i.positionAbsolute?.y??0)+h,p=c?.position,m=p?jr[p]:null;if(!p||!m)return null;let y="";const v={sourceX:f,sourceY:g,sourcePosition:p,targetX:a,targetY:s,targetPosition:m};return[y]=fr({...v,borderRadius:0}),e.jsx("path",{d:y,fill:"none",className:"react-diagram__connection-path",style:t})}Rr.displayName="ConnectionPath";const Dr=t=>({nodeId:t.connectionNodeId,portType:t.connectionPortType});function zr({containerStyle:t,style:n}){const{nodeId:o,portType:r}=b(Dr,fo);return!(!o||!r)?e.jsx("svg",{style:t,className:"react-diagram__container react-diagram__edges react-diagram__connectionline",children:e.jsx("g",{className:"react-diagram__connection",children:e.jsx(Rr,{style:n,nodeId:o,portType:r})})}):null}function Xr({rfId:t,noPanClassName:n,panning:o,defaultViewport:r,multiSelectionKeyCode:i,onMove:a,onMoveStart:s,onMoveEnd:u,onlyRenderVisibleElements:l,disableKeyboardA11y:c,noDragClassName:d,nodeOrigin:h,nodeTypes:f,onNodeClick:g,onNodeDoubleClick:p,onNodeContextMenu:m,onNodeMouseEnter:y,onNodeMouseMove:v,onNodeMouseLeave:x,edgeTypes:b,onEdgeClick:w,onEdgeDoubleClick:_,onEdgeContextMenu:E,onEdgeMouseEnter:S,onEdgeMouseMove:N,onEdgeMouseLeave:M,onEdgeUpdate:k,onEdgeUpdateStart:P,onEdgeUpdateEnd:C}){return e.jsxs(Qo,{multiSelectionKeyCode:i,noPanClassName:n,panning:o,defaultViewport:r,onMove:a,onMoveStart:s,onMoveEnd:u,children:[e.jsx(er,{rfId:t,nodeTypes:f,onlyRenderVisibleElements:l,disableKeyboardA11y:c,nodeOrigin:h,noDragClassName:d,noPanClassName:n,onNodeClick:g,onNodeDoubleClick:p,onNodeContextMenu:m,onNodeMouseEnter:y,onNodeMouseMove:v,onNodeMouseLeave:x}),e.jsx(Ir,{rfId:t,edgeTypes:b,noPanClassName:n,onEdgeClick:w,onEdgeDoubleClick:_,onEdgeContextMenu:E,onEdgeMouseEnter:S,onEdgeMouseMove:N,onEdgeMouseLeave:M,onEdgeUpdate:k,onEdgeUpdateStart:P,onEdgeUpdateEnd:C,children:e.jsx(zr,{})}),e.jsx("div",{className:"react-diagram__edgelabel-renderer"})]})}Xr.displayName="DiagramView";var Or=n.memo(Xr);const Yr=t=>{const{setNodes:e,setEdges:n,setNodeExtent:o,setTranslateExtent:r,setMinZoom:i,setMaxZoom:a}=t;return{setNodes:e,setEdges:n,setNodeExtent:o,setTranslateExtent:r,setMinZoom:i,setMaxZoom:a}};function Lr(t,e){n.useEffect((()=>{void 0!==t&&e(t)}),[t])}function Ur(t,e,o){n.useEffect((()=>{void 0!==e&&o({[t]:e})}),[e])}const qr=({nodes:t,onNodesChange:e,onNodeDrag:n,onNodeDragStart:o,onNodeDragEnd:r,edges:i,onEdgesChange:a,gridStep:s,elevateNodesOnSelect:u,nodesDraggable:l,autoPanOnNodeDrag:c,autoPanOnConnect:d,onConnect:h,onConnectStart:f,onConnectEnd:g,onError:p,nodeExtent:m,translateExtent:y,minZoom:x,maxZoom:_})=>{const{setNodes:E,setEdges:S,setNodeExtent:N,setTranslateExtent:M,setMinZoom:k,setMaxZoom:P}=b(Yr,fo),C=w();return Ur("gridStep",s,C.setState),Lr(t,E),Lr(i,S),Lr(m,N),Lr(y,M),Lr(x,k),Lr(_,P),Ur("elevateNodesOnSelect",u,C.setState),Ur("nodesDraggable",l,C.setState),Ur("autoPanOnNodeDrag",c,C.setState),Ur("autoPanOnConnect",d,C.setState),Ur("onNodesChange",e,C.setState),Ur("onNodeDrag",n,C.setState),Ur("onNodeDragStart",o,C.setState),Ur("onNodeDragEnd",r,C.setState),Ur("onEdgesChange",a,C.setState),Ur("onConnect",h,C.setState),Ur("onConnectStart",f,C.setState),Ur("onConnectEnd",g,C.setState),Ur("onError",(t=>(e,n="")=>t?.(e,v[e](n)))(p),C.setState),null};function Vr(t,e){n.useRef(null);return n.useMemo((()=>e(t)),[t])}const Zr=n.createContext(null),Fr=Zr.Provider;Zr.Consumer;const Wr=()=>n.useContext(Zr);function Hr({type:t,position:n}){const o=w(),r=Wr();if(!r)return null;const i=t=>{const{defaultEdgeOptions:e,onConnect:n}=o.getState(),r={...e,...t};n?.(r)},a=e=>{const n=wo(e);(n&&0===e.button||!n)&&wr({event:e,nodeId:r,portType:t,getState:o.getState,setState:o.setState,onConnect:i})};return e.jsx("div",{"data-nodeid":r,"data-id":`${r}-${t}`,"data-port-position":n,className:`react-diagram__port react-diagram__port-${n} ${t} nodrag`,onMouseDown:a,onTouchStart:a})}Hr.displayName="Port";var Kr=n.memo(Hr);function Gr({data:n}){return e.jsxs(e.Fragment,{children:[e.jsx(Kr,{type:"target",position:t.Position.Top}),n.label,e.jsx(Kr,{type:"source",position:t.Position.Bottom})]})}function Qr(){const t=w(),e=n.useCallback((({sourceEvent:e})=>{const{transform:n,gridStep:o}=t.getState(),r=e.touches?e.touches[0].clientX:e.clientX,i=e.touches?e.touches[0].clientY:e.clientY,a={x:(r-n[0])/n[2],y:(i-n[1])/n[2]};return{xSnapped:o?o[0]*Math.round(a.x/o[0]):a.x,ySnapped:o?o[1]*Math.round(a.y/o[1]):a.y,...a}}),[]);return e}const Jr=(t,e,n,o)=>{const r=e.querySelectorAll(t);if(!r||!r.length)return null;const i=Array.from(r),a=e.getBoundingClientRect(),s=a.width*o[0],u=a.height*o[1];return i.map((t=>{const e=t.getBoundingClientRect();return{id:t.getAttribute("data-portid"),position:t.dataset.portPosition,x:(e.left-a.left-s)/n,y:(e.top-a.top-u)/n,...mo(t)}}))};function ti(t,e,n){return void 0===n?n:o=>{const r=e().nodeInternals.get(t);n(o,{...r})}}function ei({id:t,store:e,isSelectable:n,unselect:o=!1,nodeRef:r}){if(!n)return;const{addSelectedNodes:i,unselectNodes:a,multiSelectionActive:s,nodeInternals:u}=e.getState(),l=u.get(t);e.setState({nodesSelectionActive:!1}),l.selected?(o||l.selected&&s)&&(a({nodes:[l]}),requestAnimationFrame((()=>r?.current?.blur()))):i([t])}function ni(t,e){if(!t.parentNode)return!1;const n=e.get(t.parentNode);return!!n&&(!!n.selected||ni(n,e))}function oi(t,e,n,o){return Array.from(t.values()).filter((n=>(n.selected||n.id===o)&&(!n.parentNode||!ni(n,t))&&(n.draggable||e&&void 0===n.draggable))).map((t=>({id:t.id,position:t.position||{x:0,y:0},positionAbsolute:t.positionAbsolute||{x:0,y:0},distance:{x:n.x-(t.positionAbsolute?.x??0),y:n.y-(t.positionAbsolute?.y??0)},delta:{x:0,y:0},extent:t.extent,parentNode:t.parentNode,width:t.width,height:t.height})))}function ri({nodeId:t,dragItems:e,nodeInternals:n}){const o=e.map((t=>({...n.get(t.id),position:t.position,positionAbsolute:t.positionAbsolute})));return[t?o.find((e=>e.id===t)):o[0],o]}function ii({nodeRef:t,nodeId:e,isSelectable:o,noDragClassName:r}){const i=w(),a=n.useRef([]),s=n.useRef(null),u=n.useRef({x:0,y:0}),l=n.useRef({x:null,y:null}),c=n.useRef(null),d=n.useRef(!1),h=n.useRef(0),[f,g]=n.useState(!1),p=Qr();return n.useEffect((()=>{if(t?.current){const n=Xt(t.current),f=({x:t,y:n})=>{const{nodeInternals:o,onNodeDrag:r,updateNodePositions:s,nodeExtent:u,nodeOrigin:d,gridStep:h,onError:f}=i.getState();l.current={x:t,y:n};let p=!1;if(a.current=a.current.map((e=>{const r={x:t-e.distance.x,y:n-e.distance.y};h&&(r.x=h[0]*Math.round(r.x/h[0]),r.y=h[1]*Math.round(r.y/h[1]));const i=function(t,e,n,o,r=[0,0],i){let a=t.extent||o;if("parent"===t.extent)if(t.parentNode&&t.width&&t.height){const e=n.get(t.parentNode),{x:o,y:i}=Ro(e,r).positionAbsolute;a=e&&po(o)&&po(i)&&po(e.width)&&po(e.height)?[[o+t.width*r[0],i+t.height*r[1]],[o+e.width-t.width+t.width*r[0],i+e.height-t.height+t.height*r[1]]]:a}else i?.("011"),a=o;else if(t.extent&&t.parentNode){const e=n.get(t.parentNode),{x:o,y:i}=Ro(e,r).positionAbsolute;a=[[t.extent[0][0]+o,t.extent[0][1]+i],[t.extent[1][0]+o,t.extent[1][1]+i]]}let s={x:0,y:0};if(t.parentNode){const e=n.get(t.parentNode);s=Ro(e,r).positionAbsolute}const u=a?vo(e,a):e;return{position:{x:u.x-s.x,y:u.y-s.y},positionAbsolute:u}}(e,r,o,u,d,f);return p=p||e.position.x!==i.position.x||e.position.y!==i.position.y,e.position=i.position,e.positionAbsolute=i.positionAbsolute,e})),p&&(s(a.current,!0,!0),g(!0),r&&c.current)){const[t,n]=ri({nodeId:e,dragItems:a.current,nodeInternals:o});r(c.current,t,n)}},m=()=>{if(!s.current)return;const[t,e]=So(u.current,s.current);if(0!==t||0!==e){const{transform:n,panBy:o}=i.getState();l.current.x=(l.current.x??0)-t/n[2],l.current.y=(l.current.y??0)-e/n[2],f(l.current),o({x:t,y:e})}h.current=requestAnimationFrame(m)},y=function(){var t,e,n,o,r=Ht,i=Kt,a=Gt,s=Qt,u={},l=E("start","drag","end"),c=0,d=0;function h(t){t.on("mousedown.drag",f).filter(s).on("touchstart.drag",m).on("touchmove.drag",y,Yt).on("touchend.drag touchcancel.drag",v).style("touch-action","none").style("-webkit-tap-highlight-color","rgba(0,0,0,0)")}function f(a,s){if(!o&&r.call(this,a,s)){var u=x(this,i.call(this,a,s),a,s,"mouse");u&&(Xt(a.view).on("mousemove.drag",g,Lt).on("mouseup.drag",p,Lt),Vt(a.view),Ut(a),n=!1,t=a.clientX,e=a.clientY,u("start",a))}}function g(o){if(qt(o),!n){var r=o.clientX-t,i=o.clientY-e;n=r*r+i*i>d}u.mouse("drag",o)}function p(t){Xt(t.view).on("mousemove.drag mouseup.drag",null),Zt(t.view,n),qt(t),u.mouse("end",t)}function m(t,e){if(r.call(this,t,e)){var n,o,a=t.changedTouches,s=i.call(this,t,e),u=a.length;for(n=0;n<u;++n)(o=x(this,s,t,e,a[n].identifier,a[n]))&&(Ut(t),o("start",t,a[n]))}}function y(t){var e,n,o=t.changedTouches,r=o.length;for(e=0;e<r;++e)(n=u[o[e].identifier])&&(qt(t),n("drag",t,o[e]))}function v(t){var e,n,r=t.changedTouches,i=r.length;for(o&&clearTimeout(o),o=setTimeout((function(){o=null}),500),e=0;e<i;++e)(n=u[r[e].identifier])&&(Ut(t),n("end",t,r[e]))}function x(t,e,n,o,r,i){var s,d,f,g=l.copy(),p=Ot(i||n,e);if(null!=(f=a.call(t,new Wt("beforestart",{sourceEvent:n,target:h,identifier:r,active:c,x:p[0],y:p[1],dx:0,dy:0,dispatch:g}),o)))return s=f.x-p[0]||0,d=f.y-p[1]||0,function n(i,a,l){var m,y=p;switch(i){case"start":u[r]=n,m=c++;break;case"end":delete u[r],--c;case"drag":p=Ot(l||a,e),m=c}g.call(i,t,new Wt(i,{sourceEvent:a,subject:f,target:h,identifier:r,active:m,x:p[0]+s,y:p[1]+d,dx:p[0]-y[0],dy:p[1]-y[1],dispatch:g}),o)}}return h.filter=function(t){return arguments.length?(r="function"==typeof t?t:Ft(!!t),h):r},h.container=function(t){return arguments.length?(i="function"==typeof t?t:Ft(t),h):i},h.subject=function(t){return arguments.length?(a="function"==typeof t?t:Ft(t),h):a},h.touchable=function(t){return arguments.length?(s="function"==typeof t?t:Ft(!!t),h):s},h.on=function(){var t=l.on.apply(l,arguments);return t===l?h:t},h.clickDistance=function(t){return arguments.length?(d=(t=+t)*t,h):Math.sqrt(d)},h}().on("start",(n=>{if(1!==n.sourceEvent.which)return;const{nodeInternals:r,nodesDraggable:l,domNode:c,onNodeDragStart:d}=i.getState();e&&ei({id:e,store:i,nodeRef:t,isSelectable:o});const h=p(n);if(a.current=oi(r,l,h,e),d&&a.current){const[t,o]=ri({nodeId:e,dragItems:a.current,nodeInternals:r});d(n.sourceEvent,t,o)}s.current=c?.getBoundingClientRect()||null,u.current=_o(n.sourceEvent,s.current)})).on("drag",(t=>{const e=p(t),{autoPanOnNodeDrag:n}=i.getState();!d.current&&n&&(d.current=!0,m()),l.current.x===e.xSnapped&&l.current.y===e.ySnapped||!a.current||(c.current=t.sourceEvent,u.current=_o(t.sourceEvent,s.current),f(e))})).on("end",(t=>{if(g(!1),d.current=!1,cancelAnimationFrame(h.current),a.current){const{nodeInternals:n,updateNodePositions:o,onNodeDragEnd:r}=i.getState();if(o(a.current,!1,!1),r){const[o,i]=ri({nodeId:e,dragItems:a.current,nodeInternals:n});r(t.sourceEvent,o,i)}}})).filter((e=>{const n=e.target,o=!e.button&&!r||!function(t,e,n){let o=t;do{if(o?.matches(e))return!0;if(o===n.current)return!1;o=o.parentElement}while(o);return!1}(n,`.${r}`,t);return o}));return n.call(y),()=>{n.on(".drag",null)}}}),[i,t,e,o,r]),f}const ai=t=>{function o({id:o,type:r,data:i,positionX:a,positionY:s,sourcePosition:u,targetPosition:l,onClick:c,onMouseEnter:d,onMouseMove:h,onMouseLeave:f,onContextMenu:g,onDoubleClick:p,style:m,className:y,selected:v,isSelectable:x,isDraggable:b,hidden:_,resizeObserver:E,dragHandle:S,zIndex:N,isParent:M,initialized:k,disableKeyboardA11y:P,ariaLabel:C,rfId:A,noDragClassName:$,noPanClassName:B}){const T=w(),I=n.useRef(null),j=n.useRef(u),R=n.useRef(l),D=n.useRef(r),z=b||c||d||h||f;n.useEffect((()=>{if(I.current&&!_){const t=I.current;return E?.observe(t),()=>E?.unobserve(t)}}),[_]),n.useEffect((()=>{const t=D.current!==r,e=j.current!==u,n=R.current!==l;I.current&&(t||e||n)&&(t&&(D.current=r),e&&(j.current=u),n&&(R.current=l),T.getState().updateNodeDimensions([{id:o,nodeElement:I.current,forceUpdate:!0}]))}),[o,r,u,l]);const X=ii({nodeRef:I,nodeId:o,isSelectable:x,noDragClassName:$});if(_)return null;const O=To(["react-diagram__node",`react-diagram__node-${r}`,{[B]:b},y,{selected:v,parent:M,dragging:X}]),Y={zIndex:N,transform:`translate(${a}px,${s}px)`,pointerEvents:z?"all":"none",visibility:k?"visible":"hidden",...m},L={onClick:t=>{if(b||ei({id:o,store:T,nodeRef:I}),c){const e=T.getState().nodeInternals.get(o);c(t,{...e})}},onDoubleClick:ti(o,T.getState,p),onContextMenu:ti(o,T.getState,g),onMouseEnter:ti(o,T.getState,d),onMouseMove:ti(o,T.getState,h),onMouseLeave:ti(o,T.getState,f)},U={positionX:a,positionY:s,sourcePosition:u,targetPosition:l};return e.jsx("div",{...L,ref:I,className:O,style:Y,"data-id":o,tabIndex:0,role:"button","aria-describedby":P?void 0:`react-diagram__node-desc-${A}`,"aria-label":C,children:e.jsx(Fr,{value:o,children:e.jsx(t,{...U,id:o,zIndex:N,type:r,data:i,dragHandle:S})})})}return o.displayName="NodeWrapper",n.memo(o)},si=t=>{const e={default:ai(t.default||Gr)},n=Object.keys(t).filter((t=>!Object.keys(e).includes(t))).reduce(((e,n)=>(e[n]=ai(t[n]||Gr),e)),{});return{...e,...n}};function ui(t,e,n,o){if(!t.parentNode)return n;const r=e.get(t.parentNode),i=Ro(r,o);return ui(r,e,{x:(n.x??0)+i.x,y:(n.y??0)+i.y,z:(r[go]?.z??0)>(n.z??0)?r[go]?.z??0:n.z??0},o)}function li(t,e,n){t.forEach((o=>{if(o.parentNode&&!t.has(o.parentNode))throw new Error(`Parent node ${o.parentNode} not found`);if(o.parentNode||n?.[o.id]){const{x:r,y:i,z:a}=ui(o,t,{...o.position,z:o[go]?.z??0},e);o.positionAbsolute={x:r,y:i},o[go].z=a,n?.[o.id]&&(o[go].isParent=!0)}}))}function ci(t,e,n,o){const r=new Map,i={},a=o?1e3:0;return t.forEach((t=>{const n=(po(t.zIndex)?t.zIndex:0)+(t.selected?a:0),o=e.get(t.id),s={width:o?.width,height:o?.height,...t,positionAbsolute:{x:t.position.x,y:t.position.y}};t.parentNode&&(s.parentNode=t.parentNode,i[t.parentNode]=!0),Object.defineProperty(s,go,{enumerable:!1,value:{portBounds:o?.[go]?.portBounds,z:n}}),r.set(t.id,s)})),li(r,n,i),r}function di({changedNodes:t,get:e}){const{onNodesChange:n}=e();t?.length&&n?.(t)}const hi=[[Number.NEGATIVE_INFINITY,Number.NEGATIVE_INFINITY],[Number.POSITIVE_INFINITY,Number.POSITIVE_INFINITY]],fi={rfId:"1",width:0,height:0,transform:[0,0,1],nodeInternals:new Map,edges:[],elementsSelectable:!0,onNodesChange:null,domNode:null,nodeOrigin:[0,0],gridStep:void 0,nodesSelectionActive:!1,elevateNodesOnSelect:!0,nodesDraggable:!0,multiSelectionActive:!1,d3Zoom:null,d3Selection:null,minZoom:.5,maxZoom:2,connectionPosition:{x:0,y:0},connectionNodeId:null,connectionPortType:"source",autoPanOnNodeDrag:!0,autoPanOnConnect:!0,nodeExtent:hi,translateExtent:hi,onError:(t,e="")=>{}},gi=()=>{return t=(t,e)=>({...fi,setNodes:n=>{const{nodeInternals:o,nodeOrigin:r,elevateNodesOnSelect:i}=e();t({nodeInternals:ci(n,o,r,i)})},getNodes:()=>Array.from(e().nodeInternals.values()),setEdges:n=>{const{defaultEdgeOptions:o={}}=e();t({edges:n.map((t=>({...o,...t})))})},updateNodeDimensions:n=>{const{onNodesChange:o,nodeInternals:r,domNode:i,nodeOrigin:a}=e(),s=i?.querySelector(".react-diagram__viewport");if(!s)return;const u=window.getComputedStyle(s),{m22:l}=new window.DOMMatrixReadOnly(u.transform),c=n.reduce(((t,e)=>{const n=r.get(e.id);if(n){const o=mo(e.nodeElement);o.width&&o.height&&(n.width!==o.width||n.height!==o.height||e.forceUpdate)&&(r.set(n.id,{...n,[go]:{...n[go],portBounds:{source:Jr(".source",e.nodeElement,l,a),target:Jr(".target",e.nodeElement,l,a)}},...o}),t.push({id:n.id,type:"dimensions",dimensions:o}))}return t}),[]);li(r,a),t({nodeInternals:new Map(r)}),c?.length>0&&o?.(c)},updateNodePositions:(t,n=!0,o=!1)=>{const{triggerNodeChanges:r}=e();r(t.map((t=>{const e={id:t.id,type:"position",dragging:o};return n&&(e.positionAbsolute=t.positionAbsolute,e.position=t.position),e})))},triggerNodeChanges:t=>{const{onNodesChange:n}=e();t?.length&&n?.(t)},addSelectedNodes:n=>{const{multiSelectionActive:o,getNodes:r}=e();let i;i=o?n.map((t=>Vo(t,!0))):Zo(r(),n),di({changedNodes:i,get:e,set:t})},unselectNodes:({nodes:n}={})=>{const{getNodes:o}=e();di({changedNodes:(n||o()).map((t=>(t.selected=!1,Vo(t.id,!1)))),get:e,set:t})},resetSelectedElements:()=>{const{getNodes:n}=e();di({changedNodes:n().filter((t=>t.selected)).map((t=>Vo(t.id,!1))),get:e,set:t})},cancelConnection:()=>t({connectionNodeId:fi.connectionNodeId,connectionPortType:fi.connectionPortType}),panBy:t=>{const{transform:n,width:o,height:r,d3Zoom:i,d3Selection:a}=e();if(!i||!a||!t.x&&!t.y)return;const s=oo.translate(n[0]+t.x,n[1]+t.y).scale(n[2]),u=[[0,0],[o,r]],l=i?.constrain()(s,u,hi);i.transform(a,l)},setNodeExtent:n=>{const{nodeInternals:o}=e();o.forEach((t=>{t.positionAbsolute=vo(t.position,n)})),t({nodeExtent:n,nodeInternals:new Map(o)})},setTranslateExtent:n=>{e().d3Zoom?.translateExtent(n),t({translateExtent:n})},setMinZoom:n=>{const{d3Zoom:o,maxZoom:r}=e();o?.scaleExtent([n,r]),t({minZoom:n})},setMaxZoom:n=>{const{d3Zoom:o,minZoom:r}=e();o?.scaleExtent([r,n]),t({maxZoom:n})}}),t?o(t):o;var t},pi=({children:t})=>{const o=n.useRef(null);return o.current||(o.current=gi()),e.jsx(y,{value:o.current,children:t})};function mi({children:t}){return n.useContext(m)?e.jsx(e.Fragment,{children:t}):e.jsx(pi,{children:t})}pi.displayName="ReactDiagramProvider",mi.displayName="ReactDiagramWrapper";const yi={x:0,y:0,zoom:1},vi=[0,0],xi={default:Gr},bi={step:gr},wi=n.forwardRef((({id:t,panning:n=!0,minZoom:o,maxZoom:r,translateExtent:i,nodeExtent:a,defaultViewport:s=yi,multiSelectionKeyCode:u,onlyRenderVisibleElements:l=!1,disableKeyboardA11y:c=!1,noDragClassName:d="nodrag",noPanClassName:h="nopan",nodeOrigin:f=vi,nodeTypes:g=xi,onNodeClick:p,onNodeDoubleClick:m,onNodeContextMenu:y,onNodeMouseEnter:v,onNodeMouseMove:x,onNodeMouseLeave:b,edgeTypes:w=bi,onEdgeClick:_,onEdgeDoubleClick:E,onEdgeContextMenu:S,onEdgeMouseEnter:N,onEdgeMouseMove:M,onEdgeMouseLeave:k,onEdgeUpdate:P,onEdgeUpdateStart:C,onEdgeUpdateEnd:A,onMove:$,onMoveStart:B,onMoveEnd:T,nodes:I,edges:j,nodesDraggable:R,elevateNodesOnSelect:D,autoPanOnNodeDrag:z,autoPanOnConnect:X,onNodesChange:O,onNodeDrag:Y,onNodeDragStart:L,onNodeDragEnd:U,onEdgesChange:q,onConnect:V,onConnectStart:Z,onConnectEnd:F,onError:W},H)=>{const K=t||"1",G=Vr(g,si),Q=Vr(w,Pr);return e.jsx("div",{ref:H,className:"react-diagram",children:e.jsxs(mi,{children:[e.jsx(Or,{rfId:K,panning:n,defaultViewport:s,multiSelectionKeyCode:u,onlyRenderVisibleElements:l,disableKeyboardA11y:c,noDragClassName:d,noPanClassName:h,nodeOrigin:f,nodeTypes:G,edgeTypes:Q,onNodeClick:p,onNodeDoubleClick:m,onNodeContextMenu:y,onNodeMouseEnter:v,onNodeMouseMove:x,onNodeMouseLeave:b,onEdgeClick:_,onEdgeDoubleClick:E,onEdgeContextMenu:S,onEdgeMouseEnter:N,onEdgeMouseMove:M,onEdgeMouseLeave:k,onEdgeUpdate:P,onEdgeUpdateStart:C,onEdgeUpdateEnd:A,onMove:$,onMoveStart:B,onMoveEnd:T}),e.jsx(qr,{rfId:K,nodes:I,edges:j,nodesDraggable:R,elevateNodesOnSelect:D,autoPanOnNodeDrag:z,autoPanOnConnect:X,nodeExtent:a,translateExtent:i,minZoom:o,maxZoom:r,onNodesChange:O,onNodeDrag:Y,onNodeDragStart:L,onNodeDragEnd:U,onEdgesChange:q,onConnect:V,onConnectStart:Z,onConnectEnd:F,onError:W})]})})}));function _i(t){return e=>{const[o,r]=n.useState(e),i=n.useCallback((e=>r((n=>t(e,n)))),[]);return[o,r,i]}}wi.displayName="ReactDiagram";const Ei=_i(Uo),Si=_i(qo);t.BaseEdge=sr,t.Port=Kr,t.ReactDiagram=wi,t.ReactDiagramProvider=pi,t.StepEdge=gr,t.addEdge=(t,e)=>{if(!jo(t))return e;if(((t,e)=>e.some((e=>e.source===t.source&&e.target===t.target)))(t,e))return e;let n;return n=t.id?{...t}:{...t,id:Xo(t)},e.concat(n)},t.applyEdgeChanges=qo,t.applyNodeChanges=Uo,t.boxToRect=bo,t.clamp=yo,t.getNodePositionWithOrigin=Ro,t.getStepPath=fr,t.internalsSymbol=go,t.isEdge=jo,t.isNode=t=>"id"in t&&!("source"in t)&&!("target"in t),t.rectToBox=xo,t.updateEdge=(t,e,n,o={shouldReplaceId:!0})=>{const{id:r,...i}=t;!e.source||e.target,n.find((t=>t.id===r));const a={...i,id:o.shouldReplaceId?Xo(e):r,source:e.source,target:e.target};return n.filter((t=>t.id!==r)).concat(a)},t.useEdgesState=Si,t.useGetPointerPosition=Qr,t.useNodeId=Wr,t.useNodesState=Ei,t.useStore=b,t.useStoreApi=w}));
10
+ */u.exports=function(){if(s)return c;s=1;var t=n,e=h(),o="function"==typeof Object.is?Object.is:function(t,e){return t===e&&(0!==t||1/t==1/e)||t!=t&&e!=e},r=e.useSyncExternalStore,i=t.useRef,a=t.useEffect,u=t.useMemo,l=t.useDebugValue;return c.useSyncExternalStoreWithSelector=function(t,e,n,s,c){var d=i(null);if(null===d.current){var h={hasValue:!1,value:null};d.current=h}else h=d.current;d=u((function(){function t(t){if(!a){if(a=!0,r=t,t=s(t),void 0!==c&&h.hasValue){var e=h.value;if(c(e,t))return i=e}return i=t}if(e=i,o(r,t))return e;var n=s(t);return void 0!==c&&c(e,n)?e:(r=t,i=n)}var r,i,a=!1,u=void 0===n?null:n;return[function(){return t(e())},null===u?void 0:function(){return t(u())}]}),[e,n,s,c]);var f=r(t,d[0],d[1]);return a((function(){h.hasValue=!0,h.value=f}),[f]),l(f),f},c}();var f=r(u.exports);const{useSyncExternalStoreWithSelector:g}=f;let p=!1;const m=n.createContext(null),y=m.Provider,v={"001":()=>"Seems like you have not used zustand provider as an ancestor","002":()=>"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.","010":t=>`Node type "${t}" not found. Using fallback type "default".`,"011":()=>"Only child nodes can use a parent extent","020":()=>"Can`t create edge. An edge needs a source and a target.","021":t=>`The old edge with id=${t} does not exist.`,"022":t=>`Marker type "${t}" doesn't exist.`},x=v["001"]();function b(t,e){const o=n.useContext(m);if(null===o)throw new Error(x);return function(t,e=t.getState,o){o&&!p&&(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"),p=!0);const r=g(t.subscribe,t.getState,t.getServerState||t.getState,e,o);return n.useDebugValue(r),r}(o,t,e)}const w=()=>{const t=n.useContext(m);if(null===t)throw new Error(x);return n.useMemo((()=>({getState:t.getState,setState:t.setState,subscribe:t.subscribe,destroy:t.destroy})),[t])};var _={value:()=>{}};function E(){for(var t,e=0,n=arguments.length,o={};e<n;++e){if(!(t=arguments[e]+"")||t in o||/[\s.]/.test(t))throw new Error("illegal type: "+t);o[t]=[]}return new S(o)}function S(t){this._=t}function N(t,e){for(var n,o=0,r=t.length;o<r;++o)if((n=t[o]).name===e)return n.value}function M(t,e,n){for(var o=0,r=t.length;o<r;++o)if(t[o].name===e){t[o]=_,t=t.slice(0,o).concat(t.slice(o+1));break}return null!=n&&t.push({name:e,value:n}),t}S.prototype=E.prototype={constructor:S,on:function(t,e){var n,o,r=this._,i=(o=r,(t+"").trim().split(/^|\s+/).map((function(t){var e="",n=t.indexOf(".");if(n>=0&&(e=t.slice(n+1),t=t.slice(0,n)),t&&!o.hasOwnProperty(t))throw new Error("unknown type: "+t);return{type:t,name:e}}))),a=-1,s=i.length;if(!(arguments.length<2)){if(null!=e&&"function"!=typeof e)throw new Error("invalid callback: "+e);for(;++a<s;)if(n=(t=i[a]).type)r[n]=M(r[n],t.name,e);else if(null==e)for(n in r)r[n]=M(r[n],t.name,null);return this}for(;++a<s;)if((n=(t=i[a]).type)&&(n=N(r[n],t.name)))return n},copy:function(){var t={},e=this._;for(var n in e)t[n]=e[n].slice();return new S(t)},call:function(t,e){if((n=arguments.length-2)>0)for(var n,o,r=new Array(n),i=0;i<n;++i)r[i]=arguments[i+2];if(!this._.hasOwnProperty(t))throw new Error("unknown type: "+t);for(i=0,n=(o=this._[t]).length;i<n;++i)o[i].value.apply(e,r)},apply:function(t,e,n){if(!this._.hasOwnProperty(t))throw new Error("unknown type: "+t);for(var o=this._[t],r=0,i=o.length;r<i;++r)o[r].value.apply(e,n)}};var k="http://www.w3.org/1999/xhtml",P={svg:"http://www.w3.org/2000/svg",xhtml:k,xlink:"http://www.w3.org/1999/xlink",xml:"http://www.w3.org/XML/1998/namespace",xmlns:"http://www.w3.org/2000/xmlns/"};function C(t){var e=t+="",n=e.indexOf(":");return n>=0&&"xmlns"!==(e=t.slice(0,n))&&(t=t.slice(n+1)),P.hasOwnProperty(e)?{space:P[e],local:t}:t}function A(t){return function(){var e=this.ownerDocument,n=this.namespaceURI;return n===k&&e.documentElement.namespaceURI===k?e.createElement(t):e.createElementNS(n,t)}}function $(t){return function(){return this.ownerDocument.createElementNS(t.space,t.local)}}function B(t){var e=C(t);return(e.local?$:A)(e)}function T(){}function R(t){return null==t?T:function(){return this.querySelector(t)}}function I(){return[]}function j(t){return null==t?I:function(){return this.querySelectorAll(t)}}function z(t){return function(){return null==(e=t.apply(this,arguments))?[]:Array.isArray(e)?e:Array.from(e);var e}}function D(t){return function(){return this.matches(t)}}function X(t){return function(e){return e.matches(t)}}var Y=Array.prototype.find;function O(){return this.firstElementChild}var L=Array.prototype.filter;function U(){return Array.from(this.children)}function q(t){return new Array(t.length)}function V(t,e){this.ownerDocument=t.ownerDocument,this.namespaceURI=t.namespaceURI,this._next=null,this._parent=t,this.__data__=e}function Z(t,e,n,o,r,i){for(var a,s=0,u=e.length,c=i.length;s<c;++s)(a=e[s])?(a.__data__=i[s],o[s]=a):n[s]=new V(t,i[s]);for(;s<u;++s)(a=e[s])&&(r[s]=a)}function F(t,e,n,o,r,i,a){var s,u,c,l=new Map,d=e.length,h=i.length,f=new Array(d);for(s=0;s<d;++s)(u=e[s])&&(f[s]=c=a.call(u,u.__data__,s,e)+"",l.has(c)?r[s]=u:l.set(c,u));for(s=0;s<h;++s)c=a.call(t,i[s],s,i)+"",(u=l.get(c))?(o[s]=u,u.__data__=i[s],l.delete(c)):n[s]=new V(t,i[s]);for(s=0;s<d;++s)(u=e[s])&&l.get(f[s])===u&&(r[s]=u)}function W(t){return t.__data__}function H(t){return"object"==typeof t&&"length"in t?t:Array.from(t)}function K(t,e){return t<e?-1:t>e?1:t>=e?0:NaN}function G(t){return function(){this.removeAttribute(t)}}function Q(t){return function(){this.removeAttributeNS(t.space,t.local)}}function J(t,e){return function(){this.setAttribute(t,e)}}function tt(t,e){return function(){this.setAttributeNS(t.space,t.local,e)}}function et(t,e){return function(){var n=e.apply(this,arguments);null==n?this.removeAttribute(t):this.setAttribute(t,n)}}function nt(t,e){return function(){var n=e.apply(this,arguments);null==n?this.removeAttributeNS(t.space,t.local):this.setAttributeNS(t.space,t.local,n)}}function ot(t){return t.ownerDocument&&t.ownerDocument.defaultView||t.document&&t||t.defaultView}function rt(t){return function(){this.style.removeProperty(t)}}function it(t,e,n){return function(){this.style.setProperty(t,e,n)}}function at(t,e,n){return function(){var o=e.apply(this,arguments);null==o?this.style.removeProperty(t):this.style.setProperty(t,o,n)}}function st(t,e){return t.style.getPropertyValue(e)||ot(t).getComputedStyle(t,null).getPropertyValue(e)}function ut(t){return function(){delete this[t]}}function ct(t,e){return function(){this[t]=e}}function lt(t,e){return function(){var n=e.apply(this,arguments);null==n?delete this[t]:this[t]=n}}function dt(t){return t.trim().split(/^|\s+/)}function ht(t){return t.classList||new ft(t)}function ft(t){this._node=t,this._names=dt(t.getAttribute("class")||"")}function gt(t,e){for(var n=ht(t),o=-1,r=e.length;++o<r;)n.add(e[o])}function pt(t,e){for(var n=ht(t),o=-1,r=e.length;++o<r;)n.remove(e[o])}function mt(t){return function(){gt(this,t)}}function yt(t){return function(){pt(this,t)}}function vt(t,e){return function(){(e.apply(this,arguments)?gt:pt)(this,t)}}function xt(){this.textContent=""}function bt(t){return function(){this.textContent=t}}function wt(t){return function(){var e=t.apply(this,arguments);this.textContent=null==e?"":e}}function _t(){this.innerHTML=""}function Et(t){return function(){this.innerHTML=t}}function St(t){return function(){var e=t.apply(this,arguments);this.innerHTML=null==e?"":e}}function Nt(){this.nextSibling&&this.parentNode.appendChild(this)}function Mt(){this.previousSibling&&this.parentNode.insertBefore(this,this.parentNode.firstChild)}function kt(){return null}function Pt(){var t=this.parentNode;t&&t.removeChild(this)}function Ct(){var t=this.cloneNode(!1),e=this.parentNode;return e?e.insertBefore(t,this.nextSibling):t}function At(){var t=this.cloneNode(!0),e=this.parentNode;return e?e.insertBefore(t,this.nextSibling):t}function $t(t){return function(){var e=this.__on;if(e){for(var n,o=0,r=-1,i=e.length;o<i;++o)n=e[o],t.type&&n.type!==t.type||n.name!==t.name?e[++r]=n:this.removeEventListener(n.type,n.listener,n.options);++r?e.length=r:delete this.__on}}}function Bt(t,e,n){return function(){var o,r=this.__on,i=function(t){return function(e){t.call(this,e,this.__data__)}}(e);if(r)for(var a=0,s=r.length;a<s;++a)if((o=r[a]).type===t.type&&o.name===t.name)return this.removeEventListener(o.type,o.listener,o.options),this.addEventListener(o.type,o.listener=i,o.options=n),void(o.value=e);this.addEventListener(t.type,i,n),o={type:t.type,name:t.name,value:e,listener:i,options:n},r?r.push(o):this.__on=[o]}}function Tt(t,e,n){var o=ot(t),r=o.CustomEvent;"function"==typeof r?r=new r(e,n):(r=o.document.createEvent("Event"),n?(r.initEvent(e,n.bubbles,n.cancelable),r.detail=n.detail):r.initEvent(e,!1,!1)),t.dispatchEvent(r)}function Rt(t,e){return function(){return Tt(this,t,e)}}function It(t,e){return function(){return Tt(this,t,e.apply(this,arguments))}}V.prototype={constructor:V,appendChild:function(t){return this._parent.insertBefore(t,this._next)},insertBefore:function(t,e){return this._parent.insertBefore(t,e)},querySelector:function(t){return this._parent.querySelector(t)},querySelectorAll:function(t){return this._parent.querySelectorAll(t)}},ft.prototype={add:function(t){this._names.indexOf(t)<0&&(this._names.push(t),this._node.setAttribute("class",this._names.join(" ")))},remove:function(t){var e=this._names.indexOf(t);e>=0&&(this._names.splice(e,1),this._node.setAttribute("class",this._names.join(" ")))},contains:function(t){return this._names.indexOf(t)>=0}};var jt=[null];function zt(t,e){this._groups=t,this._parents=e}function Dt(){return new zt([[document.documentElement]],jt)}function Xt(t){return"string"==typeof t?new zt([[document.querySelector(t)]],[document.documentElement]):new zt([[t]],jt)}function Yt(t,e){if(t=function(t){let e;for(;e=t.sourceEvent;)t=e;return t}(t),void 0===e&&(e=t.currentTarget),e){var n=e.ownerSVGElement||e;if(n.createSVGPoint){var o=n.createSVGPoint();return o.x=t.clientX,o.y=t.clientY,[(o=o.matrixTransform(e.getScreenCTM().inverse())).x,o.y]}if(e.getBoundingClientRect){var r=e.getBoundingClientRect();return[t.clientX-r.left-e.clientLeft,t.clientY-r.top-e.clientTop]}}return[t.pageX,t.pageY]}zt.prototype=Dt.prototype={constructor:zt,select:function(t){"function"!=typeof t&&(t=R(t));for(var e=this._groups,n=e.length,o=new Array(n),r=0;r<n;++r)for(var i,a,s=e[r],u=s.length,c=o[r]=new Array(u),l=0;l<u;++l)(i=s[l])&&(a=t.call(i,i.__data__,l,s))&&("__data__"in i&&(a.__data__=i.__data__),c[l]=a);return new zt(o,this._parents)},selectAll:function(t){t="function"==typeof t?z(t):j(t);for(var e=this._groups,n=e.length,o=[],r=[],i=0;i<n;++i)for(var a,s=e[i],u=s.length,c=0;c<u;++c)(a=s[c])&&(o.push(t.call(a,a.__data__,c,s)),r.push(a));return new zt(o,r)},selectChild:function(t){return this.select(null==t?O:function(t){return function(){return Y.call(this.children,t)}}("function"==typeof t?t:X(t)))},selectChildren:function(t){return this.selectAll(null==t?U:function(t){return function(){return L.call(this.children,t)}}("function"==typeof t?t:X(t)))},filter:function(t){"function"!=typeof t&&(t=D(t));for(var e=this._groups,n=e.length,o=new Array(n),r=0;r<n;++r)for(var i,a=e[r],s=a.length,u=o[r]=[],c=0;c<s;++c)(i=a[c])&&t.call(i,i.__data__,c,a)&&u.push(i);return new zt(o,this._parents)},data:function(t,e){if(!arguments.length)return Array.from(this,W);var n,o=e?F:Z,r=this._parents,i=this._groups;"function"!=typeof t&&(n=t,t=function(){return n});for(var a=i.length,s=new Array(a),u=new Array(a),c=new Array(a),l=0;l<a;++l){var d=r[l],h=i[l],f=h.length,g=H(t.call(d,d&&d.__data__,l,r)),p=g.length,m=u[l]=new Array(p),y=s[l]=new Array(p);o(d,h,m,y,c[l]=new Array(f),g,e);for(var v,x,b=0,w=0;b<p;++b)if(v=m[b]){for(b>=w&&(w=b+1);!(x=y[w])&&++w<p;);v._next=x||null}}return(s=new zt(s,r))._enter=u,s._exit=c,s},enter:function(){return new zt(this._enter||this._groups.map(q),this._parents)},exit:function(){return new zt(this._exit||this._groups.map(q),this._parents)},join:function(t,e,n){var o=this.enter(),r=this,i=this.exit();return"function"==typeof t?(o=t(o))&&(o=o.selection()):o=o.append(t+""),null!=e&&(r=e(r))&&(r=r.selection()),null==n?i.remove():n(i),o&&r?o.merge(r).order():r},merge:function(t){for(var e=t.selection?t.selection():t,n=this._groups,o=e._groups,r=n.length,i=o.length,a=Math.min(r,i),s=new Array(r),u=0;u<a;++u)for(var c,l=n[u],d=o[u],h=l.length,f=s[u]=new Array(h),g=0;g<h;++g)(c=l[g]||d[g])&&(f[g]=c);for(;u<r;++u)s[u]=n[u];return new zt(s,this._parents)},selection:function(){return this},order:function(){for(var t=this._groups,e=-1,n=t.length;++e<n;)for(var o,r=t[e],i=r.length-1,a=r[i];--i>=0;)(o=r[i])&&(a&&4^o.compareDocumentPosition(a)&&a.parentNode.insertBefore(o,a),a=o);return this},sort:function(t){function e(e,n){return e&&n?t(e.__data__,n.__data__):!e-!n}t||(t=K);for(var n=this._groups,o=n.length,r=new Array(o),i=0;i<o;++i){for(var a,s=n[i],u=s.length,c=r[i]=new Array(u),l=0;l<u;++l)(a=s[l])&&(c[l]=a);c.sort(e)}return new zt(r,this._parents).order()},call:function(){var t=arguments[0];return arguments[0]=this,t.apply(null,arguments),this},nodes:function(){return Array.from(this)},node:function(){for(var t=this._groups,e=0,n=t.length;e<n;++e)for(var o=t[e],r=0,i=o.length;r<i;++r){var a=o[r];if(a)return a}return null},size:function(){let t=0;for(const e of this)++t;return t},empty:function(){return!this.node()},each:function(t){for(var e=this._groups,n=0,o=e.length;n<o;++n)for(var r,i=e[n],a=0,s=i.length;a<s;++a)(r=i[a])&&t.call(r,r.__data__,a,i);return this},attr:function(t,e){var n=C(t);if(arguments.length<2){var o=this.node();return n.local?o.getAttributeNS(n.space,n.local):o.getAttribute(n)}return this.each((null==e?n.local?Q:G:"function"==typeof e?n.local?nt:et:n.local?tt:J)(n,e))},style:function(t,e,n){return arguments.length>1?this.each((null==e?rt:"function"==typeof e?at:it)(t,e,null==n?"":n)):st(this.node(),t)},property:function(t,e){return arguments.length>1?this.each((null==e?ut:"function"==typeof e?lt:ct)(t,e)):this.node()[t]},classed:function(t,e){var n=dt(t+"");if(arguments.length<2){for(var o=ht(this.node()),r=-1,i=n.length;++r<i;)if(!o.contains(n[r]))return!1;return!0}return this.each(("function"==typeof e?vt:e?mt:yt)(n,e))},text:function(t){return arguments.length?this.each(null==t?xt:("function"==typeof t?wt:bt)(t)):this.node().textContent},html:function(t){return arguments.length?this.each(null==t?_t:("function"==typeof t?St:Et)(t)):this.node().innerHTML},raise:function(){return this.each(Nt)},lower:function(){return this.each(Mt)},append:function(t){var e="function"==typeof t?t:B(t);return this.select((function(){return this.appendChild(e.apply(this,arguments))}))},insert:function(t,e){var n="function"==typeof t?t:B(t),o=null==e?kt:"function"==typeof e?e:R(e);return this.select((function(){return this.insertBefore(n.apply(this,arguments),o.apply(this,arguments)||null)}))},remove:function(){return this.each(Pt)},clone:function(t){return this.select(t?At:Ct)},datum:function(t){return arguments.length?this.property("__data__",t):this.node().__data__},on:function(t,e,n){var o,r,i=function(t){return t.trim().split(/^|\s+/).map((function(t){var e="",n=t.indexOf(".");return n>=0&&(e=t.slice(n+1),t=t.slice(0,n)),{type:t,name:e}}))}(t+""),a=i.length;if(!(arguments.length<2)){for(s=e?Bt:$t,o=0;o<a;++o)this.each(s(i[o],e,n));return this}var s=this.node().__on;if(s)for(var u,c=0,l=s.length;c<l;++c)for(o=0,u=s[c];o<a;++o)if((r=i[o]).type===u.type&&r.name===u.name)return u.value},dispatch:function(t,e){return this.each(("function"==typeof e?It:Rt)(t,e))},[Symbol.iterator]:function*(){for(var t=this._groups,e=0,n=t.length;e<n;++e)for(var o,r=t[e],i=0,a=r.length;i<a;++i)(o=r[i])&&(yield o)}};const Ot={passive:!1},Lt={capture:!0,passive:!1};function Ut(t){t.stopImmediatePropagation()}function qt(t){t.preventDefault(),t.stopImmediatePropagation()}function Vt(t){var e=t.document.documentElement,n=Xt(t).on("dragstart.drag",qt,Lt);"onselectstart"in e?n.on("selectstart.drag",qt,Lt):(e.__noselect=e.style.MozUserSelect,e.style.MozUserSelect="none")}function Zt(t,e){var n=t.document.documentElement,o=Xt(t).on("dragstart.drag",null);e&&(o.on("click.drag",qt,Lt),setTimeout((function(){o.on("click.drag",null)}),0)),"onselectstart"in n?o.on("selectstart.drag",null):(n.style.MozUserSelect=n.__noselect,delete n.__noselect)}var Ft=t=>()=>t;function Wt(t,{sourceEvent:e,subject:n,target:o,identifier:r,active:i,x:a,y:s,dx:u,dy:c,dispatch:l}){Object.defineProperties(this,{type:{value:t,enumerable:!0,configurable:!0},sourceEvent:{value:e,enumerable:!0,configurable:!0},subject:{value:n,enumerable:!0,configurable:!0},target:{value:o,enumerable:!0,configurable:!0},identifier:{value:r,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:u,enumerable:!0,configurable:!0},dy:{value:c,enumerable:!0,configurable:!0},_:{value:l}})}function Ht(t){return!t.ctrlKey&&!t.button}function Kt(){return this.parentNode}function Gt(t,e){return null==e?{x:t.x,y:t.y}:e}function Qt(){return navigator.maxTouchPoints||"ontouchstart"in this}function Jt(t,e,n){t.prototype=e.prototype=n,n.constructor=t}function te(t,e){var n=Object.create(t.prototype);for(var o in e)n[o]=e[o];return n}function ee(){}Wt.prototype.on=function(){var t=this._.on.apply(this._,arguments);return t===this._?this:t};var ne=.7,oe=1/ne,re="\\s*([+-]?\\d+)\\s*",ie="\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)\\s*",ae="\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)%\\s*",se=/^#([0-9a-f]{3,8})$/,ue=new RegExp(`^rgb\\(${re},${re},${re}\\)$`),ce=new RegExp(`^rgb\\(${ae},${ae},${ae}\\)$`),le=new RegExp(`^rgba\\(${re},${re},${re},${ie}\\)$`),de=new RegExp(`^rgba\\(${ae},${ae},${ae},${ie}\\)$`),he=new RegExp(`^hsl\\(${ie},${ae},${ae}\\)$`),fe=new RegExp(`^hsla\\(${ie},${ae},${ae},${ie}\\)$`),ge={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 pe(){return this.rgb().formatHex()}function me(){return this.rgb().formatRgb()}function ye(t){var e,n;return t=(t+"").trim().toLowerCase(),(e=se.exec(t))?(n=e[1].length,e=parseInt(e[1],16),6===n?ve(e):3===n?new we(e>>8&15|e>>4&240,e>>4&15|240&e,(15&e)<<4|15&e,1):8===n?xe(e>>24&255,e>>16&255,e>>8&255,(255&e)/255):4===n?xe(e>>12&15|e>>8&240,e>>8&15|e>>4&240,e>>4&15|240&e,((15&e)<<4|15&e)/255):null):(e=ue.exec(t))?new we(e[1],e[2],e[3],1):(e=ce.exec(t))?new we(255*e[1]/100,255*e[2]/100,255*e[3]/100,1):(e=le.exec(t))?xe(e[1],e[2],e[3],e[4]):(e=de.exec(t))?xe(255*e[1]/100,255*e[2]/100,255*e[3]/100,e[4]):(e=he.exec(t))?ke(e[1],e[2]/100,e[3]/100,1):(e=fe.exec(t))?ke(e[1],e[2]/100,e[3]/100,e[4]):ge.hasOwnProperty(t)?ve(ge[t]):"transparent"===t?new we(NaN,NaN,NaN,0):null}function ve(t){return new we(t>>16&255,t>>8&255,255&t,1)}function xe(t,e,n,o){return o<=0&&(t=e=n=NaN),new we(t,e,n,o)}function be(t,e,n,o){return 1===arguments.length?((r=t)instanceof ee||(r=ye(r)),r?new we((r=r.rgb()).r,r.g,r.b,r.opacity):new we):new we(t,e,n,null==o?1:o);var r}function we(t,e,n,o){this.r=+t,this.g=+e,this.b=+n,this.opacity=+o}function _e(){return`#${Me(this.r)}${Me(this.g)}${Me(this.b)}`}function Ee(){const t=Se(this.opacity);return`${1===t?"rgb(":"rgba("}${Ne(this.r)}, ${Ne(this.g)}, ${Ne(this.b)}${1===t?")":`, ${t})`}`}function Se(t){return isNaN(t)?1:Math.max(0,Math.min(1,t))}function Ne(t){return Math.max(0,Math.min(255,Math.round(t)||0))}function Me(t){return((t=Ne(t))<16?"0":"")+t.toString(16)}function ke(t,e,n,o){return o<=0?t=e=n=NaN:n<=0||n>=1?t=e=NaN:e<=0&&(t=NaN),new Ce(t,e,n,o)}function Pe(t){if(t instanceof Ce)return new Ce(t.h,t.s,t.l,t.opacity);if(t instanceof ee||(t=ye(t)),!t)return new Ce;if(t instanceof Ce)return t;var e=(t=t.rgb()).r/255,n=t.g/255,o=t.b/255,r=Math.min(e,n,o),i=Math.max(e,n,o),a=NaN,s=i-r,u=(i+r)/2;return s?(a=e===i?(n-o)/s+6*(n<o):n===i?(o-e)/s+2:(e-n)/s+4,s/=u<.5?i+r:2-i-r,a*=60):s=u>0&&u<1?0:a,new Ce(a,s,u,t.opacity)}function Ce(t,e,n,o){this.h=+t,this.s=+e,this.l=+n,this.opacity=+o}function Ae(t){return(t=(t||0)%360)<0?t+360:t}function $e(t){return Math.max(0,Math.min(1,t||0))}function Be(t,e,n){return 255*(t<60?e+(n-e)*t/60:t<180?n:t<240?e+(n-e)*(240-t)/60:e)}Jt(ee,ye,{copy(t){return Object.assign(new this.constructor,this,t)},displayable(){return this.rgb().displayable()},hex:pe,formatHex:pe,formatHex8:function(){return this.rgb().formatHex8()},formatHsl:function(){return Pe(this).formatHsl()},formatRgb:me,toString:me}),Jt(we,be,te(ee,{brighter(t){return t=null==t?oe:Math.pow(oe,t),new we(this.r*t,this.g*t,this.b*t,this.opacity)},darker(t){return t=null==t?ne:Math.pow(ne,t),new we(this.r*t,this.g*t,this.b*t,this.opacity)},rgb(){return this},clamp(){return new we(Ne(this.r),Ne(this.g),Ne(this.b),Se(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:_e,formatHex:_e,formatHex8:function(){return`#${Me(this.r)}${Me(this.g)}${Me(this.b)}${Me(255*(isNaN(this.opacity)?1:this.opacity))}`},formatRgb:Ee,toString:Ee})),Jt(Ce,(function(t,e,n,o){return 1===arguments.length?Pe(t):new Ce(t,e,n,null==o?1:o)}),te(ee,{brighter(t){return t=null==t?oe:Math.pow(oe,t),new Ce(this.h,this.s,this.l*t,this.opacity)},darker(t){return t=null==t?ne:Math.pow(ne,t),new Ce(this.h,this.s,this.l*t,this.opacity)},rgb(){var t=this.h%360+360*(this.h<0),e=isNaN(t)||isNaN(this.s)?0:this.s,n=this.l,o=n+(n<.5?n:1-n)*e,r=2*n-o;return new we(Be(t>=240?t-240:t+120,r,o),Be(t,r,o),Be(t<120?t+240:t-120,r,o),this.opacity)},clamp(){return new Ce(Ae(this.h),$e(this.s),$e(this.l),Se(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 t=Se(this.opacity);return`${1===t?"hsl(":"hsla("}${Ae(this.h)}, ${100*$e(this.s)}%, ${100*$e(this.l)}%${1===t?")":`, ${t})`}`}}));var Te=t=>()=>t;function Re(t){return 1==(t=+t)?Ie:function(e,n){return n-e?function(t,e,n){return t=Math.pow(t,n),e=Math.pow(e,n)-t,n=1/n,function(o){return Math.pow(t+o*e,n)}}(e,n,t):Te(isNaN(e)?n:e)}}function Ie(t,e){var n=e-t;return n?function(t,e){return function(n){return t+n*e}}(t,n):Te(isNaN(t)?e:t)}var je=function t(e){var n=Re(e);function o(t,e){var o=n((t=be(t)).r,(e=be(e)).r),r=n(t.g,e.g),i=n(t.b,e.b),a=Ie(t.opacity,e.opacity);return function(e){return t.r=o(e),t.g=r(e),t.b=i(e),t.opacity=a(e),t+""}}return o.gamma=t,o}(1);function ze(t,e){return t=+t,e=+e,function(n){return t*(1-n)+e*n}}var De=/[-+]?(?:\d+\.?\d*|\.?\d+)(?:[eE][-+]?\d+)?/g,Xe=new RegExp(De.source,"g");function Ye(t,e){var n,o,r,i=De.lastIndex=Xe.lastIndex=0,a=-1,s=[],u=[];for(t+="",e+="";(n=De.exec(t))&&(o=Xe.exec(e));)(r=o.index)>i&&(r=e.slice(i,r),s[a]?s[a]+=r:s[++a]=r),(n=n[0])===(o=o[0])?s[a]?s[a]+=o:s[++a]=o:(s[++a]=null,u.push({i:a,x:ze(n,o)})),i=Xe.lastIndex;return i<e.length&&(r=e.slice(i),s[a]?s[a]+=r:s[++a]=r),s.length<2?u[0]?function(t){return function(e){return t(e)+""}}(u[0].x):function(t){return function(){return t}}(e):(e=u.length,function(t){for(var n,o=0;o<e;++o)s[(n=u[o]).i]=n.x(t);return s.join("")})}var Oe,Le=180/Math.PI,Ue={translateX:0,translateY:0,rotate:0,skewX:0,scaleX:1,scaleY:1};function qe(t,e,n,o,r,i){var a,s,u;return(a=Math.sqrt(t*t+e*e))&&(t/=a,e/=a),(u=t*n+e*o)&&(n-=t*u,o-=e*u),(s=Math.sqrt(n*n+o*o))&&(n/=s,o/=s,u/=s),t*o<e*n&&(t=-t,e=-e,u=-u,a=-a),{translateX:r,translateY:i,rotate:Math.atan2(e,t)*Le,skewX:Math.atan(u)*Le,scaleX:a,scaleY:s}}function Ve(t,e,n,o){function r(t){return t.length?t.pop()+" ":""}return function(i,a){var s=[],u=[];return i=t(i),a=t(a),function(t,o,r,i,a,s){if(t!==r||o!==i){var u=a.push("translate(",null,e,null,n);s.push({i:u-4,x:ze(t,r)},{i:u-2,x:ze(o,i)})}else(r||i)&&a.push("translate("+r+e+i+n)}(i.translateX,i.translateY,a.translateX,a.translateY,s,u),function(t,e,n,i){t!==e?(t-e>180?e+=360:e-t>180&&(t+=360),i.push({i:n.push(r(n)+"rotate(",null,o)-2,x:ze(t,e)})):e&&n.push(r(n)+"rotate("+e+o)}(i.rotate,a.rotate,s,u),function(t,e,n,i){t!==e?i.push({i:n.push(r(n)+"skewX(",null,o)-2,x:ze(t,e)}):e&&n.push(r(n)+"skewX("+e+o)}(i.skewX,a.skewX,s,u),function(t,e,n,o,i,a){if(t!==n||e!==o){var s=i.push(r(i)+"scale(",null,",",null,")");a.push({i:s-4,x:ze(t,n)},{i:s-2,x:ze(e,o)})}else 1===n&&1===o||i.push(r(i)+"scale("+n+","+o+")")}(i.scaleX,i.scaleY,a.scaleX,a.scaleY,s,u),i=a=null,function(t){for(var e,n=-1,o=u.length;++n<o;)s[(e=u[n]).i]=e.x(t);return s.join("")}}}var Ze=Ve((function(t){const e=new("function"==typeof DOMMatrix?DOMMatrix:WebKitCSSMatrix)(t+"");return e.isIdentity?Ue:qe(e.a,e.b,e.c,e.d,e.e,e.f)}),"px, ","px)","deg)"),Fe=Ve((function(t){return null==t?Ue:(Oe||(Oe=document.createElementNS("http://www.w3.org/2000/svg","g")),Oe.setAttribute("transform",t),(t=Oe.transform.baseVal.consolidate())?qe((t=t.matrix).a,t.b,t.c,t.d,t.e,t.f):Ue)}),", ",")",")");function We(t){return((t=Math.exp(t))+1/t)/2}var He,Ke,Ge=function t(e,n,o){function r(t,r){var i,a,s=t[0],u=t[1],c=t[2],l=r[0],d=r[1],h=r[2],f=l-s,g=d-u,p=f*f+g*g;if(p<1e-12)a=Math.log(h/c)/e,i=function(t){return[s+t*f,u+t*g,c*Math.exp(e*t*a)]};else{var m=Math.sqrt(p),y=(h*h-c*c+o*p)/(2*c*n*m),v=(h*h-c*c-o*p)/(2*h*n*m),x=Math.log(Math.sqrt(y*y+1)-y),b=Math.log(Math.sqrt(v*v+1)-v);a=(b-x)/e,i=function(t){var o,r=t*a,i=We(x),l=c/(n*m)*(i*(o=e*r+x,((o=Math.exp(2*o))-1)/(o+1))-function(t){return((t=Math.exp(t))-1/t)/2}(x));return[s+l*f,u+l*g,c*i/We(e*r+x)]}}return i.duration=1e3*a*e/Math.SQRT2,i}return r.rho=function(e){var n=Math.max(.001,+e),o=n*n;return t(n,o,o*o)},r}(Math.SQRT2,2,4),Qe=0,Je=0,tn=0,en=1e3,nn=0,on=0,rn=0,an="object"==typeof performance&&performance.now?performance:Date,sn="object"==typeof window&&window.requestAnimationFrame?window.requestAnimationFrame.bind(window):function(t){setTimeout(t,17)};function un(){return on||(sn(cn),on=an.now()+rn)}function cn(){on=0}function ln(){this._call=this._time=this._next=null}function dn(t,e,n){var o=new ln;return o.restart(t,e,n),o}function hn(){on=(nn=an.now())+rn,Qe=Je=0;try{!function(){un(),++Qe;for(var t,e=He;e;)(t=on-e._time)>=0&&e._call.call(void 0,t),e=e._next;--Qe}()}finally{Qe=0,function(){var t,e,n=He,o=1/0;for(;n;)n._call?(o>n._time&&(o=n._time),t=n,n=n._next):(e=n._next,n._next=null,n=t?t._next=e:He=e);Ke=t,gn(o)}(),on=0}}function fn(){var t=an.now(),e=t-nn;e>en&&(rn-=e,nn=t)}function gn(t){Qe||(Je&&(Je=clearTimeout(Je)),t-on>24?(t<1/0&&(Je=setTimeout(hn,t-an.now()-rn)),tn&&(tn=clearInterval(tn))):(tn||(nn=an.now(),tn=setInterval(fn,en)),Qe=1,sn(hn)))}function pn(t,e,n){var o=new ln;return e=null==e?0:+e,o.restart((n=>{o.stop(),t(n+e)}),e,n),o}ln.prototype=dn.prototype={constructor:ln,restart:function(t,e,n){if("function"!=typeof t)throw new TypeError("callback is not a function");n=(null==n?un():+n)+(null==e?0:+e),this._next||Ke===this||(Ke?Ke._next=this:He=this,Ke=this),this._call=t,this._time=n,gn()},stop:function(){this._call&&(this._call=null,this._time=1/0,gn())}};var mn=E("start","end","cancel","interrupt"),yn=[],vn=0,xn=1,bn=2,wn=3,_n=4,En=5,Sn=6;function Nn(t,e,n,o,r,i){var a=t.__transition;if(a){if(n in a)return}else t.__transition={};!function(t,e,n){var o,r=t.__transition;function i(t){n.state=xn,n.timer.restart(a,n.delay,n.time),n.delay<=t&&a(t-n.delay)}function a(i){var c,l,d,h;if(n.state!==xn)return u();for(c in r)if((h=r[c]).name===n.name){if(h.state===wn)return pn(a);h.state===_n?(h.state=Sn,h.timer.stop(),h.on.call("interrupt",t,t.__data__,h.index,h.group),delete r[c]):+c<e&&(h.state=Sn,h.timer.stop(),h.on.call("cancel",t,t.__data__,h.index,h.group),delete r[c])}if(pn((function(){n.state===wn&&(n.state=_n,n.timer.restart(s,n.delay,n.time),s(i))})),n.state=bn,n.on.call("start",t,t.__data__,n.index,n.group),n.state===bn){for(n.state=wn,o=new Array(d=n.tween.length),c=0,l=-1;c<d;++c)(h=n.tween[c].value.call(t,t.__data__,n.index,n.group))&&(o[++l]=h);o.length=l+1}}function s(e){for(var r=e<n.duration?n.ease.call(null,e/n.duration):(n.timer.restart(u),n.state=En,1),i=-1,a=o.length;++i<a;)o[i].call(t,r);n.state===En&&(n.on.call("end",t,t.__data__,n.index,n.group),u())}function u(){for(var o in n.state=Sn,n.timer.stop(),delete r[e],r)return;delete t.__transition}r[e]=n,n.timer=dn(i,0,n.time)}(t,n,{name:e,index:o,group:r,on:mn,tween:yn,time:i.time,delay:i.delay,duration:i.duration,ease:i.ease,timer:null,state:vn})}function Mn(t,e){var n=Pn(t,e);if(n.state>vn)throw new Error("too late; already scheduled");return n}function kn(t,e){var n=Pn(t,e);if(n.state>wn)throw new Error("too late; already running");return n}function Pn(t,e){var n=t.__transition;if(!n||!(n=n[e]))throw new Error("transition not found");return n}function Cn(t,e){var n,o,r,i=t.__transition,a=!0;if(i){for(r in e=null==e?null:e+"",i)(n=i[r]).name===e?(o=n.state>bn&&n.state<En,n.state=Sn,n.timer.stop(),n.on.call(o?"interrupt":"cancel",t,t.__data__,n.index,n.group),delete i[r]):a=!1;a&&delete t.__transition}}function An(t,e){var n,o;return function(){var r=kn(this,t),i=r.tween;if(i!==n)for(var a=0,s=(o=n=i).length;a<s;++a)if(o[a].name===e){(o=o.slice()).splice(a,1);break}r.tween=o}}function $n(t,e,n){var o,r;if("function"!=typeof n)throw new Error;return function(){var i=kn(this,t),a=i.tween;if(a!==o){r=(o=a).slice();for(var s={name:e,value:n},u=0,c=r.length;u<c;++u)if(r[u].name===e){r[u]=s;break}u===c&&r.push(s)}i.tween=r}}function Bn(t,e,n){var o=t._id;return t.each((function(){var t=kn(this,o);(t.value||(t.value={}))[e]=n.apply(this,arguments)})),function(t){return Pn(t,o).value[e]}}function Tn(t,e){var n;return("number"==typeof e?ze:e instanceof ye?je:(n=ye(e))?(e=n,je):Ye)(t,e)}function Rn(t){return function(){this.removeAttribute(t)}}function In(t){return function(){this.removeAttributeNS(t.space,t.local)}}function jn(t,e,n){var o,r,i=n+"";return function(){var a=this.getAttribute(t);return a===i?null:a===o?r:r=e(o=a,n)}}function zn(t,e,n){var o,r,i=n+"";return function(){var a=this.getAttributeNS(t.space,t.local);return a===i?null:a===o?r:r=e(o=a,n)}}function Dn(t,e,n){var o,r,i;return function(){var a,s,u=n(this);if(null!=u)return(a=this.getAttribute(t))===(s=u+"")?null:a===o&&s===r?i:(r=s,i=e(o=a,u));this.removeAttribute(t)}}function Xn(t,e,n){var o,r,i;return function(){var a,s,u=n(this);if(null!=u)return(a=this.getAttributeNS(t.space,t.local))===(s=u+"")?null:a===o&&s===r?i:(r=s,i=e(o=a,u));this.removeAttributeNS(t.space,t.local)}}function Yn(t,e){var n,o;function r(){var r=e.apply(this,arguments);return r!==o&&(n=(o=r)&&function(t,e){return function(n){this.setAttributeNS(t.space,t.local,e.call(this,n))}}(t,r)),n}return r._value=e,r}function On(t,e){var n,o;function r(){var r=e.apply(this,arguments);return r!==o&&(n=(o=r)&&function(t,e){return function(n){this.setAttribute(t,e.call(this,n))}}(t,r)),n}return r._value=e,r}function Ln(t,e){return function(){Mn(this,t).delay=+e.apply(this,arguments)}}function Un(t,e){return e=+e,function(){Mn(this,t).delay=e}}function qn(t,e){return function(){kn(this,t).duration=+e.apply(this,arguments)}}function Vn(t,e){return e=+e,function(){kn(this,t).duration=e}}var Zn=Dt.prototype.constructor;function Fn(t){return function(){this.style.removeProperty(t)}}var Wn=0;function Hn(t,e,n,o){this._groups=t,this._parents=e,this._name=n,this._id=o}function Kn(){return++Wn}var Gn=Dt.prototype;Hn.prototype={constructor:Hn,select:function(t){var e=this._name,n=this._id;"function"!=typeof t&&(t=R(t));for(var o=this._groups,r=o.length,i=new Array(r),a=0;a<r;++a)for(var s,u,c=o[a],l=c.length,d=i[a]=new Array(l),h=0;h<l;++h)(s=c[h])&&(u=t.call(s,s.__data__,h,c))&&("__data__"in s&&(u.__data__=s.__data__),d[h]=u,Nn(d[h],e,n,h,d,Pn(s,n)));return new Hn(i,this._parents,e,n)},selectAll:function(t){var e=this._name,n=this._id;"function"!=typeof t&&(t=j(t));for(var o=this._groups,r=o.length,i=[],a=[],s=0;s<r;++s)for(var u,c=o[s],l=c.length,d=0;d<l;++d)if(u=c[d]){for(var h,f=t.call(u,u.__data__,d,c),g=Pn(u,n),p=0,m=f.length;p<m;++p)(h=f[p])&&Nn(h,e,n,p,f,g);i.push(f),a.push(u)}return new Hn(i,a,e,n)},selectChild:Gn.selectChild,selectChildren:Gn.selectChildren,filter:function(t){"function"!=typeof t&&(t=D(t));for(var e=this._groups,n=e.length,o=new Array(n),r=0;r<n;++r)for(var i,a=e[r],s=a.length,u=o[r]=[],c=0;c<s;++c)(i=a[c])&&t.call(i,i.__data__,c,a)&&u.push(i);return new Hn(o,this._parents,this._name,this._id)},merge:function(t){if(t._id!==this._id)throw new Error;for(var e=this._groups,n=t._groups,o=e.length,r=n.length,i=Math.min(o,r),a=new Array(o),s=0;s<i;++s)for(var u,c=e[s],l=n[s],d=c.length,h=a[s]=new Array(d),f=0;f<d;++f)(u=c[f]||l[f])&&(h[f]=u);for(;s<o;++s)a[s]=e[s];return new Hn(a,this._parents,this._name,this._id)},selection:function(){return new Zn(this._groups,this._parents)},transition:function(){for(var t=this._name,e=this._id,n=Kn(),o=this._groups,r=o.length,i=0;i<r;++i)for(var a,s=o[i],u=s.length,c=0;c<u;++c)if(a=s[c]){var l=Pn(a,e);Nn(a,t,n,c,s,{time:l.time+l.delay+l.duration,delay:0,duration:l.duration,ease:l.ease})}return new Hn(o,this._parents,t,n)},call:Gn.call,nodes:Gn.nodes,node:Gn.node,size:Gn.size,empty:Gn.empty,each:Gn.each,on:function(t,e){var n=this._id;return arguments.length<2?Pn(this.node(),n).on.on(t):this.each(function(t,e,n){var o,r,i=function(t){return(t+"").trim().split(/^|\s+/).every((function(t){var e=t.indexOf(".");return e>=0&&(t=t.slice(0,e)),!t||"start"===t}))}(e)?Mn:kn;return function(){var a=i(this,t),s=a.on;s!==o&&(r=(o=s).copy()).on(e,n),a.on=r}}(n,t,e))},attr:function(t,e){var n=C(t),o="transform"===n?Fe:Tn;return this.attrTween(t,"function"==typeof e?(n.local?Xn:Dn)(n,o,Bn(this,"attr."+t,e)):null==e?(n.local?In:Rn)(n):(n.local?zn:jn)(n,o,e))},attrTween:function(t,e){var n="attr."+t;if(arguments.length<2)return(n=this.tween(n))&&n._value;if(null==e)return this.tween(n,null);if("function"!=typeof e)throw new Error;var o=C(t);return this.tween(n,(o.local?Yn:On)(o,e))},style:function(t,e,n){var o="transform"==(t+="")?Ze:Tn;return null==e?this.styleTween(t,function(t,e){var n,o,r;return function(){var i=st(this,t),a=(this.style.removeProperty(t),st(this,t));return i===a?null:i===n&&a===o?r:r=e(n=i,o=a)}}(t,o)).on("end.style."+t,Fn(t)):"function"==typeof e?this.styleTween(t,function(t,e,n){var o,r,i;return function(){var a=st(this,t),s=n(this),u=s+"";return null==s&&(this.style.removeProperty(t),u=s=st(this,t)),a===u?null:a===o&&u===r?i:(r=u,i=e(o=a,s))}}(t,o,Bn(this,"style."+t,e))).each(function(t,e){var n,o,r,i,a="style."+e,s="end."+a;return function(){var u=kn(this,t),c=u.on,l=null==u.value[a]?i||(i=Fn(e)):void 0;c===n&&r===l||(o=(n=c).copy()).on(s,r=l),u.on=o}}(this._id,t)):this.styleTween(t,function(t,e,n){var o,r,i=n+"";return function(){var a=st(this,t);return a===i?null:a===o?r:r=e(o=a,n)}}(t,o,e),n).on("end.style."+t,null)},styleTween:function(t,e,n){var o="style."+(t+="");if(arguments.length<2)return(o=this.tween(o))&&o._value;if(null==e)return this.tween(o,null);if("function"!=typeof e)throw new Error;return this.tween(o,function(t,e,n){var o,r;function i(){var i=e.apply(this,arguments);return i!==r&&(o=(r=i)&&function(t,e,n){return function(o){this.style.setProperty(t,e.call(this,o),n)}}(t,i,n)),o}return i._value=e,i}(t,e,null==n?"":n))},text:function(t){return this.tween("text","function"==typeof t?function(t){return function(){var e=t(this);this.textContent=null==e?"":e}}(Bn(this,"text",t)):function(t){return function(){this.textContent=t}}(null==t?"":t+""))},textTween:function(t){var e="text";if(arguments.length<1)return(e=this.tween(e))&&e._value;if(null==t)return this.tween(e,null);if("function"!=typeof t)throw new Error;return this.tween(e,function(t){var e,n;function o(){var o=t.apply(this,arguments);return o!==n&&(e=(n=o)&&function(t){return function(e){this.textContent=t.call(this,e)}}(o)),e}return o._value=t,o}(t))},remove:function(){return this.on("end.remove",function(t){return function(){var e=this.parentNode;for(var n in this.__transition)if(+n!==t)return;e&&e.removeChild(this)}}(this._id))},tween:function(t,e){var n=this._id;if(t+="",arguments.length<2){for(var o,r=Pn(this.node(),n).tween,i=0,a=r.length;i<a;++i)if((o=r[i]).name===t)return o.value;return null}return this.each((null==e?An:$n)(n,t,e))},delay:function(t){var e=this._id;return arguments.length?this.each(("function"==typeof t?Ln:Un)(e,t)):Pn(this.node(),e).delay},duration:function(t){var e=this._id;return arguments.length?this.each(("function"==typeof t?qn:Vn)(e,t)):Pn(this.node(),e).duration},ease:function(t){var e=this._id;return arguments.length?this.each(function(t,e){if("function"!=typeof e)throw new Error;return function(){kn(this,t).ease=e}}(e,t)):Pn(this.node(),e).ease},easeVarying:function(t){if("function"!=typeof t)throw new Error;return this.each(function(t,e){return function(){var n=e.apply(this,arguments);if("function"!=typeof n)throw new Error;kn(this,t).ease=n}}(this._id,t))},end:function(){var t,e,n=this,o=n._id,r=n.size();return new Promise((function(i,a){var s={value:a},u={value:function(){0==--r&&i()}};n.each((function(){var n=kn(this,o),r=n.on;r!==t&&((e=(t=r).copy())._.cancel.push(s),e._.interrupt.push(s),e._.end.push(u)),n.on=e})),0===r&&i()}))},[Symbol.iterator]:Gn[Symbol.iterator]};var Qn={time:null,delay:0,duration:250,ease:function(t){return((t*=2)<=1?t*t*t:(t-=2)*t*t+2)/2}};function Jn(t,e){for(var n;!(n=t.__transition)||!(n=n[e]);)if(!(t=t.parentNode))throw new Error(`transition ${e} not found`);return n}Dt.prototype.interrupt=function(t){return this.each((function(){Cn(this,t)}))},Dt.prototype.transition=function(t){var e,n;t instanceof Hn?(e=t._id,t=t._name):(e=Kn(),(n=Qn).time=un(),t=null==t?null:t+"");for(var o=this._groups,r=o.length,i=0;i<r;++i)for(var a,s=o[i],u=s.length,c=0;c<u;++c)(a=s[c])&&Nn(a,t,e,c,s,n||Jn(a,e));return new Hn(o,this._parents,t,e)};var to=t=>()=>t;function eo(t,{sourceEvent:e,target:n,transform:o,dispatch:r}){Object.defineProperties(this,{type:{value:t,enumerable:!0,configurable:!0},sourceEvent:{value:e,enumerable:!0,configurable:!0},target:{value:n,enumerable:!0,configurable:!0},transform:{value:o,enumerable:!0,configurable:!0},_:{value:r}})}function no(t,e,n){this.k=t,this.x=e,this.y=n}no.prototype={constructor:no,scale:function(t){return 1===t?this:new no(this.k*t,this.x,this.y)},translate:function(t,e){return 0===t&0===e?this:new no(this.k,this.x+this.k*t,this.y+this.k*e)},apply:function(t){return[t[0]*this.k+this.x,t[1]*this.k+this.y]},applyX:function(t){return t*this.k+this.x},applyY:function(t){return t*this.k+this.y},invert:function(t){return[(t[0]-this.x)/this.k,(t[1]-this.y)/this.k]},invertX:function(t){return(t-this.x)/this.k},invertY:function(t){return(t-this.y)/this.k},rescaleX:function(t){return t.copy().domain(t.range().map(this.invertX,this).map(t.invert,t))},rescaleY:function(t){return t.copy().domain(t.range().map(this.invertY,this).map(t.invert,t))},toString:function(){return"translate("+this.x+","+this.y+") scale("+this.k+")"}};var oo=new no(1,0,0);function ro(t){t.stopImmediatePropagation()}function io(t){t.preventDefault(),t.stopImmediatePropagation()}function ao(t){return!(t.ctrlKey&&"wheel"!==t.type||t.button)}function so(){var t=this;return t instanceof SVGElement?(t=t.ownerSVGElement||t).hasAttribute("viewBox")?[[(t=t.viewBox.baseVal).x,t.y],[t.x+t.width,t.y+t.height]]:[[0,0],[t.width.baseVal.value,t.height.baseVal.value]]:[[0,0],[t.clientWidth,t.clientHeight]]}function uo(){return this.__zoom||oo}function co(t){return-t.deltaY*(1===t.deltaMode?.05:t.deltaMode?1:.002)*(t.ctrlKey?10:1)}function lo(){return navigator.maxTouchPoints||"ontouchstart"in this}function ho(t,e,n){var o=t.invertX(e[0][0])-n[0][0],r=t.invertX(e[1][0])-n[1][0],i=t.invertY(e[0][1])-n[0][1],a=t.invertY(e[1][1])-n[1][1];return t.translate(r>o?(o+r)/2:Math.min(0,o)||Math.max(0,r),a>i?(i+a)/2:Math.min(0,i)||Math.max(0,a))}function fo(t,e){if(Object.is(t,e))return!0;if("object"!=typeof t||null===t||"object"!=typeof e||null===e)return!1;if(t instanceof Map&&e instanceof Map){if(t.size!==e.size)return!1;for(const[n,o]of t)if(!Object.is(o,e.get(n)))return!1;return!0}if(t instanceof Set&&e instanceof Set){if(t.size!==e.size)return!1;for(const n of t)if(!e.has(n))return!1;return!0}const n=Object.keys(t);if(n.length!==Object.keys(e).length)return!1;for(let o=0;o<n.length;o++)if(!Object.prototype.hasOwnProperty.call(e,n[o])||!Object.is(t[n[o]],e[n[o]]))return!1;return!0}no.prototype;const go=Symbol.for("internals"),po=t=>!isNaN(t)&&isFinite(t),mo=t=>({width:t.offsetWidth,height:t.offsetHeight}),yo=(t,e=0,n=1)=>Math.min(Math.max(t,e),n),vo=(t={x:0,y:0},e)=>({x:yo(t.x,e[0][0],e[1][0]),y:yo(t.y,e[0][1],e[1][1])}),xo=({x:t,y:e,width:n,height:o})=>({x:t,y:e,x2:t+n,y2:e+o}),bo=({x:t,y:e,x2:n,y2:o})=>({x:t,y:e,width:n-t,height:o-e}),wo=t=>"clientX"in t,_o=(t,e)=>{const n=wo(t),o=n?t.clientX:t.touches?.[0].clientX,r=n?t.clientY:t.touches?.[0].clientY;return{x:o-(e?.left??0),y:r-(e?.top??0)}},Eo=(t,e,n,o)=>{const r=e-n;return t<n?yo(Math.abs(t-n),1,50)/50*o:t>r?-yo(Math.abs(t-r),1,50)/50*o:0},So=(t,e)=>[Eo(t.x,e.width,30,10),Eo(t.y,e.height,30,10)],No=t=>{const{x:e,y:n,k:o}=t;return{x:e,y:n,zoom:o}},Mo=(t,e)=>t.target.closest(`.${e}`),ko=(t,e)=>{const{x:n,y:o,zoom:r}=t,{x:i,y:a,k:s}=e;return n!==i||o!==a||r!==s},Po=t=>({d3Zoom:t.d3Zoom,d3Selection:t.d3Selection,elementsSelectable:t.elementsSelectable});function Co({noPanClassName:t,panning:o,minZoom:r,maxZoom:i,defaultViewport:a,translateExtent:s,children:u,onMove:c,onMoveStart:l,onMoveEnd:d}){const h=w(),f=n.useRef(!1),g=n.useRef(null),p=n.useRef(),m=n.useRef({x:0,y:0,zoom:0}),y=n.useRef(),{d3Zoom:v,d3Selection:x}=b(Po,fo);return n.useEffect((()=>{if(g.current){const t=g.current.getBoundingClientRect(),e=function(){var t,e,n,o=ao,r=so,i=ho,a=co,s=lo,u=[0,1/0],c=[[-1/0,-1/0],[1/0,1/0]],l=250,d=Ge,h=E("start","zoom","end"),f=500,g=150,p=0,m=10;function y(t){t.property("__zoom",uo).on("wheel.zoom",N,{passive:!1}).on("mousedown.zoom",M).on("dblclick.zoom",k).filter(s).on("touchstart.zoom",P).on("touchmove.zoom",C).on("touchend.zoom touchcancel.zoom",A).style("-webkit-tap-highlight-color","rgba(0,0,0,0)")}function v(t,e){return(e=Math.max(u[0],Math.min(u[1],e)))===t.k?t:new no(e,t.x,t.y)}function x(t,e,n){var o=e[0]-n[0]*t.k,r=e[1]-n[1]*t.k;return o===t.x&&r===t.y?t:new no(t.k,o,r)}function b(t){return[(+t[0][0]+ +t[1][0])/2,(+t[0][1]+ +t[1][1])/2]}function w(t,e,n,o){t.on("start.zoom",(function(){_(this,arguments).event(o).start()})).on("interrupt.zoom end.zoom",(function(){_(this,arguments).event(o).end()})).tween("zoom",(function(){var t=this,i=arguments,a=_(t,i).event(o),s=r.apply(t,i),u=null==n?b(s):"function"==typeof n?n.apply(t,i):n,c=Math.max(s[1][0]-s[0][0],s[1][1]-s[0][1]),l=t.__zoom,h="function"==typeof e?e.apply(t,i):e,f=d(l.invert(u).concat(c/l.k),h.invert(u).concat(c/h.k));return function(t){if(1===t)t=h;else{var e=f(t),n=c/e[2];t=new no(n,u[0]-e[0]*n,u[1]-e[1]*n)}a.zoom(null,t)}}))}function _(t,e,n){return!n&&t.__zooming||new S(t,e)}function S(t,e){this.that=t,this.args=e,this.active=0,this.sourceEvent=null,this.extent=r.apply(t,e),this.taps=0}function N(t,...e){if(o.apply(this,arguments)){var n=_(this,e).event(t),r=this.__zoom,s=Math.max(u[0],Math.min(u[1],r.k*Math.pow(2,a.apply(this,arguments)))),l=Yt(t);if(n.wheel)n.mouse[0][0]===l[0]&&n.mouse[0][1]===l[1]||(n.mouse[1]=r.invert(n.mouse[0]=l)),clearTimeout(n.wheel);else{if(r.k===s)return;n.mouse=[l,r.invert(l)],Cn(this),n.start()}io(t),n.wheel=setTimeout((function(){n.wheel=null,n.end()}),g),n.zoom("mouse",i(x(v(r,s),n.mouse[0],n.mouse[1]),n.extent,c))}}function M(t,...e){if(!n&&o.apply(this,arguments)){var r=t.currentTarget,a=_(this,e,!0).event(t),s=Xt(t.view).on("mousemove.zoom",(function(t){if(io(t),!a.moved){var e=t.clientX-l,n=t.clientY-d;a.moved=e*e+n*n>p}a.event(t).zoom("mouse",i(x(a.that.__zoom,a.mouse[0]=Yt(t,r),a.mouse[1]),a.extent,c))}),!0).on("mouseup.zoom",(function(t){s.on("mousemove.zoom mouseup.zoom",null),Zt(t.view,a.moved),io(t),a.event(t).end()}),!0),u=Yt(t,r),l=t.clientX,d=t.clientY;Vt(t.view),ro(t),a.mouse=[u,this.__zoom.invert(u)],Cn(this),a.start()}}function k(t,...e){if(o.apply(this,arguments)){var n=this.__zoom,a=Yt(t.changedTouches?t.changedTouches[0]:t,this),s=n.invert(a),u=n.k*(t.shiftKey?.5:2),d=i(x(v(n,u),a,s),r.apply(this,e),c);io(t),l>0?Xt(this).transition().duration(l).call(w,d,a,t):Xt(this).call(y.transform,d,a,t)}}function P(n,...r){if(o.apply(this,arguments)){var i,a,s,u,c=n.touches,l=c.length,d=_(this,r,n.changedTouches.length===l).event(n);for(ro(n),a=0;a<l;++a)u=[u=Yt(s=c[a],this),this.__zoom.invert(u),s.identifier],d.touch0?d.touch1||d.touch0[2]===u[2]||(d.touch1=u,d.taps=0):(d.touch0=u,i=!0,d.taps=1+!!t);t&&(t=clearTimeout(t)),i&&(d.taps<2&&(e=u[0],t=setTimeout((function(){t=null}),f)),Cn(this),d.start())}}function C(t,...e){if(this.__zooming){var n,o,r,a,s=_(this,e).event(t),u=t.changedTouches,l=u.length;for(io(t),n=0;n<l;++n)r=Yt(o=u[n],this),s.touch0&&s.touch0[2]===o.identifier?s.touch0[0]=r:s.touch1&&s.touch1[2]===o.identifier&&(s.touch1[0]=r);if(o=s.that.__zoom,s.touch1){var d=s.touch0[0],h=s.touch0[1],f=s.touch1[0],g=s.touch1[1],p=(p=f[0]-d[0])*p+(p=f[1]-d[1])*p,m=(m=g[0]-h[0])*m+(m=g[1]-h[1])*m;o=v(o,Math.sqrt(p/m)),r=[(d[0]+f[0])/2,(d[1]+f[1])/2],a=[(h[0]+g[0])/2,(h[1]+g[1])/2]}else{if(!s.touch0)return;r=s.touch0[0],a=s.touch0[1]}s.zoom("touch",i(x(o,r,a),s.extent,c))}}function A(t,...o){if(this.__zooming){var r,i,a=_(this,o).event(t),s=t.changedTouches,u=s.length;for(ro(t),n&&clearTimeout(n),n=setTimeout((function(){n=null}),f),r=0;r<u;++r)i=s[r],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=Yt(i,this),Math.hypot(e[0]-i[0],e[1]-i[1])<m)){var c=Xt(this).on("dblclick.zoom");c&&c.apply(this,arguments)}}}return y.transform=function(t,e,n,o){var r=t.selection?t.selection():t;r.property("__zoom",uo),t!==r?w(t,e,n,o):r.interrupt().each((function(){_(this,arguments).event(o).start().zoom(null,"function"==typeof e?e.apply(this,arguments):e).end()}))},y.scaleBy=function(t,e,n,o){y.scaleTo(t,(function(){return this.__zoom.k*("function"==typeof e?e.apply(this,arguments):e)}),n,o)},y.scaleTo=function(t,e,n,o){y.transform(t,(function(){var t=r.apply(this,arguments),o=this.__zoom,a=null==n?b(t):"function"==typeof n?n.apply(this,arguments):n,s=o.invert(a),u="function"==typeof e?e.apply(this,arguments):e;return i(x(v(o,u),a,s),t,c)}),n,o)},y.translateBy=function(t,e,n,o){y.transform(t,(function(){return i(this.__zoom.translate("function"==typeof e?e.apply(this,arguments):e,"function"==typeof n?n.apply(this,arguments):n),r.apply(this,arguments),c)}),null,o)},y.translateTo=function(t,e,n,o,a){y.transform(t,(function(){var t=r.apply(this,arguments),a=this.__zoom,s=null==o?b(t):"function"==typeof o?o.apply(this,arguments):o;return i(oo.translate(s[0],s[1]).scale(a.k).translate("function"==typeof e?-e.apply(this,arguments):-e,"function"==typeof n?-n.apply(this,arguments):-n),t,c)}),o,a)},S.prototype={event:function(t){return t&&(this.sourceEvent=t),this},start:function(){return 1==++this.active&&(this.that.__zooming=this,this.emit("start")),this},zoom:function(t,e){return this.mouse&&"mouse"!==t&&(this.mouse[1]=e.invert(this.mouse[0])),this.touch0&&"touch"!==t&&(this.touch0[1]=e.invert(this.touch0[0])),this.touch1&&"touch"!==t&&(this.touch1[1]=e.invert(this.touch1[0])),this.that.__zoom=e,this.emit("zoom"),this},end:function(){return 0==--this.active&&(delete this.that.__zooming,this.emit("end")),this},emit:function(t){var e=Xt(this.that).datum();h.call(t,this.that,new eo(t,{sourceEvent:this.sourceEvent,target:y,type:t,transform:this.that.__zoom,dispatch:h}),e)}},y.wheelDelta=function(t){return arguments.length?(a="function"==typeof t?t:to(+t),y):a},y.filter=function(t){return arguments.length?(o="function"==typeof t?t:to(!!t),y):o},y.touchable=function(t){return arguments.length?(s="function"==typeof t?t:to(!!t),y):s},y.extent=function(t){return arguments.length?(r="function"==typeof t?t:to([[+t[0][0],+t[0][1]],[+t[1][0],+t[1][1]]]),y):r},y.scaleExtent=function(t){return arguments.length?(u[0]=+t[0],u[1]=+t[1],y):[u[0],u[1]]},y.translateExtent=function(t){return arguments.length?(c[0][0]=+t[0][0],c[1][0]=+t[1][0],c[0][1]=+t[0][1],c[1][1]=+t[1][1],y):[[c[0][0],c[0][1]],[c[1][0],c[1][1]]]},y.constrain=function(t){return arguments.length?(i=t,y):i},y.duration=function(t){return arguments.length?(l=+t,y):l},y.interpolate=function(t){return arguments.length?(d=t,y):d},y.on=function(){var t=h.on.apply(h,arguments);return t===h?y:t},y.clickDistance=function(t){return arguments.length?(p=(t=+t)*t,y):Math.sqrt(p)},y.tapDistance=function(t){return arguments.length?(m=+t,y):m},y}().scaleExtent([r,i]).translateExtent(s),n=Xt(g.current).call(e),o=oo.translate(a.x,a.y).scale(yo(a.zoom,r,i)),u=[[0,0],[t.width,t.height]],c=e.constrain()(o,u,s);e.transform(n,c),p.current=n.on("wheel.zoom"),h.setState({d3Zoom:e,d3Selection:n,transform:[c.x,c.y,c.k],domNode:g.current.closest(".react-diagram")})}}),[s]),n.useEffect((()=>{v&&x&&x.on("wheel.zoom",((t,e)=>{t.preventDefault(),g.current&&p.current&&p.current.call(g.current,t,e)}))}),[v,x,p,o]),n.useEffect((()=>{v&&v.on("start",(t=>{if(!t.sourceEvent)return null;if(f.current=!0,l){const e=No(t.transform);m.current=e,l?.(t.sourceEvent,e)}}))}),[v,l]),n.useEffect((()=>{v&&v.on("zoom",(t=>{if(h.setState({transform:[t.transform.x,t.transform.y,t.transform.k]}),c){const e=No(t.transform);c?.(t.sourceEvent,e)}}))}),[v,c]),n.useEffect((()=>{v&&v.on("end",(t=>{if(f.current=!1,d&&ko(m.current,t.transform)){const e=No(t.transform);m.current=e,clearTimeout(y.current),y.current=setTimeout((()=>{d?.(t.sourceEvent,e)}),0)}}))}),[v]),n.useEffect((()=>{v&&v.filter((e=>{if(Mo(e,t)&&"wheel"!==e.type)return!1;if(!o)return!1;return!(e.button&&!(e.button<=1))}))}),[v,o]),e.jsx("div",{className:"react-diagram__pane react-diagram__container",ref:g,children:u})}const Ao=t=>`translate(${t.transform[0]}px,${t.transform[1]}px) scale(${t.transform[2]})`;function $o({children:t}){const n=b(Ao);return e.jsx("div",{className:"react-diagram__viewport react-diagram__container",style:{transform:n},children:t})}function Bo({rect:t}){const{width:n,height:o,x:r,y:i}=t;return n&&o&&r&&i?e.jsx("div",{className:"react-diagram__drag-box react-diagram__container",style:{width:n,height:o,transform:`translate(${r}px, ${i}px)`}}):null}function To(t){if("string"==typeof t||"number"==typeof t)return""+t;let e="";if(Array.isArray(t))for(let n,o=0;o<t.length;o++)""!==(n=To(t[o]))&&(e+=(e&&" ")+n);else for(let n in t)t[n]&&(e+=(e&&" ")+n);return e}var Ro=n.memo((function({rect:t,transform:o}){const r=n.useRef(null),{width:i,height:a,x:s,y:u}=t;return e.jsx("div",{className:To(["react-diagram__selection-box","react-diagram__container"]),style:{transform:o},children:e.jsx("div",{ref:r,className:"react-diagram__selection-box-rect",tabIndex:-1,style:{width:i,height:a,top:u,left:s}})})}));const Io=t=>"source"in t&&"target"in t,jo=(t,e=[0,0])=>{if(!t)return{x:0,y:0,positionAbsolute:{x:0,y:0}};const n=(t.width??0)*e[0],o=(t.height??0)*e[1],r={x:t.position.x-n,y:t.position.y-o};return{...r,positionAbsolute:t.positionAbsolute?{x:t.positionAbsolute.x-n,y:t.positionAbsolute.y-o}:r}},zo=(t,e,[n,o,r]=[0,0,1],i=!1,a=!1,s=[0,0])=>{const u={x:(e.x-n)/r,y:(e.y-o)/r,width:e.width/r,height:e.height/r},c=[];return t.forEach((t=>{const{width:e,height:n,selectable:o=!0,hidden:r=!1}=t;if(a&&!o||r)return!1;const{positionAbsolute:l}=jo(t,s),d={x:l.x,y:l.y,width:e||0,height:n||0},h=((t,e)=>{const n=Math.max(0,Math.min(t.x+t.width,e.x+e.width)-Math.max(t.x,e.x)),o=Math.max(0,Math.min(t.y+t.height,e.y+e.height)-Math.max(t.y,e.y));return Math.ceil(n*o)})(u,d);(void 0===e||void 0===n||null===e||null===n||i&&h>0||h>=(e||0)*(n||0)||t.dragging)&&c.push(t)})),c},Do=(t,e)=>{if(void 0===t)return"";if("string"==typeof t)return t;return`${e?`${e}__`:""}${Object.keys(t).sort().map((e=>`${e}=${t[e]}`)).join("&")}`},Xo=({source:t,target:e})=>`react-diagram__edge-${t}-${e}`,Yo=(t,e=[0,0])=>{if(0===t.length)return{x:0,y:0,width:0,height:0};const n=t.reduce(((t,n)=>{const{x:o,y:r}=jo(n,e).positionAbsolute,i=xo({x:o,y:r,width:n.width||0,height:n.height||0});return a=t,s=i,{x:Math.min(a.x,s.x),y:Math.min(a.y,s.y),x2:Math.max(a.x2,s.x2),y2:Math.max(a.y2,s.y2)};var a,s}),{x:1/0,y:1/0,x2:-1/0,y2:-1/0});return bo(n)},Oo=(t,e)=>{const n=t.find((t=>t.id===e.parentNode));if(n){const t=e.position.x+e.width-n.width,o=e.position.y+e.height-n.height;if(t>0||o>0||e.position.x<0||e.position.y<0){if(n.style={...n.style}||{},n.style.width=n.style.width??n.width,n.style.height=n.style.height??n.height,t>0&&(n.style.width+=t),o>0&&(n.style.height+=o),e.position.x<0){const t=Math.abs(e.position.x);n.position.x=n.position.x-t,n.style.width+=t,e.position.x=0}if(e.position.y<0){const t=Math.abs(e.position.y);n.position.y=n.position.y-t,n.style.height+=t,e.position.y=0}n.width=n.style.width,n.height=n.style.height}}},Lo=(t,e)=>{if(t.some((t=>"reset"===t.type)))return t.filter((t=>"reset"===t.type)).map((t=>t.item));const n=t.filter((t=>"add"===t.type)).map((t=>t.item));return e.reduce(((e,n)=>{const o=t.filter((t=>t.id===n.id));if(0===o.length)return e.push(n),e;const r={...n};for(const t of o)if(t)switch(t.type){case"select":r.selected=t.selected;break;case"position":void 0!==t.position&&(r.position=t.position),void 0!==t.positionAbsolute&&(r.positionAbsolute=t.positionAbsolute),void 0!==t.dragging&&(r.dragging=t.dragging),r.expandParent&&Oo(e,r);break;case"dimensions":void 0!==t.dimensions&&(r.width=t.dimensions.width,r.height=t.dimensions.height),void 0!==t.updateStyle&&(r.style={...r.style||{},...t.dimensions}),"boolean"==typeof t.resizing&&(r.resizing=t.resizing),r.expandParent&&Oo(e,r);break;case"remove":return e}return e.push(r),e}),n)};const Uo=(t,e)=>({id:t,type:"select",selected:e});function qo(t,e){return t.reduce(((t,n)=>{const o=e.includes(n.id);return!n.selected&&o?(n.selected=!0,t.push(Uo(n.id,!0))):n.selected&&!o&&(n.selected=!1,t.push(Uo(n.id,!1))),t}),[])}const Vo=t=>({elementsSelectable:t.elementsSelectable,transform:`translate(${t.transform[0]}px,${t.transform[1]}px) scale(${t.transform[2]})`});function Zo({children:t,dragSelectionKeyPressed:o}){const r=w(),i=n.useRef(null),a=n.useRef(0),s=n.useRef(),{elementsSelectable:u,transform:c}=b(Vo,fo),[l,d]=n.useState({x:0,y:0}),[h,f]=n.useState({width:0,height:0,x:0,y:0}),[g,p]=n.useState({width:0,height:0,x:0,y:0}),[m,y]=n.useState(!1),[v,x]=n.useState(!1),_=()=>{d({x:0,y:0}),f({width:0,height:0,x:0,y:0}),y(!1)},E=u&&o;return e.jsxs("div",{ref:i,className:"react-diagram__container react-diagram__drag-selection",onClick:t=>{t.target===i.current&&(r.getState().resetSelectedElements(),y(!1),x(!1))},onMouseDown:E?t=>{const{resetSelectedElements:e,domNode:n}=r.getState();if(s.current=n?.getBoundingClientRect(),!u||0!==t.button||t.target!==i.current||!s.current||!o)return;const{x:a,y:c}=_o(t,s.current);e(),f({width:0,height:0,x:a,y:c}),d({x:a,y:c})}:void 0,onMouseMove:E?t=>{const{nodeInternals:e,transform:n,nodeOrigin:i,getNodes:u,onNodesChange:c}=r.getState();if(!(l.x>0&&l.y>0)||!s.current||!o)return;y(!0),x(!1);const d=_o(t,s.current),h=l.x??0,g=l.y??0,m={x:d.x<h?d.x:h,y:d.y<g?d.y:g,width:Math.abs(d.x-h),height:Math.abs(d.y-g)},v=u(),b=zo(e,m,n,!1,!0,i),w=b.map((t=>t.id)),_=Yo(b,i);if(p(_),a.current!==w.length){a.current=w.length;const t=qo(v,w);t.length&&c?.(t)}f(m)}:void 0,onMouseUp:u&&h?t=>{0===t.button&&(x(a.current>0),_())}:void 0,onMouseLeave:E?()=>{x(a.current>0),_()}:void 0,children:[t,m&&e.jsx(Bo,{rect:h}),v&&e.jsx(Ro,{rect:g,transform:c})]})}Zo.displayName="DragSelection";const Fo=t=>{const{minZoom:e,maxZoom:n,translateExtent:o}=t;return{minZoom:e,maxZoom:n,translateExtent:o}};function Wo({children:t,multiSelectionKeyCode:o,noPanClassName:r,panning:i,defaultViewport:a,onMove:s,onMoveStart:u,onMoveEnd:c}){const{minZoom:l,maxZoom:d,translateExtent:h}=b(Fo),[f,g]=n.useState(!1);!function(t="Meta"){const e=w(),[o,r]=n.useState(!1),i=e=>{e.key===t&&r(!0)},a=()=>{r(!1)};n.useEffect((()=>(document.addEventListener("keydown",i),document.addEventListener("keyup",a),()=>{document.removeEventListener("keydown",i),document.removeEventListener("keyup",a)})),[]),n.useEffect((()=>{e.setState({multiSelectionActive:o})}),[o])}(o);const p=t=>{"Shift"===t.key&&g(!0)},m=()=>{g(!1)};return n.useEffect((()=>(document.addEventListener("keydown",p),document.addEventListener("keyup",m),()=>{document.removeEventListener("keydown",p),document.removeEventListener("keyup",m)})),[]),e.jsx(Co,{noPanClassName:r,panning:i&&!f,minZoom:l,maxZoom:d,translateExtent:h,defaultViewport:a,onMove:s,onMoveStart:u,onMoveEnd:c,children:e.jsx(Zo,{dragSelectionKeyPressed:f,children:e.jsx($o,{children:t})})})}Wo.displayName="DiagramRenderer";var Ho,Ko=n.memo(Wo);t.Position=void 0,(Ho=t.Position||(t.Position={})).Left="left",Ho.Top="top",Ho.Right="right",Ho.Bottom="bottom",t.MarkerType=void 0,(t.MarkerType||(t.MarkerType={})).Arrow="arrow";const Go=t=>({nodesDraggable:t.nodesDraggable,elementsSelectable:t.elementsSelectable,updateNodeDimensions:t.updateNodeDimensions,onError:t.onError});function Qo({nodeTypes:o,onNodeClick:r,onNodeMouseEnter:i,onNodeMouseMove:a,onNodeMouseLeave:s,onNodeContextMenu:u,onNodeDoubleClick:c,...l}){const{nodesDraggable:d,elementsSelectable:h,updateNodeDimensions:f,onError:g}=b(Go,fo),p=b(n.useCallback((t=>t.getNodes()),[])),m=n.useRef(),y=n.useMemo((()=>{if("undefined"==typeof ResizeObserver)return null;const t=new ResizeObserver((t=>{const e=t.map((t=>({id:t.target.getAttribute("data-id"),nodeElement:t.target,forceUpdate:!0})));f(e)}));return m.current=t,t}),[]);return n.useEffect((()=>()=>{m?.current?.disconnect()}),[]),e.jsx("div",{className:"react-diagram__nodes react-diagram__container",children:p.map((n=>{const{data:f,type:p,id:m,className:v,style:x,ariaLabel:b,positionAbsolute:w,hidden:_,selected:E,selectable:S,draggable:N}=n;let M=p||"default";o[M]||(g?.("010",M),M="default");const k=o[M]||o.default,P=!!(N||d&&void 0===N),C=!!(S||h&&void 0===S),A={id:m,className:v,style:{...x,width:n.width,height:n.height},ariaLabel:b},$={onClick:r,onMouseEnter:i,onMouseMove:a,onMouseLeave:s,onContextMenu:u,onDoubleClick:c},B={positionX:w?.x||0,positionY:w?.y||0,sourcePosition:t.Position.Bottom,targetPosition:t.Position.Top},T={selected:!!E,isSelectable:C,isDraggable:P,hidden:_,isParent:!!n[go]?.isParent,initialized:!!n.width&&!!n.height};return e.jsx(k,{...l,...A,...B,...$,...T,zIndex:n[go]?.z??0,type:M,data:f,resizeObserver:y},m)}))})}Qo.displayName="NodeRenderer";var Jo=n.memo(Qo);const tr={[t.MarkerType.Arrow]:({color:t="none",strokeWidth:n=1})=>e.jsx("polyline",{stroke:t,strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:n,fill:t,points:"-5,-4 0,0 -5,4 -5,-4"})};const er=({id:t,type:o,color:r,width:i=12.5,height:a=12.5,markerUnits:s="strokeWidth",strokeWidth:u,orient:c="auto-start-reverse"})=>{const l=function(t){const e=w();return n.useMemo((()=>Object.prototype.hasOwnProperty.call(tr,t)?tr[t]:(e.getState().onError?.("022",t),null)),[t])}(o);return l?e.jsx("marker",{className:"react-diagram__arrowhead",id:t,markerWidth:`${i}`,markerHeight:`${a}`,viewBox:"-10 -10 20 20",markerUnits:s,orient:c,refX:"0",refY:"0",children:e.jsx(l,{color:r,strokeWidth:u})}):null},nr=({defaultColor:t,rfId:o})=>{const r=b(n.useCallback((({defaultColor:t,rfId:e})=>n=>{const o=[];return n.edges.reduce(((n,r)=>([r.markerStart,r.markerEnd].forEach((r=>{if(r&&"object"==typeof r){const i=Do(r,e);o.includes(i)||(n.push({id:i,color:r.color||t,...r}),o.push(i))}})),n)),[]).sort(((t,e)=>t.id.localeCompare(e.id)))})({defaultColor:t,rfId:o}),[t,o]),((t,e)=>!(t.length!==e.length||t.some(((t,n)=>t.id!==e[n].id)))));return e.jsx("defs",{children:r.map((t=>e.jsx(er,{id:t.id,type:t.type,color:t.color,width:t.width,height:t.height,markerUnits:t.markerUnits,strokeWidth:t.strokeWidth,orient:t.orient},t.id)))})};nr.displayName="MarkerComponent";var or=n.memo(nr);var rr=n.memo((function({x:t,y:o,label:r,labelStyle:i={},labelShowBg:a=!0,labelBgStyle:s={},labelBgPadding:u=[2,4],labelBgBorderRadius:c=2,children:l,className:d,...h}){const f=n.useRef(null),[g,p]=n.useState({x:0,y:0,width:0,height:0}),m=To(["react-diagram__edge-text-wrapper",d]);return n.useEffect((()=>{if(f.current){const t=f.current.getBBox();p({x:t.x,y:t.y,width:t.width,height:t.height})}}),[r]),void 0!==r&&r?e.jsxs("g",{transform:`translate(${t-g.width/2} ${o-g.height/2})`,className:m,visibility:g.width?"visible":"hidden",...h,children:[a&&e.jsx("rect",{width:g.width+2*u[0],x:-u[0],y:-u[1],height:g.height+2*u[1],className:"react-diagram__edge-text-bg",style:s,rx:c,ry:c}),e.jsx("text",{className:"react-diagram__edge-text",y:g.height/2,dy:"0.3em",ref:f,style:i,children:r}),l]}):null}));function ir({path:t,labelX:n,labelY:o,label:r,labelStyle:i,labelShowBg:a,labelBgStyle:s,labelBgPadding:u,labelBgBorderRadius:c,style:l,markerEnd:d,markerStart:h}){return e.jsxs(e.Fragment,{children:[e.jsx("path",{style:l,d:t,fill:"none",className:"react-diagram__edge-path",markerEnd:d,markerStart:h}),r&&po(n)&&po(o)?e.jsx(rr,{x:n,y:o,label:r,labelStyle:i,labelShowBg:a,labelBgStyle:s,labelBgPadding:u,labelBgBorderRadius:c}):null]})}ir.displayName="BaseEdge";const ar=({sourceX:t,sourceY:e,targetX:n,targetY:o})=>{const r=Math.abs(n-t)/2,i=n<t?n+r:n-r,a=Math.abs(o-e)/2;return[i,o<e?o+a:o-a,r,a]},sr=n.memo((({sourceX:t,sourceY:n,targetX:o,targetY:r,label:i,labelStyle:a,labelShowBg:s,labelBgStyle:u,labelBgPadding:c,labelBgBorderRadius:l,style:d,markerEnd:h,markerStart:f})=>{const[g,p,m]=(({sourceX:t,sourceY:e,targetX:n,targetY:o})=>{const[r,i,a,s]=ar({sourceX:t,sourceY:e,targetX:n,targetY:o});return[`M ${t},${e}L ${n},${o}`,r,i,a,s]})({sourceX:t,sourceY:n,targetX:o,targetY:r});return e.jsx(ir,{path:g,labelX:p,labelY:m,label:i,labelStyle:a,labelShowBg:s,labelBgStyle:u,labelBgPadding:c,labelBgBorderRadius:l,style:d,markerEnd:h,markerStart:f})}));sr.displayName="StraightEdge";const ur={[t.Position.Left]:{x:-1,y:0},[t.Position.Right]:{x:1,y:0},[t.Position.Top]:{x:0,y:-1},[t.Position.Bottom]:{x:0,y:1}},cr=({source:e,sourcePosition:n=t.Position.Bottom,target:o})=>n===t.Position.Left||n===t.Position.Right?e.x<o.x?{x:1,y:0}:{x:-1,y:0}:e.y<o.y?{x:0,y:1}:{x:0,y:-1},lr=(t,e)=>Math.sqrt(Math.pow(e.x-t.x,2)+Math.pow(e.y-t.y,2));function dr({sourceX:e,sourceY:n,sourcePosition:o=t.Position.Bottom,targetX:r,targetY:i,targetPosition:a=t.Position.Top,borderRadius:s=5,centerX:u,centerY:c,offset:l=20}){const[d,h,f,g,p]=function({source:e,sourcePosition:n=t.Position.Bottom,target:o,targetPosition:r=t.Position.Top,center:i,offset:a}){const s=ur[n],u=ur[r],c={x:e.x+s.x*a,y:e.y+s.y*a},l={x:o.x+u.x*a,y:o.y+u.y*a},d=cr({source:c,sourcePosition:n,target:l}),h=0!==d.x?"x":"y",f=d[h];let g=[],p=0,m=0;const[y,v,x,b]=ar({sourceX:e.x,sourceY:e.y,targetX:o.x,targetY:o.y});if(s[h]*u[h]==-1){p=i.x||y,m=i.y||v;const t=[{x:p,y:c.y},{x:p,y:l.y}],e=[{x:c.x,y:m},{x:l.x,y:m}];g=s[h]!==f?"x"===h?e:t:"x"===h?t:e}return[[e,c,...g,l,o],p,m,x,b]}({source:{x:e,y:n},sourcePosition:o,target:{x:r,y:i},targetPosition:a,center:{x:u,y:c},offset:l});return[d.reduce(((t,e,n)=>{let o="";return o=n>0&&n<d.length-1?function(t,e,n,o){const r=Math.min(lr(t,e)/2,lr(e,n)/2,o),{x:i,y:a}=e;if(t.x===i&&i===n.x||t.y===a&&a===n.y)return`L${i} ${a}`;if(t.y===a)return`L ${i+r*(t.x<n.x?-1:1)},${a}Q ${i},${a} ${i},${a+r*(t.y<n.y?1:-1)}`;const s=t.x<n.x?1:-1;return`L ${i},${a+r*(t.y<n.y?-1:1)}Q ${i},${a} ${i+r*s},${a}`}(d[n-1],e,d[n+1],s):`${0===n?"M":"L"}${e.x} ${e.y}`,t+=o}),""),h,f,g,p]}const hr=n.memo((({sourceX:n,sourceY:o,targetX:r,targetY:i,label:a,labelStyle:s,labelShowBg:u,labelBgStyle:c,labelBgPadding:l,labelBgBorderRadius:d,style:h,sourcePosition:f=t.Position.Bottom,targetPosition:g=t.Position.Top,markerEnd:p,markerStart:m,pathOptions:y})=>{const[v,x,b]=dr({sourceX:n,sourceY:o,sourcePosition:f,targetX:r,targetY:i,targetPosition:g,borderRadius:y?.borderRadius,offset:y?.offset});return e.jsx(ir,{path:v,labelX:x,labelY:b,label:a,labelStyle:s,labelShowBg:u,labelBgStyle:c,labelBgPadding:l,labelBgBorderRadius:d,style:h,markerEnd:p,markerStart:m})}));hr.displayName="StepEdge";const fr=(t,e)=>t>=0?.5*t:25*e*Math.sqrt(-t),gr=({pos:e,x1:n,y1:o,x2:r,y2:i,c:a})=>{switch(e){case t.Position.Left:return[n-fr(n-r,a),o];case t.Position.Right:return[n+fr(r-n,a),o];case t.Position.Top:return[n,o-fr(o-i,a)];case t.Position.Bottom:return[n,o+fr(i-o,a)]}},pr=({sourceX:e,sourceY:n,sourcePosition:o=t.Position.Bottom,targetX:r,targetY:i,targetPosition:a=t.Position.Top,curvature:s=.25})=>{const[u,c]=gr({pos:o,x1:e,y1:n,x2:r,y2:i,c:s}),[l,d]=gr({pos:a,x1:r,y1:i,x2:e,y2:n,c:s}),[h,f,g,p]=(({sourceX:t,sourceY:e,targetX:n,targetY:o,sourceControlX:r,sourceControlY:i,targetControlX:a,targetControlY:s})=>{const u=.125,c=.375,l=t*u+r*c+a*c+n*u,d=e*u+i*c+s*c+o*u;return[l,d,Math.abs(l-t),Math.abs(d-e)]})({sourceX:e,sourceY:n,targetX:r,targetY:i,sourceControlX:u,sourceControlY:c,targetControlX:l,targetControlY:d});return[`M${e},${n} C${u},${c} ${l},${d} ${r},${i}`,h,f,g,p]},mr=n.memo((({sourceX:n,sourceY:o,targetX:r,targetY:i,sourcePosition:a=t.Position.Bottom,targetPosition:s=t.Position.Top,label:u,labelStyle:c,labelShowBg:l,labelBgStyle:d,labelBgPadding:h,labelBgBorderRadius:f,style:g,markerEnd:p,markerStart:m,pathOptions:y})=>{const[v,x,b]=pr({sourceX:n,sourceY:o,sourcePosition:a,targetX:r,targetY:i,targetPosition:s,curvature:y?.curvature});return e.jsx(ir,{path:v,labelX:x,labelY:b,label:u,labelStyle:c,labelShowBg:l,labelBgStyle:d,labelBgPadding:h,labelBgBorderRadius:f,style:g,markerEnd:p,markerStart:m})}));mr.displayName="BezierEdge";const yr=t=>t?.classList.contains("target")?"target":t?.classList.contains("source")?"source":null,vr=(t,e,n,o)=>(e[n]||[]).reduce(((e,r)=>(`${t.id}-${n}`!==o&&e.push({type:n,nodeId:t.id,x:(t.positionAbsolute?.x??0)+r.x+r.width/2,y:(t.positionAbsolute?.y??0)+r.y+r.height/2}),e)),[]),xr=({x:t,y:e},[n,o,r])=>({x:t*r+n,y:e*r+o}),br=({isAnchor:t=!1,event:e,nodeId:n,portType:o,getState:r,setState:i,onConnect:a,onEdgeUpdateEnd:s})=>{const u=(c=e.target,c.getRootNode?.()||window?.document);var c;const{domNode:l,autoPanOnConnect:d,connectionRadius:h,getNodes:f,cancelConnection:g,onConnectStart:p,onConnectEnd:m,panBy:y}=r(),v=l?.getBoundingClientRect(),{x:x,y:b}=_o(e),w=u?.elementFromPoint(x,b),_=t?o:yr(w),E=(({nodes:t,nodeId:e,portType:n})=>t.reduce(((t,o)=>{if(o[go]){const{portBounds:r}=o[go];let i=[],a=[];r&&(i=vr(o,r,"source",`${e}-${n}`),a=vr(o,r,"target",`${e}-${n}`)),t.push(...i,...a)}return t}),[]))({nodes:f(),nodeId:n,portType:o});let S=_o(e,v),N=null,M=!1,k=null,P=0,C=!1;if(!v||!o)return;const A=()=>{if(!d)return;const[t,e]=So(S,v);y({x:t,y:e}),P=requestAnimationFrame(A)};i({connectionPosition:S,connectionNodeId:n,connectionPortType:_}),p?.(e,{nodeId:n,portType:o});const $=t=>{const{transform:e}=r();S=_o(t,v),N=((t,e,n)=>{let o=null,r=1/0;return n.forEach((n=>{const i=Math.sqrt(Math.pow(n.x-t.x,2)+Math.pow(n.y-t.y,2));i<=e&&i<r&&(r=i,o=n)})),o})((({x:t,y:e},[n,o,r])=>({x:(t-n)/r,y:(e-o)/r}))(S,e),h,E),C||(A(),C=!0);const a=((t,e,n,o,r)=>{const i="target"===o,a={isValid:!1,connection:{source:null,target:null}},s=r.querySelector(`.react-diagram__port[data-id="${e?.nodeId}-${e?.type}"]`),{x:u,y:c}=_o(t),l=r.elementFromPoint(u,c),d=l?.classList.contains("react-diagram__port")?l:s;if(d){const t=yr(d),e=d.getAttribute("data-nodeid"),o={source:i?e:n,target:i?n:e};a.connection=o,(i&&"source"===t||!i&&"target"===t)&&(a.isValid=!0)}return a})(t,N,n,o,u);M=a.isValid,k=a.connection,i({connectionPosition:N&&M?xr(N,e):S})},B=t=>{M&&k&&a?.(k),m?.(t),o&&s?.(t),g(),cancelAnimationFrame(P),M=!1,k=null,C=!1,u.removeEventListener("mousemove",$),u.removeEventListener("mouseup",B),u.removeEventListener("touchmove",$),u.removeEventListener("touchend",B)};u.addEventListener("mousemove",$),u.addEventListener("mouseup",B),u.addEventListener("touchmove",$),u.addEventListener("touchend",B)},wr=(e,n,o)=>o===t.Position.Left?e-n:o===t.Position.Right?e+n:e,_r=(e,n,o)=>o===t.Position.Top?e-n:o===t.Position.Bottom?e+n:e,Er="react-diagram__edge-updater";function Sr({position:t,centerX:n,centerY:o,radius:r=10,onMouseDown:i,type:a}){return e.jsx("circle",{className:To([Er,`${Er}-${a}`]),cx:wr(n,r,t),cy:_r(o,r,t),r:r,stroke:"transparent",fill:"transparent",onMouseDown:i})}function Nr(t,e,n){return void 0===n?n:o=>{const r=e().edges.find((e=>e.id===t));r&&n(o,{...r})}}const Mr=t=>{const o=o=>{const{id:r,className:i,style:a,type:s,data:u,rfId:c,ariaLabel:l,source:d,sourcePort:h,target:f,targetPort:g,markerEnd:p,markerStart:m,label:y,labelStyle:v,labelShowBg:x,labelBgStyle:b,labelBgPadding:_,labelBgBorderRadius:E,edgeUpdaterRadius:S,sourceX:N,sourceY:M,targetX:k,targetY:P,sourcePosition:C,targetPosition:A,selected:$,elementsSelectable:B,hidden:T,isFocusable:R,onClick:I,onDoubleClick:j,onContextMenu:z,onMouseEnter:D,onMouseMove:X,onMouseLeave:Y,onEdgeUpdate:O,onEdgeUpdateStart:L,onEdgeUpdateEnd:U}=o,q={sourceX:N,sourceY:M,targetX:k,targetY:P,sourcePosition:C,targetPosition:A},V={source:d,sourcePort:h,target:f,targetPort:g};if("react-diagram__connection"===i)return document.querySelector("path")?.classList.add("react-diagram__connection-path"),e.jsx(t,{...V,...q,id:r,data:u,style:a,selected:$});const Z=w(),F=n.useRef(null),[W,H]=n.useState(!1),K=n.useMemo((()=>`url(#${Do(m,c)})`),[m,c]),G=n.useMemo((()=>`url(#${Do(p,c)})`),[p,c]);if(T)return null;const Q=t=>e=>{if(0!==e.button)return;const{edges:n}=Z.getState(),i=o[t],a=n.find((t=>t.id===r));H(!0),L?.(e,a,t);br({isAnchor:!0,event:e,nodeId:i,portType:t,getState:Z.getState,setState:Z.setState,onConnect:t=>O?.(a,t),onEdgeUpdateEnd:e=>{H(!1),U?.(e,a,t)}})},J=Nr(r,Z.getState,j),tt=Nr(r,Z.getState,z),et=Nr(r,Z.getState,D),nt=Nr(r,Z.getState,X),ot=Nr(r,Z.getState,Y),rt=To(["react-diagram__edge",`react-diagram__edge-${s}`,i,{selected:$,inactive:!B}]),it={markerStart:K,markerEnd:G},at={label:y,labelStyle:v,labelShowBg:x,labelBgStyle:b,labelBgPadding:_,labelBgBorderRadius:E},st={onClick:t=>{const{edges:e}=Z.getState();if(I){const n=e.find((t=>t.id===r));I(t,n)}},onDoubleClick:J,onContextMenu:tt,onMouseEnter:et,onMouseMove:nt,onMouseLeave:ot};return e.jsx("g",{...st,ref:F,className:rt,tabIndex:R?0:void 0,role:R?"button":void 0,"aria-label":null===l?void 0:l||`Edge from ${d} to ${f}`,"aria-describedby":R?`react-diagram__edge-desc-${c}`:void 0,children:!W&&e.jsxs(e.Fragment,{children:[e.jsx(t,{...V,...it,...at,...q,id:r,data:u,style:a,selected:$}),e.jsx(Sr,{position:C,centerX:N,centerY:M,radius:S,onMouseDown:Q("target"),type:"source"}),e.jsx(Sr,{position:A,centerX:k,centerY:P,radius:S,onMouseDown:Q("source"),type:"target"})]})})};return o.displayName="EdgeWrapper",n.memo(o)},kr=t=>{const e={default:Mr(t.straight||sr),step:Mr(t.step||hr),bezier:Mr(t.bezier||mr)},n=Object.keys(t).filter((t=>!Object.keys(e).includes(t))).reduce(((e,n)=>(e[n]=Mr(t[n]||hr),e)),{});return{...e,...n}};function Pr(e,n,o=null){const r=(o?.x||0)+n.x,i=(o?.y||0)+n.y,a=o?.width||n.width,s=o?.height||n.height;switch(e){case t.Position.Top:return{x:r+a/2,y:i};case t.Position.Right:return{x:r+a,y:i+s/2};case t.Position.Bottom:return{x:r+a/2,y:i+s};case t.Position.Left:return{x:r,y:i+s/2}}}function Cr(t,e){return t?1!==t.length&&e?e&&t.find((t=>t.id===e))||null:t[0]:null}function Ar(t){const e=t?.[go]?.portBounds||null,n=e&&t?.width&&t?.height&&void 0!==t?.positionAbsolute?.x&&void 0!==t?.positionAbsolute?.y;return[{x:t?.positionAbsolute?.x||0,y:t?.positionAbsolute?.y||0,width:t?.width||0,height:t?.height||0},e,!!n]}const $r=t=>({edges:t.edges,width:t.width,height:t.height,nodeInternals:t.nodeInternals,onError:t.onError});function Br({rfId:n,edgeTypes:o,noPanClassName:r,edgeUpdaterRadius:i,onEdgeClick:a,onEdgeDoubleClick:s,onEdgeContextMenu:u,onEdgeMouseEnter:c,onEdgeMouseMove:l,onEdgeMouseLeave:d,onEdgeUpdate:h,onEdgeUpdateStart:f,onEdgeUpdateEnd:g}){const{edges:p,width:m,height:y,nodeInternals:v}=b($r,fo);return e.jsxs("svg",{width:m||"100vw",height:y||"100vh",className:"react-diagram__edges react-diagram__container",children:[e.jsx(or,{defaultColor:"#000000",rfId:n}),e.jsx("g",{children:p.map((p=>{const{data:m,type:y,id:x,className:b,style:w,ariaLabel:_,source:E,sourcePort:S,target:N,targetPort:M,markerEnd:k,markerStart:P,label:C,labelStyle:A,labelShowBg:$,labelBgStyle:B,labelBgPadding:T,labelBgBorderRadius:R}=p,[I,j,z]=Ar(v.get(E)),[D,X,Y]=Ar(v.get(N));if(!z||!Y)return null;const O=y||"straight",L=o[O]||o.default,U=X.target,q=Cr(j.source,S),V=Cr(U,M),Z=q?.position||t.Position.Bottom,F=V?.position||t.Position.Top,W=!!p.focusable;if(!q||!V)return null;const H={id:x,className:To([b,r]),style:w,ariaLabel:_},K={source:E,sourcePort:S,target:N,targetPort:M},G={markerEnd:k,markerStart:P},Q={label:C,labelStyle:A,labelShowBg:$,labelBgStyle:B,labelBgPadding:T,labelBgBorderRadius:R},J=((t,e,n,o,r,i)=>{const a=Pr(n,t,e),s=Pr(i,o,r);return{sourceX:a.x,sourceY:a.y,targetX:s.x,targetY:s.y}})(I,q,Z,D,V,F),tt={...J,sourcePosition:Z,targetPosition:F},et={onClick:a,onDoubleClick:s,onContextMenu:u,onMouseEnter:c,onMouseMove:l,onMouseLeave:d,onEdgeUpdate:h,onEdgeUpdateStart:f,onEdgeUpdateEnd:g};return e.jsx(L,{...H,...K,...G,...Q,...tt,...et,rfId:n,type:O,data:m,isFocusable:W,edgeUpdaterRadius:i},x)}))})]})}Br.displayName="EdgeRenderer";var Tr=n.memo(Br);const Rr={[t.Position.Left]:t.Position.Right,[t.Position.Right]:t.Position.Left,[t.Position.Top]:t.Position.Bottom,[t.Position.Bottom]:t.Position.Top};function Ir({nodeId:t,portType:o,edge:r,Component:i,EdgeWrapper:a}){const{fromNode:s,toX:u,toY:c}=b(n.useCallback((e=>({fromNode:e.nodeInternals.get(t),toX:(e.connectionPosition.x-e.transform[0])/e.transform[2],toY:(e.connectionPosition.y-e.transform[1])/e.transform[2]})),[t]),fo),l=s?.[go]?.portBounds,d=l?.[o];if(!s||!d)return null;const h=d[0],f=h?h.x+h.width/2:(s.width??0)/2,g=h?h.y+h.height/2:s.height??0,p=(s.positionAbsolute?.x??0)+f,m=(s.positionAbsolute?.y??0)+g,y=h?.position,v=y?Rr[y]:null;return y&&v?i?e.jsx(i,{fromNode:s,fromPort:h,fromX:p,fromY:m,toX:u,toY:c,fromPosition:y,toPosition:v}):e.jsx(a,{id:r.id,className:"react-diagram__connection",type:r.type||"default",source:r.source,target:r.target,isFocusable:!1,sourceX:p,sourceY:m,targetX:u,targetY:c,sourcePosition:y,targetPosition:v}):null}Ir.displayName="ConnectionPath";const jr=t=>({edges:t.edges,nodeId:t.connectionNodeId,portType:t.connectionPortType});function zr({containerStyle:t,edgeTypes:n,component:o}){const{nodeId:r,portType:i,edges:a}=b(jr,fo);if(!!(!r||!i))return null;const s=a.find((t=>t[i]===r));if(!s)return null;const u=s?.type?n[s.type]:n.default;return e.jsx("svg",{style:t,className:"react-diagram__container react-diagram__connection-line",children:e.jsx("g",{className:"react-diagram__connection",children:e.jsx(Ir,{nodeId:r,portType:i,edge:s,Component:o,EdgeWrapper:u})})})}function Dr({rfId:t,noPanClassName:n,panning:o,defaultViewport:r,multiSelectionKeyCode:i,onMove:a,onMoveStart:s,onMoveEnd:u,onlyRenderVisibleElements:c,disableKeyboardA11y:l,noDragClassName:d,nodeOrigin:h,nodeTypes:f,onNodeClick:g,onNodeDoubleClick:p,onNodeContextMenu:m,onNodeMouseEnter:y,onNodeMouseMove:v,onNodeMouseLeave:x,edgeTypes:b,edgeUpdaterRadius:w,onEdgeClick:_,onEdgeDoubleClick:E,onEdgeContextMenu:S,onEdgeMouseEnter:N,onEdgeMouseMove:M,onEdgeMouseLeave:k,onEdgeUpdate:P,onEdgeUpdateStart:C,onEdgeUpdateEnd:A,ConnectionLineContainerStyle:$,ConnectionLineComponent:B}){return e.jsxs(Ko,{multiSelectionKeyCode:i,noPanClassName:n,panning:o,defaultViewport:r,onMove:a,onMoveStart:s,onMoveEnd:u,children:[e.jsx(Jo,{rfId:t,nodeTypes:f,onlyRenderVisibleElements:c,disableKeyboardA11y:l,nodeOrigin:h,noDragClassName:d,noPanClassName:n,onNodeClick:g,onNodeDoubleClick:p,onNodeContextMenu:m,onNodeMouseEnter:y,onNodeMouseMove:v,onNodeMouseLeave:x}),e.jsx(Tr,{rfId:t,edgeTypes:b,noPanClassName:n,edgeUpdaterRadius:w,onEdgeClick:_,onEdgeDoubleClick:E,onEdgeContextMenu:S,onEdgeMouseEnter:N,onEdgeMouseMove:M,onEdgeMouseLeave:k,onEdgeUpdate:P,onEdgeUpdateStart:C,onEdgeUpdateEnd:A}),e.jsx(zr,{edgeTypes:b,containerStyle:$,component:B})]})}Dr.displayName="DiagramView";var Xr=n.memo(Dr);const Yr=t=>{const{setNodes:e,setEdges:n,setNodeExtent:o,setTranslateExtent:r,setMinZoom:i,setMaxZoom:a}=t;return{setNodes:e,setEdges:n,setNodeExtent:o,setTranslateExtent:r,setMinZoom:i,setMaxZoom:a}};function Or(t,e){n.useEffect((()=>{void 0!==t&&e(t)}),[t])}function Lr(t,e,o){n.useEffect((()=>{void 0!==e&&o({[t]:e})}),[e])}const Ur=({nodes:t,onNodesChange:e,onNodeDrag:n,onNodeDragStart:o,onNodeDragEnd:r,edges:i,onEdgesChange:a,gridStep:s,elevateNodesOnSelect:u,nodesDraggable:c,autoPanOnNodeDrag:l,autoPanOnConnect:d,connectionRadius:h,onConnect:f,onConnectStart:g,onConnectEnd:p,onError:m,nodeExtent:y,translateExtent:x,minZoom:_,maxZoom:E})=>{const{setNodes:S,setEdges:N,setNodeExtent:M,setTranslateExtent:k,setMinZoom:P,setMaxZoom:C}=b(Yr,fo),A=w();return Lr("gridStep",s,A.setState),Or(t,S),Or(i,N),Or(y,M),Or(x,k),Or(_,P),Or(E,C),Lr("elevateNodesOnSelect",u,A.setState),Lr("nodesDraggable",c,A.setState),Lr("autoPanOnNodeDrag",l,A.setState),Lr("autoPanOnConnect",d,A.setState),Lr("connectionRadius",h,A.setState),Lr("onNodesChange",e,A.setState),Lr("onNodeDrag",n,A.setState),Lr("onNodeDragStart",o,A.setState),Lr("onNodeDragEnd",r,A.setState),Lr("onEdgesChange",a,A.setState),Lr("onConnect",f,A.setState),Lr("onConnectStart",g,A.setState),Lr("onConnectEnd",p,A.setState),Lr("onError",(t=>(e,n="")=>t?.(e,v[e](n)))(m),A.setState),null};function qr(t,e){n.useRef(null);return n.useMemo((()=>e(t)),[t])}const Vr=n.createContext(null),Zr=Vr.Provider;Vr.Consumer;function Fr({type:t,position:o}){const r=w(),i=n.useContext(Vr);if(!i)return null;const a=t=>{const{defaultEdgeOptions:e,onConnect:n}=r.getState(),o={...e,...t};n?.(o)},s=e=>{const n=wo(e);(n&&0===e.button||!n)&&br({event:e,nodeId:i,portType:t,getState:r.getState,setState:r.setState,onConnect:a})};return e.jsx("div",{"data-nodeid":i,"data-id":`${i}-${t}`,"data-port-position":o,className:`react-diagram__port react-diagram__port-${o} ${t} nodrag`,onMouseDown:s,onTouchStart:s})}Fr.displayName="Port";var Wr=n.memo(Fr);function Hr({data:n}){return e.jsxs(e.Fragment,{children:[e.jsx(Wr,{type:"target",position:t.Position.Top}),n.label,e.jsx(Wr,{type:"source",position:t.Position.Bottom})]})}const Kr=(t,e,n,o)=>{const r=e.querySelectorAll(t);if(!r||!r.length)return null;const i=Array.from(r),a=e.getBoundingClientRect(),s=a.width*o[0],u=a.height*o[1];return i.map((t=>{const e=t.getBoundingClientRect();return{id:t.getAttribute("data-portid"),position:t.dataset.portPosition,x:(e.left-a.left-s)/n,y:(e.top-a.top-u)/n,...mo(t)}}))};function Gr(t,e,n){return void 0===n?n:o=>{const r=e().nodeInternals.get(t);n(o,{...r})}}function Qr({id:t,store:e,isSelectable:n,unselect:o=!1,nodeRef:r}){if(!n)return;const{addSelectedNodes:i,unselectNodes:a,multiSelectionActive:s,nodeInternals:u}=e.getState(),c=u.get(t);e.setState({nodesSelectionActive:!1}),c.selected?(o||c.selected&&s)&&(a({nodes:[c]}),requestAnimationFrame((()=>r?.current?.blur()))):i([t])}function Jr(t,e){if(!t.parentNode)return!1;const n=e.get(t.parentNode);return!!n&&(!!n.selected||Jr(n,e))}function ti(t,e,n,o){return Array.from(t.values()).filter((n=>(n.selected||n.id===o)&&(!n.parentNode||!Jr(n,t))&&(n.draggable||e&&void 0===n.draggable))).map((t=>({id:t.id,position:t.position||{x:0,y:0},positionAbsolute:t.positionAbsolute||{x:0,y:0},distance:{x:n.x-(t.positionAbsolute?.x??0),y:n.y-(t.positionAbsolute?.y??0)},delta:{x:0,y:0},extent:t.extent,parentNode:t.parentNode,width:t.width,height:t.height})))}function ei({nodeId:t,dragItems:e,nodeInternals:n}){const o=e.map((t=>({...n.get(t.id),position:t.position,positionAbsolute:t.positionAbsolute})));return[t?o.find((e=>e.id===t)):o[0],o]}function ni({nodeRef:t,nodeId:e,isSelectable:o,noDragClassName:r}){const i=w(),a=n.useRef([]),s=n.useRef(null),u=n.useRef({x:0,y:0}),c=n.useRef({x:null,y:null}),l=n.useRef(null),d=n.useRef(!1),h=n.useRef(0),[f,g]=n.useState(!1),p=function(){const t=w(),e=n.useCallback((({sourceEvent:e})=>{const{transform:n,gridStep:o}=t.getState(),r=e.touches?e.touches[0].clientX:e.clientX,i=e.touches?e.touches[0].clientY:e.clientY,a={x:(r-n[0])/n[2],y:(i-n[1])/n[2]};return{xSnapped:o?o[0]*Math.round(a.x/o[0]):a.x,ySnapped:o?o[1]*Math.round(a.y/o[1]):a.y,...a}}),[]);return e}();return n.useEffect((()=>{if(t?.current){const n=Xt(t.current),f=({x:t,y:n})=>{const{nodeInternals:o,onNodeDrag:r,updateNodePositions:s,nodeExtent:u,nodeOrigin:d,gridStep:h,onError:f}=i.getState();c.current={x:t,y:n};let p=!1;if(a.current=a.current.map((e=>{const r={x:t-e.distance.x,y:n-e.distance.y};h&&(r.x=h[0]*Math.round(r.x/h[0]),r.y=h[1]*Math.round(r.y/h[1]));const i=function(t,e,n,o,r=[0,0],i){let a=t.extent||o;if("parent"===t.extent)if(t.parentNode&&t.width&&t.height){const e=n.get(t.parentNode),{x:o,y:i}=jo(e,r).positionAbsolute;a=e&&po(o)&&po(i)&&po(e.width)&&po(e.height)?[[o+t.width*r[0],i+t.height*r[1]],[o+e.width-t.width+t.width*r[0],i+e.height-t.height+t.height*r[1]]]:a}else i?.("011"),a=o;else if(t.extent&&t.parentNode){const e=n.get(t.parentNode),{x:o,y:i}=jo(e,r).positionAbsolute;a=[[t.extent[0][0]+o,t.extent[0][1]+i],[t.extent[1][0]+o,t.extent[1][1]+i]]}let s={x:0,y:0};if(t.parentNode){const e=n.get(t.parentNode);s=jo(e,r).positionAbsolute}const u=a?vo(e,a):e;return{position:{x:u.x-s.x,y:u.y-s.y},positionAbsolute:u}}(e,r,o,u,d,f);return p=p||e.position.x!==i.position.x||e.position.y!==i.position.y,e.position=i.position,e.positionAbsolute=i.positionAbsolute,e})),p&&(s(a.current,!0,!0),g(!0),r&&l.current)){const[t,n]=ei({nodeId:e,dragItems:a.current,nodeInternals:o});r(l.current,t,n)}},m=()=>{if(!s.current)return;const[t,e]=So(u.current,s.current);if(0!==t||0!==e){const{transform:n,panBy:o}=i.getState();c.current.x=(c.current.x??0)-t/n[2],c.current.y=(c.current.y??0)-e/n[2],f(c.current),o({x:t,y:e})}h.current=requestAnimationFrame(m)},y=function(){var t,e,n,o,r=Ht,i=Kt,a=Gt,s=Qt,u={},c=E("start","drag","end"),l=0,d=0;function h(t){t.on("mousedown.drag",f).filter(s).on("touchstart.drag",m).on("touchmove.drag",y,Ot).on("touchend.drag touchcancel.drag",v).style("touch-action","none").style("-webkit-tap-highlight-color","rgba(0,0,0,0)")}function f(a,s){if(!o&&r.call(this,a,s)){var u=x(this,i.call(this,a,s),a,s,"mouse");u&&(Xt(a.view).on("mousemove.drag",g,Lt).on("mouseup.drag",p,Lt),Vt(a.view),Ut(a),n=!1,t=a.clientX,e=a.clientY,u("start",a))}}function g(o){if(qt(o),!n){var r=o.clientX-t,i=o.clientY-e;n=r*r+i*i>d}u.mouse("drag",o)}function p(t){Xt(t.view).on("mousemove.drag mouseup.drag",null),Zt(t.view,n),qt(t),u.mouse("end",t)}function m(t,e){if(r.call(this,t,e)){var n,o,a=t.changedTouches,s=i.call(this,t,e),u=a.length;for(n=0;n<u;++n)(o=x(this,s,t,e,a[n].identifier,a[n]))&&(Ut(t),o("start",t,a[n]))}}function y(t){var e,n,o=t.changedTouches,r=o.length;for(e=0;e<r;++e)(n=u[o[e].identifier])&&(qt(t),n("drag",t,o[e]))}function v(t){var e,n,r=t.changedTouches,i=r.length;for(o&&clearTimeout(o),o=setTimeout((function(){o=null}),500),e=0;e<i;++e)(n=u[r[e].identifier])&&(Ut(t),n("end",t,r[e]))}function x(t,e,n,o,r,i){var s,d,f,g=c.copy(),p=Yt(i||n,e);if(null!=(f=a.call(t,new Wt("beforestart",{sourceEvent:n,target:h,identifier:r,active:l,x:p[0],y:p[1],dx:0,dy:0,dispatch:g}),o)))return s=f.x-p[0]||0,d=f.y-p[1]||0,function n(i,a,c){var m,y=p;switch(i){case"start":u[r]=n,m=l++;break;case"end":delete u[r],--l;case"drag":p=Yt(c||a,e),m=l}g.call(i,t,new Wt(i,{sourceEvent:a,subject:f,target:h,identifier:r,active:m,x:p[0]+s,y:p[1]+d,dx:p[0]-y[0],dy:p[1]-y[1],dispatch:g}),o)}}return h.filter=function(t){return arguments.length?(r="function"==typeof t?t:Ft(!!t),h):r},h.container=function(t){return arguments.length?(i="function"==typeof t?t:Ft(t),h):i},h.subject=function(t){return arguments.length?(a="function"==typeof t?t:Ft(t),h):a},h.touchable=function(t){return arguments.length?(s="function"==typeof t?t:Ft(!!t),h):s},h.on=function(){var t=c.on.apply(c,arguments);return t===c?h:t},h.clickDistance=function(t){return arguments.length?(d=(t=+t)*t,h):Math.sqrt(d)},h}().on("start",(n=>{if(1!==n.sourceEvent.which)return;const{nodeInternals:r,nodesDraggable:c,domNode:l,onNodeDragStart:d}=i.getState();e&&Qr({id:e,store:i,nodeRef:t,isSelectable:o});const h=p(n);if(a.current=ti(r,c,h,e),d&&a.current){const[t,o]=ei({nodeId:e,dragItems:a.current,nodeInternals:r});d(n.sourceEvent,t,o)}s.current=l?.getBoundingClientRect()||null,u.current=_o(n.sourceEvent,s.current)})).on("drag",(t=>{const e=p(t),{autoPanOnNodeDrag:n}=i.getState();!d.current&&n&&(d.current=!0,m()),c.current.x===e.xSnapped&&c.current.y===e.ySnapped||!a.current||(l.current=t.sourceEvent,u.current=_o(t.sourceEvent,s.current),f(e))})).on("end",(t=>{if(g(!1),d.current=!1,cancelAnimationFrame(h.current),a.current){const{nodeInternals:n,updateNodePositions:o,onNodeDragEnd:r}=i.getState();if(o(a.current,!1,!1),r){const[o,i]=ei({nodeId:e,dragItems:a.current,nodeInternals:n});r(t.sourceEvent,o,i)}}})).filter((e=>{const n=e.target,o=!e.button&&!r||!function(t,e,n){let o=t;do{if(o?.matches(e))return!0;if(o===n.current)return!1;o=o.parentElement}while(o);return!1}(n,`.${r}`,t);return o}));return n.call(y),()=>{n.on(".drag",null)}}}),[i,t,e,o,r]),f}const oi=t=>{function o({id:o,type:r,data:i,positionX:a,positionY:s,sourcePosition:u,targetPosition:c,onClick:l,onMouseEnter:d,onMouseMove:h,onMouseLeave:f,onContextMenu:g,onDoubleClick:p,style:m,className:y,selected:v,isSelectable:x,isDraggable:b,hidden:_,resizeObserver:E,dragHandle:S,zIndex:N,isParent:M,initialized:k,disableKeyboardA11y:P,ariaLabel:C,rfId:A,noDragClassName:$,noPanClassName:B}){const T=w(),R=n.useRef(null),I=n.useRef(u),j=n.useRef(c),z=n.useRef(r),D=b||l||d||h||f;n.useEffect((()=>{if(R.current&&!_){const t=R.current;return E?.observe(t),()=>E?.unobserve(t)}}),[_]),n.useEffect((()=>{const t=z.current!==r,e=I.current!==u,n=j.current!==c;R.current&&(t||e||n)&&(t&&(z.current=r),e&&(I.current=u),n&&(j.current=c),T.getState().updateNodeDimensions([{id:o,nodeElement:R.current,forceUpdate:!0}]))}),[o,r,u,c]);const X=ni({nodeRef:R,nodeId:o,isSelectable:x,noDragClassName:$});if(_)return null;const Y=To(["react-diagram__node",`react-diagram__node-${r}`,{[B]:b},y,{selected:v,parent:M,dragging:X}]),O={zIndex:N,transform:`translate(${a}px,${s}px)`,pointerEvents:D?"all":"none",visibility:k?"visible":"hidden",...m},L={onClick:t=>{if(b||Qr({id:o,store:T,nodeRef:R}),l){const e=T.getState().nodeInternals.get(o);l(t,{...e})}},onDoubleClick:Gr(o,T.getState,p),onContextMenu:Gr(o,T.getState,g),onMouseEnter:Gr(o,T.getState,d),onMouseMove:Gr(o,T.getState,h),onMouseLeave:Gr(o,T.getState,f)},U={positionX:a,positionY:s,sourcePosition:u,targetPosition:c};return e.jsx("div",{...L,ref:R,className:Y,style:O,"data-id":o,tabIndex:0,role:"button","aria-describedby":P?void 0:`react-diagram__node-desc-${A}`,"aria-label":C,children:e.jsx(Zr,{value:o,children:e.jsx(t,{...U,id:o,zIndex:N,type:r,data:i,dragHandle:S})})})}return o.displayName="NodeWrapper",n.memo(o)},ri=t=>{const e={default:oi(t.default||Hr)},n=Object.keys(t).filter((t=>!Object.keys(e).includes(t))).reduce(((e,n)=>(e[n]=oi(t[n]||Hr),e)),{});return{...e,...n}};function ii(t,e,n,o){if(!t.parentNode)return n;const r=e.get(t.parentNode),i=jo(r,o);return ii(r,e,{x:(n.x??0)+i.x,y:(n.y??0)+i.y,z:(r[go]?.z??0)>(n.z??0)?r[go]?.z??0:n.z??0},o)}function ai(t,e,n){t.forEach((o=>{if(o.parentNode&&!t.has(o.parentNode))throw new Error(`Parent node ${o.parentNode} not found`);if(o.parentNode||n?.[o.id]){const{x:r,y:i,z:a}=ii(o,t,{...o.position,z:o[go]?.z??0},e);o.positionAbsolute={x:r,y:i},o[go].z=a,n?.[o.id]&&(o[go].isParent=!0)}}))}function si(t,e,n,o){const r=new Map,i={},a=o?1e3:0;return t.forEach((t=>{const n=(po(t.zIndex)?t.zIndex:0)+(t.selected?a:0),o=e.get(t.id),s={width:o?.width,height:o?.height,...t,positionAbsolute:{x:t.position.x,y:t.position.y}};t.parentNode&&(s.parentNode=t.parentNode,i[t.parentNode]=!0),Object.defineProperty(s,go,{enumerable:!1,value:{portBounds:o?.[go]?.portBounds,z:n}}),r.set(t.id,s)})),ai(r,n,i),r}function ui({changedNodes:t,get:e}){const{onNodesChange:n}=e();t?.length&&n?.(t)}const ci=[[Number.NEGATIVE_INFINITY,Number.NEGATIVE_INFINITY],[Number.POSITIVE_INFINITY,Number.POSITIVE_INFINITY]],li={rfId:"1",width:0,height:0,transform:[0,0,1],nodeInternals:new Map,edges:[],elementsSelectable:!0,onNodesChange:null,domNode:null,nodeOrigin:[0,0],gridStep:void 0,nodesSelectionActive:!1,elevateNodesOnSelect:!0,nodesDraggable:!0,multiSelectionActive:!1,d3Zoom:null,d3Selection:null,minZoom:.5,maxZoom:2,connectionPosition:{x:0,y:0},connectionNodeId:null,connectionPortType:"source",autoPanOnNodeDrag:!0,autoPanOnConnect:!0,nodeExtent:ci,translateExtent:ci,connectionRadius:20,onError:(t,e="")=>{}},di=()=>{return t=(t,e)=>({...li,setNodes:n=>{const{nodeInternals:o,nodeOrigin:r,elevateNodesOnSelect:i}=e();t({nodeInternals:si(n,o,r,i)})},getNodes:()=>Array.from(e().nodeInternals.values()),setEdges:n=>{const{defaultEdgeOptions:o={}}=e();t({edges:n.map((t=>({...o,...t})))})},updateNodeDimensions:n=>{const{onNodesChange:o,nodeInternals:r,domNode:i,nodeOrigin:a}=e(),s=i?.querySelector(".react-diagram__viewport");if(!s)return;const u=window.getComputedStyle(s),{m22:c}=new window.DOMMatrixReadOnly(u.transform),l=n.reduce(((t,e)=>{const n=r.get(e.id);if(n){const o=mo(e.nodeElement);o.width&&o.height&&(n.width!==o.width||n.height!==o.height||e.forceUpdate)&&(r.set(n.id,{...n,[go]:{...n[go],portBounds:{source:Kr(".source",e.nodeElement,c,a),target:Kr(".target",e.nodeElement,c,a)}},...o}),t.push({id:n.id,type:"dimensions",dimensions:o}))}return t}),[]);ai(r,a),t({nodeInternals:new Map(r)}),l?.length>0&&o?.(l)},updateNodePositions:(t,n=!0,o=!1)=>{const{triggerNodeChanges:r}=e();r(t.map((t=>{const e={id:t.id,type:"position",dragging:o};return n&&(e.positionAbsolute=t.positionAbsolute,e.position=t.position),e})))},triggerNodeChanges:t=>{const{onNodesChange:n}=e();t?.length&&n?.(t)},addSelectedNodes:n=>{const{multiSelectionActive:o,getNodes:r}=e();let i;i=o?n.map((t=>Uo(t,!0))):qo(r(),n),ui({changedNodes:i,get:e,set:t})},unselectNodes:({nodes:n}={})=>{const{getNodes:o}=e();ui({changedNodes:(n||o()).map((t=>(t.selected=!1,Uo(t.id,!1)))),get:e,set:t})},resetSelectedElements:()=>{const{getNodes:n}=e();ui({changedNodes:n().filter((t=>t.selected)).map((t=>Uo(t.id,!1))),get:e,set:t})},cancelConnection:()=>t({connectionNodeId:li.connectionNodeId,connectionPortType:li.connectionPortType}),panBy:t=>{const{transform:n,width:o,height:r,d3Zoom:i,d3Selection:a}=e();if(!i||!a||!t.x&&!t.y)return;const s=oo.translate(n[0]+t.x,n[1]+t.y).scale(n[2]),u=[[0,0],[o,r]],c=i?.constrain()(s,u,ci);i.transform(a,c)},setNodeExtent:n=>{const{nodeInternals:o}=e();o.forEach((t=>{t.positionAbsolute=vo(t.position,n)})),t({nodeExtent:n,nodeInternals:new Map(o)})},setTranslateExtent:n=>{e().d3Zoom?.translateExtent(n),t({translateExtent:n})},setMinZoom:n=>{const{d3Zoom:o,maxZoom:r}=e();o?.scaleExtent([n,r]),t({minZoom:n})},setMaxZoom:n=>{const{d3Zoom:o,minZoom:r}=e();o?.scaleExtent([r,n]),t({maxZoom:n})}}),t?o(t):o;var t},hi=({children:t})=>{const o=n.useRef(null);return o.current||(o.current=di()),e.jsx(y,{value:o.current,children:t})};function fi({children:t}){return n.useContext(m)?e.jsx(e.Fragment,{children:t}):e.jsx(hi,{children:t})}hi.displayName="ReactDiagramProvider",fi.displayName="ReactDiagramWrapper";const gi={x:0,y:0,zoom:1},pi=[0,0],mi={default:Hr},yi={step:hr},vi=n.forwardRef((({id:t,panning:n=!0,minZoom:o,maxZoom:r,translateExtent:i,nodeExtent:a,defaultViewport:s=gi,multiSelectionKeyCode:u,onlyRenderVisibleElements:c=!1,disableKeyboardA11y:l=!1,noDragClassName:d="nodrag",noPanClassName:h="nopan",nodeOrigin:f=pi,nodeTypes:g=mi,onNodeClick:p,onNodeDoubleClick:m,onNodeContextMenu:y,onNodeMouseEnter:v,onNodeMouseMove:x,onNodeMouseLeave:b,edgeTypes:w=yi,edgeUpdaterRadius:_,onEdgeClick:E,onEdgeDoubleClick:S,onEdgeContextMenu:N,onEdgeMouseEnter:M,onEdgeMouseMove:k,onEdgeMouseLeave:P,onEdgeUpdate:C,onEdgeUpdateStart:A,onEdgeUpdateEnd:$,onMove:B,onMoveStart:T,onMoveEnd:R,ConnectionLineContainerStyle:I,ConnectionLineComponent:j,nodes:z,edges:D,nodesDraggable:X,elevateNodesOnSelect:Y,autoPanOnNodeDrag:O,autoPanOnConnect:L,connectionRadius:U,onNodesChange:q,onNodeDrag:V,onNodeDragStart:Z,onNodeDragEnd:F,onEdgesChange:W,onConnect:H,onConnectStart:K,onConnectEnd:G,onError:Q},J)=>{const tt=t||"1",et=qr(g,ri),nt=qr(w,kr);return e.jsx("div",{ref:J,className:"react-diagram",children:e.jsxs(fi,{children:[e.jsx(Xr,{rfId:tt,panning:n,defaultViewport:s,multiSelectionKeyCode:u,onlyRenderVisibleElements:c,disableKeyboardA11y:l,noDragClassName:d,noPanClassName:h,nodeOrigin:f,nodeTypes:et,edgeTypes:nt,edgeUpdaterRadius:_,ConnectionLineContainerStyle:I,ConnectionLineComponent:j,onNodeClick:p,onNodeDoubleClick:m,onNodeContextMenu:y,onNodeMouseEnter:v,onNodeMouseMove:x,onNodeMouseLeave:b,onEdgeClick:E,onEdgeDoubleClick:S,onEdgeContextMenu:N,onEdgeMouseEnter:M,onEdgeMouseMove:k,onEdgeMouseLeave:P,onEdgeUpdate:C,onEdgeUpdateStart:A,onEdgeUpdateEnd:$,onMove:B,onMoveStart:T,onMoveEnd:R}),e.jsx(Ur,{rfId:tt,nodes:z,edges:D,nodesDraggable:X,elevateNodesOnSelect:Y,autoPanOnNodeDrag:O,autoPanOnConnect:L,connectionRadius:U,nodeExtent:a,translateExtent:i,minZoom:o,maxZoom:r,onNodesChange:q,onNodeDrag:V,onNodeDragStart:Z,onNodeDragEnd:F,onEdgesChange:W,onConnect:H,onConnectStart:K,onConnectEnd:G,onError:Q})]})})}));function xi(t){return e=>{const[o,r]=n.useState(e),i=n.useCallback((e=>r((n=>t(e,n)))),[]);return[o,r,i]}}vi.displayName="ReactDiagram";const bi=xi((function(t,e){return Lo(t,e)})),wi=xi((function(t,e){return Lo(t,e)}));t.BaseEdge=ir,t.BezierEdge=mr,t.Port=Wr,t.ReactDiagramProvider=hi,t.StepEdge=hr,t.addEdge=(t,e)=>{if(!Io(t))return e;if(((t,e)=>e.some((e=>e.source===t.source&&e.target===t.target)))(t,e))return e;let n;return n=t.id?{...t}:{...t,id:Xo(t)},e.concat(n)},t.boxToRect=bo,t.clamp=yo,t.default=vi,t.getBezierPath=pr,t.getStepPath=dr,t.internalsSymbol=go,t.isEdge=Io,t.isNode=t=>"id"in t&&!("source"in t)&&!("target"in t),t.rectToBox=xo,t.updateEdge=(t,e,n,o={shouldReplaceId:!0})=>{const{id:r,...i}=t;!e.source||e.target,n.find((t=>t.id===r));const a={...i,id:o.shouldReplaceId?Xo(e):r,source:e.source,target:e.target};return n.filter((t=>t.id!==r)).concat(a)},t.useEdgesState=wi,t.useNodesState=bi,Object.defineProperty(t,"__esModule",{value:!0})}));
@@ -1 +1 @@
1
- {"version":3,"file":"initialState.d.ts","sourceRoot":"","sources":["../react-diagram/packages/src/store/initialState.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAC5C,OAAO,EAAE,iBAAiB,EAAE,MAAM,yCAAyC,CAAC;AAE5E,eAAO,MAAM,cAAc,EAAE,gBAG5B,CAAC;AAEF,QAAA,MAAM,YAAY,EAAE,iBAiCnB,CAAC;AAEF,eAAe,YAAY,CAAC"}
1
+ {"version":3,"file":"initialState.d.ts","sourceRoot":"","sources":["../react-diagram/packages/src/store/initialState.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAC5C,OAAO,EAAE,iBAAiB,EAAE,MAAM,yCAAyC,CAAC;AAE5E,eAAO,MAAM,cAAc,EAAE,gBAG5B,CAAC;AAEF,QAAA,MAAM,YAAY,EAAE,iBAmCnB,CAAC;AAEF,eAAe,YAAY,CAAC"}
@@ -1,5 +1,5 @@
1
- import type { HTMLAttributes, MouseEvent as ReactMouseEvent } from 'react';
2
- import { CoordinateExtent, GridStep, Viewport, Node, Edge, OnNodesChange, OnEdgesChange, OnConnect, OnConnectStart, OnConnectEnd, OnMove, OnError } from '.';
1
+ import type { CSSProperties, HTMLAttributes, MouseEvent as ReactMouseEvent } from 'react';
2
+ import { CoordinateExtent, GridStep, Viewport, Node, Edge, OnNodesChange, OnEdgesChange, OnConnect, OnConnectStart, OnConnectEnd, OnMove, OnError, ConnectionLineComponent } from '.';
3
3
  import { NodeDragHandler } from '../hooks/useDrag/type';
4
4
  import { KeyCode } from '../hooks/useGlobalKeyHandler';
5
5
  import { NodeOrigin } from '../components/Node/utils';
@@ -19,6 +19,10 @@ export type ReactDiagramProps = HTMLAttributes<HTMLDivElement> & {
19
19
  nodeTypes?: NodeTypes;
20
20
  edges?: Edge[];
21
21
  edgeTypes?: EdgeTypes;
22
+ edgeUpdaterRadius?: number;
23
+ ConnectionLineContainerStyle?: CSSProperties;
24
+ ConnectionLineComponent?: ConnectionLineComponent;
25
+ connectionRadius?: number;
22
26
  onNodesChange?: OnNodesChange;
23
27
  onNodeClick?: NodeMouseHandler;
24
28
  onNodeDoubleClick?: NodeMouseHandler;
@@ -1 +1 @@
1
- {"version":3,"file":"core.d.ts","sourceRoot":"","sources":["../react-diagram/packages/src/types/core.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,UAAU,IAAI,eAAe,EAAE,MAAM,OAAO,CAAC;AAE3E,OAAO,EACJ,gBAAgB,EAChB,QAAQ,EACR,QAAQ,EACR,IAAI,EACJ,IAAI,EACJ,aAAa,EACb,aAAa,EACb,SAAS,EACT,cAAc,EACd,YAAY,EACZ,MAAM,EACN,OAAO,EACT,MAAM,GAAG,CAAC;AAEX,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,OAAO,EAAE,MAAM,8BAA8B,CAAC;AACvD,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AACtD,OAAO,EAAE,gBAAgB,EAAE,MAAM,qCAAqC,CAAC;AACvE,OAAO,EAAE,SAAS,EAAE,MAAM,gCAAgC,CAAC;AAC3D,OAAO,EACJ,gBAAgB,EAChB,gBAAgB,EAClB,MAAM,sCAAsC,CAAC;AAC9C,OAAO,EAAE,SAAS,EAAE,MAAM,gCAAgC,CAAC;AAC3D,OAAO,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AAEnD,MAAM,MAAM,iBAAiB,GAAG,cAAc,CAAC,cAAc,CAAC,GAAG;IAC9D,yBAAyB,CAAC,EAAE,OAAO,CAAC;IACpC,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAE9B,UAAU,CAAC,EAAE,gBAAgB,CAAC;IAC9B,UAAU,CAAC,EAAE,UAAU,CAAC;IACxB,QAAQ,CAAC,EAAE,QAAQ,CAAC;IAEpB,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAE/B,KAAK,CAAC,EAAE,IAAI,EAAE,CAAC;IACf,SAAS,CAAC,EAAE,SAAS,CAAC;IAEtB,KAAK,CAAC,EAAE,IAAI,EAAE,CAAC;IACf,SAAS,CAAC,EAAE,SAAS,CAAC;IAEtB,aAAa,CAAC,EAAE,aAAa,CAAC;IAC9B,WAAW,CAAC,EAAE,gBAAgB,CAAC;IAC/B,iBAAiB,CAAC,EAAE,gBAAgB,CAAC;IACrC,iBAAiB,CAAC,EAAE,gBAAgB,CAAC;IACrC,gBAAgB,CAAC,EAAE,gBAAgB,CAAC;IACpC,eAAe,CAAC,EAAE,gBAAgB,CAAC;IACnC,gBAAgB,CAAC,EAAE,gBAAgB,CAAC;IACpC,eAAe,CAAC,EAAE,eAAe,CAAC;IAClC,UAAU,CAAC,EAAE,eAAe,CAAC;IAC7B,aAAa,CAAC,EAAE,eAAe,CAAC;IAEhC,aAAa,CAAC,EAAE,aAAa,CAAC;IAC9B,WAAW,CAAC,EAAE,CAAC,KAAK,EAAE,eAAe,EAAE,IAAI,EAAE,IAAI,KAAK,IAAI,CAAC;IAC3D,iBAAiB,CAAC,EAAE,gBAAgB,CAAC;IACrC,iBAAiB,CAAC,EAAE,gBAAgB,CAAC;IACrC,gBAAgB,CAAC,EAAE,gBAAgB,CAAC;IACpC,eAAe,CAAC,EAAE,gBAAgB,CAAC;IACnC,gBAAgB,CAAC,EAAE,gBAAgB,CAAC;IAEpC,YAAY,CAAC,EAAE,gBAAgB,CAAC;IAChC,iBAAiB,CAAC,EAAE,CACjB,KAAK,EAAE,eAAe,EACtB,IAAI,EAAE,IAAI,EACV,QAAQ,EAAE,QAAQ,KAChB,IAAI,CAAC;IACV,eAAe,CAAC,EAAE,CACf,KAAK,EAAE,UAAU,GAAG,UAAU,EAC9B,IAAI,EAAE,IAAI,EACV,QAAQ,EAAE,QAAQ,KAChB,IAAI,CAAC;IAEV,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB,cAAc,CAAC,EAAE,cAAc,CAAC;IAChC,YAAY,CAAC,EAAE,YAAY,CAAC;IAE5B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB,OAAO,CAAC,EAAE,OAAO,CAAC;IAElB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,eAAe,CAAC,EAAE,QAAQ,CAAC;IAC3B,eAAe,CAAC,EAAE,gBAAgB,CAAC;IAEnC,qBAAqB,CAAC,EAAE,OAAO,CAAC;IAEhC,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,gBAAgB,CAAC,EAAE,OAAO,CAAC;CAC7B,CAAC;AAEF,MAAM,MAAM,mBAAmB,GAAG,cAAc,CAAC"}
1
+ {"version":3,"file":"core.d.ts","sourceRoot":"","sources":["../react-diagram/packages/src/types/core.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACT,aAAa,EACb,cAAc,EACd,UAAU,IAAI,eAAe,EAC/B,MAAM,OAAO,CAAC;AAEf,OAAO,EACJ,gBAAgB,EAChB,QAAQ,EACR,QAAQ,EACR,IAAI,EACJ,IAAI,EACJ,aAAa,EACb,aAAa,EACb,SAAS,EACT,cAAc,EACd,YAAY,EACZ,MAAM,EACN,OAAO,EACP,uBAAuB,EACzB,MAAM,GAAG,CAAC;AAEX,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,OAAO,EAAE,MAAM,8BAA8B,CAAC;AACvD,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AACtD,OAAO,EAAE,gBAAgB,EAAE,MAAM,qCAAqC,CAAC;AACvE,OAAO,EAAE,SAAS,EAAE,MAAM,gCAAgC,CAAC;AAC3D,OAAO,EACJ,gBAAgB,EAChB,gBAAgB,EAClB,MAAM,sCAAsC,CAAC;AAC9C,OAAO,EAAE,SAAS,EAAE,MAAM,gCAAgC,CAAC;AAC3D,OAAO,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AAEnD,MAAM,MAAM,iBAAiB,GAAG,cAAc,CAAC,cAAc,CAAC,GAAG;IAC9D,yBAAyB,CAAC,EAAE,OAAO,CAAC;IACpC,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAE9B,UAAU,CAAC,EAAE,gBAAgB,CAAC;IAC9B,UAAU,CAAC,EAAE,UAAU,CAAC;IACxB,QAAQ,CAAC,EAAE,QAAQ,CAAC;IAEpB,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAE/B,KAAK,CAAC,EAAE,IAAI,EAAE,CAAC;IACf,SAAS,CAAC,EAAE,SAAS,CAAC;IAEtB,KAAK,CAAC,EAAE,IAAI,EAAE,CAAC;IACf,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,4BAA4B,CAAC,EAAE,aAAa,CAAC;IAC7C,uBAAuB,CAAC,EAAE,uBAAuB,CAAC;IAClD,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAE1B,aAAa,CAAC,EAAE,aAAa,CAAC;IAC9B,WAAW,CAAC,EAAE,gBAAgB,CAAC;IAC/B,iBAAiB,CAAC,EAAE,gBAAgB,CAAC;IACrC,iBAAiB,CAAC,EAAE,gBAAgB,CAAC;IACrC,gBAAgB,CAAC,EAAE,gBAAgB,CAAC;IACpC,eAAe,CAAC,EAAE,gBAAgB,CAAC;IACnC,gBAAgB,CAAC,EAAE,gBAAgB,CAAC;IACpC,eAAe,CAAC,EAAE,eAAe,CAAC;IAClC,UAAU,CAAC,EAAE,eAAe,CAAC;IAC7B,aAAa,CAAC,EAAE,eAAe,CAAC;IAEhC,aAAa,CAAC,EAAE,aAAa,CAAC;IAC9B,WAAW,CAAC,EAAE,CAAC,KAAK,EAAE,eAAe,EAAE,IAAI,EAAE,IAAI,KAAK,IAAI,CAAC;IAC3D,iBAAiB,CAAC,EAAE,gBAAgB,CAAC;IACrC,iBAAiB,CAAC,EAAE,gBAAgB,CAAC;IACrC,gBAAgB,CAAC,EAAE,gBAAgB,CAAC;IACpC,eAAe,CAAC,EAAE,gBAAgB,CAAC;IACnC,gBAAgB,CAAC,EAAE,gBAAgB,CAAC;IAEpC,YAAY,CAAC,EAAE,gBAAgB,CAAC;IAChC,iBAAiB,CAAC,EAAE,CACjB,KAAK,EAAE,eAAe,EACtB,IAAI,EAAE,IAAI,EACV,QAAQ,EAAE,QAAQ,KAChB,IAAI,CAAC;IACV,eAAe,CAAC,EAAE,CACf,KAAK,EAAE,UAAU,GAAG,UAAU,EAC9B,IAAI,EAAE,IAAI,EACV,QAAQ,EAAE,QAAQ,KAChB,IAAI,CAAC;IAEV,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB,cAAc,CAAC,EAAE,cAAc,CAAC;IAChC,YAAY,CAAC,EAAE,YAAY,CAAC;IAE5B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB,OAAO,CAAC,EAAE,OAAO,CAAC;IAElB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,eAAe,CAAC,EAAE,QAAQ,CAAC;IAC3B,eAAe,CAAC,EAAE,gBAAgB,CAAC;IAEnC,qBAAqB,CAAC,EAAE,OAAO,CAAC;IAEhC,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,gBAAgB,CAAC,EAAE,OAAO,CAAC;CAC7B,CAAC;AAEF,MAAM,MAAM,mBAAmB,GAAG,cAAc,CAAC"}
@@ -4,4 +4,5 @@ export * from './core';
4
4
  export * from '../hooks/useNodesEdgesState/type';
5
5
  export * from '../components/Node/type';
6
6
  export * from '../components/Edges/type';
7
+ export * from '../container/ConnectionLineRenderer/type';
7
8
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../react-diagram/packages/src/types/index.ts"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAC;AACxB,cAAc,WAAW,CAAC;AAC1B,cAAc,QAAQ,CAAC;AAEvB,cAAc,kCAAkC,CAAC;AAGjD,cAAc,yBAAyB,CAAC;AACxC,cAAc,0BAA0B,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../react-diagram/packages/src/types/index.ts"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAC;AACxB,cAAc,WAAW,CAAC;AAC1B,cAAc,QAAQ,CAAC;AAEvB,cAAc,kCAAkC,CAAC;AAGjD,cAAc,yBAAyB,CAAC;AACxC,cAAc,0BAA0B,CAAC;AACzC,cAAc,0CAA0C,CAAC"}
@@ -11,7 +11,7 @@ export declare const getNodePositionWithOrigin: (node: Node | undefined, nodeOri
11
11
  export declare const getNodesInside: (nodeInternals: NodeInternals, rect: Rect, [tx, ty, tScale]?: Transform, partially?: boolean, excludeNonSelectableNodes?: boolean, nodeOrigin?: NodeOrigin) => Node[];
12
12
  export declare const getMarkerId: (marker: EdgeMarker | undefined, rfId?: string) => string;
13
13
  export declare const addEdge: (edgeParams: Edge | Connection, edges: Edge[]) => Edge[];
14
- export declare const updateEdge: (oldEdge: Edge, newConnection: Connection, edges: Edge[], options?: {
14
+ export declare const updateEdge: (originEdge: Edge, newConnection: Connection, edges: Edge[], options?: {
15
15
  shouldReplaceId: boolean;
16
16
  }) => Edge[];
17
17
  export declare const getRectOfNodes: (nodes: Node[], nodeOrigin?: NodeOrigin) => Rect;
@@ -1 +1 @@
1
- {"version":3,"file":"graph.d.ts","sourceRoot":"","sources":["../react-diagram/packages/src/utils/graph.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AACzE,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAC9C,OAAO,EAAE,IAAI,EAAE,MAAM,yBAAyB,CAAC;AAC/C,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AACtD,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAEtD,eAAO,MAAM,MAAM,YAAa,IAAI,GAAG,UAAU,GAAG,IAAI,6CACc,CAAC;AAEvE,eAAO,MAAM,MAAM,YAAa,IAAI,GAAG,UAAU,GAAG,IAAI,yBACX,CAAC;AAE9C,eAAO,MAAM,yBAAyB,SAC7B,IAAI,GAAG,SAAS,8BAEtB,UAAU,GAAG;IAAE,gBAAgB,EAAE,UAAU,CAAA;CA6B7C,CAAC;AAEF,eAAO,MAAM,cAAc,uCAElB,IAAI,sHAMV,IAAI,EA2CN,CAAC;AAEF,eAAO,MAAM,WAAW,WACb,UAAU,GAAG,SAAS,SACvB,MAAM,KACb,MAeF,CAAC;AAQF,eAAO,MAAM,OAAO,eACL,IAAI,GAAG,UAAU,SACtB,IAAI,EAAE,KACb,IAAI,EAqBN,CAAC;AAEF,eAAO,MAAM,UAAU,YACX,IAAI,iBACE,UAAU,SAClB,IAAI,EAAE;;MAEb,IAAI,EAiBN,CAAC;AAEF,eAAO,MAAM,cAAc,UACjB,IAAI,EAAE,8BAEb,IAyBF,CAAC"}
1
+ {"version":3,"file":"graph.d.ts","sourceRoot":"","sources":["../react-diagram/packages/src/utils/graph.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AACzE,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAC9C,OAAO,EAAE,IAAI,EAAE,MAAM,yBAAyB,CAAC;AAC/C,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AACtD,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAEtD,eAAO,MAAM,MAAM,YAAa,IAAI,GAAG,UAAU,GAAG,IAAI,6CACc,CAAC;AAEvE,eAAO,MAAM,MAAM,YAAa,IAAI,GAAG,UAAU,GAAG,IAAI,yBACX,CAAC;AAE9C,eAAO,MAAM,yBAAyB,SAC7B,IAAI,GAAG,SAAS,8BAEtB,UAAU,GAAG;IAAE,gBAAgB,EAAE,UAAU,CAAA;CA6B7C,CAAC;AAEF,eAAO,MAAM,cAAc,uCAElB,IAAI,sHAMV,IAAI,EA2CN,CAAC;AAEF,eAAO,MAAM,WAAW,WACb,UAAU,GAAG,SAAS,SACvB,MAAM,KACb,MAeF,CAAC;AAQF,eAAO,MAAM,OAAO,eACL,IAAI,GAAG,UAAU,SACtB,IAAI,EAAE,KACb,IAAI,EAqBN,CAAC;AAEF,eAAO,MAAM,UAAU,eACR,IAAI,iBACD,UAAU,SAClB,IAAI,EAAE;;MAEb,IAAI,EAiBN,CAAC;AAEF,eAAO,MAAM,cAAc,UACjB,IAAI,EAAE,8BAEb,IAyBF,CAAC"}