@code-partner/codepipe-hub 0.14.1-dev.388.g455782fa
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +8 -0
- package/admin/dist/apple-touch-icon.png +0 -0
- package/admin/dist/assets/index-C4jvxAyb.js +40 -0
- package/admin/dist/assets/index-DLJp-BWJ.css +1 -0
- package/admin/dist/code-pipe-logo-v2-dark.png +0 -0
- package/admin/dist/code-pipe-logo-v2.png +0 -0
- package/admin/dist/favicon-96x96.png +0 -0
- package/admin/dist/favicon.ico +0 -0
- package/admin/dist/index.html +18 -0
- package/dashboard/dist/apple-touch-icon.png +0 -0
- package/dashboard/dist/assets/ModelCanvas-BnuhLJ6X.css +1 -0
- package/dashboard/dist/assets/ModelCanvas-CPPfRBQg.js +23 -0
- package/dashboard/dist/assets/index-Bgq2ZBdp.js +256 -0
- package/dashboard/dist/assets/index-CD8JrtmW.css +1 -0
- package/dashboard/dist/code-pipe-logo-v2-dark.png +0 -0
- package/dashboard/dist/code-pipe-logo-v2.png +0 -0
- package/dashboard/dist/dev-pipe-logo-v2-dark.png +0 -0
- package/dashboard/dist/dev-pipe-logo-v2.png +0 -0
- package/dashboard/dist/favicon-96x96.png +0 -0
- package/dashboard/dist/favicon-v2.png +0 -0
- package/dashboard/dist/favicon.ico +0 -0
- package/dashboard/dist/index.html +36 -0
- package/dashboard/dist/manifest.webmanifest +24 -0
- package/dashboard/dist/web-app-manifest-192x192.png +0 -0
- package/dashboard/dist/web-app-manifest-512x512.png +0 -0
- package/hub/dist/index.js +32304 -0
- package/hub/dist/install-sandbox.sh +268 -0
- package/hub/dist/prompts/analysis.md +111 -0
- package/hub/dist/prompts/analyze.md +211 -0
- package/hub/dist/prompts/backfill.md +82 -0
- package/hub/dist/prompts/build.md +150 -0
- package/hub/dist/prompts/chat.md +66 -0
- package/hub/dist/prompts/code-review-external.md +210 -0
- package/hub/dist/prompts/code-review-fix.md +58 -0
- package/hub/dist/prompts/code-review-verify.md +99 -0
- package/hub/dist/prompts/code-review.md +212 -0
- package/hub/dist/prompts/config.md +137 -0
- package/hub/dist/prompts/council.md +94 -0
- package/hub/dist/prompts/draft.md +37 -0
- package/hub/dist/prompts/estimate.md +59 -0
- package/hub/dist/prompts/implement-direct.md +127 -0
- package/hub/dist/prompts/implement.md +131 -0
- package/hub/dist/prompts/index.md +57 -0
- package/hub/dist/prompts/observer.md +120 -0
- package/hub/dist/prompts/partials/environment.md +13 -0
- package/hub/dist/prompts/partials/knowledge.md +10 -0
- package/hub/dist/prompts/resolve-conflict.md +91 -0
- package/hub/dist/prompts/review-comment.md +25 -0
- package/hub/dist/prompts/rework.md +71 -0
- package/hub/dist/prompts/testing.md +105 -0
- package/package.json +35 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
.react-flow{direction:ltr;--xy-edge-stroke-default: #b1b1b7;--xy-edge-stroke-width-default: 1;--xy-edge-stroke-selected-default: #555;--xy-connectionline-stroke-default: #b1b1b7;--xy-connectionline-stroke-width-default: 1;--xy-attribution-background-color-default: rgba(255, 255, 255, .5);--xy-minimap-background-color-default: #fff;--xy-minimap-mask-background-color-default: rgba(240, 240, 240, .6);--xy-minimap-mask-stroke-color-default: transparent;--xy-minimap-mask-stroke-width-default: 1;--xy-minimap-node-background-color-default: #e2e2e2;--xy-minimap-node-stroke-color-default: transparent;--xy-minimap-node-stroke-width-default: 2;--xy-background-color-default: transparent;--xy-background-pattern-dots-color-default: #91919a;--xy-background-pattern-lines-color-default: #eee;--xy-background-pattern-cross-color-default: #e2e2e2;background-color:var(--xy-background-color, var(--xy-background-color-default));--xy-node-color-default: inherit;--xy-node-border-default: 1px solid #1a192b;--xy-node-background-color-default: #fff;--xy-node-group-background-color-default: rgba(240, 240, 240, .25);--xy-node-boxshadow-hover-default: 0 1px 4px 1px rgba(0, 0, 0, .08);--xy-node-boxshadow-selected-default: 0 0 0 .5px #1a192b;--xy-node-border-radius-default: 3px;--xy-handle-background-color-default: #1a192b;--xy-handle-border-color-default: #fff;--xy-selection-background-color-default: rgba(0, 89, 220, .08);--xy-selection-border-default: 1px dotted rgba(0, 89, 220, .8);--xy-controls-button-background-color-default: #fefefe;--xy-controls-button-background-color-hover-default: #f4f4f4;--xy-controls-button-color-default: inherit;--xy-controls-button-color-hover-default: inherit;--xy-controls-button-border-color-default: #eee;--xy-controls-box-shadow-default: 0 0 2px 1px rgba(0, 0, 0, .08);--xy-edge-label-background-color-default: #ffffff;--xy-edge-label-color-default: inherit;--xy-resize-background-color-default: #3367d9}.react-flow.dark{--xy-edge-stroke-default: #3e3e3e;--xy-edge-stroke-width-default: 1;--xy-edge-stroke-selected-default: #727272;--xy-connectionline-stroke-default: #b1b1b7;--xy-connectionline-stroke-width-default: 1;--xy-attribution-background-color-default: rgba(150, 150, 150, .25);--xy-minimap-background-color-default: #141414;--xy-minimap-mask-background-color-default: rgba(60, 60, 60, .6);--xy-minimap-mask-stroke-color-default: transparent;--xy-minimap-mask-stroke-width-default: 1;--xy-minimap-node-background-color-default: #2b2b2b;--xy-minimap-node-stroke-color-default: transparent;--xy-minimap-node-stroke-width-default: 2;--xy-background-color-default: #141414;--xy-background-pattern-dots-color-default: #555;--xy-background-pattern-lines-color-default: #333;--xy-background-pattern-cross-color-default: #333;--xy-node-color-default: #f8f8f8;--xy-node-border-default: 1px solid #3c3c3c;--xy-node-background-color-default: #1e1e1e;--xy-node-group-background-color-default: rgba(240, 240, 240, .25);--xy-node-boxshadow-hover-default: 0 1px 4px 1px rgba(255, 255, 255, .08);--xy-node-boxshadow-selected-default: 0 0 0 .5px #999;--xy-handle-background-color-default: #bebebe;--xy-handle-border-color-default: #1e1e1e;--xy-selection-background-color-default: rgba(200, 200, 220, .08);--xy-selection-border-default: 1px dotted rgba(200, 200, 220, .8);--xy-controls-button-background-color-default: #2b2b2b;--xy-controls-button-background-color-hover-default: #3e3e3e;--xy-controls-button-color-default: #f8f8f8;--xy-controls-button-color-hover-default: #fff;--xy-controls-button-border-color-default: #5b5b5b;--xy-controls-box-shadow-default: 0 0 2px 1px rgba(0, 0, 0, .08);--xy-edge-label-background-color-default: #141414;--xy-edge-label-color-default: #f8f8f8}.react-flow__background{background-color:var(--xy-background-color-props, var(--xy-background-color, var(--xy-background-color-default)));pointer-events:none;z-index:-1}.react-flow__container{position:absolute;width:100%;height:100%;top:0;left:0}.react-flow__pane{z-index:1;touch-action:none}.react-flow__pane.draggable{cursor:grab}.react-flow__pane.dragging{cursor:grabbing}.react-flow__pane.selection{cursor:pointer}.react-flow__viewport{transform-origin:0 0;z-index:2;pointer-events:none}.react-flow__renderer{z-index:4}.react-flow__selection{z-index:6}.react-flow__nodesselection-rect:focus,.react-flow__nodesselection-rect:focus-visible{outline:none}.react-flow__edge-path{stroke:var(--xy-edge-stroke, var(--xy-edge-stroke-default));stroke-width:var(--xy-edge-stroke-width, var(--xy-edge-stroke-width-default));fill:none}.react-flow__connection-path{stroke:var(--xy-connectionline-stroke, var(--xy-connectionline-stroke-default));stroke-width:var(--xy-connectionline-stroke-width, var(--xy-connectionline-stroke-width-default));fill:none}.react-flow .react-flow__edges{position:absolute}.react-flow .react-flow__edges svg{overflow:visible;position:absolute;pointer-events:none}.react-flow__edge{pointer-events:visibleStroke}.react-flow__edge.selectable{cursor:pointer}.react-flow__edge.animated path{stroke-dasharray:5;animation:dashdraw .5s linear infinite}.react-flow__edge.animated path.react-flow__edge-interaction{stroke-dasharray:none;animation:none}.react-flow__edge.inactive{pointer-events:none}.react-flow__edge.selected,.react-flow__edge:focus,.react-flow__edge:focus-visible{outline:none}.react-flow__edge.selected .react-flow__edge-path,.react-flow__edge.selectable:focus .react-flow__edge-path,.react-flow__edge.selectable:focus-visible .react-flow__edge-path{stroke:var(--xy-edge-stroke-selected, var(--xy-edge-stroke-selected-default))}.react-flow__edge-textwrapper{pointer-events:all}.react-flow__edge .react-flow__edge-text{pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}.react-flow__arrowhead polyline{stroke:var(--xy-edge-stroke, var(--xy-edge-stroke-default))}.react-flow__arrowhead polyline.arrowclosed{fill:var(--xy-edge-stroke, var(--xy-edge-stroke-default))}.react-flow__connection{pointer-events:none}.react-flow__connection .animated{stroke-dasharray:5;animation:dashdraw .5s linear infinite}svg.react-flow__connectionline{z-index:1001;overflow:visible;position:absolute}.react-flow__nodes{pointer-events:none;transform-origin:0 0}.react-flow__node{position:absolute;-webkit-user-select:none;-moz-user-select:none;user-select:none;pointer-events:all;transform-origin:0 0;box-sizing:border-box;cursor:default}.react-flow__node.selectable{cursor:pointer}.react-flow__node.draggable{cursor:grab;pointer-events:all}.react-flow__node.draggable.dragging{cursor:grabbing}.react-flow__nodesselection{z-index:3;transform-origin:left top;pointer-events:none}.react-flow__nodesselection-rect{position:absolute;pointer-events:all;cursor:grab}.react-flow__handle{position:absolute;pointer-events:none;min-width:5px;min-height:5px;width:6px;height:6px;background-color:var(--xy-handle-background-color, var(--xy-handle-background-color-default));border:1px solid var(--xy-handle-border-color, var(--xy-handle-border-color-default));border-radius:100%}.react-flow__handle.connectingfrom{pointer-events:all}.react-flow__handle.connectionindicator{pointer-events:all;cursor:crosshair}.react-flow__handle-bottom{top:auto;left:50%;bottom:0;transform:translate(-50%,50%)}.react-flow__handle-top{top:0;left:50%;transform:translate(-50%,-50%)}.react-flow__handle-left{top:50%;left:0;transform:translate(-50%,-50%)}.react-flow__handle-right{top:50%;right:0;transform:translate(50%,-50%)}.react-flow__edgeupdater{cursor:move;pointer-events:all}.react-flow__pane.selection .react-flow__panel{pointer-events:none}.react-flow__panel{position:absolute;z-index:5;margin:15px}.react-flow__panel.top{top:0}.react-flow__panel.bottom{bottom:0}.react-flow__panel.top.center,.react-flow__panel.bottom.center{left:50%;transform:translate(-15px) translate(-50%)}.react-flow__panel.left{left:0}.react-flow__panel.right{right:0}.react-flow__panel.left.center,.react-flow__panel.right.center{top:50%;transform:translateY(-15px) translateY(-50%)}.react-flow__attribution{font-size:10px;background:var(--xy-attribution-background-color, var(--xy-attribution-background-color-default));padding:2px 3px;margin:0}.react-flow__attribution a{text-decoration:none;color:#999}@keyframes dashdraw{0%{stroke-dashoffset:10}}.react-flow__edgelabel-renderer{position:absolute;width:100%;height:100%;pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none;left:0;top:0}.react-flow__viewport-portal{position:absolute;width:100%;height:100%;left:0;top:0;-webkit-user-select:none;-moz-user-select:none;user-select:none}.react-flow__minimap{background:var( --xy-minimap-background-color-props, var(--xy-minimap-background-color, var(--xy-minimap-background-color-default)) )}.react-flow__minimap-svg{display:block}.react-flow__minimap-mask{fill:var( --xy-minimap-mask-background-color-props, var(--xy-minimap-mask-background-color, var(--xy-minimap-mask-background-color-default)) );stroke:var( --xy-minimap-mask-stroke-color-props, var(--xy-minimap-mask-stroke-color, var(--xy-minimap-mask-stroke-color-default)) );stroke-width:var( --xy-minimap-mask-stroke-width-props, var(--xy-minimap-mask-stroke-width, var(--xy-minimap-mask-stroke-width-default)) )}.react-flow__minimap-node{fill:var( --xy-minimap-node-background-color-props, var(--xy-minimap-node-background-color, var(--xy-minimap-node-background-color-default)) );stroke:var( --xy-minimap-node-stroke-color-props, var(--xy-minimap-node-stroke-color, var(--xy-minimap-node-stroke-color-default)) );stroke-width:var( --xy-minimap-node-stroke-width-props, var(--xy-minimap-node-stroke-width, var(--xy-minimap-node-stroke-width-default)) )}.react-flow__background-pattern.dots{fill:var( --xy-background-pattern-color-props, var(--xy-background-pattern-color, var(--xy-background-pattern-dots-color-default)) )}.react-flow__background-pattern.lines{stroke:var( --xy-background-pattern-color-props, var(--xy-background-pattern-color, var(--xy-background-pattern-lines-color-default)) )}.react-flow__background-pattern.cross{stroke:var( --xy-background-pattern-color-props, var(--xy-background-pattern-color, var(--xy-background-pattern-cross-color-default)) )}.react-flow__controls{display:flex;flex-direction:column;box-shadow:var(--xy-controls-box-shadow, var(--xy-controls-box-shadow-default))}.react-flow__controls.horizontal{flex-direction:row}.react-flow__controls-button{display:flex;justify-content:center;align-items:center;height:26px;width:26px;padding:4px;border:none;background:var(--xy-controls-button-background-color, var(--xy-controls-button-background-color-default));border-bottom:1px solid var( --xy-controls-button-border-color-props, var(--xy-controls-button-border-color, var(--xy-controls-button-border-color-default)) );color:var( --xy-controls-button-color-props, var(--xy-controls-button-color, var(--xy-controls-button-color-default)) );cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none}.react-flow__controls-button svg{width:100%;max-width:12px;max-height:12px;fill:currentColor}.react-flow__edge.updating .react-flow__edge-path{stroke:#777}.react-flow__edge-text{font-size:10px}.react-flow__node.selectable:focus,.react-flow__node.selectable:focus-visible{outline:none}.react-flow__node-input,.react-flow__node-default,.react-flow__node-output,.react-flow__node-group{padding:10px;border-radius:var(--xy-node-border-radius, var(--xy-node-border-radius-default));width:150px;font-size:12px;color:var(--xy-node-color, var(--xy-node-color-default));text-align:center;border:var(--xy-node-border, var(--xy-node-border-default));background-color:var(--xy-node-background-color, var(--xy-node-background-color-default))}.react-flow__node-input.selectable:hover,.react-flow__node-default.selectable:hover,.react-flow__node-output.selectable:hover,.react-flow__node-group.selectable:hover{box-shadow:var(--xy-node-boxshadow-hover, var(--xy-node-boxshadow-hover-default))}.react-flow__node-input.selectable.selected,.react-flow__node-input.selectable:focus,.react-flow__node-input.selectable:focus-visible,.react-flow__node-default.selectable.selected,.react-flow__node-default.selectable:focus,.react-flow__node-default.selectable:focus-visible,.react-flow__node-output.selectable.selected,.react-flow__node-output.selectable:focus,.react-flow__node-output.selectable:focus-visible,.react-flow__node-group.selectable.selected,.react-flow__node-group.selectable:focus,.react-flow__node-group.selectable:focus-visible{box-shadow:var(--xy-node-boxshadow-selected, var(--xy-node-boxshadow-selected-default))}.react-flow__node-group{background-color:var(--xy-node-group-background-color, var(--xy-node-group-background-color-default))}.react-flow__nodesselection-rect,.react-flow__selection{background:var(--xy-selection-background-color, var(--xy-selection-background-color-default));border:var(--xy-selection-border, var(--xy-selection-border-default))}.react-flow__nodesselection-rect:focus,.react-flow__nodesselection-rect:focus-visible,.react-flow__selection:focus,.react-flow__selection:focus-visible{outline:none}.react-flow__controls-button:hover{background:var( --xy-controls-button-background-color-hover-props, var(--xy-controls-button-background-color-hover, var(--xy-controls-button-background-color-hover-default)) );color:var( --xy-controls-button-color-hover-props, var(--xy-controls-button-color-hover, var(--xy-controls-button-color-hover-default)) )}.react-flow__controls-button:disabled{pointer-events:none}.react-flow__controls-button:disabled svg{fill-opacity:.4}.react-flow__controls-button:last-child{border-bottom:none}.react-flow__controls.horizontal .react-flow__controls-button{border-bottom:none;border-right:1px solid var( --xy-controls-button-border-color-props, var(--xy-controls-button-border-color, var(--xy-controls-button-border-color-default)) )}.react-flow__controls.horizontal .react-flow__controls-button:last-child{border-right:none}.react-flow__resize-control{position:absolute}.react-flow__resize-control.left,.react-flow__resize-control.right{cursor:ew-resize}.react-flow__resize-control.top,.react-flow__resize-control.bottom{cursor:ns-resize}.react-flow__resize-control.top.left,.react-flow__resize-control.bottom.right{cursor:nwse-resize}.react-flow__resize-control.bottom.left,.react-flow__resize-control.top.right{cursor:nesw-resize}.react-flow__resize-control.handle{width:5px;height:5px;border:1px solid #fff;border-radius:1px;background-color:var(--xy-resize-background-color, var(--xy-resize-background-color-default));translate:-50% -50%}.react-flow__resize-control.handle.left{left:0;top:50%}.react-flow__resize-control.handle.right{left:100%;top:50%}.react-flow__resize-control.handle.top{left:50%;top:0}.react-flow__resize-control.handle.bottom{left:50%;top:100%}.react-flow__resize-control.handle.top.left,.react-flow__resize-control.handle.bottom.left{left:0}.react-flow__resize-control.handle.top.right,.react-flow__resize-control.handle.bottom.right{left:100%}.react-flow__resize-control.line{border-color:var(--xy-resize-background-color, var(--xy-resize-background-color-default));border-width:0;border-style:solid}.react-flow__resize-control.line.left,.react-flow__resize-control.line.right{width:1px;transform:translate(-50%);top:0;height:100%}.react-flow__resize-control.line.left{left:0;border-left-width:1px}.react-flow__resize-control.line.right{left:100%;border-right-width:1px}.react-flow__resize-control.line.top,.react-flow__resize-control.line.bottom{height:1px;transform:translateY(-50%);left:0;width:100%}.react-flow__resize-control.line.top{top:0;border-top-width:1px}.react-flow__resize-control.line.bottom{border-bottom-width:1px;top:100%}.react-flow__edge-textbg{fill:var(--xy-edge-label-background-color, var(--xy-edge-label-background-color-default))}.react-flow__edge-text{fill:var(--xy-edge-label-color, var(--xy-edge-label-color-default))}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import{r as T,g as ga,R as pa,j as A}from"./index-Bgq2ZBdp.js";function st(t){if(typeof t=="string"||typeof t=="number")return""+t;let e="";if(Array.isArray(t))for(let n=0,r;n<t.length;n++)(r=st(t[n]))!==""&&(e+=(e&&" ")+r);else for(let n in t)t[n]&&(e+=(e&&" ")+n);return e}var ma={value:()=>{}};function tn(){for(var t=0,e=arguments.length,n={},r;t<e;++t){if(!(r=arguments[t]+"")||r in n||/[\s.]/.test(r))throw new Error("illegal type: "+r);n[r]=[]}return new Le(n)}function Le(t){this._=t}function ya(t,e){return t.trim().split(/^|\s+/).map(function(n){var r="",o=n.indexOf(".");if(o>=0&&(r=n.slice(o+1),n=n.slice(0,o)),n&&!e.hasOwnProperty(n))throw new Error("unknown type: "+n);return{type:n,name:r}})}Le.prototype=tn.prototype={constructor:Le,on:function(t,e){var n=this._,r=ya(t+"",n),o,i=-1,s=r.length;if(arguments.length<2){for(;++i<s;)if((o=(t=r[i]).type)&&(o=xa(n[o],t.name)))return o;return}if(e!=null&&typeof e!="function")throw new Error("invalid callback: "+e);for(;++i<s;)if(o=(t=r[i]).type)n[o]=hr(n[o],t.name,e);else if(e==null)for(o in n)n[o]=hr(n[o],t.name,null);return this},copy:function(){var t={},e=this._;for(var n in e)t[n]=e[n].slice();return new Le(t)},call:function(t,e){if((o=arguments.length-2)>0)for(var n=new Array(o),r=0,o,i;r<o;++r)n[r]=arguments[r+2];if(!this._.hasOwnProperty(t))throw new Error("unknown type: "+t);for(i=this._[t],r=0,o=i.length;r<o;++r)i[r].value.apply(e,n)},apply:function(t,e,n){if(!this._.hasOwnProperty(t))throw new Error("unknown type: "+t);for(var r=this._[t],o=0,i=r.length;o<i;++o)r[o].value.apply(e,n)}};function xa(t,e){for(var n=0,r=t.length,o;n<r;++n)if((o=t[n]).name===e)return o.value}function hr(t,e,n){for(var r=0,o=t.length;r<o;++r)if(t[r].name===e){t[r]=ma,t=t.slice(0,r).concat(t.slice(r+1));break}return n!=null&&t.push({name:e,value:n}),t}var Cn="http://www.w3.org/1999/xhtml";const gr={svg:"http://www.w3.org/2000/svg",xhtml:Cn,xlink:"http://www.w3.org/1999/xlink",xml:"http://www.w3.org/XML/1998/namespace",xmlns:"http://www.w3.org/2000/xmlns/"};function en(t){var e=t+="",n=e.indexOf(":");return n>=0&&(e=t.slice(0,n))!=="xmlns"&&(t=t.slice(n+1)),gr.hasOwnProperty(e)?{space:gr[e],local:t}:t}function wa(t){return function(){var e=this.ownerDocument,n=this.namespaceURI;return n===Cn&&e.documentElement.namespaceURI===Cn?e.createElement(t):e.createElementNS(n,t)}}function va(t){return function(){return this.ownerDocument.createElementNS(t.space,t.local)}}function wo(t){var e=en(t);return(e.local?va:wa)(e)}function ba(){}function Fn(t){return t==null?ba:function(){return this.querySelector(t)}}function _a(t){typeof t!="function"&&(t=Fn(t));for(var e=this._groups,n=e.length,r=new Array(n),o=0;o<n;++o)for(var i=e[o],s=i.length,a=r[o]=new Array(s),c,u,l=0;l<s;++l)(c=i[l])&&(u=t.call(c,c.__data__,l,i))&&("__data__"in c&&(u.__data__=c.__data__),a[l]=u);return new ut(r,this._parents)}function Ea(t){return t==null?[]:Array.isArray(t)?t:Array.from(t)}function Sa(){return[]}function vo(t){return t==null?Sa:function(){return this.querySelectorAll(t)}}function Na(t){return function(){return Ea(t.apply(this,arguments))}}function Ma(t){typeof t=="function"?t=Na(t):t=vo(t);for(var e=this._groups,n=e.length,r=[],o=[],i=0;i<n;++i)for(var s=e[i],a=s.length,c,u=0;u<a;++u)(c=s[u])&&(r.push(t.call(c,c.__data__,u,s)),o.push(c));return new ut(r,o)}function bo(t){return function(){return this.matches(t)}}function _o(t){return function(e){return e.matches(t)}}var Ca=Array.prototype.find;function ka(t){return function(){return Ca.call(this.children,t)}}function Aa(){return this.firstElementChild}function $a(t){return this.select(t==null?Aa:ka(typeof t=="function"?t:_o(t)))}var Ia=Array.prototype.filter;function Pa(){return Array.from(this.children)}function Ta(t){return function(){return Ia.call(this.children,t)}}function za(t){return this.selectAll(t==null?Pa:Ta(typeof t=="function"?t:_o(t)))}function Da(t){typeof t!="function"&&(t=bo(t));for(var e=this._groups,n=e.length,r=new Array(n),o=0;o<n;++o)for(var i=e[o],s=i.length,a=r[o]=[],c,u=0;u<s;++u)(c=i[u])&&t.call(c,c.__data__,u,i)&&a.push(c);return new ut(r,this._parents)}function Eo(t){return new Array(t.length)}function La(){return new ut(this._enter||this._groups.map(Eo),this._parents)}function Oe(t,e){this.ownerDocument=t.ownerDocument,this.namespaceURI=t.namespaceURI,this._next=null,this._parent=t,this.__data__=e}Oe.prototype={constructor:Oe,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)}};function Ha(t){return function(){return t}}function Ra(t,e,n,r,o,i){for(var s=0,a,c=e.length,u=i.length;s<u;++s)(a=e[s])?(a.__data__=i[s],r[s]=a):n[s]=new Oe(t,i[s]);for(;s<c;++s)(a=e[s])&&(o[s]=a)}function Va(t,e,n,r,o,i,s){var a,c,u=new Map,l=e.length,f=i.length,d=new Array(l),h;for(a=0;a<l;++a)(c=e[a])&&(d[a]=h=s.call(c,c.__data__,a,e)+"",u.has(h)?o[a]=c:u.set(h,c));for(a=0;a<f;++a)h=s.call(t,i[a],a,i)+"",(c=u.get(h))?(r[a]=c,c.__data__=i[a],u.delete(h)):n[a]=new Oe(t,i[a]);for(a=0;a<l;++a)(c=e[a])&&u.get(d[a])===c&&(o[a]=c)}function Ba(t){return t.__data__}function Fa(t,e){if(!arguments.length)return Array.from(this,Ba);var n=e?Va:Ra,r=this._parents,o=this._groups;typeof t!="function"&&(t=Ha(t));for(var i=o.length,s=new Array(i),a=new Array(i),c=new Array(i),u=0;u<i;++u){var l=r[u],f=o[u],d=f.length,h=Oa(t.call(l,l&&l.__data__,u,r)),g=h.length,v=a[u]=new Array(g),x=s[u]=new Array(g),m=c[u]=new Array(d);n(l,f,v,x,m,h,e);for(var b=0,p=0,w,S;b<g;++b)if(w=v[b]){for(b>=p&&(p=b+1);!(S=x[p])&&++p<g;);w._next=S||null}}return s=new ut(s,r),s._enter=a,s._exit=c,s}function Oa(t){return typeof t=="object"&&"length"in t?t:Array.from(t)}function ja(){return new ut(this._exit||this._groups.map(Eo),this._parents)}function Xa(t,e,n){var r=this.enter(),o=this,i=this.exit();return typeof t=="function"?(r=t(r),r&&(r=r.selection())):r=r.append(t+""),e!=null&&(o=e(o),o&&(o=o.selection())),n==null?i.remove():n(i),r&&o?r.merge(o).order():o}function Ya(t){for(var e=t.selection?t.selection():t,n=this._groups,r=e._groups,o=n.length,i=r.length,s=Math.min(o,i),a=new Array(o),c=0;c<s;++c)for(var u=n[c],l=r[c],f=u.length,d=a[c]=new Array(f),h,g=0;g<f;++g)(h=u[g]||l[g])&&(d[g]=h);for(;c<o;++c)a[c]=n[c];return new ut(a,this._parents)}function Wa(){for(var t=this._groups,e=-1,n=t.length;++e<n;)for(var r=t[e],o=r.length-1,i=r[o],s;--o>=0;)(s=r[o])&&(i&&s.compareDocumentPosition(i)^4&&i.parentNode.insertBefore(s,i),i=s);return this}function qa(t){t||(t=Ga);function e(f,d){return f&&d?t(f.__data__,d.__data__):!f-!d}for(var n=this._groups,r=n.length,o=new Array(r),i=0;i<r;++i){for(var s=n[i],a=s.length,c=o[i]=new Array(a),u,l=0;l<a;++l)(u=s[l])&&(c[l]=u);c.sort(e)}return new ut(o,this._parents).order()}function Ga(t,e){return t<e?-1:t>e?1:t>=e?0:NaN}function Ka(){var t=arguments[0];return arguments[0]=this,t.apply(null,arguments),this}function Za(){return Array.from(this)}function Ua(){for(var t=this._groups,e=0,n=t.length;e<n;++e)for(var r=t[e],o=0,i=r.length;o<i;++o){var s=r[o];if(s)return s}return null}function Qa(){let t=0;for(const e of this)++t;return t}function Ja(){return!this.node()}function tc(t){for(var e=this._groups,n=0,r=e.length;n<r;++n)for(var o=e[n],i=0,s=o.length,a;i<s;++i)(a=o[i])&&t.call(a,a.__data__,i,o);return this}function ec(t){return function(){this.removeAttribute(t)}}function nc(t){return function(){this.removeAttributeNS(t.space,t.local)}}function rc(t,e){return function(){this.setAttribute(t,e)}}function oc(t,e){return function(){this.setAttributeNS(t.space,t.local,e)}}function ic(t,e){return function(){var n=e.apply(this,arguments);n==null?this.removeAttribute(t):this.setAttribute(t,n)}}function sc(t,e){return function(){var n=e.apply(this,arguments);n==null?this.removeAttributeNS(t.space,t.local):this.setAttributeNS(t.space,t.local,n)}}function ac(t,e){var n=en(t);if(arguments.length<2){var r=this.node();return n.local?r.getAttributeNS(n.space,n.local):r.getAttribute(n)}return this.each((e==null?n.local?nc:ec:typeof e=="function"?n.local?sc:ic:n.local?oc:rc)(n,e))}function So(t){return t.ownerDocument&&t.ownerDocument.defaultView||t.document&&t||t.defaultView}function cc(t){return function(){this.style.removeProperty(t)}}function uc(t,e,n){return function(){this.style.setProperty(t,e,n)}}function lc(t,e,n){return function(){var r=e.apply(this,arguments);r==null?this.style.removeProperty(t):this.style.setProperty(t,r,n)}}function fc(t,e,n){return arguments.length>1?this.each((e==null?cc:typeof e=="function"?lc:uc)(t,e,n??"")):Ut(this.node(),t)}function Ut(t,e){return t.style.getPropertyValue(e)||So(t).getComputedStyle(t,null).getPropertyValue(e)}function dc(t){return function(){delete this[t]}}function hc(t,e){return function(){this[t]=e}}function gc(t,e){return function(){var n=e.apply(this,arguments);n==null?delete this[t]:this[t]=n}}function pc(t,e){return arguments.length>1?this.each((e==null?dc:typeof e=="function"?gc:hc)(t,e)):this.node()[t]}function No(t){return t.trim().split(/^|\s+/)}function On(t){return t.classList||new Mo(t)}function Mo(t){this._node=t,this._names=No(t.getAttribute("class")||"")}Mo.prototype={add:function(t){var e=this._names.indexOf(t);e<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}};function Co(t,e){for(var n=On(t),r=-1,o=e.length;++r<o;)n.add(e[r])}function ko(t,e){for(var n=On(t),r=-1,o=e.length;++r<o;)n.remove(e[r])}function mc(t){return function(){Co(this,t)}}function yc(t){return function(){ko(this,t)}}function xc(t,e){return function(){(e.apply(this,arguments)?Co:ko)(this,t)}}function wc(t,e){var n=No(t+"");if(arguments.length<2){for(var r=On(this.node()),o=-1,i=n.length;++o<i;)if(!r.contains(n[o]))return!1;return!0}return this.each((typeof e=="function"?xc:e?mc:yc)(n,e))}function vc(){this.textContent=""}function bc(t){return function(){this.textContent=t}}function _c(t){return function(){var e=t.apply(this,arguments);this.textContent=e??""}}function Ec(t){return arguments.length?this.each(t==null?vc:(typeof t=="function"?_c:bc)(t)):this.node().textContent}function Sc(){this.innerHTML=""}function Nc(t){return function(){this.innerHTML=t}}function Mc(t){return function(){var e=t.apply(this,arguments);this.innerHTML=e??""}}function Cc(t){return arguments.length?this.each(t==null?Sc:(typeof t=="function"?Mc:Nc)(t)):this.node().innerHTML}function kc(){this.nextSibling&&this.parentNode.appendChild(this)}function Ac(){return this.each(kc)}function $c(){this.previousSibling&&this.parentNode.insertBefore(this,this.parentNode.firstChild)}function Ic(){return this.each($c)}function Pc(t){var e=typeof t=="function"?t:wo(t);return this.select(function(){return this.appendChild(e.apply(this,arguments))})}function Tc(){return null}function zc(t,e){var n=typeof t=="function"?t:wo(t),r=e==null?Tc:typeof e=="function"?e:Fn(e);return this.select(function(){return this.insertBefore(n.apply(this,arguments),r.apply(this,arguments)||null)})}function Dc(){var t=this.parentNode;t&&t.removeChild(this)}function Lc(){return this.each(Dc)}function Hc(){var t=this.cloneNode(!1),e=this.parentNode;return e?e.insertBefore(t,this.nextSibling):t}function Rc(){var t=this.cloneNode(!0),e=this.parentNode;return e?e.insertBefore(t,this.nextSibling):t}function Vc(t){return this.select(t?Rc:Hc)}function Bc(t){return arguments.length?this.property("__data__",t):this.node().__data__}function Fc(t){return function(e){t.call(this,e,this.__data__)}}function Oc(t){return t.trim().split(/^|\s+/).map(function(e){var n="",r=e.indexOf(".");return r>=0&&(n=e.slice(r+1),e=e.slice(0,r)),{type:e,name:n}})}function jc(t){return function(){var e=this.__on;if(e){for(var n=0,r=-1,o=e.length,i;n<o;++n)i=e[n],(!t.type||i.type===t.type)&&i.name===t.name?this.removeEventListener(i.type,i.listener,i.options):e[++r]=i;++r?e.length=r:delete this.__on}}}function Xc(t,e,n){return function(){var r=this.__on,o,i=Fc(e);if(r){for(var s=0,a=r.length;s<a;++s)if((o=r[s]).type===t.type&&o.name===t.name){this.removeEventListener(o.type,o.listener,o.options),this.addEventListener(o.type,o.listener=i,o.options=n),o.value=e;return}}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 Yc(t,e,n){var r=Oc(t+""),o,i=r.length,s;if(arguments.length<2){var a=this.node().__on;if(a){for(var c=0,u=a.length,l;c<u;++c)for(o=0,l=a[c];o<i;++o)if((s=r[o]).type===l.type&&s.name===l.name)return l.value}return}for(a=e?Xc:jc,o=0;o<i;++o)this.each(a(r[o],e,n));return this}function Ao(t,e,n){var r=So(t),o=r.CustomEvent;typeof o=="function"?o=new o(e,n):(o=r.document.createEvent("Event"),n?(o.initEvent(e,n.bubbles,n.cancelable),o.detail=n.detail):o.initEvent(e,!1,!1)),t.dispatchEvent(o)}function Wc(t,e){return function(){return Ao(this,t,e)}}function qc(t,e){return function(){return Ao(this,t,e.apply(this,arguments))}}function Gc(t,e){return this.each((typeof e=="function"?qc:Wc)(t,e))}function*Kc(){for(var t=this._groups,e=0,n=t.length;e<n;++e)for(var r=t[e],o=0,i=r.length,s;o<i;++o)(s=r[o])&&(yield s)}var $o=[null];function ut(t,e){this._groups=t,this._parents=e}function ve(){return new ut([[document.documentElement]],$o)}function Zc(){return this}ut.prototype=ve.prototype={constructor:ut,select:_a,selectAll:Ma,selectChild:$a,selectChildren:za,filter:Da,data:Fa,enter:La,exit:ja,join:Xa,merge:Ya,selection:Zc,order:Wa,sort:qa,call:Ka,nodes:Za,node:Ua,size:Qa,empty:Ja,each:tc,attr:ac,style:fc,property:pc,classed:wc,text:Ec,html:Cc,raise:Ac,lower:Ic,append:Pc,insert:zc,remove:Lc,clone:Vc,datum:Bc,on:Yc,dispatch:Gc,[Symbol.iterator]:Kc};function ct(t){return typeof t=="string"?new ut([[document.querySelector(t)]],[document.documentElement]):new ut([[t]],$o)}function Uc(t){let e;for(;e=t.sourceEvent;)t=e;return t}function dt(t,e){if(t=Uc(t),e===void 0&&(e=t.currentTarget),e){var n=e.ownerSVGElement||e;if(n.createSVGPoint){var r=n.createSVGPoint();return r.x=t.clientX,r.y=t.clientY,r=r.matrixTransform(e.getScreenCTM().inverse()),[r.x,r.y]}if(e.getBoundingClientRect){var o=e.getBoundingClientRect();return[t.clientX-o.left-e.clientLeft,t.clientY-o.top-e.clientTop]}}return[t.pageX,t.pageY]}const Qc={passive:!1},fe={capture:!0,passive:!1};function yn(t){t.stopImmediatePropagation()}function Kt(t){t.preventDefault(),t.stopImmediatePropagation()}function Io(t){var e=t.document.documentElement,n=ct(t).on("dragstart.drag",Kt,fe);"onselectstart"in e?n.on("selectstart.drag",Kt,fe):(e.__noselect=e.style.MozUserSelect,e.style.MozUserSelect="none")}function Po(t,e){var n=t.document.documentElement,r=ct(t).on("dragstart.drag",null);e&&(r.on("click.drag",Kt,fe),setTimeout(function(){r.on("click.drag",null)},0)),"onselectstart"in n?r.on("selectstart.drag",null):(n.style.MozUserSelect=n.__noselect,delete n.__noselect)}const Ce=t=>()=>t;function kn(t,{sourceEvent:e,subject:n,target:r,identifier:o,active:i,x:s,y:a,dx:c,dy:u,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:r,enumerable:!0,configurable:!0},identifier:{value:o,enumerable:!0,configurable:!0},active:{value:i,enumerable:!0,configurable:!0},x:{value:s,enumerable:!0,configurable:!0},y:{value:a,enumerable:!0,configurable:!0},dx:{value:c,enumerable:!0,configurable:!0},dy:{value:u,enumerable:!0,configurable:!0},_:{value:l}})}kn.prototype.on=function(){var t=this._.on.apply(this._,arguments);return t===this._?this:t};function Jc(t){return!t.ctrlKey&&!t.button}function tu(){return this.parentNode}function eu(t,e){return e??{x:t.x,y:t.y}}function nu(){return navigator.maxTouchPoints||"ontouchstart"in this}function To(){var t=Jc,e=tu,n=eu,r=nu,o={},i=tn("start","drag","end"),s=0,a,c,u,l,f=0;function d(w){w.on("mousedown.drag",h).filter(r).on("touchstart.drag",x).on("touchmove.drag",m,Qc).on("touchend.drag touchcancel.drag",b).style("touch-action","none").style("-webkit-tap-highlight-color","rgba(0,0,0,0)")}function h(w,S){if(!(l||!t.call(this,w,S))){var E=p(this,e.call(this,w,S),w,S,"mouse");E&&(ct(w.view).on("mousemove.drag",g,fe).on("mouseup.drag",v,fe),Io(w.view),yn(w),u=!1,a=w.clientX,c=w.clientY,E("start",w))}}function g(w){if(Kt(w),!u){var S=w.clientX-a,E=w.clientY-c;u=S*S+E*E>f}o.mouse("drag",w)}function v(w){ct(w.view).on("mousemove.drag mouseup.drag",null),Po(w.view,u),Kt(w),o.mouse("end",w)}function x(w,S){if(t.call(this,w,S)){var E=w.changedTouches,k=e.call(this,w,S),$=E.length,I,F;for(I=0;I<$;++I)(F=p(this,k,w,S,E[I].identifier,E[I]))&&(yn(w),F("start",w,E[I]))}}function m(w){var S=w.changedTouches,E=S.length,k,$;for(k=0;k<E;++k)($=o[S[k].identifier])&&(Kt(w),$("drag",w,S[k]))}function b(w){var S=w.changedTouches,E=S.length,k,$;for(l&&clearTimeout(l),l=setTimeout(function(){l=null},500),k=0;k<E;++k)($=o[S[k].identifier])&&(yn(w),$("end",w,S[k]))}function p(w,S,E,k,$,I){var F=i.copy(),z=dt(I||E,S),B,D,y;if((y=n.call(w,new kn("beforestart",{sourceEvent:E,target:d,identifier:$,active:s,x:z[0],y:z[1],dx:0,dy:0,dispatch:F}),k))!=null)return B=y.x-z[0]||0,D=y.y-z[1]||0,function N(_,C,P){var M=z,R;switch(_){case"start":o[$]=N,R=s++;break;case"end":delete o[$],--s;case"drag":z=dt(P||C,S),R=s;break}F.call(_,w,new kn(_,{sourceEvent:C,subject:y,target:d,identifier:$,active:R,x:z[0]+B,y:z[1]+D,dx:z[0]-M[0],dy:z[1]-M[1],dispatch:F}),k)}}return d.filter=function(w){return arguments.length?(t=typeof w=="function"?w:Ce(!!w),d):t},d.container=function(w){return arguments.length?(e=typeof w=="function"?w:Ce(w),d):e},d.subject=function(w){return arguments.length?(n=typeof w=="function"?w:Ce(w),d):n},d.touchable=function(w){return arguments.length?(r=typeof w=="function"?w:Ce(!!w),d):r},d.on=function(){var w=i.on.apply(i,arguments);return w===i?d:w},d.clickDistance=function(w){return arguments.length?(f=(w=+w)*w,d):Math.sqrt(f)},d}function jn(t,e,n){t.prototype=e.prototype=n,n.constructor=t}function zo(t,e){var n=Object.create(t.prototype);for(var r in e)n[r]=e[r];return n}function be(){}var de=.7,je=1/de,Zt="\\s*([+-]?\\d+)\\s*",he="\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)\\s*",bt="\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)%\\s*",ru=/^#([0-9a-f]{3,8})$/,ou=new RegExp(`^rgb\\(${Zt},${Zt},${Zt}\\)$`),iu=new RegExp(`^rgb\\(${bt},${bt},${bt}\\)$`),su=new RegExp(`^rgba\\(${Zt},${Zt},${Zt},${he}\\)$`),au=new RegExp(`^rgba\\(${bt},${bt},${bt},${he}\\)$`),cu=new RegExp(`^hsl\\(${he},${bt},${bt}\\)$`),uu=new RegExp(`^hsla\\(${he},${bt},${bt},${he}\\)$`),pr={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};jn(be,Ft,{copy(t){return Object.assign(new this.constructor,this,t)},displayable(){return this.rgb().displayable()},hex:mr,formatHex:mr,formatHex8:lu,formatHsl:fu,formatRgb:yr,toString:yr});function mr(){return this.rgb().formatHex()}function lu(){return this.rgb().formatHex8()}function fu(){return Do(this).formatHsl()}function yr(){return this.rgb().formatRgb()}function Ft(t){var e,n;return t=(t+"").trim().toLowerCase(),(e=ru.exec(t))?(n=e[1].length,e=parseInt(e[1],16),n===6?xr(e):n===3?new at(e>>8&15|e>>4&240,e>>4&15|e&240,(e&15)<<4|e&15,1):n===8?ke(e>>24&255,e>>16&255,e>>8&255,(e&255)/255):n===4?ke(e>>12&15|e>>8&240,e>>8&15|e>>4&240,e>>4&15|e&240,((e&15)<<4|e&15)/255):null):(e=ou.exec(t))?new at(e[1],e[2],e[3],1):(e=iu.exec(t))?new at(e[1]*255/100,e[2]*255/100,e[3]*255/100,1):(e=su.exec(t))?ke(e[1],e[2],e[3],e[4]):(e=au.exec(t))?ke(e[1]*255/100,e[2]*255/100,e[3]*255/100,e[4]):(e=cu.exec(t))?br(e[1],e[2]/100,e[3]/100,1):(e=uu.exec(t))?br(e[1],e[2]/100,e[3]/100,e[4]):pr.hasOwnProperty(t)?xr(pr[t]):t==="transparent"?new at(NaN,NaN,NaN,0):null}function xr(t){return new at(t>>16&255,t>>8&255,t&255,1)}function ke(t,e,n,r){return r<=0&&(t=e=n=NaN),new at(t,e,n,r)}function du(t){return t instanceof be||(t=Ft(t)),t?(t=t.rgb(),new at(t.r,t.g,t.b,t.opacity)):new at}function An(t,e,n,r){return arguments.length===1?du(t):new at(t,e,n,r??1)}function at(t,e,n,r){this.r=+t,this.g=+e,this.b=+n,this.opacity=+r}jn(at,An,zo(be,{brighter(t){return t=t==null?je:Math.pow(je,t),new at(this.r*t,this.g*t,this.b*t,this.opacity)},darker(t){return t=t==null?de:Math.pow(de,t),new at(this.r*t,this.g*t,this.b*t,this.opacity)},rgb(){return this},clamp(){return new at(Vt(this.r),Vt(this.g),Vt(this.b),Xe(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:wr,formatHex:wr,formatHex8:hu,formatRgb:vr,toString:vr}));function wr(){return`#${Rt(this.r)}${Rt(this.g)}${Rt(this.b)}`}function hu(){return`#${Rt(this.r)}${Rt(this.g)}${Rt(this.b)}${Rt((isNaN(this.opacity)?1:this.opacity)*255)}`}function vr(){const t=Xe(this.opacity);return`${t===1?"rgb(":"rgba("}${Vt(this.r)}, ${Vt(this.g)}, ${Vt(this.b)}${t===1?")":`, ${t})`}`}function Xe(t){return isNaN(t)?1:Math.max(0,Math.min(1,t))}function Vt(t){return Math.max(0,Math.min(255,Math.round(t)||0))}function Rt(t){return t=Vt(t),(t<16?"0":"")+t.toString(16)}function br(t,e,n,r){return r<=0?t=e=n=NaN:n<=0||n>=1?t=e=NaN:e<=0&&(t=NaN),new ht(t,e,n,r)}function Do(t){if(t instanceof ht)return new ht(t.h,t.s,t.l,t.opacity);if(t instanceof be||(t=Ft(t)),!t)return new ht;if(t instanceof ht)return t;t=t.rgb();var e=t.r/255,n=t.g/255,r=t.b/255,o=Math.min(e,n,r),i=Math.max(e,n,r),s=NaN,a=i-o,c=(i+o)/2;return a?(e===i?s=(n-r)/a+(n<r)*6:n===i?s=(r-e)/a+2:s=(e-n)/a+4,a/=c<.5?i+o:2-i-o,s*=60):a=c>0&&c<1?0:s,new ht(s,a,c,t.opacity)}function gu(t,e,n,r){return arguments.length===1?Do(t):new ht(t,e,n,r??1)}function ht(t,e,n,r){this.h=+t,this.s=+e,this.l=+n,this.opacity=+r}jn(ht,gu,zo(be,{brighter(t){return t=t==null?je:Math.pow(je,t),new ht(this.h,this.s,this.l*t,this.opacity)},darker(t){return t=t==null?de:Math.pow(de,t),new ht(this.h,this.s,this.l*t,this.opacity)},rgb(){var t=this.h%360+(this.h<0)*360,e=isNaN(t)||isNaN(this.s)?0:this.s,n=this.l,r=n+(n<.5?n:1-n)*e,o=2*n-r;return new at(xn(t>=240?t-240:t+120,o,r),xn(t,o,r),xn(t<120?t+240:t-120,o,r),this.opacity)},clamp(){return new ht(_r(this.h),Ae(this.s),Ae(this.l),Xe(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=Xe(this.opacity);return`${t===1?"hsl(":"hsla("}${_r(this.h)}, ${Ae(this.s)*100}%, ${Ae(this.l)*100}%${t===1?")":`, ${t})`}`}}));function _r(t){return t=(t||0)%360,t<0?t+360:t}function Ae(t){return Math.max(0,Math.min(1,t||0))}function xn(t,e,n){return(t<60?e+(n-e)*t/60:t<180?n:t<240?e+(n-e)*(240-t)/60:e)*255}const Xn=t=>()=>t;function pu(t,e){return function(n){return t+n*e}}function mu(t,e,n){return t=Math.pow(t,n),e=Math.pow(e,n)-t,n=1/n,function(r){return Math.pow(t+r*e,n)}}function yu(t){return(t=+t)==1?Lo:function(e,n){return n-e?mu(e,n,t):Xn(isNaN(e)?n:e)}}function Lo(t,e){var n=e-t;return n?pu(t,n):Xn(isNaN(t)?e:t)}const Ye=function t(e){var n=yu(e);function r(o,i){var s=n((o=An(o)).r,(i=An(i)).r),a=n(o.g,i.g),c=n(o.b,i.b),u=Lo(o.opacity,i.opacity);return function(l){return o.r=s(l),o.g=a(l),o.b=c(l),o.opacity=u(l),o+""}}return r.gamma=t,r}(1);function xu(t,e){e||(e=[]);var n=t?Math.min(e.length,t.length):0,r=e.slice(),o;return function(i){for(o=0;o<n;++o)r[o]=t[o]*(1-i)+e[o]*i;return r}}function wu(t){return ArrayBuffer.isView(t)&&!(t instanceof DataView)}function vu(t,e){var n=e?e.length:0,r=t?Math.min(n,t.length):0,o=new Array(r),i=new Array(n),s;for(s=0;s<r;++s)o[s]=ue(t[s],e[s]);for(;s<n;++s)i[s]=e[s];return function(a){for(s=0;s<r;++s)i[s]=o[s](a);return i}}function bu(t,e){var n=new Date;return t=+t,e=+e,function(r){return n.setTime(t*(1-r)+e*r),n}}function vt(t,e){return t=+t,e=+e,function(n){return t*(1-n)+e*n}}function _u(t,e){var n={},r={},o;(t===null||typeof t!="object")&&(t={}),(e===null||typeof e!="object")&&(e={});for(o in e)o in t?n[o]=ue(t[o],e[o]):r[o]=e[o];return function(i){for(o in n)r[o]=n[o](i);return r}}var $n=/[-+]?(?:\d+\.?\d*|\.?\d+)(?:[eE][-+]?\d+)?/g,wn=new RegExp($n.source,"g");function Eu(t){return function(){return t}}function Su(t){return function(e){return t(e)+""}}function Ho(t,e){var n=$n.lastIndex=wn.lastIndex=0,r,o,i,s=-1,a=[],c=[];for(t=t+"",e=e+"";(r=$n.exec(t))&&(o=wn.exec(e));)(i=o.index)>n&&(i=e.slice(n,i),a[s]?a[s]+=i:a[++s]=i),(r=r[0])===(o=o[0])?a[s]?a[s]+=o:a[++s]=o:(a[++s]=null,c.push({i:s,x:vt(r,o)})),n=wn.lastIndex;return n<e.length&&(i=e.slice(n),a[s]?a[s]+=i:a[++s]=i),a.length<2?c[0]?Su(c[0].x):Eu(e):(e=c.length,function(u){for(var l=0,f;l<e;++l)a[(f=c[l]).i]=f.x(u);return a.join("")})}function ue(t,e){var n=typeof e,r;return e==null||n==="boolean"?Xn(e):(n==="number"?vt:n==="string"?(r=Ft(e))?(e=r,Ye):Ho:e instanceof Ft?Ye:e instanceof Date?bu:wu(e)?xu:Array.isArray(e)?vu:typeof e.valueOf!="function"&&typeof e.toString!="function"||isNaN(e)?_u:vt)(t,e)}var Er=180/Math.PI,In={translateX:0,translateY:0,rotate:0,skewX:0,scaleX:1,scaleY:1};function Ro(t,e,n,r,o,i){var s,a,c;return(s=Math.sqrt(t*t+e*e))&&(t/=s,e/=s),(c=t*n+e*r)&&(n-=t*c,r-=e*c),(a=Math.sqrt(n*n+r*r))&&(n/=a,r/=a,c/=a),t*r<e*n&&(t=-t,e=-e,c=-c,s=-s),{translateX:o,translateY:i,rotate:Math.atan2(e,t)*Er,skewX:Math.atan(c)*Er,scaleX:s,scaleY:a}}var $e;function Nu(t){const e=new(typeof DOMMatrix=="function"?DOMMatrix:WebKitCSSMatrix)(t+"");return e.isIdentity?In:Ro(e.a,e.b,e.c,e.d,e.e,e.f)}function Mu(t){return t==null||($e||($e=document.createElementNS("http://www.w3.org/2000/svg","g")),$e.setAttribute("transform",t),!(t=$e.transform.baseVal.consolidate()))?In:(t=t.matrix,Ro(t.a,t.b,t.c,t.d,t.e,t.f))}function Vo(t,e,n,r){function o(u){return u.length?u.pop()+" ":""}function i(u,l,f,d,h,g){if(u!==f||l!==d){var v=h.push("translate(",null,e,null,n);g.push({i:v-4,x:vt(u,f)},{i:v-2,x:vt(l,d)})}else(f||d)&&h.push("translate("+f+e+d+n)}function s(u,l,f,d){u!==l?(u-l>180?l+=360:l-u>180&&(u+=360),d.push({i:f.push(o(f)+"rotate(",null,r)-2,x:vt(u,l)})):l&&f.push(o(f)+"rotate("+l+r)}function a(u,l,f,d){u!==l?d.push({i:f.push(o(f)+"skewX(",null,r)-2,x:vt(u,l)}):l&&f.push(o(f)+"skewX("+l+r)}function c(u,l,f,d,h,g){if(u!==f||l!==d){var v=h.push(o(h)+"scale(",null,",",null,")");g.push({i:v-4,x:vt(u,f)},{i:v-2,x:vt(l,d)})}else(f!==1||d!==1)&&h.push(o(h)+"scale("+f+","+d+")")}return function(u,l){var f=[],d=[];return u=t(u),l=t(l),i(u.translateX,u.translateY,l.translateX,l.translateY,f,d),s(u.rotate,l.rotate,f,d),a(u.skewX,l.skewX,f,d),c(u.scaleX,u.scaleY,l.scaleX,l.scaleY,f,d),u=l=null,function(h){for(var g=-1,v=d.length,x;++g<v;)f[(x=d[g]).i]=x.x(h);return f.join("")}}}var Cu=Vo(Nu,"px, ","px)","deg)"),ku=Vo(Mu,", ",")",")"),Au=1e-12;function Sr(t){return((t=Math.exp(t))+1/t)/2}function $u(t){return((t=Math.exp(t))-1/t)/2}function Iu(t){return((t=Math.exp(2*t))-1)/(t+1)}const He=function t(e,n,r){function o(i,s){var a=i[0],c=i[1],u=i[2],l=s[0],f=s[1],d=s[2],h=l-a,g=f-c,v=h*h+g*g,x,m;if(v<Au)m=Math.log(d/u)/e,x=function(k){return[a+k*h,c+k*g,u*Math.exp(e*k*m)]};else{var b=Math.sqrt(v),p=(d*d-u*u+r*v)/(2*u*n*b),w=(d*d-u*u-r*v)/(2*d*n*b),S=Math.log(Math.sqrt(p*p+1)-p),E=Math.log(Math.sqrt(w*w+1)-w);m=(E-S)/e,x=function(k){var $=k*m,I=Sr(S),F=u/(n*b)*(I*Iu(e*$+S)-$u(S));return[a+F*h,c+F*g,u*I/Sr(e*$+S)]}}return x.duration=m*1e3*e/Math.SQRT2,x}return o.rho=function(i){var s=Math.max(.001,+i),a=s*s,c=a*a;return t(s,a,c)},o}(Math.SQRT2,2,4);var Qt=0,ae=0,ie=0,Bo=1e3,We,ce,qe=0,Ot=0,nn=0,ge=typeof performance=="object"&&performance.now?performance:Date,Fo=typeof window=="object"&&window.requestAnimationFrame?window.requestAnimationFrame.bind(window):function(t){setTimeout(t,17)};function Yn(){return Ot||(Fo(Pu),Ot=ge.now()+nn)}function Pu(){Ot=0}function Ge(){this._call=this._time=this._next=null}Ge.prototype=Oo.prototype={constructor:Ge,restart:function(t,e,n){if(typeof t!="function")throw new TypeError("callback is not a function");n=(n==null?Yn():+n)+(e==null?0:+e),!this._next&&ce!==this&&(ce?ce._next=this:We=this,ce=this),this._call=t,this._time=n,Pn()},stop:function(){this._call&&(this._call=null,this._time=1/0,Pn())}};function Oo(t,e,n){var r=new Ge;return r.restart(t,e,n),r}function Tu(){Yn(),++Qt;for(var t=We,e;t;)(e=Ot-t._time)>=0&&t._call.call(void 0,e),t=t._next;--Qt}function Nr(){Ot=(qe=ge.now())+nn,Qt=ae=0;try{Tu()}finally{Qt=0,Du(),Ot=0}}function zu(){var t=ge.now(),e=t-qe;e>Bo&&(nn-=e,qe=t)}function Du(){for(var t,e=We,n,r=1/0;e;)e._call?(r>e._time&&(r=e._time),t=e,e=e._next):(n=e._next,e._next=null,e=t?t._next=n:We=n);ce=t,Pn(r)}function Pn(t){if(!Qt){ae&&(ae=clearTimeout(ae));var e=t-Ot;e>24?(t<1/0&&(ae=setTimeout(Nr,t-ge.now()-nn)),ie&&(ie=clearInterval(ie))):(ie||(qe=ge.now(),ie=setInterval(zu,Bo)),Qt=1,Fo(Nr))}}function Mr(t,e,n){var r=new Ge;return e=e==null?0:+e,r.restart(o=>{r.stop(),t(o+e)},e,n),r}var Lu=tn("start","end","cancel","interrupt"),Hu=[],jo=0,Cr=1,Tn=2,Re=3,kr=4,zn=5,Ve=6;function rn(t,e,n,r,o,i){var s=t.__transition;if(!s)t.__transition={};else if(n in s)return;Ru(t,n,{name:e,index:r,group:o,on:Lu,tween:Hu,time:i.time,delay:i.delay,duration:i.duration,ease:i.ease,timer:null,state:jo})}function Wn(t,e){var n=yt(t,e);if(n.state>jo)throw new Error("too late; already scheduled");return n}function _t(t,e){var n=yt(t,e);if(n.state>Re)throw new Error("too late; already running");return n}function yt(t,e){var n=t.__transition;if(!n||!(n=n[e]))throw new Error("transition not found");return n}function Ru(t,e,n){var r=t.__transition,o;r[e]=n,n.timer=Oo(i,0,n.time);function i(u){n.state=Cr,n.timer.restart(s,n.delay,n.time),n.delay<=u&&s(u-n.delay)}function s(u){var l,f,d,h;if(n.state!==Cr)return c();for(l in r)if(h=r[l],h.name===n.name){if(h.state===Re)return Mr(s);h.state===kr?(h.state=Ve,h.timer.stop(),h.on.call("interrupt",t,t.__data__,h.index,h.group),delete r[l]):+l<e&&(h.state=Ve,h.timer.stop(),h.on.call("cancel",t,t.__data__,h.index,h.group),delete r[l])}if(Mr(function(){n.state===Re&&(n.state=kr,n.timer.restart(a,n.delay,n.time),a(u))}),n.state=Tn,n.on.call("start",t,t.__data__,n.index,n.group),n.state===Tn){for(n.state=Re,o=new Array(d=n.tween.length),l=0,f=-1;l<d;++l)(h=n.tween[l].value.call(t,t.__data__,n.index,n.group))&&(o[++f]=h);o.length=f+1}}function a(u){for(var l=u<n.duration?n.ease.call(null,u/n.duration):(n.timer.restart(c),n.state=zn,1),f=-1,d=o.length;++f<d;)o[f].call(t,l);n.state===zn&&(n.on.call("end",t,t.__data__,n.index,n.group),c())}function c(){n.state=Ve,n.timer.stop(),delete r[e];for(var u in r)return;delete t.__transition}}function Be(t,e){var n=t.__transition,r,o,i=!0,s;if(n){e=e==null?null:e+"";for(s in n){if((r=n[s]).name!==e){i=!1;continue}o=r.state>Tn&&r.state<zn,r.state=Ve,r.timer.stop(),r.on.call(o?"interrupt":"cancel",t,t.__data__,r.index,r.group),delete n[s]}i&&delete t.__transition}}function Vu(t){return this.each(function(){Be(this,t)})}function Bu(t,e){var n,r;return function(){var o=_t(this,t),i=o.tween;if(i!==n){r=n=i;for(var s=0,a=r.length;s<a;++s)if(r[s].name===e){r=r.slice(),r.splice(s,1);break}}o.tween=r}}function Fu(t,e,n){var r,o;if(typeof n!="function")throw new Error;return function(){var i=_t(this,t),s=i.tween;if(s!==r){o=(r=s).slice();for(var a={name:e,value:n},c=0,u=o.length;c<u;++c)if(o[c].name===e){o[c]=a;break}c===u&&o.push(a)}i.tween=o}}function Ou(t,e){var n=this._id;if(t+="",arguments.length<2){for(var r=yt(this.node(),n).tween,o=0,i=r.length,s;o<i;++o)if((s=r[o]).name===t)return s.value;return null}return this.each((e==null?Bu:Fu)(n,t,e))}function qn(t,e,n){var r=t._id;return t.each(function(){var o=_t(this,r);(o.value||(o.value={}))[e]=n.apply(this,arguments)}),function(o){return yt(o,r).value[e]}}function Xo(t,e){var n;return(typeof e=="number"?vt:e instanceof Ft?Ye:(n=Ft(e))?(e=n,Ye):Ho)(t,e)}function ju(t){return function(){this.removeAttribute(t)}}function Xu(t){return function(){this.removeAttributeNS(t.space,t.local)}}function Yu(t,e,n){var r,o=n+"",i;return function(){var s=this.getAttribute(t);return s===o?null:s===r?i:i=e(r=s,n)}}function Wu(t,e,n){var r,o=n+"",i;return function(){var s=this.getAttributeNS(t.space,t.local);return s===o?null:s===r?i:i=e(r=s,n)}}function qu(t,e,n){var r,o,i;return function(){var s,a=n(this),c;return a==null?void this.removeAttribute(t):(s=this.getAttribute(t),c=a+"",s===c?null:s===r&&c===o?i:(o=c,i=e(r=s,a)))}}function Gu(t,e,n){var r,o,i;return function(){var s,a=n(this),c;return a==null?void this.removeAttributeNS(t.space,t.local):(s=this.getAttributeNS(t.space,t.local),c=a+"",s===c?null:s===r&&c===o?i:(o=c,i=e(r=s,a)))}}function Ku(t,e){var n=en(t),r=n==="transform"?ku:Xo;return this.attrTween(t,typeof e=="function"?(n.local?Gu:qu)(n,r,qn(this,"attr."+t,e)):e==null?(n.local?Xu:ju)(n):(n.local?Wu:Yu)(n,r,e))}function Zu(t,e){return function(n){this.setAttribute(t,e.call(this,n))}}function Uu(t,e){return function(n){this.setAttributeNS(t.space,t.local,e.call(this,n))}}function Qu(t,e){var n,r;function o(){var i=e.apply(this,arguments);return i!==r&&(n=(r=i)&&Uu(t,i)),n}return o._value=e,o}function Ju(t,e){var n,r;function o(){var i=e.apply(this,arguments);return i!==r&&(n=(r=i)&&Zu(t,i)),n}return o._value=e,o}function tl(t,e){var n="attr."+t;if(arguments.length<2)return(n=this.tween(n))&&n._value;if(e==null)return this.tween(n,null);if(typeof e!="function")throw new Error;var r=en(t);return this.tween(n,(r.local?Qu:Ju)(r,e))}function el(t,e){return function(){Wn(this,t).delay=+e.apply(this,arguments)}}function nl(t,e){return e=+e,function(){Wn(this,t).delay=e}}function rl(t){var e=this._id;return arguments.length?this.each((typeof t=="function"?el:nl)(e,t)):yt(this.node(),e).delay}function ol(t,e){return function(){_t(this,t).duration=+e.apply(this,arguments)}}function il(t,e){return e=+e,function(){_t(this,t).duration=e}}function sl(t){var e=this._id;return arguments.length?this.each((typeof t=="function"?ol:il)(e,t)):yt(this.node(),e).duration}function al(t,e){if(typeof e!="function")throw new Error;return function(){_t(this,t).ease=e}}function cl(t){var e=this._id;return arguments.length?this.each(al(e,t)):yt(this.node(),e).ease}function ul(t,e){return function(){var n=e.apply(this,arguments);if(typeof n!="function")throw new Error;_t(this,t).ease=n}}function ll(t){if(typeof t!="function")throw new Error;return this.each(ul(this._id,t))}function fl(t){typeof t!="function"&&(t=bo(t));for(var e=this._groups,n=e.length,r=new Array(n),o=0;o<n;++o)for(var i=e[o],s=i.length,a=r[o]=[],c,u=0;u<s;++u)(c=i[u])&&t.call(c,c.__data__,u,i)&&a.push(c);return new At(r,this._parents,this._name,this._id)}function dl(t){if(t._id!==this._id)throw new Error;for(var e=this._groups,n=t._groups,r=e.length,o=n.length,i=Math.min(r,o),s=new Array(r),a=0;a<i;++a)for(var c=e[a],u=n[a],l=c.length,f=s[a]=new Array(l),d,h=0;h<l;++h)(d=c[h]||u[h])&&(f[h]=d);for(;a<r;++a)s[a]=e[a];return new At(s,this._parents,this._name,this._id)}function hl(t){return(t+"").trim().split(/^|\s+/).every(function(e){var n=e.indexOf(".");return n>=0&&(e=e.slice(0,n)),!e||e==="start"})}function gl(t,e,n){var r,o,i=hl(e)?Wn:_t;return function(){var s=i(this,t),a=s.on;a!==r&&(o=(r=a).copy()).on(e,n),s.on=o}}function pl(t,e){var n=this._id;return arguments.length<2?yt(this.node(),n).on.on(t):this.each(gl(n,t,e))}function ml(t){return function(){var e=this.parentNode;for(var n in this.__transition)if(+n!==t)return;e&&e.removeChild(this)}}function yl(){return this.on("end.remove",ml(this._id))}function xl(t){var e=this._name,n=this._id;typeof t!="function"&&(t=Fn(t));for(var r=this._groups,o=r.length,i=new Array(o),s=0;s<o;++s)for(var a=r[s],c=a.length,u=i[s]=new Array(c),l,f,d=0;d<c;++d)(l=a[d])&&(f=t.call(l,l.__data__,d,a))&&("__data__"in l&&(f.__data__=l.__data__),u[d]=f,rn(u[d],e,n,d,u,yt(l,n)));return new At(i,this._parents,e,n)}function wl(t){var e=this._name,n=this._id;typeof t!="function"&&(t=vo(t));for(var r=this._groups,o=r.length,i=[],s=[],a=0;a<o;++a)for(var c=r[a],u=c.length,l,f=0;f<u;++f)if(l=c[f]){for(var d=t.call(l,l.__data__,f,c),h,g=yt(l,n),v=0,x=d.length;v<x;++v)(h=d[v])&&rn(h,e,n,v,d,g);i.push(d),s.push(l)}return new At(i,s,e,n)}var vl=ve.prototype.constructor;function bl(){return new vl(this._groups,this._parents)}function _l(t,e){var n,r,o;return function(){var i=Ut(this,t),s=(this.style.removeProperty(t),Ut(this,t));return i===s?null:i===n&&s===r?o:o=e(n=i,r=s)}}function Yo(t){return function(){this.style.removeProperty(t)}}function El(t,e,n){var r,o=n+"",i;return function(){var s=Ut(this,t);return s===o?null:s===r?i:i=e(r=s,n)}}function Sl(t,e,n){var r,o,i;return function(){var s=Ut(this,t),a=n(this),c=a+"";return a==null&&(c=a=(this.style.removeProperty(t),Ut(this,t))),s===c?null:s===r&&c===o?i:(o=c,i=e(r=s,a))}}function Nl(t,e){var n,r,o,i="style."+e,s="end."+i,a;return function(){var c=_t(this,t),u=c.on,l=c.value[i]==null?a||(a=Yo(e)):void 0;(u!==n||o!==l)&&(r=(n=u).copy()).on(s,o=l),c.on=r}}function Ml(t,e,n){var r=(t+="")=="transform"?Cu:Xo;return e==null?this.styleTween(t,_l(t,r)).on("end.style."+t,Yo(t)):typeof e=="function"?this.styleTween(t,Sl(t,r,qn(this,"style."+t,e))).each(Nl(this._id,t)):this.styleTween(t,El(t,r,e),n).on("end.style."+t,null)}function Cl(t,e,n){return function(r){this.style.setProperty(t,e.call(this,r),n)}}function kl(t,e,n){var r,o;function i(){var s=e.apply(this,arguments);return s!==o&&(r=(o=s)&&Cl(t,s,n)),r}return i._value=e,i}function Al(t,e,n){var r="style."+(t+="");if(arguments.length<2)return(r=this.tween(r))&&r._value;if(e==null)return this.tween(r,null);if(typeof e!="function")throw new Error;return this.tween(r,kl(t,e,n??""))}function $l(t){return function(){this.textContent=t}}function Il(t){return function(){var e=t(this);this.textContent=e??""}}function Pl(t){return this.tween("text",typeof t=="function"?Il(qn(this,"text",t)):$l(t==null?"":t+""))}function Tl(t){return function(e){this.textContent=t.call(this,e)}}function zl(t){var e,n;function r(){var o=t.apply(this,arguments);return o!==n&&(e=(n=o)&&Tl(o)),e}return r._value=t,r}function Dl(t){var e="text";if(arguments.length<1)return(e=this.tween(e))&&e._value;if(t==null)return this.tween(e,null);if(typeof t!="function")throw new Error;return this.tween(e,zl(t))}function Ll(){for(var t=this._name,e=this._id,n=Wo(),r=this._groups,o=r.length,i=0;i<o;++i)for(var s=r[i],a=s.length,c,u=0;u<a;++u)if(c=s[u]){var l=yt(c,e);rn(c,t,n,u,s,{time:l.time+l.delay+l.duration,delay:0,duration:l.duration,ease:l.ease})}return new At(r,this._parents,t,n)}function Hl(){var t,e,n=this,r=n._id,o=n.size();return new Promise(function(i,s){var a={value:s},c={value:function(){--o===0&&i()}};n.each(function(){var u=_t(this,r),l=u.on;l!==t&&(e=(t=l).copy(),e._.cancel.push(a),e._.interrupt.push(a),e._.end.push(c)),u.on=e}),o===0&&i()})}var Rl=0;function At(t,e,n,r){this._groups=t,this._parents=e,this._name=n,this._id=r}function Wo(){return++Rl}var Ct=ve.prototype;At.prototype={constructor:At,select:xl,selectAll:wl,selectChild:Ct.selectChild,selectChildren:Ct.selectChildren,filter:fl,merge:dl,selection:bl,transition:Ll,call:Ct.call,nodes:Ct.nodes,node:Ct.node,size:Ct.size,empty:Ct.empty,each:Ct.each,on:pl,attr:Ku,attrTween:tl,style:Ml,styleTween:Al,text:Pl,textTween:Dl,remove:yl,tween:Ou,delay:rl,duration:sl,ease:cl,easeVarying:ll,end:Hl,[Symbol.iterator]:Ct[Symbol.iterator]};function Vl(t){return((t*=2)<=1?t*t*t:(t-=2)*t*t+2)/2}var Bl={time:null,delay:0,duration:250,ease:Vl};function Fl(t,e){for(var n;!(n=t.__transition)||!(n=n[e]);)if(!(t=t.parentNode))throw new Error(`transition ${e} not found`);return n}function Ol(t){var e,n;t instanceof At?(e=t._id,t=t._name):(e=Wo(),(n=Bl).time=Yn(),t=t==null?null:t+"");for(var r=this._groups,o=r.length,i=0;i<o;++i)for(var s=r[i],a=s.length,c,u=0;u<a;++u)(c=s[u])&&rn(c,t,e,u,s,n||Fl(c,e));return new At(r,this._parents,t,e)}ve.prototype.interrupt=Vu;ve.prototype.transition=Ol;const Ie=t=>()=>t;function jl(t,{sourceEvent:e,target:n,transform:r,dispatch:o}){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:r,enumerable:!0,configurable:!0},_:{value:o}})}function kt(t,e,n){this.k=t,this.x=e,this.y=n}kt.prototype={constructor:kt,scale:function(t){return t===1?this:new kt(this.k*t,this.x,this.y)},translate:function(t,e){return t===0&e===0?this:new kt(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 on=new kt(1,0,0);qo.prototype=kt.prototype;function qo(t){for(;!t.__zoom;)if(!(t=t.parentNode))return on;return t.__zoom}function vn(t){t.stopImmediatePropagation()}function se(t){t.preventDefault(),t.stopImmediatePropagation()}function Xl(t){return(!t.ctrlKey||t.type==="wheel")&&!t.button}function Yl(){var t=this;return t instanceof SVGElement?(t=t.ownerSVGElement||t,t.hasAttribute("viewBox")?(t=t.viewBox.baseVal,[[t.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 Ar(){return this.__zoom||on}function Wl(t){return-t.deltaY*(t.deltaMode===1?.05:t.deltaMode?1:.002)*(t.ctrlKey?10:1)}function ql(){return navigator.maxTouchPoints||"ontouchstart"in this}function Gl(t,e,n){var r=t.invertX(e[0][0])-n[0][0],o=t.invertX(e[1][0])-n[1][0],i=t.invertY(e[0][1])-n[0][1],s=t.invertY(e[1][1])-n[1][1];return t.translate(o>r?(r+o)/2:Math.min(0,r)||Math.max(0,o),s>i?(i+s)/2:Math.min(0,i)||Math.max(0,s))}function Go(){var t=Xl,e=Yl,n=Gl,r=Wl,o=ql,i=[0,1/0],s=[[-1/0,-1/0],[1/0,1/0]],a=250,c=He,u=tn("start","zoom","end"),l,f,d,h=500,g=150,v=0,x=10;function m(y){y.property("__zoom",Ar).on("wheel.zoom",$,{passive:!1}).on("mousedown.zoom",I).on("dblclick.zoom",F).filter(o).on("touchstart.zoom",z).on("touchmove.zoom",B).on("touchend.zoom touchcancel.zoom",D).style("-webkit-tap-highlight-color","rgba(0,0,0,0)")}m.transform=function(y,N,_,C){var P=y.selection?y.selection():y;P.property("__zoom",Ar),y!==P?S(y,N,_,C):P.interrupt().each(function(){E(this,arguments).event(C).start().zoom(null,typeof N=="function"?N.apply(this,arguments):N).end()})},m.scaleBy=function(y,N,_,C){m.scaleTo(y,function(){var P=this.__zoom.k,M=typeof N=="function"?N.apply(this,arguments):N;return P*M},_,C)},m.scaleTo=function(y,N,_,C){m.transform(y,function(){var P=e.apply(this,arguments),M=this.__zoom,R=_==null?w(P):typeof _=="function"?_.apply(this,arguments):_,V=M.invert(R),H=typeof N=="function"?N.apply(this,arguments):N;return n(p(b(M,H),R,V),P,s)},_,C)},m.translateBy=function(y,N,_,C){m.transform(y,function(){return n(this.__zoom.translate(typeof N=="function"?N.apply(this,arguments):N,typeof _=="function"?_.apply(this,arguments):_),e.apply(this,arguments),s)},null,C)},m.translateTo=function(y,N,_,C,P){m.transform(y,function(){var M=e.apply(this,arguments),R=this.__zoom,V=C==null?w(M):typeof C=="function"?C.apply(this,arguments):C;return n(on.translate(V[0],V[1]).scale(R.k).translate(typeof N=="function"?-N.apply(this,arguments):-N,typeof _=="function"?-_.apply(this,arguments):-_),M,s)},C,P)};function b(y,N){return N=Math.max(i[0],Math.min(i[1],N)),N===y.k?y:new kt(N,y.x,y.y)}function p(y,N,_){var C=N[0]-_[0]*y.k,P=N[1]-_[1]*y.k;return C===y.x&&P===y.y?y:new kt(y.k,C,P)}function w(y){return[(+y[0][0]+ +y[1][0])/2,(+y[0][1]+ +y[1][1])/2]}function S(y,N,_,C){y.on("start.zoom",function(){E(this,arguments).event(C).start()}).on("interrupt.zoom end.zoom",function(){E(this,arguments).event(C).end()}).tween("zoom",function(){var P=this,M=arguments,R=E(P,M).event(C),V=e.apply(P,M),H=_==null?w(V):typeof _=="function"?_.apply(P,M):_,j=Math.max(V[1][0]-V[0][0],V[1][1]-V[0][1]),X=P.__zoom,G=typeof N=="function"?N.apply(P,M):N,Q=c(X.invert(H).concat(j/X.k),G.invert(H).concat(j/G.k));return function(K){if(K===1)K=G;else{var L=Q(K),O=j/L[2];K=new kt(O,H[0]-L[0]*O,H[1]-L[1]*O)}R.zoom(null,K)}})}function E(y,N,_){return!_&&y.__zooming||new k(y,N)}function k(y,N){this.that=y,this.args=N,this.active=0,this.sourceEvent=null,this.extent=e.apply(y,N),this.taps=0}k.prototype={event:function(y){return y&&(this.sourceEvent=y),this},start:function(){return++this.active===1&&(this.that.__zooming=this,this.emit("start")),this},zoom:function(y,N){return this.mouse&&y!=="mouse"&&(this.mouse[1]=N.invert(this.mouse[0])),this.touch0&&y!=="touch"&&(this.touch0[1]=N.invert(this.touch0[0])),this.touch1&&y!=="touch"&&(this.touch1[1]=N.invert(this.touch1[0])),this.that.__zoom=N,this.emit("zoom"),this},end:function(){return--this.active===0&&(delete this.that.__zooming,this.emit("end")),this},emit:function(y){var N=ct(this.that).datum();u.call(y,this.that,new jl(y,{sourceEvent:this.sourceEvent,target:m,transform:this.that.__zoom,dispatch:u}),N)}};function $(y,...N){if(!t.apply(this,arguments))return;var _=E(this,N).event(y),C=this.__zoom,P=Math.max(i[0],Math.min(i[1],C.k*Math.pow(2,r.apply(this,arguments)))),M=dt(y);if(_.wheel)(_.mouse[0][0]!==M[0]||_.mouse[0][1]!==M[1])&&(_.mouse[1]=C.invert(_.mouse[0]=M)),clearTimeout(_.wheel);else{if(C.k===P)return;_.mouse=[M,C.invert(M)],Be(this),_.start()}se(y),_.wheel=setTimeout(R,g),_.zoom("mouse",n(p(b(C,P),_.mouse[0],_.mouse[1]),_.extent,s));function R(){_.wheel=null,_.end()}}function I(y,...N){if(d||!t.apply(this,arguments))return;var _=y.currentTarget,C=E(this,N,!0).event(y),P=ct(y.view).on("mousemove.zoom",H,!0).on("mouseup.zoom",j,!0),M=dt(y,_),R=y.clientX,V=y.clientY;Io(y.view),vn(y),C.mouse=[M,this.__zoom.invert(M)],Be(this),C.start();function H(X){if(se(X),!C.moved){var G=X.clientX-R,Q=X.clientY-V;C.moved=G*G+Q*Q>v}C.event(X).zoom("mouse",n(p(C.that.__zoom,C.mouse[0]=dt(X,_),C.mouse[1]),C.extent,s))}function j(X){P.on("mousemove.zoom mouseup.zoom",null),Po(X.view,C.moved),se(X),C.event(X).end()}}function F(y,...N){if(t.apply(this,arguments)){var _=this.__zoom,C=dt(y.changedTouches?y.changedTouches[0]:y,this),P=_.invert(C),M=_.k*(y.shiftKey?.5:2),R=n(p(b(_,M),C,P),e.apply(this,N),s);se(y),a>0?ct(this).transition().duration(a).call(S,R,C,y):ct(this).call(m.transform,R,C,y)}}function z(y,...N){if(t.apply(this,arguments)){var _=y.touches,C=_.length,P=E(this,N,y.changedTouches.length===C).event(y),M,R,V,H;for(vn(y),R=0;R<C;++R)V=_[R],H=dt(V,this),H=[H,this.__zoom.invert(H),V.identifier],P.touch0?!P.touch1&&P.touch0[2]!==H[2]&&(P.touch1=H,P.taps=0):(P.touch0=H,M=!0,P.taps=1+!!l);l&&(l=clearTimeout(l)),M&&(P.taps<2&&(f=H[0],l=setTimeout(function(){l=null},h)),Be(this),P.start())}}function B(y,...N){if(this.__zooming){var _=E(this,N).event(y),C=y.changedTouches,P=C.length,M,R,V,H;for(se(y),M=0;M<P;++M)R=C[M],V=dt(R,this),_.touch0&&_.touch0[2]===R.identifier?_.touch0[0]=V:_.touch1&&_.touch1[2]===R.identifier&&(_.touch1[0]=V);if(R=_.that.__zoom,_.touch1){var j=_.touch0[0],X=_.touch0[1],G=_.touch1[0],Q=_.touch1[1],K=(K=G[0]-j[0])*K+(K=G[1]-j[1])*K,L=(L=Q[0]-X[0])*L+(L=Q[1]-X[1])*L;R=b(R,Math.sqrt(K/L)),V=[(j[0]+G[0])/2,(j[1]+G[1])/2],H=[(X[0]+Q[0])/2,(X[1]+Q[1])/2]}else if(_.touch0)V=_.touch0[0],H=_.touch0[1];else return;_.zoom("touch",n(p(R,V,H),_.extent,s))}}function D(y,...N){if(this.__zooming){var _=E(this,N).event(y),C=y.changedTouches,P=C.length,M,R;for(vn(y),d&&clearTimeout(d),d=setTimeout(function(){d=null},h),M=0;M<P;++M)R=C[M],_.touch0&&_.touch0[2]===R.identifier?delete _.touch0:_.touch1&&_.touch1[2]===R.identifier&&delete _.touch1;if(_.touch1&&!_.touch0&&(_.touch0=_.touch1,delete _.touch1),_.touch0)_.touch0[1]=this.__zoom.invert(_.touch0[0]);else if(_.end(),_.taps===2&&(R=dt(R,this),Math.hypot(f[0]-R[0],f[1]-R[1])<x)){var V=ct(this).on("dblclick.zoom");V&&V.apply(this,arguments)}}}return m.wheelDelta=function(y){return arguments.length?(r=typeof y=="function"?y:Ie(+y),m):r},m.filter=function(y){return arguments.length?(t=typeof y=="function"?y:Ie(!!y),m):t},m.touchable=function(y){return arguments.length?(o=typeof y=="function"?y:Ie(!!y),m):o},m.extent=function(y){return arguments.length?(e=typeof y=="function"?y:Ie([[+y[0][0],+y[0][1]],[+y[1][0],+y[1][1]]]),m):e},m.scaleExtent=function(y){return arguments.length?(i[0]=+y[0],i[1]=+y[1],m):[i[0],i[1]]},m.translateExtent=function(y){return arguments.length?(s[0][0]=+y[0][0],s[1][0]=+y[1][0],s[0][1]=+y[0][1],s[1][1]=+y[1][1],m):[[s[0][0],s[0][1]],[s[1][0],s[1][1]]]},m.constrain=function(y){return arguments.length?(n=y,m):n},m.duration=function(y){return arguments.length?(a=+y,m):a},m.interpolate=function(y){return arguments.length?(c=y,m):c},m.on=function(){var y=u.on.apply(u,arguments);return y===u?m:y},m.clickDistance=function(y){return arguments.length?(v=(y=+y)*y,m):Math.sqrt(v)},m.tapDistance=function(y){return arguments.length?(x=+y,m):x},m}const mt={error001:(t="react")=>`Seems like you have not used ${t==="svelte"?"SvelteFlowProvider":"ReactFlowProvider"} as an ancestor. Help: https://${t}flow.dev/error#001`,error002:()=>"It looks like you've created a new nodeTypes or edgeTypes object. If this wasn't on purpose please define the nodeTypes/edgeTypes outside of the component or memoize them.",error003:t=>`Node type "${t}" not found. Using fallback type "default".`,error004:()=>"The parent container needs a width and a height to render the graph.",error005:()=>"Only child nodes can use a parent extent.",error006:()=>"Can't create edge. An edge needs a source and a target.",error007:t=>`The old edge with id=${t} does not exist.`,error009:t=>`Marker type "${t}" doesn't exist.`,error008:(t,{id:e,sourceHandle:n,targetHandle:r})=>`Couldn't create edge for ${t} handle id: "${t==="source"?n:r}", edge id: ${e}.`,error010:()=>"Handle: No node id found. Make sure to only use a Handle inside a custom Node.",error011:t=>`Edge type "${t}" not found. Using fallback type "default".`,error012:t=>`Node with id "${t}" does not exist, it may have been removed. This can happen when a node is deleted before the "onNodeClick" handler is called.`,error013:(t="react")=>`It seems that you haven't loaded the styles. Please import '@xyflow/${t}/dist/style.css' or base.css to make sure everything is working properly.`,error014:()=>"useNodeConnections: No node ID found. Call useNodeConnections inside a custom Node or provide a node ID.",error015:()=>"It seems that you are trying to drag a node that is not initialized. Please use onNodesChange as explained in the docs.",error016:t=>`Edge with id "${t}" does not exist, it may have been removed. This can happen when an edge is deleted before the "onEdgeClick" handler is called.`},pe=[[Number.NEGATIVE_INFINITY,Number.NEGATIVE_INFINITY],[Number.POSITIVE_INFINITY,Number.POSITIVE_INFINITY]],Ko=["Enter"," ","Escape"],Zo={"node.a11yDescription.default":"Press enter or space to select a node. Press delete to remove it and escape to cancel.","node.a11yDescription.keyboardDisabled":"Press enter or space to select a node. You can then use the arrow keys to move the node around. Press delete to remove it and escape to cancel.","node.a11yDescription.ariaLiveMessage":({direction:t,x:e,y:n})=>`Moved selected node ${t}. New position, x: ${e}, y: ${n}`,"edge.a11yDescription.default":"Press enter or space to select an edge. You can then press delete to remove it or escape to cancel.","controls.ariaLabel":"Control Panel","controls.zoomIn.ariaLabel":"Zoom In","controls.zoomOut.ariaLabel":"Zoom Out","controls.fitView.ariaLabel":"Fit View","controls.interactive.ariaLabel":"Toggle Interactivity","minimap.ariaLabel":"Mini Map","handle.ariaLabel":"Handle"};var Jt;(function(t){t.Strict="strict",t.Loose="loose"})(Jt||(Jt={}));var Bt;(function(t){t.Free="free",t.Vertical="vertical",t.Horizontal="horizontal"})(Bt||(Bt={}));var me;(function(t){t.Partial="partial",t.Full="full"})(me||(me={}));const Uo={inProgress:!1,isValid:null,from:null,fromHandle:null,fromPosition:null,fromNode:null,to:null,toHandle:null,toPosition:null,toNode:null,pointer:null};var Pt;(function(t){t.Bezier="default",t.Straight="straight",t.Step="step",t.SmoothStep="smoothstep",t.SimpleBezier="simplebezier"})(Pt||(Pt={}));var Ke;(function(t){t.Arrow="arrow",t.ArrowClosed="arrowclosed"})(Ke||(Ke={}));var q;(function(t){t.Left="left",t.Top="top",t.Right="right",t.Bottom="bottom"})(q||(q={}));const $r={[q.Left]:q.Right,[q.Right]:q.Left,[q.Top]:q.Bottom,[q.Bottom]:q.Top};function Qo(t){return t===null?null:t?"valid":"invalid"}const Jo=t=>!!t&&typeof t=="object"&&"id"in t&&"source"in t&&"target"in t,Kl=t=>!!t&&typeof t=="object"&&"id"in t&&"position"in t&&!("source"in t)&&!("target"in t),Gn=t=>!!t&&typeof t=="object"&&"id"in t&&"internals"in t&&!("source"in t)&&!("target"in t),_e=(t,e=[0,0])=>{const{width:n,height:r}=Et(t),o=t.origin??e,i=n*o[0],s=r*o[1];return{x:t.position.x-i,y:t.position.y-s}},Zl=(t,e={nodeOrigin:[0,0]})=>{if(t.length===0)return{x:0,y:0,width:0,height:0};const n=t.reduce((r,o)=>{const i=typeof o=="string";let s=!e.nodeLookup&&!i?o:void 0;e.nodeLookup&&(s=i?e.nodeLookup.get(o):Gn(o)?o:e.nodeLookup.get(o.id));const a=s?Ze(s,e.nodeOrigin):{x:0,y:0,x2:0,y2:0};return sn(r,a)},{x:1/0,y:1/0,x2:-1/0,y2:-1/0});return an(n)},Ee=(t,e={})=>{let n={x:1/0,y:1/0,x2:-1/0,y2:-1/0},r=!1;return t.forEach(o=>{(e.filter===void 0||e.filter(o))&&(n=sn(n,Ze(o)),r=!0)}),r?an(n):{x:0,y:0,width:0,height:0}},Kn=(t,e,[n,r,o]=[0,0,1],i=!1,s=!1)=>{const a=(e.x-n)/o,c=(e.y-r)/o,u=e.width/o,l=e.height/o,f=[];for(const d of t.values()){const{measured:h,selectable:g=!0,hidden:v=!1}=d;if(s&&!g||v)continue;const x=h.width??d.width??d.initialWidth??0,m=h.height??d.height??d.initialHeight??0,{x:b,y:p}=d.internals.positionAbsolute,w=ri(a,c,u,l,b,p,x,m),S=x*m,E=i&&w>0;(!d.internals.handleBounds||E||w>=S||d.dragging)&&f.push(d)}return f},Ul=(t,e)=>{const n=new Set;return t.forEach(r=>{n.add(r.id)}),e.filter(r=>n.has(r.source)||n.has(r.target))};function Ql(t,e){const n=new Map,r=e!=null&&e.nodes?new Set(e.nodes.map(o=>o.id)):null;return t.forEach(o=>{let i;if(e!=null&&e.includeHiddenNodes){const{width:s,height:a}=Et(o);i=s>0&&a>0}else i=!!(o.measured.width&&o.measured.height&&!o.hidden);i&&(!r||r.has(o.id))&&n.set(o.id,o)}),n}async function Jl({nodes:t,width:e,height:n,panZoom:r,minZoom:o,maxZoom:i},s){if(t.size===0)return!0;const a=Ql(t,s),c=Ee(a),u=Un(c,e,n,(s==null?void 0:s.minZoom)??o,(s==null?void 0:s.maxZoom)??i,(s==null?void 0:s.padding)??.1);return await r.setViewport(u,{duration:s==null?void 0:s.duration,ease:s==null?void 0:s.ease,interpolate:s==null?void 0:s.interpolate}),!0}function ti({nodeId:t,nextPosition:e,nodeLookup:n,nodeOrigin:r=[0,0],nodeExtent:o,onError:i}){const s=n.get(t),a=s.parentId?n.get(s.parentId):void 0,{x:c,y:u}=a?a.internals.positionAbsolute:{x:0,y:0},l=s.origin??r;let f=s.extent||o;if(s.extent==="parent"&&!s.expandParent)if(!a)i==null||i("005",mt.error005());else{const h=a.measured.width,g=a.measured.height;h&&g&&(f=[[c,u],[c+h,u+g]])}else a&&Xt(s.extent)&&(f=[[s.extent[0][0]+c,s.extent[0][1]+u],[s.extent[1][0]+c,s.extent[1][1]+u]]);const d=Xt(f)?jt(e,f,s.measured):e;return(s.measured.width===void 0||s.measured.height===void 0)&&(i==null||i("015",mt.error015())),{position:{x:d.x-c+(s.measured.width??0)*l[0],y:d.y-u+(s.measured.height??0)*l[1]},positionAbsolute:d}}async function tf({nodesToRemove:t=[],edgesToRemove:e=[],nodes:n,edges:r,onBeforeDelete:o}){const i=new Set(t.map(d=>d.id)),s=[];for(const d of n){if(d.deletable===!1)continue;const h=i.has(d.id),g=!h&&d.parentId&&s.find(v=>v.id===d.parentId);(h||g)&&s.push(d)}const a=new Set(e.map(d=>d.id)),c=r.filter(d=>d.deletable!==!1),l=Ul(s,c);for(const d of c)a.has(d.id)&&!l.find(g=>g.id===d.id)&&l.push(d);if(!o)return{edges:l,nodes:s};const f=await o({nodes:s,edges:l});return typeof f=="boolean"?f?{edges:l,nodes:s}:{edges:[],nodes:[]}:f}const te=(t,e=0,n=1)=>Math.min(Math.max(t,e),n),jt=(t={x:0,y:0},e,n)=>({x:te(t.x,e[0][0],e[1][0]-((n==null?void 0:n.width)??0)),y:te(t.y,e[0][1],e[1][1]-((n==null?void 0:n.height)??0))});function ei(t,e,n){const{width:r,height:o}=Et(n),{x:i,y:s}=n.internals.positionAbsolute;return jt(t,[[i,s],[i+r,s+o]],e)}const Ir=(t,e,n)=>t<e?te(Math.abs(t-e),1,e)/e:t>n?-te(Math.abs(t-n),1,e)/e:0,Zn=(t,e,n=15,r=40)=>{const o=Ir(t.x,r,e.width-r)*n,i=Ir(t.y,r,e.height-r)*n;return[o,i]},sn=(t,e)=>({x:Math.min(t.x,e.x),y:Math.min(t.y,e.y),x2:Math.max(t.x2,e.x2),y2:Math.max(t.y2,e.y2)}),Dn=({x:t,y:e,width:n,height:r})=>({x:t,y:e,x2:t+n,y2:e+r}),an=({x:t,y:e,x2:n,y2:r})=>({x:t,y:e,width:n-t,height:r-e}),ye=(t,e=[0,0])=>{var o,i;const{x:n,y:r}=Gn(t)?t.internals.positionAbsolute:_e(t,e);return{x:n,y:r,width:((o=t.measured)==null?void 0:o.width)??t.width??t.initialWidth??0,height:((i=t.measured)==null?void 0:i.height)??t.height??t.initialHeight??0}},Ze=(t,e=[0,0])=>{var o,i;const{x:n,y:r}=Gn(t)?t.internals.positionAbsolute:_e(t,e);return{x:n,y:r,x2:n+(((o=t.measured)==null?void 0:o.width)??t.width??t.initialWidth??0),y2:r+(((i=t.measured)==null?void 0:i.height)??t.height??t.initialHeight??0)}},ni=(t,e)=>an(sn(Dn(t),Dn(e))),ri=(t,e,n,r,o,i,s,a)=>{const c=Math.max(0,Math.min(t+n,o+s)-Math.max(t,o)),u=Math.max(0,Math.min(e+r,i+a)-Math.max(e,i));return Math.ceil(c*u)},Ue=(t,e)=>ri(t.x,t.y,t.width,t.height,e.x,e.y,e.width,e.height),Pr=t=>gt(t.width)&>(t.height)&>(t.x)&>(t.y),gt=t=>!isNaN(t)&&isFinite(t),oi=(t,e)=>(n,r)=>{},Se=(t,e=[1,1])=>({x:e[0]*Math.round(t.x/e[0]),y:e[1]*Math.round(t.y/e[1])}),Ne=({x:t,y:e},[n,r,o],i=!1,s=[1,1])=>{const a={x:(t-n)/o,y:(e-r)/o};return i?Se(a,s):a},ee=({x:t,y:e},[n,r,o])=>({x:t*o+n,y:e*o+r});function Wt(t,e){if(typeof t=="number")return Math.floor((e-e/(1+t))*.5);if(typeof t=="string"&&t.endsWith("px")){const n=parseFloat(t);if(!Number.isNaN(n))return Math.floor(n)}if(typeof t=="string"&&t.endsWith("%")){const n=parseFloat(t);if(!Number.isNaN(n))return Math.floor(e*n*.01)}return console.error(`The padding value "${t}" is invalid. Please provide a number or a string with a valid unit (px or %).`),0}function ef(t,e,n){if(typeof t=="string"||typeof t=="number"){const r=Wt(t,n),o=Wt(t,e);return{top:r,right:o,bottom:r,left:o,x:o*2,y:r*2}}if(typeof t=="object"){const r=Wt(t.top??t.y??0,n),o=Wt(t.bottom??t.y??0,n),i=Wt(t.left??t.x??0,e),s=Wt(t.right??t.x??0,e);return{top:r,right:s,bottom:o,left:i,x:i+s,y:r+o}}return{top:0,right:0,bottom:0,left:0,x:0,y:0}}function nf(t,e,n,r,o,i){const{x:s,y:a}=ee(t,[e,n,r]),{x:c,y:u}=ee({x:t.x+t.width,y:t.y+t.height},[e,n,r]),l=o-c,f=i-u;return{left:Math.floor(s),top:Math.floor(a),right:Math.floor(l),bottom:Math.floor(f)}}const Un=(t,e,n,r,o,i)=>{const s=ef(i,e,n),a=(e-s.x)/t.width,c=(n-s.y)/t.height,u=Math.min(a,c),l=te(u,r,o),f=t.x+t.width/2,d=t.y+t.height/2,h=e/2-f*l,g=n/2-d*l,v=nf(t,h,g,l,e,n),x={left:Math.min(v.left-s.left,0),top:Math.min(v.top-s.top,0),right:Math.min(v.right-s.right,0),bottom:Math.min(v.bottom-s.bottom,0)};return{x:h-x.left+x.right,y:g-x.top+x.bottom,zoom:l}},xe=()=>{var t;return typeof navigator<"u"&&((t=navigator==null?void 0:navigator.userAgent)==null?void 0:t.indexOf("Mac"))>=0};function Xt(t){return t!=null&&t!=="parent"}function Et(t){var e,n;return{width:((e=t.measured)==null?void 0:e.width)??t.width??t.initialWidth??0,height:((n=t.measured)==null?void 0:n.height)??t.height??t.initialHeight??0}}function ii(t){var e,n;return(((e=t.measured)==null?void 0:e.width)??t.width??t.initialWidth)!==void 0&&(((n=t.measured)==null?void 0:n.height)??t.height??t.initialHeight)!==void 0}function si(t,e={width:0,height:0},n,r,o){const i={...t},s=r.get(n);if(s){const a=s.origin||o;i.x+=s.internals.positionAbsolute.x-(e.width??0)*a[0],i.y+=s.internals.positionAbsolute.y-(e.height??0)*a[1]}return i}function Tr(t,e){if(t.size!==e.size)return!1;for(const n of t)if(!e.has(n))return!1;return!0}function rf(){let t,e;return{promise:new Promise((r,o)=>{t=r,e=o}),resolve:t,reject:e}}function of(t){return{...Zo,...t||{}}}function le(t,{snapGrid:e=[0,0],snapToGrid:n=!1,transform:r,containerBounds:o}){const{x:i,y:s}=pt(t),a=Ne({x:i-((o==null?void 0:o.left)??0),y:s-((o==null?void 0:o.top)??0)},r),{x:c,y:u}=n?Se(a,e):a;return{xSnapped:c,ySnapped:u,...a}}const Qn=t=>({width:t.offsetWidth,height:t.offsetHeight}),ai=t=>{var e;return((e=t==null?void 0:t.getRootNode)==null?void 0:e.call(t))||(window==null?void 0:window.document)},sf=["INPUT","SELECT","TEXTAREA"];function ci(t){var r,o;const e=((o=(r=t.composedPath)==null?void 0:r.call(t))==null?void 0:o[0])||t.target;return(e==null?void 0:e.nodeType)!==1?!1:sf.includes(e.nodeName)||e.hasAttribute("contenteditable")||!!e.closest(".nokey")}const ui=t=>"clientX"in t,pt=(t,e)=>{var i,s;const n=ui(t),r=n?t.clientX:(i=t.touches)==null?void 0:i[0].clientX,o=n?t.clientY:(s=t.touches)==null?void 0:s[0].clientY;return{x:r-((e==null?void 0:e.left)??0),y:o-((e==null?void 0:e.top)??0)}},zr=(t,e,n,r,o)=>{const i=e.querySelectorAll(`.${t}`);return!i||!i.length?null:Array.from(i).map(s=>{const a=s.getBoundingClientRect();return{id:s.getAttribute("data-handleid"),type:t,nodeId:o,position:s.getAttribute("data-handlepos"),x:(a.left-n.left)/r,y:(a.top-n.top)/r,...Qn(s)}})};function li({sourceX:t,sourceY:e,targetX:n,targetY:r,sourceControlX:o,sourceControlY:i,targetControlX:s,targetControlY:a}){const c=t*.125+o*.375+s*.375+n*.125,u=e*.125+i*.375+a*.375+r*.125,l=Math.abs(c-t),f=Math.abs(u-e);return[c,u,l,f]}function Pe(t,e){return t>=0?.5*t:e*25*Math.sqrt(-t)}function Dr({pos:t,x1:e,y1:n,x2:r,y2:o,c:i}){switch(t){case q.Left:return[e-Pe(e-r,i),n];case q.Right:return[e+Pe(r-e,i),n];case q.Top:return[e,n-Pe(n-o,i)];case q.Bottom:return[e,n+Pe(o-n,i)]}}function fi({sourceX:t,sourceY:e,sourcePosition:n=q.Bottom,targetX:r,targetY:o,targetPosition:i=q.Top,curvature:s=.25}){const[a,c]=Dr({pos:n,x1:t,y1:e,x2:r,y2:o,c:s}),[u,l]=Dr({pos:i,x1:r,y1:o,x2:t,y2:e,c:s}),[f,d,h,g]=li({sourceX:t,sourceY:e,targetX:r,targetY:o,sourceControlX:a,sourceControlY:c,targetControlX:u,targetControlY:l});return[`M${t},${e} C${a},${c} ${u},${l} ${r},${o}`,f,d,h,g]}function di({sourceX:t,sourceY:e,targetX:n,targetY:r}){const o=Math.abs(n-t)/2,i=n<t?n+o:n-o,s=Math.abs(r-e)/2,a=r<e?r+s:r-s;return[i,a,o,s]}function af({sourceNode:t,targetNode:e,selected:n=!1,zIndex:r=0,elevateOnSelect:o=!1,zIndexMode:i="basic"}){if(i==="manual")return r;const s=o&&n?r+1e3:r,a=Math.max(t.parentId||o&&t.selected?t.internals.z:0,e.parentId||o&&e.selected?e.internals.z:0);return s+a}function cf({sourceNode:t,targetNode:e,width:n,height:r,transform:o}){const i=sn(Ze(t),Ze(e));i.x===i.x2&&(i.x2+=1),i.y===i.y2&&(i.y2+=1);const s={x:-o[0]/o[2],y:-o[1]/o[2],width:n/o[2],height:r/o[2]};return Ue(s,an(i))>0}const uf=({source:t,sourceHandle:e,target:n,targetHandle:r})=>`xy-edge__${t}${e||""}-${n}${r||""}`,lf=(t,e)=>e.some(n=>n.source===t.source&&n.target===t.target&&(n.sourceHandle===t.sourceHandle||!n.sourceHandle&&!t.sourceHandle)&&(n.targetHandle===t.targetHandle||!n.targetHandle&&!t.targetHandle)),ff=(t,e,n={})=>{var i;if(!t.source||!t.target)return(i=n.onError)==null||i.call(n,"006",mt.error006()),e;const r=n.getEdgeId||uf;let o;return Jo(t)?o={...t}:o={...t,id:r(t)},lf(o,e)?e:(o.sourceHandle===null&&delete o.sourceHandle,o.targetHandle===null&&delete o.targetHandle,e.concat(o))};function hi({sourceX:t,sourceY:e,targetX:n,targetY:r}){const[o,i,s,a]=di({sourceX:t,sourceY:e,targetX:n,targetY:r});return[`M ${t},${e}L ${n},${r}`,o,i,s,a]}const Lr={[q.Left]:{x:-1,y:0},[q.Right]:{x:1,y:0},[q.Top]:{x:0,y:-1},[q.Bottom]:{x:0,y:1}},df=({source:t,sourcePosition:e=q.Bottom,target:n})=>e===q.Left||e===q.Right?t.x<n.x?{x:1,y:0}:{x:-1,y:0}:t.y<n.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 hf({source:t,sourcePosition:e=q.Bottom,target:n,targetPosition:r=q.Top,center:o,offset:i,stepPosition:s}){const a=Lr[e],c=Lr[r],u={x:t.x+a.x*i,y:t.y+a.y*i},l={x:n.x+c.x*i,y:n.y+c.y*i},f=df({source:u,sourcePosition:e,target:l}),d=f.x!==0?"x":"y",h=f[d];let g=[],v,x;const m={x:0,y:0},b={x:0,y:0},[,,p,w]=di({sourceX:t.x,sourceY:t.y,targetX:n.x,targetY:n.y});if(a[d]*c[d]===-1){d==="x"?(v=o.x??u.x+(l.x-u.x)*s,x=o.y??(u.y+l.y)/2):(v=o.x??(u.x+l.x)/2,x=o.y??u.y+(l.y-u.y)*s);const $=[{x:v,y:u.y},{x:v,y:l.y}],I=[{x:u.x,y:x},{x:l.x,y:x}];a[d]===h?g=d==="x"?$:I:g=d==="x"?I:$}else{const $=[{x:u.x,y:l.y}],I=[{x:l.x,y:u.y}];if(d==="x"?g=a.x===h?I:$:g=a.y===h?$:I,e===r){const y=Math.abs(t[d]-n[d]);if(y<=i){const N=Math.min(i-1,i-y);a[d]===h?m[d]=(u[d]>t[d]?-1:1)*N:b[d]=(l[d]>n[d]?-1:1)*N}}if(e!==r){const y=d==="x"?"y":"x",N=a[d]===c[y],_=u[y]>l[y],C=u[y]<l[y];(a[d]===1&&(!N&&_||N&&C)||a[d]!==1&&(!N&&C||N&&_))&&(g=d==="x"?$:I)}const F={x:u.x+m.x,y:u.y+m.y},z={x:l.x+b.x,y:l.y+b.y},B=Math.max(Math.abs(F.x-g[0].x),Math.abs(z.x-g[0].x)),D=Math.max(Math.abs(F.y-g[0].y),Math.abs(z.y-g[0].y));B>=D?(v=(F.x+z.x)/2,x=g[0].y):(v=g[0].x,x=(F.y+z.y)/2)}const S={x:u.x+m.x,y:u.y+m.y},E={x:l.x+b.x,y:l.y+b.y};return[[t,...S.x!==g[0].x||S.y!==g[0].y?[S]:[],...g,...E.x!==g[g.length-1].x||E.y!==g[g.length-1].y?[E]:[],n],v,x,p,w]}function gf(t,e,n,r){const o=Math.min(Hr(t,e)/2,Hr(e,n)/2,r),{x:i,y:s}=e;if(t.x===i&&i===n.x||t.y===s&&s===n.y)return`L${i} ${s}`;if(t.y===s){const u=t.x<n.x?-1:1,l=t.y<n.y?1:-1;return`L ${i+o*u},${s}Q ${i},${s} ${i},${s+o*l}`}const a=t.x<n.x?1:-1,c=t.y<n.y?-1:1;return`L ${i},${s+o*c}Q ${i},${s} ${i+o*a},${s}`}function Ln({sourceX:t,sourceY:e,sourcePosition:n=q.Bottom,targetX:r,targetY:o,targetPosition:i=q.Top,borderRadius:s=5,centerX:a,centerY:c,offset:u=20,stepPosition:l=.5}){const[f,d,h,g,v]=hf({source:{x:t,y:e},sourcePosition:n,target:{x:r,y:o},targetPosition:i,center:{x:a,y:c},offset:u,stepPosition:l});let x=`M${f[0].x} ${f[0].y}`;for(let m=1;m<f.length-1;m++)x+=gf(f[m-1],f[m],f[m+1],s);return x+=`L${f[f.length-1].x} ${f[f.length-1].y}`,[x,d,h,g,v]}function Rr(t){var e;return t&&!!(t.internals.handleBounds||(e=t.handles)!=null&&e.length)&&!!(t.measured.width||t.width||t.initialWidth)}function pf(t){var f;const{sourceNode:e,targetNode:n}=t;if(!Rr(e)||!Rr(n))return null;const r=e.internals.handleBounds||Vr(e.handles),o=n.internals.handleBounds||Vr(n.handles),i=Br((r==null?void 0:r.source)??[],t.sourceHandle),s=Br(t.connectionMode===Jt.Strict?(o==null?void 0:o.target)??[]:((o==null?void 0:o.target)??[]).concat((o==null?void 0:o.source)??[]),t.targetHandle);if(!i||!s)return(f=t.onError)==null||f.call(t,"008",mt.error008(i?"target":"source",{id:t.id,sourceHandle:t.sourceHandle,targetHandle:t.targetHandle})),null;const a=(i==null?void 0:i.position)||q.Bottom,c=(s==null?void 0:s.position)||q.Top,u=Yt(e,i,a),l=Yt(n,s,c);return{sourceX:u.x,sourceY:u.y,targetX:l.x,targetY:l.y,sourcePosition:a,targetPosition:c}}function Vr(t){if(!t)return null;const e=[],n=[];for(const r of t)r.width=r.width??1,r.height=r.height??1,r.type==="source"?e.push(r):r.type==="target"&&n.push(r);return{source:e,target:n}}function Yt(t,e,n=q.Left,r=!1){const o=((e==null?void 0:e.x)??0)+t.internals.positionAbsolute.x,i=((e==null?void 0:e.y)??0)+t.internals.positionAbsolute.y,{width:s,height:a}=e??Et(t);if(r)return{x:o+s/2,y:i+a/2};switch((e==null?void 0:e.position)??n){case q.Top:return{x:o+s/2,y:i};case q.Right:return{x:o+s,y:i+a/2};case q.Bottom:return{x:o+s/2,y:i+a};case q.Left:return{x:o,y:i+a/2}}}function Br(t,e){return t&&(e?t.find(n=>n.id===e):t[0])||null}function Hn(t,e){return t?typeof t=="string"?t:`${e?`${e}__`:""}${Object.keys(t).sort().map(r=>`${r}=${t[r]}`).join("&")}`:""}function mf(t,{id:e,defaultColor:n,defaultMarkerStart:r,defaultMarkerEnd:o}){const i=new Set;return t.reduce((s,a)=>([a.markerStart||r,a.markerEnd||o].forEach(c=>{if(c&&typeof c=="object"){const u=Hn(c,e);i.has(u)||(s.push({id:u,color:c.color||n,...c}),i.add(u))}}),s),[]).sort((s,a)=>s.id.localeCompare(a.id))}const gi=1e3,yf=10,Jn={nodeOrigin:[0,0],nodeExtent:pe,elevateNodesOnSelect:!0,zIndexMode:"basic",defaults:{}},xf={...Jn,checkEquality:!0};function tr(t,e){const n={...t};for(const r in e)e[r]!==void 0&&(n[r]=e[r]);return n}function wf(t,e,n){const r=tr(Jn,n);for(const o of t.values())if(o.parentId)nr(o,t,e,r);else{const i=_e(o,r.nodeOrigin),s=Xt(o.extent)?o.extent:r.nodeExtent,a=jt(i,s,Et(o));o.internals.positionAbsolute=a}}function vf(t,e){if(!t.handles)return t.measured?e==null?void 0:e.internals.handleBounds:void 0;const n=[],r=[];for(const o of t.handles){const i={id:o.id,width:o.width??1,height:o.height??1,nodeId:t.id,x:o.x,y:o.y,position:o.position,type:o.type};o.type==="source"?n.push(i):o.type==="target"&&r.push(i)}return{source:n,target:r}}function er(t){return t==="manual"}function Rn(t,e,n,r={}){var l,f;const o=tr(xf,r),i={i:0},s=new Map(e),a=o!=null&&o.elevateNodesOnSelect&&!er(o.zIndexMode)?gi:0;let c=t.length>0,u=!1;e.clear(),n.clear();for(const d of t){let h=s.get(d.id);if(o.checkEquality&&d===(h==null?void 0:h.internals.userNode))e.set(d.id,h);else{const g=_e(d,o.nodeOrigin),v=Xt(d.extent)?d.extent:o.nodeExtent,x=jt(g,v,Et(d));h={...o.defaults,...d,measured:{width:(l=d.measured)==null?void 0:l.width,height:(f=d.measured)==null?void 0:f.height},internals:{positionAbsolute:x,handleBounds:vf(d,h),z:pi(d,a,o.zIndexMode),userNode:d}},e.set(d.id,h)}(h.measured===void 0||h.measured.width===void 0||h.measured.height===void 0)&&!h.hidden&&(c=!1),d.parentId&&nr(h,e,n,r,i),u||(u=d.selected??!1)}return{nodesInitialized:c,hasSelectedNodes:u}}function bf(t,e){if(!t.parentId)return;const n=e.get(t.parentId);n?n.set(t.id,t):e.set(t.parentId,new Map([[t.id,t]]))}function nr(t,e,n,r,o){const{elevateNodesOnSelect:i,nodeOrigin:s,nodeExtent:a,zIndexMode:c}=tr(Jn,r),u=t.parentId,l=e.get(u);if(!l){console.warn(`Parent node ${u} not found. Please make sure that parent nodes are in front of their child nodes in the nodes array.`);return}bf(t,n),o&&!l.parentId&&l.internals.rootParentIndex===void 0&&c==="auto"&&(l.internals.rootParentIndex=++o.i,l.internals.z=l.internals.z+o.i*yf),o&&l.internals.rootParentIndex!==void 0&&(o.i=l.internals.rootParentIndex);const f=i&&!er(c)?gi:0,{x:d,y:h,z:g}=_f(t,l,s,a,f,c),{positionAbsolute:v}=t.internals,x=d!==v.x||h!==v.y;(x||g!==t.internals.z)&&e.set(t.id,{...t,internals:{...t.internals,positionAbsolute:x?{x:d,y:h}:v,z:g}})}function pi(t,e,n){const r=gt(t.zIndex)?t.zIndex:0;return er(n)?r:r+(t.selected?e:0)}function _f(t,e,n,r,o,i){const{x:s,y:a}=e.internals.positionAbsolute,c=Et(t),u=_e(t,n),l=Xt(t.extent)?jt(u,t.extent,c):u;let f=jt({x:s+l.x,y:a+l.y},r,c);t.extent==="parent"&&(f=ei(f,c,e));const d=pi(t,o,i),h=e.internals.z??0;return{x:f.x,y:f.y,z:h>=d?h+1:d}}function rr(t,e,n,r=[0,0]){var s;const o=[],i=new Map;for(const a of t){const c=e.get(a.parentId);if(!c)continue;const u=((s=i.get(a.parentId))==null?void 0:s.expandedRect)??ye(c),l=ni(u,a.rect);i.set(a.parentId,{expandedRect:l,parent:c})}return i.size>0&&i.forEach(({expandedRect:a,parent:c},u)=>{var p;const l=c.internals.positionAbsolute,f=Et(c),d=c.origin??r,h=a.x<l.x?Math.round(Math.abs(l.x-a.x)):0,g=a.y<l.y?Math.round(Math.abs(l.y-a.y)):0,v=Math.max(f.width,Math.round(a.width)),x=Math.max(f.height,Math.round(a.height)),m=(v-f.width)*d[0],b=(x-f.height)*d[1];(h>0||g>0||m||b)&&(o.push({id:u,type:"position",position:{x:c.position.x-h+m,y:c.position.y-g+b}}),(p=n.get(u))==null||p.forEach(w=>{t.some(S=>S.id===w.id)||o.push({id:w.id,type:"position",position:{x:w.position.x+h,y:w.position.y+g}})})),(f.width<a.width||f.height<a.height||h||g)&&o.push({id:u,type:"dimensions",setAttributes:!0,dimensions:{width:v+(h?d[0]*h-m:0),height:x+(g?d[1]*g-b:0)}})}),o}function Ef(t,e,n,r,o,i,s){const a=r==null?void 0:r.querySelector(".xyflow__viewport");let c=!1;if(!a)return{changes:[],updatedInternals:c};const u=[],l=window.getComputedStyle(a),{m22:f}=new window.DOMMatrixReadOnly(l.transform),d=[];for(const h of t.values()){const g=e.get(h.id);if(!g)continue;if(g.hidden){e.set(g.id,{...g,internals:{...g.internals,handleBounds:void 0}}),c=!0;continue}const v=Qn(h.nodeElement),x=g.measured.width!==v.width||g.measured.height!==v.height;if(!!(v.width&&v.height&&(x||!g.internals.handleBounds||h.force))){const b=h.nodeElement.getBoundingClientRect(),p=Xt(g.extent)?g.extent:i;let{positionAbsolute:w}=g.internals;if(g.parentId&&g.extent==="parent"){const E=e.get(g.parentId);E&&(w=ei(w,v,E))}else p&&(w=jt(w,p,v));const S={...g,measured:v,internals:{...g.internals,positionAbsolute:w,handleBounds:{source:zr("source",h.nodeElement,b,f,g.id),target:zr("target",h.nodeElement,b,f,g.id)}}};e.set(g.id,S),g.parentId&&nr(S,e,n,{nodeOrigin:o,zIndexMode:s}),c=!0,x&&(u.push({id:g.id,type:"dimensions",dimensions:v}),g.expandParent&&g.parentId&&d.push({id:g.id,parentId:g.parentId,rect:ye(S,o)}))}}if(d.length>0){const h=rr(d,e,n,o);u.push(...h)}return{changes:u,updatedInternals:c}}async function Sf({delta:t,panZoom:e,transform:n,translateExtent:r,width:o,height:i}){if(!e||!t.x&&!t.y)return!1;const s=await e.setViewportConstrained({x:n[0]+t.x,y:n[1]+t.y,zoom:n[2]},[[0,0],[o,i]],r);return!!s&&(s.x!==n[0]||s.y!==n[1]||s.k!==n[2])}function Fr(t,e,n,r,o,i){let s=o;const a=r.get(s)||new Map;r.set(s,a.set(n,e)),s=`${o}-${t}`;const c=r.get(s)||new Map;if(r.set(s,c.set(n,e)),i){s=`${o}-${t}-${i}`;const u=r.get(s)||new Map;r.set(s,u.set(n,e))}}function mi(t,e,n){t.clear(),e.clear();for(const r of n){const{source:o,target:i,sourceHandle:s=null,targetHandle:a=null}=r,c={edgeId:r.id,source:o,target:i,sourceHandle:s,targetHandle:a},u=`${o}-${s}--${i}-${a}`,l=`${i}-${a}--${o}-${s}`;Fr("source",c,l,t,o,s),Fr("target",c,u,t,i,a),e.set(r.id,r)}}function yi(t,e){if(!t.parentId)return!1;const n=e.get(t.parentId);return n?n.selected?!0:yi(n,e):!1}function Or(t,e,n){var o;let r=t;do{if((o=r==null?void 0:r.matches)!=null&&o.call(r,e))return!0;if(r===n)return!1;r=r==null?void 0:r.parentElement}while(r);return!1}function Nf(t,e,n,r){const o=new Map;for(const[i,s]of t)if((s.selected||s.id===r)&&(!s.parentId||!yi(s,t))&&(s.draggable||e&&typeof s.draggable>"u")){const a=t.get(i);a&&o.set(i,{id:i,position:a.position||{x:0,y:0},distance:{x:n.x-a.internals.positionAbsolute.x,y:n.y-a.internals.positionAbsolute.y},extent:a.extent,parentId:a.parentId,origin:a.origin,expandParent:a.expandParent,internals:{positionAbsolute:a.internals.positionAbsolute||{x:0,y:0}},measured:{width:a.measured.width??0,height:a.measured.height??0}})}return o}function bn({nodeId:t,dragItems:e,nodeLookup:n,dragging:r=!0}){var s,a,c;const o=[];for(const[u,l]of e){const f=(s=n.get(u))==null?void 0:s.internals.userNode;f&&o.push({...f,position:l.position,dragging:r})}if(!t)return[o[0],o];const i=(a=n.get(t))==null?void 0:a.internals.userNode;return[i?{...i,position:((c=e.get(t))==null?void 0:c.position)||i.position,dragging:r}:o[0],o]}function Mf({dragItems:t,snapGrid:e,x:n,y:r}){const o=t.values().next().value;if(!o)return null;const i={x:n-o.distance.x,y:r-o.distance.y},s=Se(i,e);return{x:s.x-i.x,y:s.y-i.y}}function Cf({onNodeMouseDown:t,getStoreItems:e,onDragStart:n,onDrag:r,onDragStop:o}){let i={x:null,y:null},s=0,a=new Map,c=!1,u={x:0,y:0},l=null,f=!1,d=null,h=!1,g=!1,v=null;function x({noDragClassName:b,handleSelector:p,domNode:w,isSelectable:S,nodeId:E,nodeClickDistance:k=0}){d=ct(w);function $({x:B,y:D}){const{nodeLookup:y,nodeExtent:N,snapGrid:_,snapToGrid:C,nodeOrigin:P,onNodeDrag:M,onSelectionDrag:R,onError:V,updateNodePositions:H}=e();i={x:B,y:D};let j=!1;const X=a.size>1,G=X&&N?Dn(Ee(a)):null,Q=X&&C?Mf({dragItems:a,snapGrid:_,x:B,y:D}):null;for(const[K,L]of a){if(!y.has(K))continue;let O={x:B-L.distance.x,y:D-L.distance.y};C&&(O=Q?{x:Math.round(O.x+Q.x),y:Math.round(O.y+Q.y)}:Se(O,_));let U=null;if(X&&N&&!L.extent&&G){const{positionAbsolute:Y}=L.internals,J=Y.x-G.x+N[0][0],et=Y.x+L.measured.width-G.x2+N[1][0],nt=Y.y-G.y+N[0][1],it=Y.y+L.measured.height-G.y2+N[1][1];U=[[J,nt],[et,it]]}const{position:Z,positionAbsolute:W}=ti({nodeId:K,nextPosition:O,nodeLookup:y,nodeExtent:U||N,nodeOrigin:P,onError:V});j=j||L.position.x!==Z.x||L.position.y!==Z.y,L.position=Z,L.internals.positionAbsolute=W}if(g=g||j,!!j&&(H(a,!0),v&&(r||M||!E&&R))){const[K,L]=bn({nodeId:E,dragItems:a,nodeLookup:y});r==null||r(v,a,K,L),M==null||M(v,K,L),E||R==null||R(v,L)}}async function I(){if(!l)return;const{transform:B,panBy:D,autoPanSpeed:y,autoPanOnNodeDrag:N}=e();if(!N){c=!1,cancelAnimationFrame(s);return}const[_,C]=Zn(u,l,y);(_!==0||C!==0)&&(i.x=(i.x??0)-_/B[2],i.y=(i.y??0)-C/B[2],await D({x:_,y:C})&&$(i)),s=requestAnimationFrame(I)}function F(B){var X;const{nodeLookup:D,multiSelectionActive:y,nodesDraggable:N,transform:_,snapGrid:C,snapToGrid:P,selectNodesOnDrag:M,onNodeDragStart:R,onSelectionDragStart:V,unselectNodesAndEdges:H}=e();f=!0,(!M||!S)&&!y&&E&&((X=D.get(E))!=null&&X.selected||H()),S&&M&&E&&(t==null||t(E));const j=le(B.sourceEvent,{transform:_,snapGrid:C,snapToGrid:P,containerBounds:l});if(i=j,a=Nf(D,N,j,E),a.size>0&&(n||R||!E&&V)){const[G,Q]=bn({nodeId:E,dragItems:a,nodeLookup:D});n==null||n(B.sourceEvent,a,G,Q),R==null||R(B.sourceEvent,G,Q),E||V==null||V(B.sourceEvent,Q)}}const z=To().clickDistance(k).on("start",B=>{const{domNode:D,nodeDragThreshold:y,transform:N,snapGrid:_,snapToGrid:C}=e();l=(D==null?void 0:D.getBoundingClientRect())||null,h=!1,g=!1,v=B.sourceEvent,y===0&&F(B),i=le(B.sourceEvent,{transform:N,snapGrid:_,snapToGrid:C,containerBounds:l}),u=pt(B.sourceEvent,l)}).on("drag",B=>{const{autoPanOnNodeDrag:D,transform:y,snapGrid:N,snapToGrid:_,nodeDragThreshold:C,nodeLookup:P}=e(),M=le(B.sourceEvent,{transform:y,snapGrid:N,snapToGrid:_,containerBounds:l});if(v=B.sourceEvent,(B.sourceEvent.type==="touchmove"&&B.sourceEvent.touches.length>1||E&&!P.has(E))&&(h=!0),!h){if(!c&&D&&f&&(c=!0,I()),!f){const R=pt(B.sourceEvent,l),V=R.x-u.x,H=R.y-u.y;Math.sqrt(V*V+H*H)>C&&F(B)}(i.x!==M.xSnapped||i.y!==M.ySnapped)&&a&&f&&(u=pt(B.sourceEvent,l),$(M))}}).on("end",B=>{if(!f||h){h&&a.size>0&&e().updateNodePositions(a,!1);return}if(c=!1,f=!1,cancelAnimationFrame(s),a.size>0){const{nodeLookup:D,updateNodePositions:y,onNodeDragStop:N,onSelectionDragStop:_}=e();if(g&&(y(a,!1),g=!1),o||N||!E&&_){const[C,P]=bn({nodeId:E,dragItems:a,nodeLookup:D,dragging:!1});o==null||o(B.sourceEvent,a,C,P),N==null||N(B.sourceEvent,C,P),E||_==null||_(B.sourceEvent,P)}}}).filter(B=>{const D=B.target;return!B.button&&(!b||!Or(D,`.${b}`,w))&&(!p||Or(D,p,w))});d.call(z)}function m(){d==null||d.on(".drag",null)}return{update:x,destroy:m}}function kf(t,e,n){const r=[],o={x:t.x-n,y:t.y-n,width:n*2,height:n*2};for(const i of e.values())Ue(o,ye(i))>0&&r.push(i);return r}const Af=250;function $f(t,e,n,r){var a,c;let o=[],i=1/0;const s=kf(t,n,e+Af);for(const u of s){const l=[...((a=u.internals.handleBounds)==null?void 0:a.source)??[],...((c=u.internals.handleBounds)==null?void 0:c.target)??[]];for(const f of l){if(r.nodeId===f.nodeId&&r.type===f.type&&r.id===f.id)continue;const{x:d,y:h}=Yt(u,f,f.position,!0),g=Math.sqrt(Math.pow(d-t.x,2)+Math.pow(h-t.y,2));g>e||(g<i?(o=[{...f,x:d,y:h}],i=g):g===i&&o.push({...f,x:d,y:h}))}}if(!o.length)return null;if(o.length>1){const u=r.type==="source"?"target":"source";return o.find(l=>l.type===u)??o[0]}return o[0]}function xi(t,e,n,r,o,i=!1){var u,l,f;const s=r.get(t);if(!s)return null;const a=o==="strict"?(u=s.internals.handleBounds)==null?void 0:u[e]:[...((l=s.internals.handleBounds)==null?void 0:l.source)??[],...((f=s.internals.handleBounds)==null?void 0:f.target)??[]],c=(n?a==null?void 0:a.find(d=>d.id===n):a==null?void 0:a[0])??null;return c&&i?{...c,...Yt(s,c,c.position,!0)}:c}function wi(t,e){return t||(e!=null&&e.classList.contains("target")?"target":e!=null&&e.classList.contains("source")?"source":null)}function If(t,e){let n=null;return e?n=!0:t&&!e&&(n=!1),n}const vi=()=>!0;function Pf(t,{connectionMode:e,connectionRadius:n,handleId:r,nodeId:o,edgeUpdaterType:i,isTarget:s,domNode:a,nodeLookup:c,lib:u,autoPanOnConnect:l,flowId:f,panBy:d,cancelConnection:h,onConnectStart:g,onConnect:v,onConnectEnd:x,isValidConnection:m=vi,onReconnectEnd:b,updateConnection:p,getTransform:w,getFromHandle:S,autoPanSpeed:E,dragThreshold:k=1,handleDomNode:$}){const I=ai(t.target);let F=0,z;const{x:B,y:D}=pt(t),y=wi(i,$),N=a==null?void 0:a.getBoundingClientRect();let _=!1;if(!N||!y)return;const C=xi(o,y,r,c,e);if(!C)return;let P=pt(t,N),M=!1,R=null,V=!1,H=null;function j(){if(!l||!N)return;const[Z,W]=Zn(P,N,E);d({x:Z,y:W}),F=requestAnimationFrame(j)}const X={...C,nodeId:o,type:y,position:C.position},G=c.get(o);let K={inProgress:!0,isValid:null,from:Yt(G,X,q.Left,!0),fromHandle:X,fromPosition:X.position,fromNode:G,to:P,toHandle:null,toPosition:$r[X.position],toNode:null,pointer:P};function L(){_=!0,p(K),g==null||g(t,{nodeId:o,handleId:r,handleType:y})}k===0&&L();function O(Z){if(!_){const{x:it,y:lt}=pt(Z),xt=it-B,wt=lt-D;if(!(xt*xt+wt*wt>k*k))return;L()}if(!S()||!X){U(Z);return}const W=w();P=pt(Z,N),z=$f(Ne(P,W,!1,[1,1]),n,c,X),M||(j(),M=!0);const Y=bi(Z,{handle:z,connectionMode:e,fromNodeId:o,fromHandleId:r,fromType:s?"target":"source",isValidConnection:m,doc:I,lib:u,flowId:f,nodeLookup:c});H=Y.handleDomNode,R=Y.connection,V=If(!!z,Y.isValid);const J=c.get(o),et=J?Yt(J,X,q.Left,!0):K.from,nt={...K,from:et,isValid:V,to:Y.toHandle&&V?ee({x:Y.toHandle.x,y:Y.toHandle.y},W):P,toHandle:Y.toHandle,toPosition:V&&Y.toHandle?Y.toHandle.position:$r[X.position],toNode:Y.toHandle?c.get(Y.toHandle.nodeId):null,pointer:P};p(nt),K=nt}function U(Z){if(!("touches"in Z&&Z.touches.length>0)){if(_){(z||H)&&R&&V&&(v==null||v(R));const{inProgress:W,...Y}=K,J={...Y,toPosition:K.toHandle?K.toPosition:null};x==null||x(Z,J),i&&(b==null||b(Z,J))}h(),cancelAnimationFrame(F),M=!1,V=!1,R=null,H=null,I.removeEventListener("mousemove",O),I.removeEventListener("mouseup",U),I.removeEventListener("touchmove",O),I.removeEventListener("touchend",U)}}I.addEventListener("mousemove",O),I.addEventListener("mouseup",U),I.addEventListener("touchmove",O),I.addEventListener("touchend",U)}function bi(t,{handle:e,connectionMode:n,fromNodeId:r,fromHandleId:o,fromType:i,doc:s,lib:a,flowId:c,isValidConnection:u=vi,nodeLookup:l}){const f=i==="target",d=e?s.querySelector(`.${a}-flow__handle[data-id="${c}-${e==null?void 0:e.nodeId}-${e==null?void 0:e.id}-${e==null?void 0:e.type}"]`):null,{x:h,y:g}=pt(t),v=s.elementFromPoint(h,g),x=v!=null&&v.classList.contains(`${a}-flow__handle`)?v:d,m={handleDomNode:x,isValid:!1,connection:null,toHandle:null};if(x){const b=wi(void 0,x),p=x.getAttribute("data-nodeid"),w=x.getAttribute("data-handleid"),S=x.classList.contains("connectable"),E=x.classList.contains("connectableend");if(!p||!b)return m;const k={source:f?p:r,sourceHandle:f?w:o,target:f?r:p,targetHandle:f?o:w};m.connection=k;const I=S&&E&&(n===Jt.Strict?f&&b==="source"||!f&&b==="target":p!==r||w!==o);m.isValid=I&&u(k),m.toHandle=xi(p,b,w,l,n,!0)}return m}const Vn={onPointerDown:Pf,isValid:bi};function Tf({domNode:t,panZoom:e,getTransform:n,getViewScale:r}){const o=ct(t);function i({translateExtent:a,width:c,height:u,zoomStep:l=1,pannable:f=!0,zoomable:d=!0,inversePan:h=!1}){const g=p=>{if(p.sourceEvent.type!=="wheel"||!e)return;const w=n(),S=p.sourceEvent.ctrlKey&&xe()?10:1,E=-p.sourceEvent.deltaY*(p.sourceEvent.deltaMode===1?.05:p.sourceEvent.deltaMode?1:.002)*l,k=w[2]*Math.pow(2,E*S);e.scaleTo(k)};let v=[0,0];const x=p=>{(p.sourceEvent.type==="mousedown"||p.sourceEvent.type==="touchstart")&&(v=[p.sourceEvent.clientX??p.sourceEvent.touches[0].clientX,p.sourceEvent.clientY??p.sourceEvent.touches[0].clientY])},m=p=>{const w=n();if(p.sourceEvent.type!=="mousemove"&&p.sourceEvent.type!=="touchmove"||!e)return;const S=[p.sourceEvent.clientX??p.sourceEvent.touches[0].clientX,p.sourceEvent.clientY??p.sourceEvent.touches[0].clientY],E=[S[0]-v[0],S[1]-v[1]];v=S;const k=r()*Math.max(w[2],Math.log(w[2]))*(h?-1:1),$={x:w[0]-E[0]*k,y:w[1]-E[1]*k},I=[[0,0],[c,u]];e.setViewportConstrained({x:$.x,y:$.y,zoom:w[2]},I,a)},b=Go().on("start",x).on("zoom",f?m:null).on("zoom.wheel",d?g:null);o.call(b,{})}function s(){o.on("zoom",null)}return{update:i,destroy:s,pointer:dt}}const cn=t=>({x:t.x,y:t.y,zoom:t.k}),_n=({x:t,y:e,zoom:n})=>on.translate(t,e).scale(n),qt=(t,e)=>t.target.closest(`.${e}`),_i=(t,e)=>e===2&&Array.isArray(t)&&t.includes(2),zf=t=>((t*=2)<=1?t*t*t:(t-=2)*t*t+2)/2,En=(t,e=0,n=zf,r=()=>{})=>{const o=typeof e=="number"&&e>0;return o||r(),o?t.transition().duration(e).ease(n).on("end",r):t},Ei=t=>{const e=t.ctrlKey&&xe()?10:1;return-t.deltaY*(t.deltaMode===1?.05:t.deltaMode?1:.002)*e};function Df({zoomPanValues:t,noWheelClassName:e,d3Selection:n,d3Zoom:r,panOnScrollMode:o,panOnScrollSpeed:i,zoomOnPinch:s,onPanZoomStart:a,onPanZoom:c,onPanZoomEnd:u}){return l=>{if(qt(l,e))return l.ctrlKey&&l.preventDefault(),!1;l.preventDefault(),l.stopImmediatePropagation();const f=n.property("__zoom").k||1;if(l.ctrlKey&&s){const x=dt(l),m=Ei(l),b=f*Math.pow(2,m);r.scaleTo(n,b,x,l);return}const d=l.deltaMode===1?20:1;let h=o===Bt.Vertical?0:l.deltaX*d,g=o===Bt.Horizontal?0:l.deltaY*d;!xe()&&l.shiftKey&&o!==Bt.Vertical&&(h=l.deltaY*d,g=0),r.translateBy(n,-(h/f)*i,-(g/f)*i,{internal:!0});const v=cn(n.property("__zoom"));clearTimeout(t.panScrollTimeout),t.isPanScrolling?c==null||c(l,v):(t.isPanScrolling=!0,a==null||a(l,v)),t.panScrollTimeout=setTimeout(()=>{u==null||u(l,v),t.isPanScrolling=!1},150)}}function Lf({noWheelClassName:t,preventScrolling:e,d3ZoomHandler:n}){return function(r,o){const i=r.type==="wheel",s=!e&&i&&!r.ctrlKey,a=qt(r,t);if(r.ctrlKey&&i&&a&&r.preventDefault(),s||a)return null;r.preventDefault(),n.call(this,r,o)}}function Hf({zoomPanValues:t,onDraggingChange:e,onPanZoomStart:n}){return r=>{var i,s,a;if((i=r.sourceEvent)!=null&&i.internal)return;const o=cn(r.transform);t.mouseButton=((s=r.sourceEvent)==null?void 0:s.button)||0,t.isZoomingOrPanning=!0,t.prevViewport=o,((a=r.sourceEvent)==null?void 0:a.type)==="mousedown"&&e(!0),n&&(n==null||n(r.sourceEvent,o))}}function Rf({zoomPanValues:t,panOnDrag:e,onPaneContextMenu:n,onTransformChange:r,onPanZoom:o}){return i=>{var s,a;t.usedRightMouseButton=!!(n&&_i(e,t.mouseButton??0)),(s=i.sourceEvent)!=null&&s.sync||r([i.transform.x,i.transform.y,i.transform.k]),o&&!((a=i.sourceEvent)!=null&&a.internal)&&(o==null||o(i.sourceEvent,cn(i.transform)))}}function Vf({zoomPanValues:t,panOnDrag:e,panOnScroll:n,onDraggingChange:r,onPanZoomEnd:o,onPaneContextMenu:i}){return s=>{var a;if(!((a=s.sourceEvent)!=null&&a.internal)&&(t.isZoomingOrPanning=!1,i&&_i(e,t.mouseButton??0)&&!t.usedRightMouseButton&&s.sourceEvent&&i(s.sourceEvent),t.usedRightMouseButton=!1,r(!1),o)){const c=cn(s.transform);t.prevViewport=c,clearTimeout(t.timerId),t.timerId=setTimeout(()=>{o==null||o(s.sourceEvent,c)},n?150:0)}}}function Bf({zoomActivationKeyPressed:t,zoomOnScroll:e,zoomOnPinch:n,panOnDrag:r,panOnScroll:o,zoomOnDoubleClick:i,userSelectionActive:s,noWheelClassName:a,noPanClassName:c,lib:u,connectionInProgress:l}){return f=>{var x;const d=t||e,h=n&&f.ctrlKey,g=f.type==="wheel";if(f.button===1&&f.type==="mousedown"&&(qt(f,`${u}-flow__node`)||qt(f,`${u}-flow__edge`)))return!0;if(!r&&!d&&!o&&!i&&!n||s||l&&!g||qt(f,a)&&g||qt(f,c)&&(!g||o&&g&&!t)||!n&&f.ctrlKey&&g)return!1;if(!n&&f.type==="touchstart"&&((x=f.touches)==null?void 0:x.length)>1)return f.preventDefault(),!1;if(!d&&!o&&!h&&g||!r&&(f.type==="mousedown"||f.type==="touchstart")||Array.isArray(r)&&!r.includes(f.button)&&f.type==="mousedown")return!1;const v=Array.isArray(r)&&r.includes(f.button)||!f.button||f.button<=1;return(!f.ctrlKey||g)&&v}}function Ff({domNode:t,minZoom:e,maxZoom:n,translateExtent:r,viewport:o,onPanZoom:i,onPanZoomStart:s,onPanZoomEnd:a,onDraggingChange:c}){const u={isZoomingOrPanning:!1,usedRightMouseButton:!1,prevViewport:{},mouseButton:0,timerId:void 0,panScrollTimeout:void 0,isPanScrolling:!1},l=t.getBoundingClientRect();let f=[[0,0],[l.width,l.height]];const d=typeof ResizeObserver<"u"?new ResizeObserver(D=>{const y=D[0];y&&(f=[[0,0],[y.contentRect.width,y.contentRect.height]])}):null;d==null||d.observe(t);const h=Go().extent(()=>f).scaleExtent([e,n]).translateExtent(r),g=ct(t).call(h);w({x:o.x,y:o.y,zoom:te(o.zoom,e,n)},[[0,0],[l.width,l.height]],r);const v=g.on("wheel.zoom"),x=g.on("dblclick.zoom");h.wheelDelta(Ei);async function m(D,y){return g?new Promise(N=>{h==null||h.interpolate((y==null?void 0:y.interpolate)==="linear"?ue:He).transform(En(g,y==null?void 0:y.duration,y==null?void 0:y.ease,()=>N(!0)),D)}):!1}function b({noWheelClassName:D,noPanClassName:y,onPaneContextMenu:N,userSelectionActive:_,panOnScroll:C,panOnDrag:P,panOnScrollMode:M,panOnScrollSpeed:R,preventScrolling:V,zoomOnPinch:H,zoomOnScroll:j,zoomOnDoubleClick:X,zoomActivationKeyPressed:G,lib:Q,onTransformChange:K,connectionInProgress:L,paneClickDistance:O,selectionOnDrag:U}){_&&!u.isZoomingOrPanning&&p();const Z=C&&!G&&!_;h.clickDistance(U?1/0:!gt(O)||O<0?0:O);const W=Z?Df({zoomPanValues:u,noWheelClassName:D,d3Selection:g,d3Zoom:h,panOnScrollMode:M,panOnScrollSpeed:R,zoomOnPinch:H,onPanZoomStart:s,onPanZoom:i,onPanZoomEnd:a}):Lf({noWheelClassName:D,preventScrolling:V,d3ZoomHandler:v});g.on("wheel.zoom",W,{passive:!1});const Y=Hf({zoomPanValues:u,onDraggingChange:c,onPanZoomStart:s});h.on("start",Y);const J=Rf({zoomPanValues:u,panOnDrag:P,onPaneContextMenu:!!N,onPanZoom:i,onTransformChange:K});h.on("zoom",J);const et=Vf({zoomPanValues:u,panOnDrag:P,panOnScroll:C,onPaneContextMenu:N,onPanZoomEnd:a,onDraggingChange:c});h.on("end",et);const nt=Bf({zoomActivationKeyPressed:G,panOnDrag:P,zoomOnScroll:j,panOnScroll:C,zoomOnDoubleClick:X,zoomOnPinch:H,userSelectionActive:_,noPanClassName:y,noWheelClassName:D,lib:Q,connectionInProgress:L});h.filter(nt),X?g.on("dblclick.zoom",x):g.on("dblclick.zoom",null)}function p(){h.on("zoom",null)}async function w(D,y,N){const _=_n(D),C=h==null?void 0:h.constrain()(_,y,N);return C&&await m(C),C}async function S(D,y){const N=_n(D);return await m(N,y),N}function E(D){if(g){const y=_n(D),N=g.property("__zoom");(N.k!==D.zoom||N.x!==D.x||N.y!==D.y)&&(h==null||h.transform(g,y,null,{sync:!0}))}}function k(){const D=g?qo(g.node()):{x:0,y:0,k:1};return{x:D.x,y:D.y,zoom:D.k}}async function $(D,y){return g?new Promise(N=>{h==null||h.interpolate((y==null?void 0:y.interpolate)==="linear"?ue:He).scaleTo(En(g,y==null?void 0:y.duration,y==null?void 0:y.ease,()=>N(!0)),D)}):!1}async function I(D,y){return g?new Promise(N=>{h==null||h.interpolate((y==null?void 0:y.interpolate)==="linear"?ue:He).scaleBy(En(g,y==null?void 0:y.duration,y==null?void 0:y.ease,()=>N(!0)),D)}):!1}function F(D){h==null||h.scaleExtent(D)}function z(D){h==null||h.translateExtent(D)}function B(D){const y=!gt(D)||D<0?0:D;h==null||h.clickDistance(y)}return{update:b,destroy:p,setViewport:S,setViewportConstrained:w,getViewport:k,scaleTo:$,scaleBy:I,setScaleExtent:F,setTranslateExtent:z,syncViewport:E,setClickDistance:B}}var ne;(function(t){t.Line="line",t.Handle="handle"})(ne||(ne={}));function Of({width:t,prevWidth:e,height:n,prevHeight:r,affectsX:o,affectsY:i}){const s=t-e,a=n-r,c=[s>0?1:s<0?-1:0,a>0?1:a<0?-1:0];return s&&o&&(c[0]=c[0]*-1),a&&i&&(c[1]=c[1]*-1),c}function jr(t){const e=t.includes("right")||t.includes("left"),n=t.includes("bottom")||t.includes("top"),r=t.includes("left"),o=t.includes("top");return{isHorizontal:e,isVertical:n,affectsX:r,affectsY:o}}function $t(t,e){return Math.max(0,e-t)}function It(t,e){return Math.max(0,t-e)}function Te(t,e,n){return Math.max(0,e-t,t-n)}function Xr(t,e){return t?!e:e}function jf(t,e,n,r,o,i,s,a){let{affectsX:c,affectsY:u}=e;const{isHorizontal:l,isVertical:f}=e,d=l&&f,{xSnapped:h,ySnapped:g}=n,{minWidth:v,maxWidth:x,minHeight:m,maxHeight:b}=r,{x:p,y:w,width:S,height:E,aspectRatio:k}=t;let $=Math.floor(l?h-t.pointerX:0),I=Math.floor(f?g-t.pointerY:0);const F=S+(c?-$:$),z=E+(u?-I:I),B=-i[0]*S,D=-i[1]*E;let y=Te(F,v,x),N=Te(z,m,b);if(s){let P=0,M=0;c&&$<0?P=$t(p+$+B,s[0][0]):!c&&$>0&&(P=It(p+F+B,s[1][0])),u&&I<0?M=$t(w+I+D,s[0][1]):!u&&I>0&&(M=It(w+z+D,s[1][1])),y=Math.max(y,P),N=Math.max(N,M)}if(a){let P=0,M=0;c&&$>0?P=It(p+$,a[0][0]):!c&&$<0&&(P=$t(p+F,a[1][0])),u&&I>0?M=It(w+I,a[0][1]):!u&&I<0&&(M=$t(w+z,a[1][1])),y=Math.max(y,P),N=Math.max(N,M)}if(o){if(l){const P=Te(F/k,m,b)*k;if(y=Math.max(y,P),s){let M=0;!c&&!u||c&&!u&&d?M=It(w+D+F/k,s[1][1])*k:M=$t(w+D+(c?$:-$)/k,s[0][1])*k,y=Math.max(y,M)}if(a){let M=0;!c&&!u||c&&!u&&d?M=$t(w+F/k,a[1][1])*k:M=It(w+(c?$:-$)/k,a[0][1])*k,y=Math.max(y,M)}}if(f){const P=Te(z*k,v,x)/k;if(N=Math.max(N,P),s){let M=0;!c&&!u||u&&!c&&d?M=It(p+z*k+B,s[1][0])/k:M=$t(p+(u?I:-I)*k+B,s[0][0])/k,N=Math.max(N,M)}if(a){let M=0;!c&&!u||u&&!c&&d?M=$t(p+z*k,a[1][0])/k:M=It(p+(u?I:-I)*k,a[0][0])/k,N=Math.max(N,M)}}}I=I+(I<0?N:-N),$=$+($<0?y:-y),o&&(d?F>z*k?I=(Xr(c,u)?-$:$)/k:$=(Xr(c,u)?-I:I)*k:l?(I=$/k,u=c):($=I*k,c=u));const _=c?p+$:p,C=u?w+I:w;return{width:S+(c?-$:$),height:E+(u?-I:I),x:i[0]*$*(c?-1:1)+_,y:i[1]*I*(u?-1:1)+C}}const Si={width:0,height:0,x:0,y:0},Xf={...Si,pointerX:0,pointerY:0,aspectRatio:1};function Yf(t,e,n){const r=e.position.x+t.position.x,o=e.position.y+t.position.y,i=t.measured.width??0,s=t.measured.height??0,a=n[0]*i,c=n[1]*s;return[[r-a,o-c],[r+i-a,o+s-c]]}function Wf({domNode:t,nodeId:e,getStoreItems:n,onChange:r,onEnd:o}){const i=ct(t);let s={controlDirection:jr("bottom-right"),boundaries:{minWidth:0,minHeight:0,maxWidth:Number.MAX_VALUE,maxHeight:Number.MAX_VALUE},resizeDirection:void 0,keepAspectRatio:!1};function a({controlPosition:u,boundaries:l,keepAspectRatio:f,resizeDirection:d,onResizeStart:h,onResize:g,onResizeEnd:v,shouldResize:x}){let m={...Si},b={...Xf};s={boundaries:l,resizeDirection:d,keepAspectRatio:f,controlDirection:jr(u)};let p,w=null,S=[],E,k,$,I=!1;const F=To().on("start",z=>{const{nodeLookup:B,transform:D,snapGrid:y,snapToGrid:N,nodeOrigin:_,paneDomNode:C}=n();if(p=B.get(e),!p)return;w=(C==null?void 0:C.getBoundingClientRect())??null;const{xSnapped:P,ySnapped:M}=le(z.sourceEvent,{transform:D,snapGrid:y,snapToGrid:N,containerBounds:w});m={width:p.measured.width??0,height:p.measured.height??0,x:p.position.x??0,y:p.position.y??0},b={...m,pointerX:P,pointerY:M,aspectRatio:m.width/m.height},E=void 0,k=Xt(p.extent)?p.extent:void 0,p.parentId&&(p.extent==="parent"||p.expandParent)&&(E=B.get(p.parentId)),E&&p.extent==="parent"&&(k=[[0,0],[E.measured.width,E.measured.height]]),S=[],$=void 0;for(const[R,V]of B)if(V.parentId===e&&(S.push({id:R,position:{...V.position},extent:V.extent}),V.extent==="parent"||V.expandParent)){const H=Yf(V,p,V.origin??_);$?$=[[Math.min(H[0][0],$[0][0]),Math.min(H[0][1],$[0][1])],[Math.max(H[1][0],$[1][0]),Math.max(H[1][1],$[1][1])]]:$=H}h==null||h(z,{...m})}).on("drag",z=>{const{transform:B,snapGrid:D,snapToGrid:y,nodeOrigin:N}=n(),_=le(z.sourceEvent,{transform:B,snapGrid:D,snapToGrid:y,containerBounds:w}),C=[];if(!p)return;const{x:P,y:M,width:R,height:V}=m,H={},j=p.origin??N,{width:X,height:G,x:Q,y:K}=jf(b,s.controlDirection,_,s.boundaries,s.keepAspectRatio,j,k,$),L=X!==R,O=G!==V,U=Q!==P&&L,Z=K!==M&&O;if(!U&&!Z&&!L&&!O)return;if((U||Z||j[0]===1||j[1]===1)&&(H.x=U?Q:m.x,H.y=Z?K:m.y,m.x=H.x,m.y=H.y,S.length>0)){const et=Q-P,nt=K-M;for(const it of S)it.position={x:it.position.x-et+j[0]*(X-R),y:it.position.y-nt+j[1]*(G-V)},C.push(it)}if((L||O)&&(H.width=L&&(!s.resizeDirection||s.resizeDirection==="horizontal")?X:m.width,H.height=O&&(!s.resizeDirection||s.resizeDirection==="vertical")?G:m.height,m.width=H.width,m.height=H.height),E&&p.expandParent){const et=j[0]*(H.width??0);H.x&&H.x<et&&(m.x=et,b.x=b.x-(H.x-et));const nt=j[1]*(H.height??0);H.y&&H.y<nt&&(m.y=nt,b.y=b.y-(H.y-nt))}const W=Of({width:m.width,prevWidth:R,height:m.height,prevHeight:V,affectsX:s.controlDirection.affectsX,affectsY:s.controlDirection.affectsY}),Y={...m,direction:W};(x==null?void 0:x(z,Y))!==!1&&(I=!0,g==null||g(z,Y),r(H,C))}).on("end",z=>{I&&(v==null||v(z,{...m}),o==null||o({...m}),I=!1)});i.call(F)}function c(){i.on(".drag",null)}return{update:a,destroy:c}}var Ni={exports:{}},Mi={},Ci={exports:{}},ki={};/**
|
|
2
|
+
* @license React
|
|
3
|
+
* use-sync-external-store-shim.production.js
|
|
4
|
+
*
|
|
5
|
+
* Copyright (c) Meta Platforms, Inc. and affiliates.
|
|
6
|
+
*
|
|
7
|
+
* This source code is licensed under the MIT license found in the
|
|
8
|
+
* LICENSE file in the root directory of this source tree.
|
|
9
|
+
*/var re=T;function qf(t,e){return t===e&&(t!==0||1/t===1/e)||t!==t&&e!==e}var Gf=typeof Object.is=="function"?Object.is:qf,Kf=re.useState,Zf=re.useEffect,Uf=re.useLayoutEffect,Qf=re.useDebugValue;function Jf(t,e){var n=e(),r=Kf({inst:{value:n,getSnapshot:e}}),o=r[0].inst,i=r[1];return Uf(function(){o.value=n,o.getSnapshot=e,Sn(o)&&i({inst:o})},[t,n,e]),Zf(function(){return Sn(o)&&i({inst:o}),t(function(){Sn(o)&&i({inst:o})})},[t]),Qf(n),n}function Sn(t){var e=t.getSnapshot;t=t.value;try{var n=e();return!Gf(t,n)}catch{return!0}}function td(t,e){return e()}var ed=typeof window>"u"||typeof window.document>"u"||typeof window.document.createElement>"u"?td:Jf;ki.useSyncExternalStore=re.useSyncExternalStore!==void 0?re.useSyncExternalStore:ed;Ci.exports=ki;var nd=Ci.exports;/**
|
|
10
|
+
* @license React
|
|
11
|
+
* use-sync-external-store-shim/with-selector.production.js
|
|
12
|
+
*
|
|
13
|
+
* Copyright (c) Meta Platforms, Inc. and affiliates.
|
|
14
|
+
*
|
|
15
|
+
* This source code is licensed under the MIT license found in the
|
|
16
|
+
* LICENSE file in the root directory of this source tree.
|
|
17
|
+
*/var un=T,rd=nd;function od(t,e){return t===e&&(t!==0||1/t===1/e)||t!==t&&e!==e}var id=typeof Object.is=="function"?Object.is:od,sd=rd.useSyncExternalStore,ad=un.useRef,cd=un.useEffect,ud=un.useMemo,ld=un.useDebugValue;Mi.useSyncExternalStoreWithSelector=function(t,e,n,r,o){var i=ad(null);if(i.current===null){var s={hasValue:!1,value:null};i.current=s}else s=i.current;i=ud(function(){function c(h){if(!u){if(u=!0,l=h,h=r(h),o!==void 0&&s.hasValue){var g=s.value;if(o(g,h))return f=g}return f=h}if(g=f,id(l,h))return g;var v=r(h);return o!==void 0&&o(g,v)?(l=h,g):(l=h,f=v)}var u=!1,l,f,d=n===void 0?null:n;return[function(){return c(e())},d===null?void 0:function(){return c(d())}]},[e,n,r,o]);var a=sd(t,i[0],i[1]);return cd(function(){s.hasValue=!0,s.value=a},[a]),ld(a),a};Ni.exports=Mi;var fd=Ni.exports;const dd=ga(fd),hd={},Yr=t=>{let e;const n=new Set,r=(l,f)=>{const d=typeof l=="function"?l(e):l;if(!Object.is(d,e)){const h=e;e=f??(typeof d!="object"||d===null)?d:Object.assign({},e,d),n.forEach(g=>g(e,h))}},o=()=>e,c={setState:r,getState:o,getInitialState:()=>u,subscribe:l=>(n.add(l),()=>n.delete(l)),destroy:()=>{(hd?"production":void 0)!=="production"&&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()}},u=e=t(r,o,c);return c},gd=t=>t?Yr(t):Yr,{useDebugValue:pd}=pa,{useSyncExternalStoreWithSelector:md}=dd,yd=t=>t;function Ai(t,e=yd,n){const r=md(t.subscribe,t.getState,t.getServerState||t.getInitialState,e,n);return pd(r),r}const Wr=(t,e)=>{const n=gd(t),r=(o,i=e)=>Ai(n,o,i);return Object.assign(r,n),r},xd=(t,e)=>t?Wr(t,e):Wr;function ot(t,e){if(Object.is(t,e))return!0;if(typeof t!="object"||t===null||typeof e!="object"||e===null)return!1;if(t instanceof Map&&e instanceof Map){if(t.size!==e.size)return!1;for(const[r,o]of t)if(!Object.is(o,e.get(r)))return!1;return!0}if(t instanceof Set&&e instanceof Set){if(t.size!==e.size)return!1;for(const r of t)if(!e.has(r))return!1;return!0}const n=Object.keys(t);if(n.length!==Object.keys(e).length)return!1;for(const r of n)if(!Object.prototype.hasOwnProperty.call(e,r)||!Object.is(t[r],e[r]))return!1;return!0}const ln=T.createContext(null),wd=ln.Provider,$i=mt.error001("react");function tt(t,e){const n=T.useContext(ln);if(n===null)throw new Error($i);return Ai(n,t,e)}function rt(){const t=T.useContext(ln);if(t===null)throw new Error($i);return T.useMemo(()=>({getState:t.getState,setState:t.setState,subscribe:t.subscribe}),[t])}const qr={display:"none"},vd={position:"absolute",width:1,height:1,margin:-1,border:0,padding:0,overflow:"hidden",clip:"rect(0px, 0px, 0px, 0px)",clipPath:"inset(100%)"},Ii="react-flow__node-desc",Pi="react-flow__edge-desc",bd="react-flow__aria-live",_d=t=>t.ariaLiveMessage,Ed=t=>t.ariaLabelConfig;function Sd({rfId:t}){const e=tt(_d);return A.jsx("div",{id:`${bd}-${t}`,"aria-live":"assertive","aria-atomic":"true",style:vd,children:e})}function Nd({rfId:t,disableKeyboardA11y:e}){const n=tt(Ed);return A.jsxs(A.Fragment,{children:[A.jsx("div",{id:`${Ii}-${t}`,style:qr,children:e?n["node.a11yDescription.default"]:n["node.a11yDescription.keyboardDisabled"]}),A.jsx("div",{id:`${Pi}-${t}`,style:qr,children:n["edge.a11yDescription.default"]}),!e&&A.jsx(Sd,{rfId:t})]})}const fn=T.forwardRef(({position:t="top-left",children:e,className:n,style:r,...o},i)=>{const s=`${t}`.split("-");return A.jsx("div",{className:st(["react-flow__panel",n,...s]),style:r,ref:i,...o,children:e})});fn.displayName="Panel";const Gr="https://reactflow.dev?utm_source=attribution";function Md({proOptions:t,position:e="bottom-right"}){return t!=null&&t.hideAttribution?null:A.jsx(fn,{position:e,className:"react-flow__attribution","data-message":`Please only hide this attribution when you are subscribed to React Flow Pro: ${Gr}`,children:A.jsx("a",{href:Gr,target:"_blank",rel:"noopener noreferrer","aria-label":"React Flow attribution",children:"React Flow"})})}const Cd=t=>{const e=[],n=[];for(const[,r]of t.nodeLookup)r.selected&&e.push(r.internals.userNode);for(const[,r]of t.edgeLookup)r.selected&&n.push(r);return{selectedNodes:e,selectedEdges:n}},ze=t=>t.id;function kd(t,e){return ot(t.selectedNodes.map(ze),e.selectedNodes.map(ze))&&ot(t.selectedEdges.map(ze),e.selectedEdges.map(ze))}function Ad({onSelectionChange:t}){const e=rt(),{selectedNodes:n,selectedEdges:r}=tt(Cd,kd);return T.useEffect(()=>{const o={nodes:n,edges:r};t==null||t(o),e.getState().onSelectionChangeHandlers.forEach(i=>i(o))},[n,r,t]),null}const $d=t=>!!t.onSelectionChangeHandlers;function Id({onSelectionChange:t}){const e=tt($d);return t||e?A.jsx(Ad,{onSelectionChange:t}):null}const Ti=[0,0],Pd={x:0,y:0,zoom:1},Td=["nodes","edges","defaultNodes","defaultEdges","onConnect","onConnectStart","onConnectEnd","onClickConnectStart","onClickConnectEnd","nodesDraggable","autoPanOnNodeFocus","nodesConnectable","nodesFocusable","edgesFocusable","edgesReconnectable","elevateNodesOnSelect","elevateEdgesOnSelect","minZoom","maxZoom","nodeExtent","onNodesChange","onEdgesChange","elementsSelectable","connectionMode","snapGrid","snapToGrid","translateExtent","connectOnClick","defaultEdgeOptions","fitView","fitViewOptions","onNodesDelete","onEdgesDelete","onDelete","onNodeDrag","onNodeDragStart","onNodeDragStop","onSelectionDrag","onSelectionDragStart","onSelectionDragStop","onMoveStart","onMove","onMoveEnd","noPanClassName","nodeOrigin","autoPanOnConnect","autoPanOnNodeDrag","onError","connectionRadius","isValidConnection","selectNodesOnDrag","nodeDragThreshold","connectionDragThreshold","onBeforeDelete","debug","autoPanSpeed","ariaLabelConfig","zIndexMode"],Kr=[...Td,"rfId"],zd=t=>({setNodes:t.setNodes,setEdges:t.setEdges,setMinZoom:t.setMinZoom,setMaxZoom:t.setMaxZoom,setTranslateExtent:t.setTranslateExtent,setNodeExtent:t.setNodeExtent,reset:t.reset,setDefaultNodesAndEdges:t.setDefaultNodesAndEdges}),Zr={translateExtent:pe,nodeOrigin:Ti,minZoom:.5,maxZoom:2,elementsSelectable:!0,noPanClassName:"nopan",rfId:"1"};function Dd(t){const{setNodes:e,setEdges:n,setMinZoom:r,setMaxZoom:o,setTranslateExtent:i,setNodeExtent:s,reset:a,setDefaultNodesAndEdges:c}=tt(zd,ot),u=rt();T.useEffect(()=>(c(t.defaultNodes,t.defaultEdges),()=>{l.current=Zr,a()}),[]);const l=T.useRef(Zr);return T.useEffect(()=>{for(const f of Kr){const d=t[f],h=l.current[f];d!==h&&(typeof t[f]>"u"||(f==="nodes"?e(d):f==="edges"?n(d):f==="minZoom"?r(d):f==="maxZoom"?o(d):f==="translateExtent"?i(d):f==="nodeExtent"?s(d):f==="ariaLabelConfig"?u.setState({ariaLabelConfig:of(d)}):f==="fitView"?u.setState({fitViewQueued:d}):f==="fitViewOptions"?u.setState({fitViewOptions:d}):u.setState({[f]:d})))}l.current=t},Kr.map(f=>t[f])),null}function Ur(){return typeof window>"u"||!window.matchMedia?null:window.matchMedia("(prefers-color-scheme: dark)")}function Ld(t){var r;const[e,n]=T.useState(t==="system"?null:t);return T.useEffect(()=>{if(t!=="system"){n(t);return}const o=Ur(),i=()=>n(o!=null&&o.matches?"dark":"light");return i(),o==null||o.addEventListener("change",i),()=>{o==null||o.removeEventListener("change",i)}},[t]),e!==null?e:(r=Ur())!=null&&r.matches?"dark":"light"}const Qr=typeof document<"u"?document:null;function we(t=null,e={target:Qr,actInsideInputWithModifier:!0}){const[n,r]=T.useState(!1),o=T.useRef(!1),i=T.useRef(new Set([])),[s,a]=T.useMemo(()=>{if(t!==null){const u=(Array.isArray(t)?t:[t]).filter(f=>typeof f=="string").map(f=>f.replace("+",`
|
|
18
|
+
`).replace(`
|
|
19
|
+
|
|
20
|
+
`,`
|
|
21
|
+
+`).split(`
|
|
22
|
+
`)),l=u.reduce((f,d)=>f.concat(...d),[]);return[u,l]}return[[],[]]},[t]);return T.useEffect(()=>{const c=(e==null?void 0:e.target)??Qr,u=(e==null?void 0:e.actInsideInputWithModifier)??!0;if(t!==null){const l=h=>{var x,m;if(o.current=h.ctrlKey||h.metaKey||h.shiftKey||h.altKey,(!o.current||o.current&&!u)&&ci(h))return!1;const v=to(h.code,a);if(i.current.add(h[v]),Jr(s,i.current,!1)){const b=((m=(x=h.composedPath)==null?void 0:x.call(h))==null?void 0:m[0])||h.target,p=(b==null?void 0:b.nodeName)==="BUTTON"||(b==null?void 0:b.nodeName)==="A";e.preventDefault!==!1&&(o.current||!p)&&h.preventDefault(),r(!0)}},f=h=>{const g=to(h.code,a);Jr(s,i.current,!0)?(r(!1),i.current.clear()):i.current.delete(h[g]),h.key==="Meta"&&i.current.clear(),o.current=!1},d=()=>{i.current.clear(),r(!1)};return c==null||c.addEventListener("keydown",l),c==null||c.addEventListener("keyup",f),window.addEventListener("blur",d),window.addEventListener("contextmenu",d),()=>{c==null||c.removeEventListener("keydown",l),c==null||c.removeEventListener("keyup",f),window.removeEventListener("blur",d),window.removeEventListener("contextmenu",d)}}},[t,r]),n}function Jr(t,e,n){return t.filter(r=>n||r.length===e.size).some(r=>r.every(o=>e.has(o)))}function to(t,e){return e.includes(t)?"code":"key"}const Hd=()=>{const t=rt();return T.useMemo(()=>({zoomIn:async e=>{const{panZoom:n}=t.getState();return n?n.scaleBy(1.2,e):!1},zoomOut:async e=>{const{panZoom:n}=t.getState();return n?n.scaleBy(1/1.2,e):!1},zoomTo:async(e,n)=>{const{panZoom:r}=t.getState();return r?r.scaleTo(e,n):!1},getZoom:()=>t.getState().transform[2],setViewport:async(e,n)=>{const{transform:[r,o,i],panZoom:s}=t.getState();return s?(await s.setViewport({x:e.x??r,y:e.y??o,zoom:e.zoom??i},n),!0):!1},getViewport:()=>{const[e,n,r]=t.getState().transform;return{x:e,y:n,zoom:r}},setCenter:async(e,n,r)=>t.getState().setCenter(e,n,r),fitBounds:async(e,n)=>{const{width:r,height:o,minZoom:i,maxZoom:s,panZoom:a}=t.getState(),c=Un(e,r,o,i,s,(n==null?void 0:n.padding)??.1);return a?(await a.setViewport(c,{duration:n==null?void 0:n.duration,ease:n==null?void 0:n.ease,interpolate:n==null?void 0:n.interpolate}),!0):!1},screenToFlowPosition:(e,n={})=>{const{transform:r,snapGrid:o,snapToGrid:i,domNode:s}=t.getState();if(!s)return e;const{x:a,y:c}=s.getBoundingClientRect(),u={x:e.x-a,y:e.y-c},l=n.snapGrid??o,f=n.snapToGrid??i;return Ne(u,r,f,l)},flowToScreenPosition:e=>{const{transform:n,domNode:r}=t.getState();if(!r)return e;const{x:o,y:i}=r.getBoundingClientRect(),s=ee(e,n);return{x:s.x+o,y:s.y+i}}}),[])};function zi(t,e){const n=[],r=new Map,o=[];for(const i of t)if(i.type==="add"){o.push(i);continue}else if(i.type==="remove"||i.type==="replace")r.set(i.id,[i]);else{const s=r.get(i.id);s?s.push(i):r.set(i.id,[i])}for(const i of e){const s=r.get(i.id);if(!s){n.push(i);continue}if(s[0].type==="remove")continue;if(s[0].type==="replace"){n.push({...s[0].item});continue}const a={...i};for(const c of s)Rd(c,a);n.push(a)}return o.length&&o.forEach(i=>{i.index!==void 0?n.splice(i.index,0,{...i.item}):n.push({...i.item})}),n}function Rd(t,e){switch(t.type){case"select":{e.selected=t.selected;break}case"position":{typeof t.position<"u"&&(e.position=t.position),typeof t.dragging<"u"&&(e.dragging=t.dragging);break}case"dimensions":{typeof t.dimensions<"u"&&(e.measured={...t.dimensions},t.setAttributes&&((t.setAttributes===!0||t.setAttributes==="width")&&(e.width=t.dimensions.width),(t.setAttributes===!0||t.setAttributes==="height")&&(e.height=t.dimensions.height))),typeof t.resizing=="boolean"&&(e.resizing=t.resizing);break}}}function Vd(t,e){return zi(t,e)}function Bd(t,e){return zi(t,e)}function Ht(t,e){return{id:t,type:"select",selected:e}}function Gt(t,e=new Set,n=!1){const r=[];for(const[o,i]of t){const s=e.has(o);!(i.selected===void 0&&!s)&&i.selected!==s&&(n&&(i.selected=s),r.push(Ht(i.id,s)))}return r}function eo({items:t=[],lookup:e}){var o;const n=[],r=new Map(t.map(i=>[i.id,i]));for(const[i,s]of t.entries()){const a=e.get(s.id),c=((o=a==null?void 0:a.internals)==null?void 0:o.userNode)??a;c!==void 0&&c!==s&&n.push({id:s.id,item:s,type:"replace"}),c===void 0&&n.push({item:s,type:"add",index:i})}for(const[i]of e)r.get(i)===void 0&&n.push({id:i,type:"remove"});return n}function no(t){return{id:t.id,type:"remove"}}const Fd=oi();function Od(t,e,n={}){return ff(t,e,{...n,onError:n.onError??Fd})}const ro=t=>Kl(t),jd=t=>Jo(t);function Di(t){return T.forwardRef(t)}const Li=typeof window<"u"?T.useLayoutEffect:T.useEffect;function oo(t){const[e,n]=T.useState(BigInt(0)),[r]=T.useState(()=>Xd(()=>n(o=>o+BigInt(1))));return Li(()=>{const o=r.get();o.length&&(t(o),r.reset())},[e]),r}function Xd(t){let e=[];return{get:()=>e,reset:()=>{e=[]},push:n=>{e.push(n),t()}}}const Hi=T.createContext(null);function Yd({children:t}){const e=rt(),n=T.useCallback(a=>{const{nodes:c=[],setNodes:u,hasDefaultNodes:l,onNodesChange:f,nodeLookup:d,fitViewQueued:h,onNodesChangeMiddlewareMap:g}=e.getState();let v=c;for(const m of a)v=typeof m=="function"?m(v):m;let x=eo({items:v,lookup:d});for(const m of g.values())x=m(x);l&&u(v),x.length>0?f==null||f(x):h&&window.requestAnimationFrame(()=>{const{fitViewQueued:m,nodes:b,setNodes:p}=e.getState();m&&p(b)})},[]),r=oo(n),o=T.useCallback(a=>{const{edges:c=[],setEdges:u,hasDefaultEdges:l,onEdgesChange:f,edgeLookup:d}=e.getState();let h=c;for(const g of a)h=typeof g=="function"?g(h):g;l?u(h):f&&f(eo({items:h,lookup:d}))},[]),i=oo(o),s=T.useMemo(()=>({nodeQueue:r,edgeQueue:i}),[]);return A.jsx(Hi.Provider,{value:s,children:t})}function Wd(){const t=T.useContext(Hi);if(!t)throw new Error("useBatchContext must be used within a BatchProvider");return t}const qd=t=>!!t.panZoom;function or(){const t=Hd(),e=rt(),n=Wd(),r=tt(qd),o=T.useMemo(()=>{const i=f=>e.getState().nodeLookup.get(f),s=f=>{n.nodeQueue.push(f)},a=f=>{n.edgeQueue.push(f)},c=f=>{var m,b;const{nodeLookup:d,nodeOrigin:h}=e.getState(),g=ro(f)?f:d.get(f.id),v=g.parentId?si(g.position,g.measured,g.parentId,d,h):g.position,x={...g,position:v,width:((m=g.measured)==null?void 0:m.width)??g.width,height:((b=g.measured)==null?void 0:b.height)??g.height};return ye(x)},u=(f,d,h={replace:!1})=>{s(g=>g.map(v=>{if(v.id===f){const x=typeof d=="function"?d(v):d;return h.replace&&ro(x)?x:{...v,...x}}return v}))},l=(f,d,h={replace:!1})=>{a(g=>g.map(v=>{if(v.id===f){const x=typeof d=="function"?d(v):d;return h.replace&&jd(x)?x:{...v,...x}}return v}))};return{getNodes:()=>e.getState().nodes.map(f=>({...f})),getNode:f=>{var d;return(d=i(f))==null?void 0:d.internals.userNode},getInternalNode:i,getEdges:()=>{const{edges:f=[]}=e.getState();return f.map(d=>({...d}))},getEdge:f=>e.getState().edgeLookup.get(f),setNodes:s,setEdges:a,addNodes:f=>{const d=Array.isArray(f)?f:[f];n.nodeQueue.push(h=>[...h,...d])},addEdges:f=>{const d=Array.isArray(f)?f:[f];n.edgeQueue.push(h=>[...h,...d])},toObject:()=>{const{nodes:f=[],edges:d=[],transform:h}=e.getState(),[g,v,x]=h;return{nodes:f.map(m=>({...m})),edges:d.map(m=>({...m})),viewport:{x:g,y:v,zoom:x}}},deleteElements:async({nodes:f=[],edges:d=[]})=>{const{nodes:h,edges:g,onNodesDelete:v,onEdgesDelete:x,triggerNodeChanges:m,triggerEdgeChanges:b,onDelete:p,onBeforeDelete:w}=e.getState(),{nodes:S,edges:E}=await tf({nodesToRemove:f,edgesToRemove:d,nodes:h,edges:g,onBeforeDelete:w}),k=E.length>0,$=S.length>0;if(k){const I=E.map(no);x==null||x(E),b(I)}if($){const I=S.map(no);v==null||v(S),m(I)}return($||k)&&(p==null||p({nodes:S,edges:E})),{deletedNodes:S,deletedEdges:E}},getIntersectingNodes:(f,d=!0,h)=>{const g=Pr(f),v=g?f:c(f),x=h!==void 0;return v?(h||e.getState().nodes).filter(m=>{const b=e.getState().nodeLookup.get(m.id);if(b&&!g&&(m.id===f.id||!b.internals.positionAbsolute))return!1;const p=ye(x?m:b),w=Ue(p,v);return d&&w>0||w>=p.width*p.height||w>=v.width*v.height}):[]},isNodeIntersecting:(f,d,h=!0)=>{const v=Pr(f)?f:c(f);if(!v)return!1;const x=Ue(v,d);return h&&x>0||x>=d.width*d.height||x>=v.width*v.height},updateNode:u,updateNodeData:(f,d,h={replace:!1})=>{u(f,g=>{const v=typeof d=="function"?d(g):d;return h.replace?{...g,data:v}:{...g,data:{...g.data,...v}}},h)},updateEdge:l,updateEdgeData:(f,d,h={replace:!1})=>{l(f,g=>{const v=typeof d=="function"?d(g):d;return h.replace?{...g,data:v}:{...g,data:{...g.data,...v}}},h)},getNodesBounds:f=>{const{nodeLookup:d,nodeOrigin:h}=e.getState();return Zl(f,{nodeLookup:d,nodeOrigin:h})},getHandleConnections:({type:f,id:d,nodeId:h})=>{var g;return Array.from(((g=e.getState().connectionLookup.get(`${h}-${f}${d?`-${d}`:""}`))==null?void 0:g.values())??[])},getNodeConnections:({type:f,handleId:d,nodeId:h})=>{var g;return Array.from(((g=e.getState().connectionLookup.get(`${h}${f?d?`-${f}-${d}`:`-${f}`:""}`))==null?void 0:g.values())??[])},fitView:async f=>{const d=e.getState().fitViewResolver??rf();return e.setState({fitViewQueued:!0,fitViewOptions:f,fitViewResolver:d}),n.nodeQueue.push(h=>[...h]),d.promise}}},[]);return T.useMemo(()=>({...o,...t,viewportInitialized:r}),[r])}const io=t=>t.selected,Gd=typeof window<"u"?window:void 0;function Kd({deleteKeyCode:t,multiSelectionKeyCode:e}){const n=rt(),{deleteElements:r}=or(),o=we(t,{actInsideInputWithModifier:!1}),i=we(e,{target:Gd});T.useEffect(()=>{if(o){const{edges:s,nodes:a}=n.getState();r({nodes:a.filter(io),edges:s.filter(io)}),n.setState({nodesSelectionActive:!1})}},[o]),T.useEffect(()=>{n.setState({multiSelectionActive:i})},[i])}function Zd(t){const e=rt();T.useEffect(()=>{const n=()=>{var o,i,s,a;if(!t.current||!(((i=(o=t.current).checkVisibility)==null?void 0:i.call(o))??!0))return!1;const r=Qn(t.current);(r.height===0||r.width===0)&&((a=(s=e.getState()).onError)==null||a.call(s,"004",mt.error004())),e.setState({width:r.width||500,height:r.height||500})};if(t.current){n(),window.addEventListener("resize",n);const r=new ResizeObserver(()=>n());return r.observe(t.current),()=>{window.removeEventListener("resize",n),r&&t.current&&r.unobserve(t.current)}}},[])}const dn={position:"absolute",width:"100%",height:"100%",top:0,left:0},Ud=t=>({userSelectionActive:t.userSelectionActive,lib:t.lib,connectionInProgress:t.connection.inProgress});function Qd({onPaneContextMenu:t,zoomOnScroll:e=!0,zoomOnPinch:n=!0,panOnScroll:r=!1,panOnScrollSpeed:o=.5,panOnScrollMode:i=Bt.Free,zoomOnDoubleClick:s=!0,panOnDrag:a=!0,defaultViewport:c,translateExtent:u,minZoom:l,maxZoom:f,zoomActivationKeyCode:d,preventScrolling:h=!0,children:g,noWheelClassName:v,noPanClassName:x,onViewportChange:m,isControlledViewport:b,paneClickDistance:p,selectionOnDrag:w}){const S=rt(),E=T.useRef(null),{userSelectionActive:k,lib:$,connectionInProgress:I}=tt(Ud,ot),F=we(d),z=T.useRef();Zd(E);const B=T.useCallback(D=>{m==null||m({x:D[0],y:D[1],zoom:D[2]}),b||S.setState({transform:D})},[m,b]);return T.useEffect(()=>{if(E.current){z.current=Ff({domNode:E.current,minZoom:l,maxZoom:f,translateExtent:u,viewport:c,onDraggingChange:_=>S.setState(C=>C.paneDragging===_?C:{paneDragging:_}),onPanZoomStart:(_,C)=>{const{onViewportChangeStart:P,onMoveStart:M}=S.getState();M==null||M(_,C),P==null||P(C)},onPanZoom:(_,C)=>{const{onViewportChange:P,onMove:M}=S.getState();M==null||M(_,C),P==null||P(C)},onPanZoomEnd:(_,C)=>{const{onViewportChangeEnd:P,onMoveEnd:M}=S.getState();M==null||M(_,C),P==null||P(C)}});const{x:D,y,zoom:N}=z.current.getViewport();return S.setState({panZoom:z.current,transform:[D,y,N],domNode:E.current.closest(".react-flow")}),()=>{var _;(_=z.current)==null||_.destroy()}}},[]),T.useEffect(()=>{var D;(D=z.current)==null||D.update({onPaneContextMenu:t,zoomOnScroll:e,zoomOnPinch:n,panOnScroll:r,panOnScrollSpeed:o,panOnScrollMode:i,zoomOnDoubleClick:s,panOnDrag:a,zoomActivationKeyPressed:F,preventScrolling:h,noPanClassName:x,userSelectionActive:k,noWheelClassName:v,lib:$,onTransformChange:B,connectionInProgress:I,selectionOnDrag:w,paneClickDistance:p})},[t,e,n,r,o,i,s,a,F,h,x,k,v,$,B,I,w,p]),A.jsx("div",{className:"react-flow__renderer",ref:E,style:dn,children:g})}const Jd=t=>({userSelectionActive:t.userSelectionActive,userSelectionRect:t.userSelectionRect});function th(){const{userSelectionActive:t,userSelectionRect:e}=tt(Jd,ot);return t&&e?A.jsx("div",{className:"react-flow__selection react-flow__container",style:{width:e.width,height:e.height,transform:`translate(${e.x}px, ${e.y}px)`}}):null}const Nn=(t,e)=>n=>{n.target===e.current&&(t==null||t(n))},eh=t=>({userSelectionActive:t.userSelectionActive,elementsSelectable:t.elementsSelectable,dragging:t.paneDragging,panBy:t.panBy,autoPanSpeed:t.autoPanSpeed});function nh({isSelecting:t,selectionKeyPressed:e,selectionMode:n=me.Full,panOnDrag:r,autoPanOnSelection:o,paneClickDistance:i,selectionOnDrag:s,onSelectionStart:a,onSelectionEnd:c,onPaneClick:u,onPaneContextMenu:l,onPaneScroll:f,onPaneMouseEnter:d,onPaneMouseMove:h,onPaneMouseLeave:g,children:v}){const x=T.useRef(0),m=rt(),{userSelectionActive:b,elementsSelectable:p,dragging:w,panBy:S,autoPanSpeed:E}=tt(eh,ot),k=p&&(t||b),$=T.useRef(null),I=T.useRef(),F=T.useRef(new Set),z=T.useRef(new Set),B=T.useRef(!1),D=T.useRef(!1),y=T.useRef({x:0,y:0}),N=T.useRef(!1),_=L=>{if(D.current||B.current||m.getState().connection.inProgress){D.current=!1,B.current=!1;return}u==null||u(L),m.getState().resetSelectedElements(),m.setState({nodesSelectionActive:!1})},C=L=>{if(Array.isArray(r)&&(r!=null&&r.includes(2))){L.preventDefault();return}l==null||l(L)},P=f?L=>f(L):void 0,M=L=>{D.current&&(L.stopPropagation(),D.current=!1)},R=L=>{var it,lt;const{domNode:O,transform:U}=m.getState();if(I.current=O==null?void 0:O.getBoundingClientRect(),!I.current)return;const Z=L.target===$.current;if(!Z&&!!L.target.closest(".nokey")||!t||!(s&&Z||e)||L.button!==0||!L.isPrimary)return;(lt=(it=L.target)==null?void 0:it.setPointerCapture)==null||lt.call(it,L.pointerId),D.current=!1;const{x:J,y:et}=pt(L.nativeEvent,I.current),nt=Ne({x:J,y:et},U);m.setState({userSelectionRect:{width:0,height:0,startX:nt.x,startY:nt.y,x:J,y:et}}),Z||(L.stopPropagation(),L.preventDefault())};function V(L,O){const{userSelectionRect:U}=m.getState();if(!U)return;const{transform:Z,nodeLookup:W,edgeLookup:Y,connectionLookup:J,triggerNodeChanges:et,triggerEdgeChanges:nt,defaultEdgeOptions:it}=m.getState(),lt={x:U.startX,y:U.startY},{x:xt,y:wt}=ee(lt,Z),St={startX:lt.x,startY:lt.y,x:L<xt?L:xt,y:O<wt?O:wt,width:Math.abs(L-xt),height:Math.abs(O-wt)},oe=F.current,zt=z.current;F.current=new Set(Kn(W,St,Z,n===me.Partial,!0).map(ft=>ft.id)),z.current=new Set;const Dt=(it==null?void 0:it.selectable)??!0;for(const ft of F.current){const Nt=J.get(ft);if(Nt)for(const{edgeId:Mt}of Nt.values()){const Lt=Y.get(Mt);Lt&&(Lt.selectable??Dt)&&z.current.add(Mt)}}if(!Tr(oe,F.current)){const ft=Gt(W,F.current,!0);et(ft)}if(!Tr(zt,z.current)){const ft=Gt(Y,z.current);nt(ft)}m.setState({userSelectionRect:St,userSelectionActive:!0,nodesSelectionActive:!1})}function H(){if(!o||!I.current)return;const[L,O]=Zn(y.current,I.current,E);S({x:L,y:O}).then(U=>{if(!D.current||!U){x.current=requestAnimationFrame(H);return}const{x:Z,y:W}=y.current;V(Z,W),x.current=requestAnimationFrame(H)})}const j=()=>{cancelAnimationFrame(x.current),x.current=0,N.current=!1};T.useEffect(()=>()=>j(),[]);const X=L=>{const{userSelectionRect:O,transform:U,resetSelectedElements:Z}=m.getState();if(!I.current||!O)return;const{x:W,y:Y}=pt(L.nativeEvent,I.current);y.current={x:W,y:Y};const J=ee({x:O.startX,y:O.startY},U);if(!D.current){const et=e?0:i;if(Math.hypot(W-J.x,Y-J.y)<=et)return;Z(),a==null||a(L)}D.current=!0,N.current||(H(),N.current=!0),V(W,Y)},G=L=>{var O,U;if(!k){L.target===$.current&&m.getState().connection.inProgress&&(B.current=!0);return}L.button===0&&((U=(O=L.target)==null?void 0:O.releasePointerCapture)==null||U.call(O,L.pointerId),!b&&L.target===$.current&&m.getState().userSelectionRect&&(_==null||_(L)),m.setState({userSelectionActive:!1,userSelectionRect:null}),D.current&&(c==null||c(L),m.setState({nodesSelectionActive:F.current.size>0})),j())},Q=L=>{var O,U;(U=(O=L.target)==null?void 0:O.releasePointerCapture)==null||U.call(O,L.pointerId),j()},K=r===!0||Array.isArray(r)&&r.includes(0);return A.jsxs("div",{className:st(["react-flow__pane",{draggable:K,dragging:w,selection:t}]),onClick:k?void 0:Nn(_,$),onContextMenu:Nn(C,$),onWheel:Nn(P,$),onPointerEnter:k?void 0:d,onPointerMove:k?X:h,onPointerUp:G,onPointerCancel:k?Q:void 0,onPointerDownCapture:k?R:void 0,onClickCapture:k?M:void 0,onPointerLeave:g,ref:$,style:dn,children:[v,A.jsx(th,{})]})}function Bn({id:t,store:e,unselect:n=!1,nodeRef:r}){const{addSelectedNodes:o,unselectNodesAndEdges:i,multiSelectionActive:s,nodeLookup:a,onError:c}=e.getState(),u=a.get(t);if(!u){c==null||c("012",mt.error012(t));return}e.setState({nodesSelectionActive:!1}),u.selected?(n||u.selected&&s)&&(i({nodes:[u],edges:[]}),requestAnimationFrame(()=>{var l;return(l=r==null?void 0:r.current)==null?void 0:l.blur()})):o([t])}function Ri({nodeRef:t,disabled:e=!1,noDragClassName:n,handleSelector:r,nodeId:o,isSelectable:i,nodeClickDistance:s}){const a=rt(),[c,u]=T.useState(!1),l=T.useRef();return T.useEffect(()=>{if(!e)return l.current=Cf({getStoreItems:()=>a.getState(),onNodeMouseDown:f=>{Bn({id:f,store:a,nodeRef:t})},onDragStart:()=>{u(!0)},onDragStop:()=>{u(!1)}}),()=>{var f;(f=l.current)==null||f.destroy(),l.current=void 0}},[e,a,t]),T.useEffect(()=>{e||!t.current||!l.current||l.current.update({noDragClassName:n,handleSelector:r,domNode:t.current,isSelectable:i,nodeId:o,nodeClickDistance:s})},[n,r,e,i,t,o,s]),c}const rh=t=>e=>e.selected&&(e.draggable||t&&typeof e.draggable>"u");function Vi(){const t=rt();return T.useCallback(n=>{const{nodeExtent:r,snapToGrid:o,snapGrid:i,nodesDraggable:s,onError:a,updateNodePositions:c,nodeLookup:u,nodeOrigin:l}=t.getState(),f=new Map,d=rh(s),h=o?i[0]:5,g=o?i[1]:5,v=n.direction.x*h*n.factor,x=n.direction.y*g*n.factor;for(const[,m]of u){if(!d(m))continue;let b={x:m.internals.positionAbsolute.x+v,y:m.internals.positionAbsolute.y+x};o&&(b=Se(b,i));const{position:p,positionAbsolute:w}=ti({nodeId:m.id,nextPosition:b,nodeLookup:u,nodeExtent:r,nodeOrigin:l,onError:a});m.position=p,m.internals.positionAbsolute=w,f.set(m.id,m)}c(f)},[])}const ir=T.createContext(null),oh=ir.Provider;ir.Consumer;const Bi=()=>T.useContext(ir),ih=t=>({connectOnClick:t.connectOnClick,noPanClassName:t.noPanClassName,rfId:t.rfId}),Fi=T.createContext(null);function sh({children:t}){const e=tt(ih,ot);return A.jsx(Fi.Provider,{value:e,children:t})}function ah(){const t=T.useContext(Fi);if(!t)throw new Error("useHandleConfig must be used within a HandleConfigProvider");return t}const ch={connectingFrom:!1,connectingTo:!1,clickConnecting:!1,isPossibleEndHandle:!0,connectionInProcess:!1,clickConnectionInProcess:!1,valid:!1},uh=(t,e,n)=>r=>{const{connectionClickStartHandle:o,connectionMode:i,connection:s}=r,{fromHandle:a,toHandle:c,isValid:u}=s;if(!a&&!o)return ch;const l=(c==null?void 0:c.nodeId)===t&&(c==null?void 0:c.id)===e&&(c==null?void 0:c.type)===n;return{connectingFrom:(a==null?void 0:a.nodeId)===t&&(a==null?void 0:a.id)===e&&(a==null?void 0:a.type)===n,connectingTo:l,clickConnecting:(o==null?void 0:o.nodeId)===t&&(o==null?void 0:o.id)===e&&(o==null?void 0:o.type)===n,isPossibleEndHandle:i===Jt.Strict?(a==null?void 0:a.type)!==n:t!==(a==null?void 0:a.nodeId)||e!==(a==null?void 0:a.id),connectionInProcess:!!a,clickConnectionInProcess:!!o,valid:l&&u}};function lh({type:t="source",position:e=q.Top,isValidConnection:n,isConnectable:r=!0,isConnectableStart:o=!0,isConnectableEnd:i=!0,id:s,onConnect:a,children:c,className:u,onMouseDown:l,onTouchStart:f,...d},h){var N,_;const g=s||null,v=t==="target",x=rt(),m=Bi(),{connectOnClick:b,noPanClassName:p,rfId:w}=ah(),{connectingFrom:S,connectingTo:E,clickConnecting:k,isPossibleEndHandle:$,connectionInProcess:I,clickConnectionInProcess:F,valid:z}=tt(uh(m,g,t),ot);m||(_=(N=x.getState()).onError)==null||_.call(N,"010",mt.error010());const B=C=>{const{defaultEdgeOptions:P,onConnect:M,hasDefaultEdges:R}=x.getState(),V={...P,...C};if(R){const{edges:H,setEdges:j,onError:X}=x.getState();j(Od(V,H,{onError:X}))}M==null||M(V),a==null||a(V)},D=C=>{if(!m)return;const P=ui(C.nativeEvent);if(o&&(P&&C.button===0||!P)){const M=x.getState();Vn.onPointerDown(C.nativeEvent,{handleDomNode:C.currentTarget,autoPanOnConnect:M.autoPanOnConnect,connectionMode:M.connectionMode,connectionRadius:M.connectionRadius,domNode:M.domNode,nodeLookup:M.nodeLookup,lib:M.lib,isTarget:v,handleId:g,nodeId:m,flowId:M.rfId,panBy:M.panBy,cancelConnection:M.cancelConnection,onConnectStart:M.onConnectStart,onConnectEnd:(...R)=>{var V,H;return(H=(V=x.getState()).onConnectEnd)==null?void 0:H.call(V,...R)},updateConnection:M.updateConnection,onConnect:B,isValidConnection:n||((...R)=>{var V,H;return((H=(V=x.getState()).isValidConnection)==null?void 0:H.call(V,...R))??!0}),getTransform:()=>x.getState().transform,getFromHandle:()=>x.getState().connection.fromHandle,autoPanSpeed:M.autoPanSpeed,dragThreshold:M.connectionDragThreshold})}P?l==null||l(C):f==null||f(C)},y=C=>{const{onClickConnectStart:P,onClickConnectEnd:M,connectionClickStartHandle:R,connectionMode:V,isValidConnection:H,lib:j,rfId:X,nodeLookup:G,connection:Q}=x.getState();if(!m||!R&&!o)return;if(!R){P==null||P(C.nativeEvent,{nodeId:m,handleId:g,handleType:t}),x.setState({connectionClickStartHandle:{nodeId:m,type:t,id:g}});return}const K=ai(C.target),L=n||H,{connection:O,isValid:U}=Vn.isValid(C.nativeEvent,{handle:{nodeId:m,id:g,type:t},connectionMode:V,fromNodeId:R.nodeId,fromHandleId:R.id||null,fromType:R.type,isValidConnection:L,flowId:X,doc:K,lib:j,nodeLookup:G});U&&O&&B(O);const Z=structuredClone(Q);delete Z.inProgress,Z.toPosition=Z.toHandle?Z.toHandle.position:null,M==null||M(C,Z),x.setState({connectionClickStartHandle:null})};return A.jsx("div",{"data-handleid":g,"data-nodeid":m,"data-handlepos":e,"data-id":`${w}-${m}-${g}-${t}`,className:st(["react-flow__handle",`react-flow__handle-${e}`,"nodrag",p,u,{source:!v,target:v,connectable:r,connectablestart:o,connectableend:i,clickconnecting:k,connectingfrom:S,connectingto:E,valid:z,connectionindicator:r&&(!I||$)&&(I||F?i:o)}]),onMouseDown:D,onTouchStart:D,onClick:b?y:void 0,ref:h,...d,children:c})}const Qe=T.memo(Di(lh));function fh({data:t,isConnectable:e,sourcePosition:n=q.Bottom}){return A.jsxs(A.Fragment,{children:[t==null?void 0:t.label,A.jsx(Qe,{type:"source",position:n,isConnectable:e})]})}function dh({data:t,isConnectable:e,targetPosition:n=q.Top,sourcePosition:r=q.Bottom}){return A.jsxs(A.Fragment,{children:[A.jsx(Qe,{type:"target",position:n,isConnectable:e}),t==null?void 0:t.label,A.jsx(Qe,{type:"source",position:r,isConnectable:e})]})}function hh(){return null}function gh({data:t,isConnectable:e,targetPosition:n=q.Top}){return A.jsxs(A.Fragment,{children:[A.jsx(Qe,{type:"target",position:n,isConnectable:e}),t==null?void 0:t.label]})}const Je={ArrowUp:{x:0,y:-1},ArrowDown:{x:0,y:1},ArrowLeft:{x:-1,y:0},ArrowRight:{x:1,y:0}},so={input:fh,default:dh,output:gh,group:hh};function ph(t){var e,n,r,o;return t.internals.handleBounds===void 0?{width:t.width??t.initialWidth??((e=t.style)==null?void 0:e.width),height:t.height??t.initialHeight??((n=t.style)==null?void 0:n.height)}:{width:t.width??((r=t.style)==null?void 0:r.width),height:t.height??((o=t.style)==null?void 0:o.height)}}const mh=t=>{const{width:e,height:n,x:r,y:o}=Ee(t.nodeLookup,{filter:i=>!!i.selected});return{width:gt(e)?e:null,height:gt(n)?n:null,userSelectionActive:t.userSelectionActive,transformString:`translate(${t.transform[0]}px,${t.transform[1]}px) scale(${t.transform[2]}) translate(${r}px,${o}px)`}};function yh({onSelectionContextMenu:t,noPanClassName:e,disableKeyboardA11y:n}){const r=rt(),{width:o,height:i,transformString:s,userSelectionActive:a}=tt(mh,ot),c=Vi(),u=T.useRef(null);T.useEffect(()=>{var h;n||(h=u.current)==null||h.focus({preventScroll:!0})},[n]);const l=!a&&o!==null&&i!==null;if(Ri({nodeRef:u,disabled:!l}),!l)return null;const f=t?h=>{const g=r.getState().nodes.filter(v=>v.selected);t(h,g)}:void 0,d=h=>{Object.prototype.hasOwnProperty.call(Je,h.key)&&(h.preventDefault(),c({direction:Je[h.key],factor:h.shiftKey?4:1}))};return A.jsx("div",{className:st(["react-flow__nodesselection","react-flow__container",e]),style:{transform:s},children:A.jsx("div",{ref:u,className:"react-flow__nodesselection-rect",onContextMenu:f,tabIndex:n?void 0:-1,onKeyDown:n?void 0:d,style:{width:o,height:i}})})}const ao=typeof window<"u"?window:void 0,xh=t=>({nodesSelectionActive:t.nodesSelectionActive,userSelectionActive:t.userSelectionActive});function Oi({children:t,onPaneClick:e,onPaneMouseEnter:n,onPaneMouseMove:r,onPaneMouseLeave:o,onPaneContextMenu:i,onPaneScroll:s,paneClickDistance:a,deleteKeyCode:c,selectionKeyCode:u,selectionOnDrag:l,selectionMode:f,onSelectionStart:d,onSelectionEnd:h,multiSelectionKeyCode:g,panActivationKeyCode:v,zoomActivationKeyCode:x,elementsSelectable:m,zoomOnScroll:b,zoomOnPinch:p,panOnScroll:w,panOnScrollSpeed:S,panOnScrollMode:E,zoomOnDoubleClick:k,panOnDrag:$,autoPanOnSelection:I,defaultViewport:F,translateExtent:z,minZoom:B,maxZoom:D,preventScrolling:y,onSelectionContextMenu:N,noWheelClassName:_,noPanClassName:C,disableKeyboardA11y:P,onViewportChange:M,isControlledViewport:R}){const{nodesSelectionActive:V,userSelectionActive:H}=tt(xh,ot),j=we(u,{target:ao}),X=we(v,{target:ao}),G=X||$,Q=X||w,K=l&&G!==!0,L=j||H||K;return Kd({deleteKeyCode:c,multiSelectionKeyCode:g}),A.jsx(Qd,{onPaneContextMenu:i,elementsSelectable:m,zoomOnScroll:b,zoomOnPinch:p,panOnScroll:Q,panOnScrollSpeed:S,panOnScrollMode:E,zoomOnDoubleClick:k,panOnDrag:!j&&G,defaultViewport:F,translateExtent:z,minZoom:B,maxZoom:D,zoomActivationKeyCode:x,preventScrolling:y,noWheelClassName:_,noPanClassName:C,onViewportChange:M,isControlledViewport:R,paneClickDistance:a,selectionOnDrag:K,children:A.jsxs(nh,{onSelectionStart:d,onSelectionEnd:h,onPaneClick:e,onPaneMouseEnter:n,onPaneMouseMove:r,onPaneMouseLeave:o,onPaneContextMenu:i,onPaneScroll:s,panOnDrag:G,autoPanOnSelection:I,isSelecting:!!L,selectionMode:f,selectionKeyPressed:j,paneClickDistance:a,selectionOnDrag:K,children:[t,V&&A.jsx(yh,{onSelectionContextMenu:N,noPanClassName:C,disableKeyboardA11y:P})]})})}Oi.displayName="FlowRenderer";const wh=T.memo(Oi),vh=t=>e=>t?Kn(e.nodeLookup,{x:0,y:0,width:e.width,height:e.height},e.transform,!0).map(n=>n.id):Array.from(e.nodeLookup.keys());function bh(t){return tt(T.useCallback(vh(t),[t]),ot)}const _h=t=>t.updateNodeInternals;function Eh(){const t=tt(_h),[e]=T.useState(()=>typeof ResizeObserver>"u"?null:new ResizeObserver(n=>{const r=new Map;n.forEach(o=>{const i=o.target.getAttribute("data-id");r.set(i,{id:i,nodeElement:o.target,force:!0})}),t(r)}));return T.useEffect(()=>()=>{e==null||e.disconnect()},[e]),e}function Sh({node:t,nodeType:e,hasDimensions:n,resizeObserver:r}){const o=rt(),i=T.useRef(null),s=T.useRef(null),a=T.useRef(t.sourcePosition),c=T.useRef(t.targetPosition),u=T.useRef(e),l=n&&!!t.internals.handleBounds;return T.useEffect(()=>{i.current&&!t.hidden&&(!l||s.current!==i.current)&&(s.current&&(r==null||r.unobserve(s.current)),r==null||r.observe(i.current),s.current=i.current)},[l,t.hidden]),T.useEffect(()=>()=>{s.current&&(r==null||r.unobserve(s.current),s.current=null)},[]),T.useEffect(()=>{if(i.current){const f=u.current!==e,d=a.current!==t.sourcePosition,h=c.current!==t.targetPosition;(f||d||h)&&(u.current=e,a.current=t.sourcePosition,c.current=t.targetPosition,o.getState().updateNodeInternals(new Map([[t.id,{id:t.id,nodeElement:i.current,force:!0}]])))}},[t.id,e,t.sourcePosition,t.targetPosition]),i}function Nh({id:t,onClick:e,onMouseEnter:n,onMouseMove:r,onMouseLeave:o,onContextMenu:i,onDoubleClick:s,nodesDraggable:a,elementsSelectable:c,nodesConnectable:u,nodesFocusable:l,resizeObserver:f,noDragClassName:d,noPanClassName:h,disableKeyboardA11y:g,rfId:v,nodeTypes:x,nodeClickDistance:m,onError:b}){const{node:p,internals:w,isParent:S}=tt(L=>{const O=L.nodeLookup.get(t),U=L.parentLookup.has(t);return{node:O,internals:O.internals,isParent:U}},ot);let E=p.type||"default",k=(x==null?void 0:x[E])||so[E];k===void 0&&(b==null||b("003",mt.error003(E)),E="default",k=(x==null?void 0:x.default)||so.default);const $=!!(p.draggable||a&&typeof p.draggable>"u"),I=!!(p.selectable||c&&typeof p.selectable>"u"),F=!!(p.connectable||u&&typeof p.connectable>"u"),z=!!(p.focusable||l&&typeof p.focusable>"u"),B=rt(),D=ii(p),y=Sh({node:p,nodeType:E,hasDimensions:D,resizeObserver:f}),N=Ri({nodeRef:y,disabled:p.hidden||!$,noDragClassName:d,handleSelector:p.dragHandle,nodeId:t,isSelectable:I,nodeClickDistance:m}),_=Vi();if(p.hidden)return null;const C=Et(p),P=ph(p),M=I||$||e||n||r||o,R=n?L=>n(L,{...w.userNode}):void 0,V=r?L=>r(L,{...w.userNode}):void 0,H=o?L=>o(L,{...w.userNode}):void 0,j=i?L=>i(L,{...w.userNode}):void 0,X=s?L=>s(L,{...w.userNode}):void 0,G=L=>{const{selectNodesOnDrag:O,nodeDragThreshold:U}=B.getState();I&&(!O||!$||U>0)&&Bn({id:t,store:B,nodeRef:y}),e&&e(L,{...w.userNode})},Q=L=>{if(!(ci(L.nativeEvent)||g)){if(Ko.includes(L.key)&&I){const O=L.key==="Escape";Bn({id:t,store:B,unselect:O,nodeRef:y})}else if($&&p.selected&&Object.prototype.hasOwnProperty.call(Je,L.key)){L.preventDefault();const{ariaLabelConfig:O}=B.getState();B.setState({ariaLiveMessage:O["node.a11yDescription.ariaLiveMessage"]({direction:L.key.replace("Arrow","").toLowerCase(),x:~~w.positionAbsolute.x,y:~~w.positionAbsolute.y})}),_({direction:Je[L.key],factor:L.shiftKey?4:1})}}},K=()=>{var J;if(g||!((J=y.current)!=null&&J.matches(":focus-visible")))return;const{transform:L,width:O,height:U,autoPanOnNodeFocus:Z,setCenter:W}=B.getState();if(!Z)return;Kn(new Map([[t,p]]),{x:0,y:0,width:O,height:U},L,!0).length>0||W(p.position.x+C.width/2,p.position.y+C.height/2,{zoom:L[2]})};return A.jsx("div",{className:st(["react-flow__node",`react-flow__node-${E}`,{[h]:$},p.className,{selected:p.selected,selectable:I,parent:S,draggable:$,dragging:N}]),ref:y,style:{zIndex:w.z,transform:`translate(${w.positionAbsolute.x}px,${w.positionAbsolute.y}px)`,pointerEvents:M?"all":"none",visibility:D?"visible":"hidden",...p.style,...P},"data-id":t,"data-testid":`rf__node-${t}`,onMouseEnter:R,onMouseMove:V,onMouseLeave:H,onContextMenu:j,onClick:G,onDoubleClick:X,onKeyDown:z?Q:void 0,tabIndex:z?0:void 0,onFocus:z?K:void 0,role:p.ariaRole??(z?"group":void 0),"aria-roledescription":"node","aria-describedby":g?void 0:`${Ii}-${v}`,"aria-label":p.ariaLabel,...p.domAttributes,children:A.jsx(oh,{value:t,children:A.jsx(k,{id:t,data:p.data,type:E,positionAbsoluteX:w.positionAbsolute.x,positionAbsoluteY:w.positionAbsolute.y,selected:p.selected??!1,selectable:I,draggable:$,deletable:p.deletable??!0,isConnectable:F,sourcePosition:p.sourcePosition,targetPosition:p.targetPosition,dragging:N,dragHandle:p.dragHandle,zIndex:w.z,parentId:p.parentId,...C})})})}var Mh=T.memo(Nh);const Ch=t=>({nodesConnectable:t.nodesConnectable,nodesFocusable:t.nodesFocusable,elementsSelectable:t.elementsSelectable,onError:t.onError});function ji(t){const{nodesConnectable:e,nodesFocusable:n,elementsSelectable:r,onError:o}=tt(Ch,ot),i=bh(t.onlyRenderVisibleElements),s=Eh();return A.jsx("div",{className:"react-flow__nodes",style:dn,children:i.map(a=>A.jsx(Mh,{id:a,nodeTypes:t.nodeTypes,nodeExtent:t.nodeExtent,onClick:t.onNodeClick,onMouseEnter:t.onNodeMouseEnter,onMouseMove:t.onNodeMouseMove,onMouseLeave:t.onNodeMouseLeave,onContextMenu:t.onNodeContextMenu,onDoubleClick:t.onNodeDoubleClick,noDragClassName:t.noDragClassName,noPanClassName:t.noPanClassName,rfId:t.rfId,disableKeyboardA11y:t.disableKeyboardA11y,resizeObserver:s,nodesDraggable:t.nodesDraggable??!0,nodesConnectable:e,nodesFocusable:n,elementsSelectable:r,nodeClickDistance:t.nodeClickDistance,onError:o},a))})}ji.displayName="NodeRenderer";const kh=T.memo(ji);function Ah(t){return tt(T.useCallback(n=>{if(!t)return n.edges.map(o=>o.id);const r=[];if(n.width&&n.height)for(const o of n.edges){const i=n.nodeLookup.get(o.source),s=n.nodeLookup.get(o.target);i&&s&&cf({sourceNode:i,targetNode:s,width:n.width,height:n.height,transform:n.transform})&&r.push(o.id)}return r},[t]),ot)}const $h=({color:t="none",strokeWidth:e=1})=>{const n={strokeWidth:e,...t&&{stroke:t}};return A.jsx("polyline",{className:"arrow",style:n,strokeLinecap:"round",fill:"none",strokeLinejoin:"round",points:"-5,-4 0,0 -5,4"})},Ih=({color:t="none",strokeWidth:e=1})=>{const n={strokeWidth:e,...t&&{stroke:t,fill:t}};return A.jsx("polyline",{className:"arrowclosed",style:n,strokeLinecap:"round",strokeLinejoin:"round",points:"-5,-4 0,0 -5,4 -5,-4"})},co={[Ke.Arrow]:$h,[Ke.ArrowClosed]:Ih};function Ph(t){const e=rt();return T.useMemo(()=>{var o,i;return Object.prototype.hasOwnProperty.call(co,t)?co[t]:((i=(o=e.getState()).onError)==null||i.call(o,"009",mt.error009(t)),null)},[t])}const Th=({id:t,type:e,color:n,width:r=12.5,height:o=12.5,markerUnits:i="strokeWidth",strokeWidth:s,orient:a="auto-start-reverse"})=>{const c=Ph(e);return c?A.jsx("marker",{className:"react-flow__arrowhead",id:t,markerWidth:`${r}`,markerHeight:`${o}`,viewBox:"-10 -10 20 20",markerUnits:i,orient:a,refX:"0",refY:"0",children:A.jsx(c,{color:n,strokeWidth:s})}):null},Xi=({defaultColor:t,rfId:e})=>{const n=tt(i=>i.edges),r=tt(i=>i.defaultEdgeOptions),o=T.useMemo(()=>mf(n,{id:e,defaultColor:t,defaultMarkerStart:r==null?void 0:r.markerStart,defaultMarkerEnd:r==null?void 0:r.markerEnd}),[n,r,e,t]);return o.length?A.jsx("svg",{className:"react-flow__marker","aria-hidden":"true",children:A.jsx("defs",{children:o.map(i=>A.jsx(Th,{id:i.id,type:i.type,color:i.color,width:i.width,height:i.height,markerUnits:i.markerUnits,strokeWidth:i.strokeWidth,orient:i.orient},i.id))})}):null};Xi.displayName="MarkerDefinitions";var zh=T.memo(Xi);function Yi({x:t,y:e,label:n,labelStyle:r,labelShowBg:o=!0,labelBgStyle:i,labelBgPadding:s=[2,4],labelBgBorderRadius:a=2,children:c,className:u,...l}){const[f,d]=T.useState({x:1,y:0,width:0,height:0}),h=st(["react-flow__edge-textwrapper",u]),g=T.useRef(null);return T.useEffect(()=>{if(g.current){const v=g.current.getBBox();d({x:v.x,y:v.y,width:v.width,height:v.height})}},[n]),n?A.jsxs("g",{transform:`translate(${t-f.width/2} ${e-f.height/2})`,className:h,visibility:f.width?"visible":"hidden",...l,children:[o&&A.jsx("rect",{width:f.width+2*s[0],x:-s[0],y:-s[1],height:f.height+2*s[1],className:"react-flow__edge-textbg",style:i,rx:a,ry:a}),A.jsx("text",{className:"react-flow__edge-text",y:f.height/2,dy:"0.3em",ref:g,style:r,children:n}),c]}):null}Yi.displayName="EdgeText";const Dh=T.memo(Yi);function hn({path:t,labelX:e,labelY:n,label:r,labelStyle:o,labelShowBg:i,labelBgStyle:s,labelBgPadding:a,labelBgBorderRadius:c,interactionWidth:u=20,...l}){return A.jsxs(A.Fragment,{children:[A.jsx("path",{...l,d:t,fill:"none",className:st(["react-flow__edge-path",l.className])}),u?A.jsx("path",{d:t,fill:"none",strokeOpacity:0,strokeWidth:u,className:"react-flow__edge-interaction"}):null,r&>(e)&>(n)?A.jsx(Dh,{x:e,y:n,label:r,labelStyle:o,labelShowBg:i,labelBgStyle:s,labelBgPadding:a,labelBgBorderRadius:c}):null]})}function uo({pos:t,x1:e,y1:n,x2:r,y2:o}){return t===q.Left||t===q.Right?[.5*(e+r),n]:[e,.5*(n+o)]}function Wi({sourceX:t,sourceY:e,sourcePosition:n=q.Bottom,targetX:r,targetY:o,targetPosition:i=q.Top}){const[s,a]=uo({pos:n,x1:t,y1:e,x2:r,y2:o}),[c,u]=uo({pos:i,x1:r,y1:o,x2:t,y2:e}),[l,f,d,h]=li({sourceX:t,sourceY:e,targetX:r,targetY:o,sourceControlX:s,sourceControlY:a,targetControlX:c,targetControlY:u});return[`M${t},${e} C${s},${a} ${c},${u} ${r},${o}`,l,f,d,h]}function qi(t){return T.memo(({id:e,sourceX:n,sourceY:r,targetX:o,targetY:i,sourcePosition:s,targetPosition:a,label:c,labelStyle:u,labelShowBg:l,labelBgStyle:f,labelBgPadding:d,labelBgBorderRadius:h,style:g,markerEnd:v,markerStart:x,interactionWidth:m})=>{const[b,p,w]=Wi({sourceX:n,sourceY:r,sourcePosition:s,targetX:o,targetY:i,targetPosition:a}),S=t.isInternal?void 0:e;return A.jsx(hn,{id:S,path:b,labelX:p,labelY:w,label:c,labelStyle:u,labelShowBg:l,labelBgStyle:f,labelBgPadding:d,labelBgBorderRadius:h,style:g,markerEnd:v,markerStart:x,interactionWidth:m})})}const Lh=qi({isInternal:!1}),Gi=qi({isInternal:!0});Lh.displayName="SimpleBezierEdge";Gi.displayName="SimpleBezierEdgeInternal";function Ki(t){return T.memo(({id:e,sourceX:n,sourceY:r,targetX:o,targetY:i,label:s,labelStyle:a,labelShowBg:c,labelBgStyle:u,labelBgPadding:l,labelBgBorderRadius:f,style:d,sourcePosition:h=q.Bottom,targetPosition:g=q.Top,markerEnd:v,markerStart:x,pathOptions:m,interactionWidth:b})=>{const[p,w,S]=Ln({sourceX:n,sourceY:r,sourcePosition:h,targetX:o,targetY:i,targetPosition:g,borderRadius:m==null?void 0:m.borderRadius,offset:m==null?void 0:m.offset,stepPosition:m==null?void 0:m.stepPosition}),E=t.isInternal?void 0:e;return A.jsx(hn,{id:E,path:p,labelX:w,labelY:S,label:s,labelStyle:a,labelShowBg:c,labelBgStyle:u,labelBgPadding:l,labelBgBorderRadius:f,style:d,markerEnd:v,markerStart:x,interactionWidth:b})})}const Zi=Ki({isInternal:!1}),Ui=Ki({isInternal:!0});Zi.displayName="SmoothStepEdge";Ui.displayName="SmoothStepEdgeInternal";function Qi(t){return T.memo(({id:e,...n})=>{var o;const r=t.isInternal?void 0:e;return A.jsx(Zi,{...n,id:r,pathOptions:T.useMemo(()=>{var i;return{borderRadius:0,offset:(i=n.pathOptions)==null?void 0:i.offset}},[(o=n.pathOptions)==null?void 0:o.offset])})})}const Hh=Qi({isInternal:!1}),Ji=Qi({isInternal:!0});Hh.displayName="StepEdge";Ji.displayName="StepEdgeInternal";function ts(t){return T.memo(({id:e,sourceX:n,sourceY:r,targetX:o,targetY:i,label:s,labelStyle:a,labelShowBg:c,labelBgStyle:u,labelBgPadding:l,labelBgBorderRadius:f,style:d,markerEnd:h,markerStart:g,interactionWidth:v})=>{const[x,m,b]=hi({sourceX:n,sourceY:r,targetX:o,targetY:i}),p=t.isInternal?void 0:e;return A.jsx(hn,{id:p,path:x,labelX:m,labelY:b,label:s,labelStyle:a,labelShowBg:c,labelBgStyle:u,labelBgPadding:l,labelBgBorderRadius:f,style:d,markerEnd:h,markerStart:g,interactionWidth:v})})}const Rh=ts({isInternal:!1}),es=ts({isInternal:!0});Rh.displayName="StraightEdge";es.displayName="StraightEdgeInternal";function ns(t){return T.memo(({id:e,sourceX:n,sourceY:r,targetX:o,targetY:i,sourcePosition:s=q.Bottom,targetPosition:a=q.Top,label:c,labelStyle:u,labelShowBg:l,labelBgStyle:f,labelBgPadding:d,labelBgBorderRadius:h,style:g,markerEnd:v,markerStart:x,pathOptions:m,interactionWidth:b})=>{const[p,w,S]=fi({sourceX:n,sourceY:r,sourcePosition:s,targetX:o,targetY:i,targetPosition:a,curvature:m==null?void 0:m.curvature}),E=t.isInternal?void 0:e;return A.jsx(hn,{id:E,path:p,labelX:w,labelY:S,label:c,labelStyle:u,labelShowBg:l,labelBgStyle:f,labelBgPadding:d,labelBgBorderRadius:h,style:g,markerEnd:v,markerStart:x,interactionWidth:b})})}const Vh=ns({isInternal:!1}),rs=ns({isInternal:!0});Vh.displayName="BezierEdge";rs.displayName="BezierEdgeInternal";const lo={default:rs,straight:es,step:Ji,smoothstep:Ui,simplebezier:Gi},fo={sourceX:null,sourceY:null,targetX:null,targetY:null,sourcePosition:null,targetPosition:null,zIndex:void 0},Bh=(t,e,n)=>n===q.Left?t-e:n===q.Right?t+e:t,Fh=(t,e,n)=>n===q.Top?t-e:n===q.Bottom?t+e:t,ho="react-flow__edgeupdater";function go({position:t,centerX:e,centerY:n,radius:r=10,onMouseDown:o,onMouseEnter:i,onMouseOut:s,type:a}){return A.jsx("circle",{onMouseDown:o,onMouseEnter:i,onMouseOut:s,className:st([ho,`${ho}-${a}`]),cx:Bh(e,r,t),cy:Fh(n,r,t),r,stroke:"transparent",fill:"transparent"})}function Oh({isReconnectable:t,reconnectRadius:e,edge:n,sourceX:r,sourceY:o,targetX:i,targetY:s,sourcePosition:a,targetPosition:c,onReconnect:u,onReconnectStart:l,onReconnectEnd:f,setReconnecting:d,setUpdateHover:h}){const g=rt(),v=(w,S)=>{if(w.button!==0)return;const{autoPanOnConnect:E,domNode:k,connectionMode:$,connectionRadius:I,lib:F,onConnectStart:z,cancelConnection:B,nodeLookup:D,rfId:y,panBy:N,updateConnection:_}=g.getState(),C=S.type==="target",P=(V,H)=>{d(!1),f==null||f(V,n,S.type,H)},M=V=>u==null?void 0:u(n,V),R=(V,H)=>{d(!0),l==null||l(w,n,S.type),z==null||z(V,H)};Vn.onPointerDown(w.nativeEvent,{autoPanOnConnect:E,connectionMode:$,connectionRadius:I,domNode:k,handleId:S.id,nodeId:S.nodeId,nodeLookup:D,isTarget:C,edgeUpdaterType:S.type,lib:F,flowId:y,cancelConnection:B,panBy:N,isValidConnection:(...V)=>{var H,j;return((j=(H=g.getState()).isValidConnection)==null?void 0:j.call(H,...V))??!0},onConnect:M,onConnectStart:R,onConnectEnd:(...V)=>{var H,j;return(j=(H=g.getState()).onConnectEnd)==null?void 0:j.call(H,...V)},onReconnectEnd:P,updateConnection:_,getTransform:()=>g.getState().transform,getFromHandle:()=>g.getState().connection.fromHandle,dragThreshold:g.getState().connectionDragThreshold,handleDomNode:w.currentTarget})},x=w=>v(w,{nodeId:n.target,id:n.targetHandle??null,type:"target"}),m=w=>v(w,{nodeId:n.source,id:n.sourceHandle??null,type:"source"}),b=()=>h(!0),p=()=>h(!1);return A.jsxs(A.Fragment,{children:[(t===!0||t==="source")&&A.jsx(go,{position:a,centerX:r,centerY:o,radius:e,onMouseDown:x,onMouseEnter:b,onMouseOut:p,type:"source"}),(t===!0||t==="target")&&A.jsx(go,{position:c,centerX:i,centerY:s,radius:e,onMouseDown:m,onMouseEnter:b,onMouseOut:p,type:"target"})]})}function jh({id:t,edgesFocusable:e,edgesReconnectable:n,elementsSelectable:r,onClick:o,onDoubleClick:i,onContextMenu:s,onMouseEnter:a,onMouseMove:c,onMouseLeave:u,reconnectRadius:l,onReconnect:f,onReconnectStart:d,onReconnectEnd:h,rfId:g,edgeTypes:v,noPanClassName:x,onError:m,disableKeyboardA11y:b}){let p=tt(W=>W.edgeLookup.get(t));const w=tt(W=>W.defaultEdgeOptions);p=w?{...w,...p}:p;let S=p.type||"default",E=(v==null?void 0:v[S])||lo[S];E===void 0&&(m==null||m("011",mt.error011(S)),S="default",E=(v==null?void 0:v.default)||lo.default);const k=!!(p.focusable||e&&typeof p.focusable>"u"),$=typeof f<"u"&&(p.reconnectable||n&&typeof p.reconnectable>"u"),I=!!(p.selectable||r&&typeof p.selectable>"u"),F=T.useRef(null),[z,B]=T.useState(!1),[D,y]=T.useState(!1),N=rt(),{zIndex:_=p.zIndex,sourceX:C,sourceY:P,targetX:M,targetY:R,sourcePosition:V,targetPosition:H}=tt(T.useCallback(W=>{const Y=W.nodeLookup.get(p.source),J=W.nodeLookup.get(p.target);if(!Y||!J)return fo;const et=pf({id:t,sourceNode:Y,targetNode:J,sourceHandle:p.sourceHandle||null,targetHandle:p.targetHandle||null,connectionMode:W.connectionMode,onError:m}),nt=af({selected:p.selected,zIndex:p.zIndex,sourceNode:Y,targetNode:J,elevateOnSelect:W.elevateEdgesOnSelect,zIndexMode:W.zIndexMode});return{...et||fo,zIndex:nt}},[p.source,p.target,p.sourceHandle,p.targetHandle,p.selected,p.zIndex]),ot),j=T.useMemo(()=>p.markerStart?`url('#${Hn(p.markerStart,g)}')`:void 0,[p.markerStart,g]),X=T.useMemo(()=>p.markerEnd?`url('#${Hn(p.markerEnd,g)}')`:void 0,[p.markerEnd,g]);if(p.hidden||C===null||P===null||M===null||R===null)return null;const G=W=>{var nt;const{addSelectedEdges:Y,unselectNodesAndEdges:J,multiSelectionActive:et}=N.getState();I&&(N.setState({nodesSelectionActive:!1}),p.selected&&et?(J({nodes:[],edges:[p]}),(nt=F.current)==null||nt.blur()):Y([t])),o&&o(W,p)},Q=i?W=>{i(W,{...p})}:void 0,K=s?W=>{s(W,{...p})}:void 0,L=a?W=>{a(W,{...p})}:void 0,O=c?W=>{c(W,{...p})}:void 0,U=u?W=>{u(W,{...p})}:void 0,Z=W=>{var Y;if(!b&&Ko.includes(W.key)&&I){const{unselectNodesAndEdges:J,addSelectedEdges:et}=N.getState();W.key==="Escape"?((Y=F.current)==null||Y.blur(),J({edges:[p]})):et([t])}};return A.jsx("svg",{style:{zIndex:_},children:A.jsxs("g",{className:st(["react-flow__edge",`react-flow__edge-${S}`,p.className,x,{selected:p.selected,animated:p.animated,inactive:!I&&!o,updating:z,selectable:I}]),onClick:G,onDoubleClick:Q,onContextMenu:K,onMouseEnter:L,onMouseMove:O,onMouseLeave:U,onKeyDown:k?Z:void 0,tabIndex:k?0:void 0,role:p.ariaRole??(k?"group":"img"),"aria-roledescription":"edge","data-id":t,"data-testid":`rf__edge-${t}`,"aria-label":p.ariaLabel===null?void 0:p.ariaLabel||`Edge from ${p.source} to ${p.target}`,"aria-describedby":k?`${Pi}-${g}`:void 0,ref:F,...p.domAttributes,children:[!D&&A.jsx(E,{id:t,source:p.source,target:p.target,type:p.type,selected:p.selected,animated:p.animated,selectable:I,deletable:p.deletable??!0,label:p.label,labelStyle:p.labelStyle,labelShowBg:p.labelShowBg,labelBgStyle:p.labelBgStyle,labelBgPadding:p.labelBgPadding,labelBgBorderRadius:p.labelBgBorderRadius,sourceX:C,sourceY:P,targetX:M,targetY:R,sourcePosition:V,targetPosition:H,data:p.data,style:p.style,sourceHandleId:p.sourceHandle,targetHandleId:p.targetHandle,markerStart:j,markerEnd:X,pathOptions:"pathOptions"in p?p.pathOptions:void 0,interactionWidth:p.interactionWidth}),$&&A.jsx(Oh,{edge:p,isReconnectable:$,reconnectRadius:l,onReconnect:f,onReconnectStart:d,onReconnectEnd:h,sourceX:C,sourceY:P,targetX:M,targetY:R,sourcePosition:V,targetPosition:H,setUpdateHover:B,setReconnecting:y})]})})}var Xh=T.memo(jh);const Yh=t=>({edgesFocusable:t.edgesFocusable,edgesReconnectable:t.edgesReconnectable,elementsSelectable:t.elementsSelectable,connectionMode:t.connectionMode,onError:t.onError});function os({defaultMarkerColor:t,onlyRenderVisibleElements:e,rfId:n,edgeTypes:r,noPanClassName:o,onReconnect:i,onEdgeContextMenu:s,onEdgeMouseEnter:a,onEdgeMouseMove:c,onEdgeMouseLeave:u,onEdgeClick:l,reconnectRadius:f,onEdgeDoubleClick:d,onReconnectStart:h,onReconnectEnd:g,disableKeyboardA11y:v}){const{edgesFocusable:x,edgesReconnectable:m,elementsSelectable:b,onError:p}=tt(Yh,ot),w=Ah(e);return A.jsxs("div",{className:"react-flow__edges",children:[A.jsx(zh,{defaultColor:t,rfId:n}),w.map(S=>A.jsx(Xh,{id:S,edgesFocusable:x,edgesReconnectable:m,elementsSelectable:b,noPanClassName:o,onReconnect:i,onContextMenu:s,onMouseEnter:a,onMouseMove:c,onMouseLeave:u,onClick:l,reconnectRadius:f,onDoubleClick:d,onReconnectStart:h,onReconnectEnd:g,rfId:n,onError:p,edgeTypes:r,disableKeyboardA11y:v},S))]})}os.displayName="EdgeRenderer";const Wh=T.memo(os),po=t=>`translate(${t[0]}px,${t[1]}px) scale(${t[2]})`;function qh({children:t}){const e=rt(),n=T.useRef(null),[r]=T.useState(()=>e.getState().transform);return Li(()=>{let o=null;const i=()=>{const s=e.getState().transform;o&&s[0]===o[0]&&s[1]===o[1]&&s[2]===o[2]||(o=s,n.current&&(n.current.style.transform=po(s)))};return i(),e.subscribe(i)},[e]),A.jsx("div",{ref:n,className:"react-flow__viewport xyflow__viewport react-flow__container",style:{transform:po(r)},children:t})}function Gh(t){const e=or(),n=T.useRef(!1);T.useEffect(()=>{!n.current&&e.viewportInitialized&&t&&(setTimeout(()=>t(e),1),n.current=!0)},[t,e.viewportInitialized])}const Kh=t=>{var e;return(e=t.panZoom)==null?void 0:e.syncViewport};function Zh(t){const e=tt(Kh),n=rt();return T.useEffect(()=>{t&&(e==null||e(t),n.setState({transform:[t.x,t.y,t.zoom]}))},[t,e]),null}function Uh(t){return t.connection.inProgress?{...t.connection,to:Ne(t.connection.to,t.transform)}:{...t.connection}}function Qh(t){return Uh}function Jh(t){const e=Qh();return tt(e,ot)}const tg=t=>({nodesConnectable:t.nodesConnectable,isValid:t.connection.isValid,inProgress:t.connection.inProgress,width:t.width,height:t.height});function eg({containerStyle:t,style:e,type:n,component:r}){const{nodesConnectable:o,width:i,height:s,isValid:a,inProgress:c}=tt(tg,ot);return!(i&&o&&c)?null:A.jsx("svg",{style:t,width:i,height:s,className:"react-flow__connectionline react-flow__container",children:A.jsx("g",{className:st(["react-flow__connection",Qo(a)]),children:A.jsx(is,{style:e,type:n,CustomComponent:r,isValid:a})})})}const is=({style:t,type:e=Pt.Bezier,CustomComponent:n,isValid:r})=>{const{inProgress:o,from:i,fromNode:s,fromHandle:a,fromPosition:c,to:u,toNode:l,toHandle:f,toPosition:d,pointer:h}=Jh();if(!o)return;if(n)return A.jsx(n,{connectionLineType:e,connectionLineStyle:t,fromNode:s,fromHandle:a,fromX:i.x,fromY:i.y,toX:u.x,toY:u.y,fromPosition:c,toPosition:d,connectionStatus:Qo(r),toNode:l,toHandle:f,pointer:h});let g="";const v={sourceX:i.x,sourceY:i.y,sourcePosition:c,targetX:u.x,targetY:u.y,targetPosition:d};switch(e){case Pt.Bezier:[g]=fi(v);break;case Pt.SimpleBezier:[g]=Wi(v);break;case Pt.Step:[g]=Ln({...v,borderRadius:0});break;case Pt.SmoothStep:[g]=Ln(v);break;default:[g]=hi(v)}return A.jsx("path",{d:g,fill:"none",className:"react-flow__connection-path",style:t})};is.displayName="ConnectionLine";const ng={};function mo(t=ng){T.useRef(t),rt(),T.useEffect(()=>{},[t])}function rg(){rt(),T.useRef(!1),T.useEffect(()=>{},[])}function ss({nodeTypes:t,edgeTypes:e,onInit:n,onNodeClick:r,onEdgeClick:o,onNodeDoubleClick:i,onEdgeDoubleClick:s,onNodeMouseEnter:a,onNodeMouseMove:c,onNodeMouseLeave:u,onNodeContextMenu:l,onSelectionContextMenu:f,onSelectionStart:d,onSelectionEnd:h,connectionLineType:g,connectionLineStyle:v,connectionLineComponent:x,connectionLineContainerStyle:m,selectionKeyCode:b,selectionOnDrag:p,selectionMode:w,multiSelectionKeyCode:S,panActivationKeyCode:E,zoomActivationKeyCode:k,deleteKeyCode:$,onlyRenderVisibleElements:I,elementsSelectable:F,defaultViewport:z,translateExtent:B,minZoom:D,maxZoom:y,preventScrolling:N,defaultMarkerColor:_,zoomOnScroll:C,zoomOnPinch:P,panOnScroll:M,panOnScrollSpeed:R,panOnScrollMode:V,zoomOnDoubleClick:H,panOnDrag:j,autoPanOnSelection:X,onPaneClick:G,onPaneMouseEnter:Q,onPaneMouseMove:K,onPaneMouseLeave:L,onPaneScroll:O,onPaneContextMenu:U,paneClickDistance:Z,nodeClickDistance:W,onEdgeContextMenu:Y,onEdgeMouseEnter:J,onEdgeMouseMove:et,onEdgeMouseLeave:nt,reconnectRadius:it,onReconnect:lt,onReconnectStart:xt,onReconnectEnd:wt,noDragClassName:St,noWheelClassName:oe,noPanClassName:zt,disableKeyboardA11y:Dt,nodeExtent:ft,rfId:Nt,viewport:Mt,onViewportChange:Lt,nodesDraggable:gn}){return mo(t),mo(e),rg(),Gh(n),Zh(Mt),A.jsx(wh,{onPaneClick:G,onPaneMouseEnter:Q,onPaneMouseMove:K,onPaneMouseLeave:L,onPaneContextMenu:U,onPaneScroll:O,paneClickDistance:Z,deleteKeyCode:$,selectionKeyCode:b,selectionOnDrag:p,selectionMode:w,onSelectionStart:d,onSelectionEnd:h,multiSelectionKeyCode:S,panActivationKeyCode:E,zoomActivationKeyCode:k,elementsSelectable:F,zoomOnScroll:C,zoomOnPinch:P,zoomOnDoubleClick:H,panOnScroll:M,panOnScrollSpeed:R,panOnScrollMode:V,panOnDrag:j,autoPanOnSelection:X,defaultViewport:z,translateExtent:B,minZoom:D,maxZoom:y,onSelectionContextMenu:f,preventScrolling:N,noDragClassName:St,noWheelClassName:oe,noPanClassName:zt,disableKeyboardA11y:Dt,onViewportChange:Lt,isControlledViewport:!!Mt,children:A.jsxs(qh,{children:[A.jsx(Wh,{edgeTypes:e,onEdgeClick:o,onEdgeDoubleClick:s,onReconnect:lt,onReconnectStart:xt,onReconnectEnd:wt,onlyRenderVisibleElements:I,onEdgeContextMenu:Y,onEdgeMouseEnter:J,onEdgeMouseMove:et,onEdgeMouseLeave:nt,reconnectRadius:it,defaultMarkerColor:_,noPanClassName:zt,disableKeyboardA11y:Dt,rfId:Nt}),A.jsx(eg,{style:v,type:g,component:x,containerStyle:m}),A.jsx("div",{className:"react-flow__edgelabel-renderer"}),A.jsx(kh,{nodeTypes:t,onNodeClick:r,onNodeDoubleClick:i,onNodeMouseEnter:a,onNodeMouseMove:c,onNodeMouseLeave:u,onNodeContextMenu:l,nodeClickDistance:W,onlyRenderVisibleElements:I,noPanClassName:zt,noDragClassName:St,disableKeyboardA11y:Dt,nodeExtent:ft,rfId:Nt,nodesDraggable:gn}),A.jsx("div",{className:"react-flow__viewport-portal"})]})})}ss.displayName="GraphView";const og=T.memo(ss),ig=oi(),yo=({nodes:t,edges:e,defaultNodes:n,defaultEdges:r,width:o,height:i,fitView:s,fitViewOptions:a,minZoom:c=.5,maxZoom:u=2,nodeOrigin:l,nodeExtent:f,zIndexMode:d="basic"}={})=>{const h=new Map,g=new Map,v=new Map,x=new Map,m=r??e??[],b=n??t??[],p=l??[0,0],w=f??pe;mi(v,x,m);const{nodesInitialized:S}=Rn(b,h,g,{nodeOrigin:p,nodeExtent:w,zIndexMode:d});let E=[0,0,1];if(s&&o&&i){const k=Ee(h,{filter:z=>!!((z.width||z.initialWidth)&&(z.height||z.initialHeight))}),{x:$,y:I,zoom:F}=Un(k,o,i,c,u,(a==null?void 0:a.padding)??.1);E=[$,I,F]}return{rfId:"1",width:o??0,height:i??0,transform:E,nodes:b,nodesInitialized:S,nodeLookup:h,parentLookup:g,edges:m,edgeLookup:x,connectionLookup:v,onNodesChange:null,onEdgesChange:null,hasDefaultNodes:n!==void 0,hasDefaultEdges:r!==void 0,panZoom:null,minZoom:c,maxZoom:u,translateExtent:pe,nodeExtent:w,nodesSelectionActive:!1,userSelectionActive:!1,userSelectionRect:null,connectionMode:Jt.Strict,domNode:null,paneDragging:!1,noPanClassName:"nopan",nodeOrigin:p,nodeDragThreshold:1,connectionDragThreshold:1,snapGrid:[15,15],snapToGrid:!1,nodesDraggable:!0,nodesConnectable:!0,nodesFocusable:!0,edgesFocusable:!0,edgesReconnectable:!0,elementsSelectable:!0,elevateNodesOnSelect:!0,elevateEdgesOnSelect:!0,selectNodesOnDrag:!0,multiSelectionActive:!1,fitViewQueued:s??!1,fitViewOptions:a,fitViewResolver:null,connection:{...Uo},connectionClickStartHandle:null,connectOnClick:!0,ariaLiveMessage:"",autoPanOnConnect:!0,autoPanOnNodeDrag:!0,autoPanOnNodeFocus:!0,autoPanSpeed:15,connectionRadius:20,onError:ig,isValidConnection:void 0,onSelectionChangeHandlers:[],lib:"react",debug:!1,ariaLabelConfig:Zo,zIndexMode:d,onNodesChangeMiddlewareMap:new Map,onEdgesChangeMiddlewareMap:new Map}},sg=({nodes:t,edges:e,defaultNodes:n,defaultEdges:r,width:o,height:i,fitView:s,fitViewOptions:a,minZoom:c,maxZoom:u,nodeOrigin:l,nodeExtent:f,zIndexMode:d})=>xd((h,g)=>{async function v(){const{nodeLookup:x,panZoom:m,fitViewOptions:b,fitViewResolver:p,width:w,height:S,minZoom:E,maxZoom:k}=g();m&&(await Jl({nodes:x,width:w,height:S,panZoom:m,minZoom:E,maxZoom:k},b),p==null||p.resolve(!0),h({fitViewResolver:null}))}return{...yo({nodes:t,edges:e,width:o,height:i,fitView:s,fitViewOptions:a,minZoom:c,maxZoom:u,nodeOrigin:l,nodeExtent:f,defaultNodes:n,defaultEdges:r,zIndexMode:d}),setNodes:x=>{const{nodeLookup:m,parentLookup:b,nodeOrigin:p,elevateNodesOnSelect:w,fitViewQueued:S,zIndexMode:E,nodesSelectionActive:k}=g(),{nodesInitialized:$,hasSelectedNodes:I}=Rn(x,m,b,{nodeOrigin:p,nodeExtent:f,elevateNodesOnSelect:w,checkEquality:!0,zIndexMode:E}),F=k&&I;S&&$?(v(),h({nodes:x,nodesInitialized:$,fitViewQueued:!1,fitViewOptions:void 0,nodesSelectionActive:F})):h({nodes:x,nodesInitialized:$,nodesSelectionActive:F})},setEdges:x=>{const{connectionLookup:m,edgeLookup:b}=g();mi(m,b,x),h({edges:x})},setDefaultNodesAndEdges:(x,m)=>{if(x){const{setNodes:b}=g();b(x),h({hasDefaultNodes:!0})}if(m){const{setEdges:b}=g();b(m),h({hasDefaultEdges:!0})}},updateNodeInternals:x=>{const{triggerNodeChanges:m,nodeLookup:b,parentLookup:p,domNode:w,nodeOrigin:S,nodeExtent:E,debug:k,fitViewQueued:$,zIndexMode:I}=g(),{changes:F,updatedInternals:z}=Ef(x,b,p,w,S,E,I);z&&(wf(b,p,{nodeOrigin:S,nodeExtent:E,zIndexMode:I}),$?(v(),h({fitViewQueued:!1,fitViewOptions:void 0})):h({}),(F==null?void 0:F.length)>0&&(k&&console.log("React Flow: trigger node changes",F),m==null||m(F)))},updateNodePositions:(x,m=!1)=>{const b=[];let p=[];const{nodeLookup:w,triggerNodeChanges:S,connection:E,updateConnection:k,onNodesChangeMiddlewareMap:$}=g();for(const[I,F]of x){const z=w.get(I),B=!!(z!=null&&z.expandParent&&(z!=null&&z.parentId)&&(F!=null&&F.position)),D={id:I,type:"position",position:B?{x:Math.max(0,F.position.x),y:Math.max(0,F.position.y)}:F.position,dragging:m};if(z&&E.inProgress&&E.fromNode.id===z.id){const y=Yt(z,E.fromHandle,q.Left,!0);k({...E,from:y})}B&&z.parentId&&b.push({id:I,parentId:z.parentId,rect:{...F.internals.positionAbsolute,width:F.measured.width??0,height:F.measured.height??0}}),p.push(D)}if(b.length>0){const{parentLookup:I,nodeOrigin:F}=g(),z=rr(b,w,I,F);p.push(...z)}for(const I of $.values())p=I(p);S(p)},triggerNodeChanges:x=>{const{onNodesChange:m,setNodes:b,nodes:p,hasDefaultNodes:w,debug:S}=g();if(x!=null&&x.length){if(w){const E=Vd(x,p);b(E)}S&&console.log("React Flow: trigger node changes",x),m==null||m(x)}},triggerEdgeChanges:x=>{const{onEdgesChange:m,setEdges:b,edges:p,hasDefaultEdges:w,debug:S}=g();if(x!=null&&x.length){if(w){const E=Bd(x,p);b(E)}S&&console.log("React Flow: trigger edge changes",x),m==null||m(x)}},addSelectedNodes:x=>{const{multiSelectionActive:m,edgeLookup:b,nodeLookup:p,triggerNodeChanges:w,triggerEdgeChanges:S}=g();if(m){const E=x.map(k=>Ht(k,!0));w(E);return}w(Gt(p,new Set([...x]),!0)),S(Gt(b))},addSelectedEdges:x=>{const{multiSelectionActive:m,edgeLookup:b,nodeLookup:p,triggerNodeChanges:w,triggerEdgeChanges:S}=g();if(m){const E=x.map(k=>Ht(k,!0));S(E);return}S(Gt(b,new Set([...x]))),w(Gt(p,new Set,!0))},unselectNodesAndEdges:({nodes:x,edges:m}={})=>{const{edges:b,nodes:p,nodeLookup:w,triggerNodeChanges:S,triggerEdgeChanges:E}=g(),k=x||p,$=m||b,I=[];for(const z of k){if(!z.selected)continue;const B=w.get(z.id);B&&(B.selected=!1),I.push(Ht(z.id,!1))}const F=[];for(const z of $)z.selected&&F.push(Ht(z.id,!1));S(I),E(F)},setMinZoom:x=>{const{panZoom:m,maxZoom:b}=g();m==null||m.setScaleExtent([x,b]),h({minZoom:x})},setMaxZoom:x=>{const{panZoom:m,minZoom:b}=g();m==null||m.setScaleExtent([b,x]),h({maxZoom:x})},setTranslateExtent:x=>{var m;(m=g().panZoom)==null||m.setTranslateExtent(x),h({translateExtent:x})},resetSelectedElements:()=>{const{edges:x,nodes:m,triggerNodeChanges:b,triggerEdgeChanges:p,elementsSelectable:w}=g();if(!w)return;const S=m.reduce((k,$)=>$.selected?[...k,Ht($.id,!1)]:k,[]),E=x.reduce((k,$)=>$.selected?[...k,Ht($.id,!1)]:k,[]);b(S),p(E)},setNodeExtent:x=>{const{nodes:m,nodeLookup:b,parentLookup:p,nodeOrigin:w,elevateNodesOnSelect:S,nodeExtent:E,zIndexMode:k}=g();x[0][0]===E[0][0]&&x[0][1]===E[0][1]&&x[1][0]===E[1][0]&&x[1][1]===E[1][1]||(Rn(m,b,p,{nodeOrigin:w,nodeExtent:x,elevateNodesOnSelect:S,checkEquality:!1,zIndexMode:k}),h({nodeExtent:x}))},panBy:x=>{const{transform:m,width:b,height:p,panZoom:w,translateExtent:S}=g();return Sf({delta:x,panZoom:w,transform:m,translateExtent:S,width:b,height:p})},setCenter:async(x,m,b)=>{const{width:p,height:w,maxZoom:S,panZoom:E}=g();if(!E)return!1;const k=typeof(b==null?void 0:b.zoom)<"u"?b.zoom:S;return await E.setViewport({x:p/2-x*k,y:w/2-m*k,zoom:k},{duration:b==null?void 0:b.duration,ease:b==null?void 0:b.ease,interpolate:b==null?void 0:b.interpolate}),!0},cancelConnection:()=>{h({connection:{...Uo}})},updateConnection:x=>{h({connection:x})},reset:()=>h({...yo()})}},Object.is);function ag({initialNodes:t,initialEdges:e,defaultNodes:n,defaultEdges:r,initialWidth:o,initialHeight:i,initialMinZoom:s,initialMaxZoom:a,initialFitViewOptions:c,fitView:u,nodeOrigin:l,nodeExtent:f,zIndexMode:d,children:h}){const[g]=T.useState(()=>sg({nodes:t,edges:e,defaultNodes:n,defaultEdges:r,width:o,height:i,fitView:u,minZoom:s,maxZoom:a,fitViewOptions:c,nodeOrigin:l,nodeExtent:f,zIndexMode:d}));return A.jsx(wd,{value:g,children:A.jsx(Yd,{children:A.jsx(sh,{children:h})})})}function cg({children:t,nodes:e,edges:n,defaultNodes:r,defaultEdges:o,width:i,height:s,fitView:a,fitViewOptions:c,minZoom:u,maxZoom:l,nodeOrigin:f,nodeExtent:d,zIndexMode:h}){return T.useContext(ln)?A.jsx(A.Fragment,{children:t}):A.jsx(ag,{initialNodes:e,initialEdges:n,defaultNodes:r,defaultEdges:o,initialWidth:i,initialHeight:s,fitView:a,initialFitViewOptions:c,initialMinZoom:u,initialMaxZoom:l,nodeOrigin:f,nodeExtent:d,zIndexMode:h,children:t})}const ug={width:"100%",height:"100%",overflow:"hidden",position:"relative",zIndex:0};function lg({nodes:t,edges:e,defaultNodes:n,defaultEdges:r,className:o,nodeTypes:i,edgeTypes:s,onNodeClick:a,onEdgeClick:c,onInit:u,onMove:l,onMoveStart:f,onMoveEnd:d,onConnect:h,onConnectStart:g,onConnectEnd:v,onClickConnectStart:x,onClickConnectEnd:m,onNodeMouseEnter:b,onNodeMouseMove:p,onNodeMouseLeave:w,onNodeContextMenu:S,onNodeDoubleClick:E,onNodeDragStart:k,onNodeDrag:$,onNodeDragStop:I,onNodesDelete:F,onEdgesDelete:z,onDelete:B,onSelectionChange:D,onSelectionDragStart:y,onSelectionDrag:N,onSelectionDragStop:_,onSelectionContextMenu:C,onSelectionStart:P,onSelectionEnd:M,onBeforeDelete:R,connectionMode:V,connectionLineType:H=Pt.Bezier,connectionLineStyle:j,connectionLineComponent:X,connectionLineContainerStyle:G,deleteKeyCode:Q="Backspace",selectionKeyCode:K="Shift",selectionOnDrag:L=!1,selectionMode:O=me.Full,panActivationKeyCode:U="Space",multiSelectionKeyCode:Z=xe()?"Meta":"Control",zoomActivationKeyCode:W=xe()?"Meta":"Control",snapToGrid:Y,snapGrid:J,onlyRenderVisibleElements:et=!1,selectNodesOnDrag:nt,nodesDraggable:it,autoPanOnNodeFocus:lt,nodesConnectable:xt,nodesFocusable:wt,nodeOrigin:St=Ti,edgesFocusable:oe,edgesReconnectable:zt,elementsSelectable:Dt=!0,defaultViewport:ft=Pd,minZoom:Nt=.5,maxZoom:Mt=2,translateExtent:Lt=pe,preventScrolling:gn=!0,nodeExtent:pn,defaultMarkerColor:fs="#b1b1b7",zoomOnScroll:ds=!0,zoomOnPinch:hs=!0,panOnScroll:gs=!1,panOnScrollSpeed:ps=.5,panOnScrollMode:ms=Bt.Free,zoomOnDoubleClick:ys=!0,panOnDrag:xs=!0,onPaneClick:ws,onPaneMouseEnter:vs,onPaneMouseMove:bs,onPaneMouseLeave:_s,onPaneScroll:Es,onPaneContextMenu:Ss,paneClickDistance:Ns=1,nodeClickDistance:Ms=0,children:Cs,onReconnect:ks,onReconnectStart:As,onReconnectEnd:$s,onEdgeContextMenu:Is,onEdgeDoubleClick:Ps,onEdgeMouseEnter:Ts,onEdgeMouseMove:zs,onEdgeMouseLeave:Ds,reconnectRadius:Ls=10,onNodesChange:Hs,onEdgesChange:Rs,noDragClassName:Vs="nodrag",noWheelClassName:Bs="nowheel",noPanClassName:sr="nopan",fitView:ar,fitViewOptions:cr,connectOnClick:Fs,attributionPosition:Os,proOptions:js,defaultEdgeOptions:Xs,elevateNodesOnSelect:Ys=!0,elevateEdgesOnSelect:Ws=!1,disableKeyboardA11y:ur=!1,autoPanOnConnect:qs,autoPanOnNodeDrag:Gs,autoPanOnSelection:Ks=!0,autoPanSpeed:Zs,connectionRadius:Us,isValidConnection:Qs,onError:Js,style:ta,id:lr,nodeDragThreshold:ea,connectionDragThreshold:na,viewport:ra,onViewportChange:oa,width:ia,height:sa,colorMode:aa="light",debug:ca,onScroll:Me,ariaLabelConfig:ua,zIndexMode:fr="basic",...la},fa){const mn=lr||"1",da=Ld(aa),ha=T.useCallback(dr=>{dr.currentTarget.scrollTo({top:0,left:0,behavior:"instant"}),Me==null||Me(dr)},[Me]);return A.jsx("div",{"data-testid":"rf__wrapper",...la,onScroll:ha,style:{...ta,...ug},ref:fa,className:st(["react-flow",o,da]),id:lr,role:"application",children:A.jsxs(cg,{nodes:t,edges:e,width:ia,height:sa,fitView:ar,fitViewOptions:cr,minZoom:Nt,maxZoom:Mt,nodeOrigin:St,nodeExtent:pn,zIndexMode:fr,children:[A.jsx(Dd,{nodes:t,edges:e,defaultNodes:n,defaultEdges:r,onConnect:h,onConnectStart:g,onConnectEnd:v,onClickConnectStart:x,onClickConnectEnd:m,nodesDraggable:it,autoPanOnNodeFocus:lt,nodesConnectable:xt,nodesFocusable:wt,edgesFocusable:oe,edgesReconnectable:zt,elementsSelectable:Dt,elevateNodesOnSelect:Ys,elevateEdgesOnSelect:Ws,minZoom:Nt,maxZoom:Mt,nodeExtent:pn,onNodesChange:Hs,onEdgesChange:Rs,snapToGrid:Y,snapGrid:J,connectionMode:V,translateExtent:Lt,connectOnClick:Fs,defaultEdgeOptions:Xs,fitView:ar,fitViewOptions:cr,onNodesDelete:F,onEdgesDelete:z,onDelete:B,onNodeDragStart:k,onNodeDrag:$,onNodeDragStop:I,onSelectionDrag:N,onSelectionDragStart:y,onSelectionDragStop:_,onMove:l,onMoveStart:f,onMoveEnd:d,noPanClassName:sr,nodeOrigin:St,rfId:mn,autoPanOnConnect:qs,autoPanOnNodeDrag:Gs,autoPanSpeed:Zs,onError:Js,connectionRadius:Us,isValidConnection:Qs,selectNodesOnDrag:nt,nodeDragThreshold:ea,connectionDragThreshold:na,onBeforeDelete:R,debug:ca,ariaLabelConfig:ua,zIndexMode:fr}),A.jsx(og,{onInit:u,onNodeClick:a,onEdgeClick:c,onNodeMouseEnter:b,onNodeMouseMove:p,onNodeMouseLeave:w,onNodeContextMenu:S,onNodeDoubleClick:E,nodeTypes:i,edgeTypes:s,connectionLineType:H,connectionLineStyle:j,connectionLineComponent:X,connectionLineContainerStyle:G,selectionKeyCode:K,selectionOnDrag:L,selectionMode:O,deleteKeyCode:Q,multiSelectionKeyCode:Z,panActivationKeyCode:U,zoomActivationKeyCode:W,onlyRenderVisibleElements:et,defaultViewport:ft,translateExtent:Lt,minZoom:Nt,maxZoom:Mt,preventScrolling:gn,zoomOnScroll:ds,zoomOnPinch:hs,zoomOnDoubleClick:ys,panOnScroll:gs,panOnScrollSpeed:ps,panOnScrollMode:ms,panOnDrag:xs,autoPanOnSelection:Ks,onPaneClick:ws,onPaneMouseEnter:vs,onPaneMouseMove:bs,onPaneMouseLeave:_s,onPaneScroll:Es,onPaneContextMenu:Ss,paneClickDistance:Ns,nodeClickDistance:Ms,onSelectionContextMenu:C,onSelectionStart:P,onSelectionEnd:M,onReconnect:ks,onReconnectStart:As,onReconnectEnd:$s,onEdgeContextMenu:Is,onEdgeDoubleClick:Ps,onEdgeMouseEnter:Ts,onEdgeMouseMove:zs,onEdgeMouseLeave:Ds,reconnectRadius:Ls,defaultMarkerColor:fs,noDragClassName:Vs,noWheelClassName:Bs,noPanClassName:sr,rfId:mn,disableKeyboardA11y:ur,nodeExtent:pn,viewport:ra,onViewportChange:oa,nodesDraggable:it}),A.jsx(Id,{onSelectionChange:D}),Cs,A.jsx(Md,{proOptions:js,position:Os}),A.jsx(Nd,{rfId:mn,disableKeyboardA11y:ur})]})})}var fg=Di(lg);function dg({dimensions:t,lineWidth:e,variant:n,className:r}){return A.jsx("path",{strokeWidth:e,d:`M${t[0]/2} 0 V${t[1]} M0 ${t[1]/2} H${t[0]}`,className:st(["react-flow__background-pattern",n,r])})}function hg({radius:t,className:e}){return A.jsx("circle",{cx:t,cy:t,r:t,className:st(["react-flow__background-pattern","dots",e])})}var Tt;(function(t){t.Lines="lines",t.Dots="dots",t.Cross="cross"})(Tt||(Tt={}));const gg={[Tt.Dots]:1,[Tt.Lines]:1,[Tt.Cross]:6},pg=t=>({transform:t.transform,patternId:`pattern-${t.rfId}`});function as({id:t,variant:e=Tt.Dots,gap:n=20,size:r,lineWidth:o=1,offset:i=0,color:s,bgColor:a,style:c,className:u,patternClassName:l}){const f=T.useRef(null),{transform:d,patternId:h}=tt(pg,ot),g=r||gg[e],v=e===Tt.Dots,x=e===Tt.Cross,m=Array.isArray(n)?n:[n,n],b=[m[0]*d[2]||1,m[1]*d[2]||1],p=g*d[2],w=Array.isArray(i)?i:[i,i],S=x?[p,p]:b,E=[w[0]*d[2]||1+S[0]/2,w[1]*d[2]||1+S[1]/2],k=`${h}${t||""}`;return A.jsxs("svg",{className:st(["react-flow__background",u]),style:{...c,...dn,"--xy-background-color-props":a,"--xy-background-pattern-color-props":s},ref:f,"data-testid":"rf__background",children:[A.jsx("pattern",{id:k,x:d[0]%b[0],y:d[1]%b[1],width:b[0],height:b[1],patternUnits:"userSpaceOnUse",patternTransform:`translate(-${E[0]},-${E[1]})`,children:v?A.jsx(hg,{radius:p/2,className:l}):A.jsx(dg,{dimensions:S,lineWidth:o,variant:e,className:l})}),A.jsx("rect",{x:"0",y:"0",width:"100%",height:"100%",fill:`url(#${k})`})]})}as.displayName="Background";const mg=T.memo(as);function yg(){return A.jsx("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 32 32",children:A.jsx("path",{d:"M32 18.133H18.133V32h-4.266V18.133H0v-4.266h13.867V0h4.266v13.867H32z"})})}function xg(){return A.jsx("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 32 5",children:A.jsx("path",{d:"M0 0h32v4.2H0z"})})}function wg(){return A.jsx("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 32 30",children:A.jsx("path",{d:"M3.692 4.63c0-.53.4-.938.939-.938h5.215V0H4.708C2.13 0 0 2.054 0 4.63v5.216h3.692V4.631zM27.354 0h-5.2v3.692h5.17c.53 0 .984.4.984.939v5.215H32V4.631A4.624 4.624 0 0027.354 0zm.954 24.83c0 .532-.4.94-.939.94h-5.215v3.768h5.215c2.577 0 4.631-2.13 4.631-4.707v-5.139h-3.692v5.139zm-23.677.94c-.531 0-.939-.4-.939-.94v-5.138H0v5.139c0 2.577 2.13 4.707 4.708 4.707h5.138V25.77H4.631z"})})}function vg(){return A.jsx("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 25 32",children:A.jsx("path",{d:"M21.333 10.667H19.81V7.619C19.81 3.429 16.38 0 12.19 0 8 0 4.571 3.429 4.571 7.619v3.048H3.048A3.056 3.056 0 000 13.714v15.238A3.056 3.056 0 003.048 32h18.285a3.056 3.056 0 003.048-3.048V13.714a3.056 3.056 0 00-3.048-3.047zM12.19 24.533a3.056 3.056 0 01-3.047-3.047 3.056 3.056 0 013.047-3.048 3.056 3.056 0 013.048 3.048 3.056 3.056 0 01-3.048 3.047zm4.724-13.866H7.467V7.619c0-2.59 2.133-4.724 4.723-4.724 2.591 0 4.724 2.133 4.724 4.724v3.048z"})})}function bg(){return A.jsx("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 25 32",children:A.jsx("path",{d:"M21.333 10.667H19.81V7.619C19.81 3.429 16.38 0 12.19 0c-4.114 1.828-1.37 2.133.305 2.438 1.676.305 4.42 2.59 4.42 5.181v3.048H3.047A3.056 3.056 0 000 13.714v15.238A3.056 3.056 0 003.048 32h18.285a3.056 3.056 0 003.048-3.048V13.714a3.056 3.056 0 00-3.048-3.047zM12.19 24.533a3.056 3.056 0 01-3.047-3.047 3.056 3.056 0 013.047-3.048 3.056 3.056 0 013.048 3.048 3.056 3.056 0 01-3.048 3.047z"})})}function De({children:t,className:e,...n}){return A.jsx("button",{type:"button",className:st(["react-flow__controls-button",e]),...n,children:t})}const _g=t=>({isInteractive:t.nodesDraggable||t.nodesConnectable||t.elementsSelectable,minZoomReached:t.transform[2]<=t.minZoom,maxZoomReached:t.transform[2]>=t.maxZoom,ariaLabelConfig:t.ariaLabelConfig});function cs({style:t,showZoom:e=!0,showFitView:n=!0,showInteractive:r=!0,fitViewOptions:o,onZoomIn:i,onZoomOut:s,onFitView:a,onInteractiveChange:c,className:u,children:l,position:f="bottom-left",orientation:d="vertical","aria-label":h}){const g=rt(),{isInteractive:v,minZoomReached:x,maxZoomReached:m,ariaLabelConfig:b}=tt(_g,ot),{zoomIn:p,zoomOut:w,fitView:S}=or(),E=()=>{p(),i==null||i()},k=()=>{w(),s==null||s()},$=()=>{S(o),a==null||a()},I=()=>{g.setState({nodesDraggable:!v,nodesConnectable:!v,elementsSelectable:!v}),c==null||c(!v)},F=d==="horizontal"?"horizontal":"vertical";return A.jsxs(fn,{className:st(["react-flow__controls",F,u]),position:f,style:t,"data-testid":"rf__controls","aria-label":h??b["controls.ariaLabel"],children:[e&&A.jsxs(A.Fragment,{children:[A.jsx(De,{onClick:E,className:"react-flow__controls-zoomin",title:b["controls.zoomIn.ariaLabel"],"aria-label":b["controls.zoomIn.ariaLabel"],disabled:m,children:A.jsx(yg,{})}),A.jsx(De,{onClick:k,className:"react-flow__controls-zoomout",title:b["controls.zoomOut.ariaLabel"],"aria-label":b["controls.zoomOut.ariaLabel"],disabled:x,children:A.jsx(xg,{})})]}),n&&A.jsx(De,{className:"react-flow__controls-fitview",onClick:$,title:b["controls.fitView.ariaLabel"],"aria-label":b["controls.fitView.ariaLabel"],children:A.jsx(wg,{})}),r&&A.jsx(De,{className:"react-flow__controls-interactive",onClick:I,title:b["controls.interactive.ariaLabel"],"aria-label":b["controls.interactive.ariaLabel"],children:v?A.jsx(bg,{}):A.jsx(vg,{})}),l]})}cs.displayName="Controls";const Eg=T.memo(cs);function Sg({id:t,x:e,y:n,width:r,height:o,style:i,color:s,strokeColor:a,strokeWidth:c,className:u,borderRadius:l,shapeRendering:f,selected:d,onClick:h}){const{background:g,backgroundColor:v}=i||{},x=s||g||v;return A.jsx("rect",{className:st(["react-flow__minimap-node",{selected:d},u]),x:e,y:n,rx:l,ry:l,width:r,height:o,style:{fill:x,stroke:a,strokeWidth:c},shapeRendering:f,onClick:h?m=>h(m,t):void 0})}const Ng=T.memo(Sg),Mg=t=>t.nodes.map(e=>e.id),Mn=t=>t instanceof Function?t:()=>t;function Cg({nodeStrokeColor:t,nodeColor:e,nodeClassName:n="",nodeBorderRadius:r=5,nodeStrokeWidth:o,nodeComponent:i=Ng,onClick:s}){const a=tt(Mg,ot),c=Mn(e),u=Mn(t),l=Mn(n),f=typeof window>"u"||window.chrome?"crispEdges":"geometricPrecision";return A.jsx(A.Fragment,{children:a.map(d=>A.jsx(Ag,{id:d,nodeColorFunc:c,nodeStrokeColorFunc:u,nodeClassNameFunc:l,nodeBorderRadius:r,nodeStrokeWidth:o,NodeComponent:i,onClick:s,shapeRendering:f},d))})}function kg({id:t,nodeColorFunc:e,nodeStrokeColorFunc:n,nodeClassNameFunc:r,nodeBorderRadius:o,nodeStrokeWidth:i,shapeRendering:s,NodeComponent:a,onClick:c}){const{node:u,x:l,y:f,width:d,height:h}=tt(g=>{const v=g.nodeLookup.get(t);if(!v)return{node:void 0,x:0,y:0,width:0,height:0};const x=v.internals.userNode,{x:m,y:b}=v.internals.positionAbsolute,{width:p,height:w}=Et(x);return{node:x,x:m,y:b,width:p,height:w}},ot);return!u||u.hidden||!ii(u)?null:A.jsx(a,{x:l,y:f,width:d,height:h,style:u.style,selected:!!u.selected,className:r(u),color:e(u),borderRadius:o,strokeColor:n(u),strokeWidth:i,shapeRendering:s,onClick:c,id:u.id})}const Ag=T.memo(kg);var $g=T.memo(Cg);const Ig=200,Pg=150,Tg=t=>!t.hidden,zg=t=>{const e={x:-t.transform[0]/t.transform[2],y:-t.transform[1]/t.transform[2],width:t.width/t.transform[2],height:t.height/t.transform[2]};return{viewBB:e,boundingRect:t.nodeLookup.size>0?ni(Ee(t.nodeLookup,{filter:Tg}),e):e,rfId:t.rfId,panZoom:t.panZoom,translateExtent:t.translateExtent,flowWidth:t.width,flowHeight:t.height,ariaLabelConfig:t.ariaLabelConfig}},xo=(t,e)=>t.x===e.x&&t.y===e.y&&t.width===e.width&&t.height===e.height,Dg=(t,e)=>xo(t.viewBB,e.viewBB)&&xo(t.boundingRect,e.boundingRect)&&t.rfId===e.rfId&&t.panZoom===e.panZoom&&t.translateExtent===e.translateExtent&&t.flowWidth===e.flowWidth&&t.flowHeight===e.flowHeight&&t.ariaLabelConfig===e.ariaLabelConfig,Lg="react-flow__minimap-desc";function us({style:t,className:e,nodeStrokeColor:n,nodeColor:r,nodeClassName:o="",nodeBorderRadius:i=5,nodeStrokeWidth:s,nodeComponent:a,bgColor:c,maskColor:u,maskStrokeColor:l,maskStrokeWidth:f,position:d="bottom-right",onClick:h,onNodeClick:g,pannable:v=!1,zoomable:x=!1,ariaLabel:m,inversePan:b,zoomStep:p=1,offsetScale:w=5}){const S=rt(),E=T.useRef(null),{boundingRect:k,viewBB:$,rfId:I,panZoom:F,translateExtent:z,flowWidth:B,flowHeight:D,ariaLabelConfig:y}=tt(zg,Dg),N=(t==null?void 0:t.width)??Ig,_=(t==null?void 0:t.height)??Pg,C=k.width/N,P=k.height/_,M=Math.max(C,P),R=M*N,V=M*_,H=w*M,j=k.x-(R-k.width)/2-H,X=k.y-(V-k.height)/2-H,G=R+H*2,Q=V+H*2,K=`${Lg}-${I}`,L=T.useRef(0),O=T.useRef();L.current=M,T.useEffect(()=>{if(E.current&&F)return O.current=Tf({domNode:E.current,panZoom:F,getTransform:()=>S.getState().transform,getViewScale:()=>L.current}),()=>{var Y;(Y=O.current)==null||Y.destroy()}},[F]),T.useEffect(()=>{var Y;(Y=O.current)==null||Y.update({translateExtent:z,width:B,height:D,inversePan:b,pannable:v,zoomStep:p,zoomable:x})},[v,x,b,p,z,B,D]);const U=h?Y=>{var nt;const[J,et]=((nt=O.current)==null?void 0:nt.pointer(Y))||[0,0];h(Y,{x:J,y:et})}:void 0,Z=g?T.useCallback((Y,J)=>{const et=S.getState().nodeLookup.get(J).internals.userNode;g(Y,et)},[]):void 0,W=m??y["minimap.ariaLabel"];return A.jsx(fn,{position:d,style:{...t,"--xy-minimap-background-color-props":typeof c=="string"?c:void 0,"--xy-minimap-mask-background-color-props":typeof u=="string"?u:void 0,"--xy-minimap-mask-stroke-color-props":typeof l=="string"?l:void 0,"--xy-minimap-mask-stroke-width-props":typeof f=="number"?f*M:void 0,"--xy-minimap-node-background-color-props":typeof r=="string"?r:void 0,"--xy-minimap-node-stroke-color-props":typeof n=="string"?n:void 0,"--xy-minimap-node-stroke-width-props":typeof s=="number"?s:void 0},className:st(["react-flow__minimap",e]),"data-testid":"rf__minimap",children:A.jsxs("svg",{width:N,height:_,viewBox:`${j} ${X} ${G} ${Q}`,className:"react-flow__minimap-svg",role:"img","aria-labelledby":K,ref:E,onClick:U,children:[W&&A.jsx("title",{id:K,children:W}),A.jsx($g,{onClick:Z,nodeColor:r,nodeStrokeColor:n,nodeBorderRadius:i,nodeClassName:o,nodeStrokeWidth:s,nodeComponent:a}),A.jsx("path",{className:"react-flow__minimap-mask",d:`M${j-H},${X-H}h${G+H*2}v${Q+H*2}h${-G-H*2}z
|
|
23
|
+
M${$.x},${$.y}h${$.width}v${$.height}h${-$.width}z`,fillRule:"evenodd",pointerEvents:"none"})]})})}us.displayName="MiniMap";T.memo(us);const Hg=t=>e=>t?`${Math.max(1/e.transform[2],1)}`:void 0,Rg={[ne.Line]:"right",[ne.Handle]:"bottom-right"};function Vg({nodeId:t,position:e,variant:n=ne.Handle,className:r,style:o=void 0,children:i,color:s,minWidth:a=10,minHeight:c=10,maxWidth:u=Number.MAX_VALUE,maxHeight:l=Number.MAX_VALUE,keepAspectRatio:f=!1,resizeDirection:d,autoScale:h=!0,shouldResize:g,onResizeStart:v,onResize:x,onResizeEnd:m}){const b=Bi(),p=typeof t=="string"?t:b,w=rt(),S=T.useRef(null),E=n===ne.Handle,k=tt(T.useCallback(Hg(E&&h),[E,h]),ot),$=T.useRef(null),I=e??Rg[n];T.useEffect(()=>{if(!(!S.current||!p))return $.current||($.current=Wf({domNode:S.current,nodeId:p,getStoreItems:()=>{const{nodeLookup:z,transform:B,snapGrid:D,snapToGrid:y,nodeOrigin:N,domNode:_}=w.getState();return{nodeLookup:z,transform:B,snapGrid:D,snapToGrid:y,nodeOrigin:N,paneDomNode:_}},onChange:(z,B)=>{const{triggerNodeChanges:D,nodeLookup:y,parentLookup:N,nodeOrigin:_}=w.getState(),C=[],P={x:z.x,y:z.y},M=y.get(p);if(M&&M.expandParent&&M.parentId){const R=M.origin??_,V=z.width??M.measured.width??0,H=z.height??M.measured.height??0,j={id:M.id,parentId:M.parentId,rect:{width:V,height:H,...si({x:z.x??M.position.x,y:z.y??M.position.y},{width:V,height:H},M.parentId,y,R)}},X=rr([j],y,N,_);C.push(...X),P.x=z.x?Math.max(R[0]*V,z.x):void 0,P.y=z.y?Math.max(R[1]*H,z.y):void 0}if(P.x!==void 0&&P.y!==void 0){const R={id:p,type:"position",position:{...P}};C.push(R)}if(z.width!==void 0&&z.height!==void 0){const V={id:p,type:"dimensions",resizing:!0,setAttributes:d?d==="horizontal"?"width":"height":!0,dimensions:{width:z.width,height:z.height}};C.push(V)}for(const R of B){const V={...R,type:"position"};C.push(V)}D(C)},onEnd:({width:z,height:B})=>{const D={id:p,type:"dimensions",resizing:!1,dimensions:{width:z,height:B}};w.getState().triggerNodeChanges([D])}})),$.current.update({controlPosition:I,boundaries:{minWidth:a,minHeight:c,maxWidth:u,maxHeight:l},keepAspectRatio:f,resizeDirection:d,onResizeStart:v,onResize:x,onResizeEnd:m,shouldResize:g}),()=>{var z;(z=$.current)==null||z.destroy()}},[I,a,c,u,l,f,v,x,m,g]);const F=I.split("-");return A.jsx("div",{className:st(["react-flow__resize-control","nodrag",...F,n,r]),ref:S,style:{...o,scale:k,...s&&{[E?"backgroundColor":"borderColor"]:s}},children:i})}T.memo(Vg);const Bg={container:{background:"#1e293b",color:"#e2e8f0",border:"1px solid #475569"},component:{background:"#172554",color:"#dbeafe",border:"1px solid #3b82f6"},code:{background:"#0f172a",color:"#cbd5e1",border:"1px solid #334155"},task:{background:"#1c1917",color:"#fde68a",border:"1px dashed #d97706"}},Fe=190,ls=64;function Fg(t){const e=[...t].sort((o,i)=>o.id<i.id?-1:1),n=Math.max(1,Math.ceil(Math.sqrt(e.length))),r=new Map;return e.forEach((o,i)=>{r.set(o.id,{x:i%n*Fe,y:Math.floor(i/n)*ls})}),r}function jg({nodes:t,edges:e,selectedId:n,centerId:r,onNodeClick:o,height:i=460}){const s=Fg(t.filter(u=>u.id!==r)),a=t.map(u=>({id:u.id,position:u.id===r?{x:Math.ceil(Math.sqrt(t.length))*Fe/2-Fe/2,y:-ls*1.5}:s.get(u.id)??{x:0,y:0},data:{label:u.aggregate?`${u.label} (+…)`:u.label},style:{...Bg[u.kind],borderRadius:8,padding:"6px 10px",fontSize:12,width:Fe-24,...u.id===n?{outline:"2px solid #f59e0b"}:{}}})),c=e.map(u=>{const l=u.weight,f=l===void 0?1:Math.max(0,Math.min(1,l));return{id:u.id,source:u.source,target:u.target,...u.kind==="correlates"||u.kind==="relates"?{style:{strokeDasharray:"6 4",stroke:"#64748b",opacity:.15+.85*f,strokeWidth:1+2*f},...l!==void 0&&l>=.5?{label:l.toFixed(2)}:{}}:u.kind==="touched_by"?{style:{stroke:"#b45309"}}:{style:{stroke:"#334155"}},labelStyle:{fontSize:9,fill:"#94a3b8"}}});return A.jsx("div",{style:{height:i,border:"1px solid #1f2937",borderRadius:8},children:A.jsxs(fg,{nodes:a,edges:c,fitView:!0,nodesDraggable:!1,nodesConnectable:!1,proOptions:{hideAttribution:!0},onNodeClick:(u,l)=>o(l.id),children:[A.jsx(mg,{gap:24,color:"#1f2937"}),A.jsx(Eg,{showInteractive:!1})]})})}export{jg as default};
|