strimzi-headlamp 0.3.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (4) hide show
  1. package/LICENSE +201 -0
  2. package/README.md +396 -0
  3. package/dist/main.js +71 -0
  4. package/package.json +63 -0
package/dist/main.js ADDED
@@ -0,0 +1,71 @@
1
+ (function(){"use strict";try{if(typeof document<"u"){var e=document.createElement("style");e.appendChild(document.createTextNode(".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: #777;--xy-background-pattern-lines-color-default: #777;--xy-background-pattern-cross-color-default: #777;--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}.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))}")),document.head.appendChild(e)}}catch(o){console.error("vite-plugin-css-injected-by-js",o)}})();
2
+ (function(le,H){typeof exports=="object"&&typeof module<"u"?H(require("@kinvolk/headlamp-plugin/lib"),require("react"),require("react/jsx-runtime"),require("@mui/material/styles"),require("@mui/material"),require("react-dom"),require("@iconify/react")):typeof define=="function"&&define.amd?define(["@kinvolk/headlamp-plugin/lib","react","react/jsx-runtime","@mui/material/styles","@mui/material","react-dom","@iconify/react"],H):(le=typeof globalThis<"u"?globalThis:le||self,H(le.pluginLib,le.pluginLib.React,le.pluginLib.ReactJSX,le.pluginLib.MuiMaterial.styles,le.pluginLib.MuiMaterial,le.pluginLib.ReactDOM,le.pluginLib.Iconify))})(this,(function(le,H,c,et,ce,qh,Ht){"use strict";const Z=(e=>e&&typeof e=="object"&&"default"in e?e:{default:e})(H);function _o(e){return!e.spec.zookeeper}function ko(e){return _o(e)?"KRaft":"ZooKeeper"}function Eo(e){var n,o;const t=(o=(n=e.status)==null?void 0:n.conditions)==null?void 0:o.find(r=>r.type==="Ready");return(t==null?void 0:t.status)==="True"}function No(e){var n,o;const t=(o=(n=e.status)==null?void 0:n.conditions)==null?void 0:o.find(r=>r.type==="Ready");return(t==null?void 0:t.status)==="True"}function Io(e){var n,o;const t=(o=(n=e.status)==null?void 0:n.conditions)==null?void 0:o.find(r=>r.type==="Ready");return(t==null?void 0:t.status)==="True"}function Oe(){const e=et.useTheme(),t=e.palette.mode==="dark";return{background:e.palette.background.default,text:e.palette.text.primary,textSecondary:e.palette.text.secondary,border:e.palette.divider,inputBg:e.palette.background.paper,inputBorder:e.palette.divider,overlay:"rgba(0,0,0,0.5)",chipBg:t?"#3a3a3a":"#e3f2fd",chipText:t?"#90caf9":"#1976d2"}}function Tn({searchTerm:e,onSearchChange:t,placeholder:n="Search...",resultCount:o,totalCount:r,children:i}){const s=Oe(),[a,d]=Z.default.useState(!1);return c.jsxs("div",{style:{marginBottom:"20px"},children:[c.jsxs("div",{style:{display:"flex",alignItems:"center",gap:"10px",marginBottom:"10px"},children:[c.jsxs("div",{style:{position:"relative",flex:1},children:[c.jsx("span",{style:{position:"absolute",left:"10px",top:"50%",transform:"translateY(-50%)",color:s.textSecondary,fontSize:"18px"},children:"🔍"}),c.jsx("input",{type:"text",value:e,onChange:u=>t(u.target.value),placeholder:n,style:{width:"100%",padding:"10px 40px 10px 40px",border:`1px solid ${s.inputBorder}`,borderRadius:"6px",backgroundColor:s.inputBg,color:s.text,fontSize:"14px",outline:"none",transition:"border-color 0.2s"},onFocus:u=>{u.target.style.borderColor="#1976d2"},onBlur:u=>{u.target.style.borderColor=s.inputBorder}}),e&&c.jsx("button",{onClick:()=>t(""),style:{position:"absolute",right:"10px",top:"50%",transform:"translateY(-50%)",background:"none",border:"none",color:s.textSecondary,cursor:"pointer",fontSize:"18px",padding:"0",width:"20px",height:"20px",display:"flex",alignItems:"center",justifyContent:"center"},title:"Clear search",children:"✕"})]}),i&&c.jsxs("button",{onClick:()=>d(!a),style:{padding:"10px 16px",border:`1px solid ${s.inputBorder}`,borderRadius:"6px",backgroundColor:a?s.chipBg:s.inputBg,color:a?s.chipText:s.text,cursor:"pointer",fontSize:"14px",fontWeight:a?"600":"normal",transition:"all 0.2s",whiteSpace:"nowrap"},onMouseEnter:u=>{a||(u.currentTarget.style.backgroundColor=s.chipBg)},onMouseLeave:u=>{a||(u.currentTarget.style.backgroundColor=s.inputBg)},children:["🎛️ Filters ",a?"▲":"▼"]})]}),o!==void 0&&r!==void 0&&c.jsxs("div",{style:{fontSize:"13px",color:s.textSecondary,marginBottom:"10px"},children:["Showing ",c.jsx("strong",{style:{color:s.text},children:o})," of"," ",c.jsx("strong",{style:{color:s.text},children:r})," ",r===1?"result":"results"]}),i&&a&&c.jsx("div",{style:{padding:"15px",border:`1px solid ${s.border}`,borderRadius:"6px",backgroundColor:s.background,marginTop:"10px"},children:i})]})}function ve({label:e,children:t}){const n=Oe();return c.jsxs("div",{style:{marginBottom:"15px"},children:[c.jsx("label",{style:{display:"block",fontSize:"13px",fontWeight:"600",color:n.text,marginBottom:"8px"},children:e}),t]})}function Pe({value:e,onChange:t,options:n}){const o=Oe();return c.jsx("select",{value:e,onChange:r=>t(r.target.value),style:{width:"100%",padding:"8px",border:`1px solid ${o.inputBorder}`,borderRadius:"4px",backgroundColor:o.inputBg,color:o.text,fontSize:"14px",cursor:"pointer"},children:n.map(r=>c.jsx("option",{value:r.value,children:r.label},r.value))})}function Ao({minValue:e,maxValue:t,onMinChange:n,onMaxChange:o,minPlaceholder:r="Min",maxPlaceholder:i="Max"}){const s=Oe();return c.jsxs("div",{style:{display:"flex",gap:"10px",alignItems:"center"},children:[c.jsx("input",{type:"number",value:e,onChange:a=>n(a.target.value===""?"":Number(a.target.value)),placeholder:r,style:{flex:1,padding:"8px",border:`1px solid ${s.inputBorder}`,borderRadius:"4px",backgroundColor:s.inputBg,color:s.text,fontSize:"14px"}}),c.jsx("span",{style:{color:s.textSecondary},children:"—"}),c.jsx("input",{type:"number",value:t,onChange:a=>o(a.target.value===""?"":Number(a.target.value)),placeholder:i,style:{flex:1,padding:"8px",border:`1px solid ${s.inputBorder}`,borderRadius:"4px",backgroundColor:s.inputBg,color:s.text,fontSize:"14px"}})]})}function he(e){if(typeof e=="string"||typeof e=="number")return""+e;let t="";if(Array.isArray(e))for(let n=0,o;n<e.length;n++)(o=he(e[n]))!==""&&(t+=(t&&" ")+o);else for(let n in e)e[n]&&(t+=(t&&" ")+n);return t}var Is={value:()=>{}};function Ot(){for(var e=0,t=arguments.length,n={},o;e<t;++e){if(!(o=arguments[e]+"")||o in n||/[\s.]/.test(o))throw new Error("illegal type: "+o);n[o]=[]}return new Ft(n)}function Ft(e){this._=e}function As(e,t){return e.trim().split(/^|\s+/).map(function(n){var o="",r=n.indexOf(".");if(r>=0&&(o=n.slice(r+1),n=n.slice(0,r)),n&&!t.hasOwnProperty(n))throw new Error("unknown type: "+n);return{type:n,name:o}})}Ft.prototype=Ot.prototype={constructor:Ft,on:function(e,t){var n=this._,o=As(e+"",n),r,i=-1,s=o.length;if(arguments.length<2){for(;++i<s;)if((r=(e=o[i]).type)&&(r=Ts(n[r],e.name)))return r;return}if(t!=null&&typeof t!="function")throw new Error("invalid callback: "+t);for(;++i<s;)if(r=(e=o[i]).type)n[r]=To(n[r],e.name,t);else if(t==null)for(r in n)n[r]=To(n[r],e.name,null);return this},copy:function(){var e={},t=this._;for(var n in t)e[n]=t[n].slice();return new Ft(e)},call:function(e,t){if((r=arguments.length-2)>0)for(var n=new Array(r),o=0,r,i;o<r;++o)n[o]=arguments[o+2];if(!this._.hasOwnProperty(e))throw new Error("unknown type: "+e);for(i=this._[e],o=0,r=i.length;o<r;++o)i[o].value.apply(t,n)},apply:function(e,t,n){if(!this._.hasOwnProperty(e))throw new Error("unknown type: "+e);for(var o=this._[e],r=0,i=o.length;r<i;++r)o[r].value.apply(t,n)}};function Ts(e,t){for(var n=0,o=e.length,r;n<o;++n)if((r=e[n]).name===t)return r.value}function To(e,t,n){for(var o=0,r=e.length;o<r;++o)if(e[o].name===t){e[o]=Is,e=e.slice(0,o).concat(e.slice(o+1));break}return n!=null&&e.push({name:t,value:n}),e}var Mn="http://www.w3.org/1999/xhtml";const Mo={svg:"http://www.w3.org/2000/svg",xhtml:Mn,xlink:"http://www.w3.org/1999/xlink",xml:"http://www.w3.org/XML/1998/namespace",xmlns:"http://www.w3.org/2000/xmlns/"};function Wt(e){var t=e+="",n=t.indexOf(":");return n>=0&&(t=e.slice(0,n))!=="xmlns"&&(e=e.slice(n+1)),Mo.hasOwnProperty(t)?{space:Mo[t],local:e}:e}function Ms(e){return function(){var t=this.ownerDocument,n=this.namespaceURI;return n===Mn&&t.documentElement.namespaceURI===Mn?t.createElement(e):t.createElementNS(n,e)}}function $s(e){return function(){return this.ownerDocument.createElementNS(e.space,e.local)}}function $o(e){var t=Wt(e);return(t.local?$s:Ms)(t)}function Ps(){}function $n(e){return e==null?Ps:function(){return this.querySelector(e)}}function zs(e){typeof e!="function"&&(e=$n(e));for(var t=this._groups,n=t.length,o=new Array(n),r=0;r<n;++r)for(var i=t[r],s=i.length,a=o[r]=new Array(s),d,u,p=0;p<s;++p)(d=i[p])&&(u=e.call(d,d.__data__,p,i))&&("__data__"in d&&(u.__data__=d.__data__),a[p]=u);return new xe(o,this._parents)}function Ds(e){return e==null?[]:Array.isArray(e)?e:Array.from(e)}function Bs(){return[]}function Po(e){return e==null?Bs:function(){return this.querySelectorAll(e)}}function Ls(e){return function(){return Ds(e.apply(this,arguments))}}function Hs(e){typeof e=="function"?e=Ls(e):e=Po(e);for(var t=this._groups,n=t.length,o=[],r=[],i=0;i<n;++i)for(var s=t[i],a=s.length,d,u=0;u<a;++u)(d=s[u])&&(o.push(e.call(d,d.__data__,u,s)),r.push(d));return new xe(o,r)}function zo(e){return function(){return this.matches(e)}}function Do(e){return function(t){return t.matches(e)}}var Os=Array.prototype.find;function Fs(e){return function(){return Os.call(this.children,e)}}function Ws(){return this.firstElementChild}function Vs(e){return this.select(e==null?Ws:Fs(typeof e=="function"?e:Do(e)))}var Gs=Array.prototype.filter;function Ys(){return Array.from(this.children)}function Xs(e){return function(){return Gs.call(this.children,e)}}function Us(e){return this.selectAll(e==null?Ys:Xs(typeof e=="function"?e:Do(e)))}function Ks(e){typeof e!="function"&&(e=zo(e));for(var t=this._groups,n=t.length,o=new Array(n),r=0;r<n;++r)for(var i=t[r],s=i.length,a=o[r]=[],d,u=0;u<s;++u)(d=i[u])&&e.call(d,d.__data__,u,i)&&a.push(d);return new xe(o,this._parents)}function Bo(e){return new Array(e.length)}function qs(){return new xe(this._enter||this._groups.map(Bo),this._parents)}function Vt(e,t){this.ownerDocument=e.ownerDocument,this.namespaceURI=e.namespaceURI,this._next=null,this._parent=e,this.__data__=t}Vt.prototype={constructor:Vt,appendChild:function(e){return this._parent.insertBefore(e,this._next)},insertBefore:function(e,t){return this._parent.insertBefore(e,t)},querySelector:function(e){return this._parent.querySelector(e)},querySelectorAll:function(e){return this._parent.querySelectorAll(e)}};function Zs(e){return function(){return e}}function Qs(e,t,n,o,r,i){for(var s=0,a,d=t.length,u=i.length;s<u;++s)(a=t[s])?(a.__data__=i[s],o[s]=a):n[s]=new Vt(e,i[s]);for(;s<d;++s)(a=t[s])&&(r[s]=a)}function Js(e,t,n,o,r,i,s){var a,d,u=new Map,p=t.length,l=i.length,f=new Array(p),g;for(a=0;a<p;++a)(d=t[a])&&(f[a]=g=s.call(d,d.__data__,a,t)+"",u.has(g)?r[a]=d:u.set(g,d));for(a=0;a<l;++a)g=s.call(e,i[a],a,i)+"",(d=u.get(g))?(o[a]=d,d.__data__=i[a],u.delete(g)):n[a]=new Vt(e,i[a]);for(a=0;a<p;++a)(d=t[a])&&u.get(f[a])===d&&(r[a]=d)}function js(e){return e.__data__}function Rs(e,t){if(!arguments.length)return Array.from(this,js);var n=t?Js:Qs,o=this._parents,r=this._groups;typeof e!="function"&&(e=Zs(e));for(var i=r.length,s=new Array(i),a=new Array(i),d=new Array(i),u=0;u<i;++u){var p=o[u],l=r[u],f=l.length,g=ea(e.call(p,p&&p.__data__,u,o)),x=g.length,y=a[u]=new Array(x),w=s[u]=new Array(x),m=d[u]=new Array(f);n(p,l,y,w,m,g,t);for(var _=0,h=0,b,v;_<x;++_)if(b=y[_]){for(_>=h&&(h=_+1);!(v=w[h])&&++h<x;);b._next=v||null}}return s=new xe(s,o),s._enter=a,s._exit=d,s}function ea(e){return typeof e=="object"&&"length"in e?e:Array.from(e)}function ta(){return new xe(this._exit||this._groups.map(Bo),this._parents)}function na(e,t,n){var o=this.enter(),r=this,i=this.exit();return typeof e=="function"?(o=e(o),o&&(o=o.selection())):o=o.append(e+""),t!=null&&(r=t(r),r&&(r=r.selection())),n==null?i.remove():n(i),o&&r?o.merge(r).order():r}function oa(e){for(var t=e.selection?e.selection():e,n=this._groups,o=t._groups,r=n.length,i=o.length,s=Math.min(r,i),a=new Array(r),d=0;d<s;++d)for(var u=n[d],p=o[d],l=u.length,f=a[d]=new Array(l),g,x=0;x<l;++x)(g=u[x]||p[x])&&(f[x]=g);for(;d<r;++d)a[d]=n[d];return new xe(a,this._parents)}function ra(){for(var e=this._groups,t=-1,n=e.length;++t<n;)for(var o=e[t],r=o.length-1,i=o[r],s;--r>=0;)(s=o[r])&&(i&&s.compareDocumentPosition(i)^4&&i.parentNode.insertBefore(s,i),i=s);return this}function ia(e){e||(e=sa);function t(l,f){return l&&f?e(l.__data__,f.__data__):!l-!f}for(var n=this._groups,o=n.length,r=new Array(o),i=0;i<o;++i){for(var s=n[i],a=s.length,d=r[i]=new Array(a),u,p=0;p<a;++p)(u=s[p])&&(d[p]=u);d.sort(t)}return new xe(r,this._parents).order()}function sa(e,t){return e<t?-1:e>t?1:e>=t?0:NaN}function aa(){var e=arguments[0];return arguments[0]=this,e.apply(null,arguments),this}function la(){return Array.from(this)}function ca(){for(var e=this._groups,t=0,n=e.length;t<n;++t)for(var o=e[t],r=0,i=o.length;r<i;++r){var s=o[r];if(s)return s}return null}function da(){let e=0;for(const t of this)++e;return e}function ua(){return!this.node()}function fa(e){for(var t=this._groups,n=0,o=t.length;n<o;++n)for(var r=t[n],i=0,s=r.length,a;i<s;++i)(a=r[i])&&e.call(a,a.__data__,i,r);return this}function pa(e){return function(){this.removeAttribute(e)}}function ha(e){return function(){this.removeAttributeNS(e.space,e.local)}}function ga(e,t){return function(){this.setAttribute(e,t)}}function ya(e,t){return function(){this.setAttributeNS(e.space,e.local,t)}}function ma(e,t){return function(){var n=t.apply(this,arguments);n==null?this.removeAttribute(e):this.setAttribute(e,n)}}function xa(e,t){return function(){var n=t.apply(this,arguments);n==null?this.removeAttributeNS(e.space,e.local):this.setAttributeNS(e.space,e.local,n)}}function ba(e,t){var n=Wt(e);if(arguments.length<2){var o=this.node();return n.local?o.getAttributeNS(n.space,n.local):o.getAttribute(n)}return this.each((t==null?n.local?ha:pa:typeof t=="function"?n.local?xa:ma:n.local?ya:ga)(n,t))}function Lo(e){return e.ownerDocument&&e.ownerDocument.defaultView||e.document&&e||e.defaultView}function wa(e){return function(){this.style.removeProperty(e)}}function va(e,t,n){return function(){this.style.setProperty(e,t,n)}}function Sa(e,t,n){return function(){var o=t.apply(this,arguments);o==null?this.style.removeProperty(e):this.style.setProperty(e,o,n)}}function Ca(e,t,n){return arguments.length>1?this.each((t==null?wa:typeof t=="function"?Sa:va)(e,t,n??"")):tt(this.node(),e)}function tt(e,t){return e.style.getPropertyValue(t)||Lo(e).getComputedStyle(e,null).getPropertyValue(t)}function _a(e){return function(){delete this[e]}}function ka(e,t){return function(){this[e]=t}}function Ea(e,t){return function(){var n=t.apply(this,arguments);n==null?delete this[e]:this[e]=n}}function Na(e,t){return arguments.length>1?this.each((t==null?_a:typeof t=="function"?Ea:ka)(e,t)):this.node()[e]}function Ho(e){return e.trim().split(/^|\s+/)}function Pn(e){return e.classList||new Oo(e)}function Oo(e){this._node=e,this._names=Ho(e.getAttribute("class")||"")}Oo.prototype={add:function(e){var t=this._names.indexOf(e);t<0&&(this._names.push(e),this._node.setAttribute("class",this._names.join(" ")))},remove:function(e){var t=this._names.indexOf(e);t>=0&&(this._names.splice(t,1),this._node.setAttribute("class",this._names.join(" ")))},contains:function(e){return this._names.indexOf(e)>=0}};function Fo(e,t){for(var n=Pn(e),o=-1,r=t.length;++o<r;)n.add(t[o])}function Wo(e,t){for(var n=Pn(e),o=-1,r=t.length;++o<r;)n.remove(t[o])}function Ia(e){return function(){Fo(this,e)}}function Aa(e){return function(){Wo(this,e)}}function Ta(e,t){return function(){(t.apply(this,arguments)?Fo:Wo)(this,e)}}function Ma(e,t){var n=Ho(e+"");if(arguments.length<2){for(var o=Pn(this.node()),r=-1,i=n.length;++r<i;)if(!o.contains(n[r]))return!1;return!0}return this.each((typeof t=="function"?Ta:t?Ia:Aa)(n,t))}function $a(){this.textContent=""}function Pa(e){return function(){this.textContent=e}}function za(e){return function(){var t=e.apply(this,arguments);this.textContent=t??""}}function Da(e){return arguments.length?this.each(e==null?$a:(typeof e=="function"?za:Pa)(e)):this.node().textContent}function Ba(){this.innerHTML=""}function La(e){return function(){this.innerHTML=e}}function Ha(e){return function(){var t=e.apply(this,arguments);this.innerHTML=t??""}}function Oa(e){return arguments.length?this.each(e==null?Ba:(typeof e=="function"?Ha:La)(e)):this.node().innerHTML}function Fa(){this.nextSibling&&this.parentNode.appendChild(this)}function Wa(){return this.each(Fa)}function Va(){this.previousSibling&&this.parentNode.insertBefore(this,this.parentNode.firstChild)}function Ga(){return this.each(Va)}function Ya(e){var t=typeof e=="function"?e:$o(e);return this.select(function(){return this.appendChild(t.apply(this,arguments))})}function Xa(){return null}function Ua(e,t){var n=typeof e=="function"?e:$o(e),o=t==null?Xa:typeof t=="function"?t:$n(t);return this.select(function(){return this.insertBefore(n.apply(this,arguments),o.apply(this,arguments)||null)})}function Ka(){var e=this.parentNode;e&&e.removeChild(this)}function qa(){return this.each(Ka)}function Za(){var e=this.cloneNode(!1),t=this.parentNode;return t?t.insertBefore(e,this.nextSibling):e}function Qa(){var e=this.cloneNode(!0),t=this.parentNode;return t?t.insertBefore(e,this.nextSibling):e}function Ja(e){return this.select(e?Qa:Za)}function ja(e){return arguments.length?this.property("__data__",e):this.node().__data__}function Ra(e){return function(t){e.call(this,t,this.__data__)}}function el(e){return e.trim().split(/^|\s+/).map(function(t){var n="",o=t.indexOf(".");return o>=0&&(n=t.slice(o+1),t=t.slice(0,o)),{type:t,name:n}})}function tl(e){return function(){var t=this.__on;if(t){for(var n=0,o=-1,r=t.length,i;n<r;++n)i=t[n],(!e.type||i.type===e.type)&&i.name===e.name?this.removeEventListener(i.type,i.listener,i.options):t[++o]=i;++o?t.length=o:delete this.__on}}}function nl(e,t,n){return function(){var o=this.__on,r,i=Ra(t);if(o){for(var s=0,a=o.length;s<a;++s)if((r=o[s]).type===e.type&&r.name===e.name){this.removeEventListener(r.type,r.listener,r.options),this.addEventListener(r.type,r.listener=i,r.options=n),r.value=t;return}}this.addEventListener(e.type,i,n),r={type:e.type,name:e.name,value:t,listener:i,options:n},o?o.push(r):this.__on=[r]}}function ol(e,t,n){var o=el(e+""),r,i=o.length,s;if(arguments.length<2){var a=this.node().__on;if(a){for(var d=0,u=a.length,p;d<u;++d)for(r=0,p=a[d];r<i;++r)if((s=o[r]).type===p.type&&s.name===p.name)return p.value}return}for(a=t?nl:tl,r=0;r<i;++r)this.each(a(o[r],t,n));return this}function Vo(e,t,n){var o=Lo(e),r=o.CustomEvent;typeof r=="function"?r=new r(t,n):(r=o.document.createEvent("Event"),n?(r.initEvent(t,n.bubbles,n.cancelable),r.detail=n.detail):r.initEvent(t,!1,!1)),e.dispatchEvent(r)}function rl(e,t){return function(){return Vo(this,e,t)}}function il(e,t){return function(){return Vo(this,e,t.apply(this,arguments))}}function sl(e,t){return this.each((typeof t=="function"?il:rl)(e,t))}function*al(){for(var e=this._groups,t=0,n=e.length;t<n;++t)for(var o=e[t],r=0,i=o.length,s;r<i;++r)(s=o[r])&&(yield s)}var Go=[null];function xe(e,t){this._groups=e,this._parents=t}function pt(){return new xe([[document.documentElement]],Go)}function ll(){return this}xe.prototype=pt.prototype={constructor:xe,select:zs,selectAll:Hs,selectChild:Vs,selectChildren:Us,filter:Ks,data:Rs,enter:qs,exit:ta,join:na,merge:oa,selection:ll,order:ra,sort:ia,call:aa,nodes:la,node:ca,size:da,empty:ua,each:fa,attr:ba,style:Ca,property:Na,classed:Ma,text:Da,html:Oa,raise:Wa,lower:Ga,append:Ya,insert:Ua,remove:qa,clone:Ja,datum:ja,on:ol,dispatch:sl,[Symbol.iterator]:al};function be(e){return typeof e=="string"?new xe([[document.querySelector(e)]],[document.documentElement]):new xe([[e]],Go)}function cl(e){let t;for(;t=e.sourceEvent;)e=t;return e}function Se(e,t){if(e=cl(e),t===void 0&&(t=e.currentTarget),t){var n=t.ownerSVGElement||t;if(n.createSVGPoint){var o=n.createSVGPoint();return o.x=e.clientX,o.y=e.clientY,o=o.matrixTransform(t.getScreenCTM().inverse()),[o.x,o.y]}if(t.getBoundingClientRect){var r=t.getBoundingClientRect();return[e.clientX-r.left-t.clientLeft,e.clientY-r.top-t.clientTop]}}return[e.pageX,e.pageY]}const dl={passive:!1},ht={capture:!0,passive:!1};function zn(e){e.stopImmediatePropagation()}function nt(e){e.preventDefault(),e.stopImmediatePropagation()}function Yo(e){var t=e.document.documentElement,n=be(e).on("dragstart.drag",nt,ht);"onselectstart"in t?n.on("selectstart.drag",nt,ht):(t.__noselect=t.style.MozUserSelect,t.style.MozUserSelect="none")}function Xo(e,t){var n=e.document.documentElement,o=be(e).on("dragstart.drag",null);t&&(o.on("click.drag",nt,ht),setTimeout(function(){o.on("click.drag",null)},0)),"onselectstart"in n?o.on("selectstart.drag",null):(n.style.MozUserSelect=n.__noselect,delete n.__noselect)}const Gt=e=>()=>e;function Dn(e,{sourceEvent:t,subject:n,target:o,identifier:r,active:i,x:s,y:a,dx:d,dy:u,dispatch:p}){Object.defineProperties(this,{type:{value:e,enumerable:!0,configurable:!0},sourceEvent:{value:t,enumerable:!0,configurable:!0},subject:{value:n,enumerable:!0,configurable:!0},target:{value:o,enumerable:!0,configurable:!0},identifier:{value:r,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:d,enumerable:!0,configurable:!0},dy:{value:u,enumerable:!0,configurable:!0},_:{value:p}})}Dn.prototype.on=function(){var e=this._.on.apply(this._,arguments);return e===this._?this:e};function ul(e){return!e.ctrlKey&&!e.button}function fl(){return this.parentNode}function pl(e,t){return t??{x:e.x,y:e.y}}function hl(){return navigator.maxTouchPoints||"ontouchstart"in this}function Uo(){var e=ul,t=fl,n=pl,o=hl,r={},i=Ot("start","drag","end"),s=0,a,d,u,p,l=0;function f(b){b.on("mousedown.drag",g).filter(o).on("touchstart.drag",w).on("touchmove.drag",m,dl).on("touchend.drag touchcancel.drag",_).style("touch-action","none").style("-webkit-tap-highlight-color","rgba(0,0,0,0)")}function g(b,v){if(!(p||!e.call(this,b,v))){var k=h(this,t.call(this,b,v),b,v,"mouse");k&&(be(b.view).on("mousemove.drag",x,ht).on("mouseup.drag",y,ht),Yo(b.view),zn(b),u=!1,a=b.clientX,d=b.clientY,k("start",b))}}function x(b){if(nt(b),!u){var v=b.clientX-a,k=b.clientY-d;u=v*v+k*k>l}r.mouse("drag",b)}function y(b){be(b.view).on("mousemove.drag mouseup.drag",null),Xo(b.view,u),nt(b),r.mouse("end",b)}function w(b,v){if(e.call(this,b,v)){var k=b.changedTouches,C=t.call(this,b,v),P=k.length,T,K;for(T=0;T<P;++T)(K=h(this,C,b,v,k[T].identifier,k[T]))&&(zn(b),K("start",b,k[T]))}}function m(b){var v=b.changedTouches,k=v.length,C,P;for(C=0;C<k;++C)(P=r[v[C].identifier])&&(nt(b),P("drag",b,v[C]))}function _(b){var v=b.changedTouches,k=v.length,C,P;for(p&&clearTimeout(p),p=setTimeout(function(){p=null},500),C=0;C<k;++C)(P=r[v[C].identifier])&&(zn(b),P("end",b,v[C]))}function h(b,v,k,C,P,T){var K=i.copy(),D=Se(T||k,v),M,W,S;if((S=n.call(b,new Dn("beforestart",{sourceEvent:k,target:f,identifier:P,active:s,x:D[0],y:D[1],dx:0,dy:0,dispatch:K}),C))!=null)return M=S.x-D[0]||0,W=S.y-D[1]||0,function $(N,z,A){var I=D,L;switch(N){case"start":r[P]=$,L=s++;break;case"end":delete r[P],--s;case"drag":D=Se(A||z,v),L=s;break}K.call(N,b,new Dn(N,{sourceEvent:z,subject:S,target:f,identifier:P,active:L,x:D[0]+M,y:D[1]+W,dx:D[0]-I[0],dy:D[1]-I[1],dispatch:K}),C)}}return f.filter=function(b){return arguments.length?(e=typeof b=="function"?b:Gt(!!b),f):e},f.container=function(b){return arguments.length?(t=typeof b=="function"?b:Gt(b),f):t},f.subject=function(b){return arguments.length?(n=typeof b=="function"?b:Gt(b),f):n},f.touchable=function(b){return arguments.length?(o=typeof b=="function"?b:Gt(!!b),f):o},f.on=function(){var b=i.on.apply(i,arguments);return b===i?f:b},f.clickDistance=function(b){return arguments.length?(l=(b=+b)*b,f):Math.sqrt(l)},f}function Bn(e,t,n){e.prototype=t.prototype=n,n.constructor=e}function Ko(e,t){var n=Object.create(e.prototype);for(var o in t)n[o]=t[o];return n}function gt(){}var yt=.7,Yt=1/yt,ot="\\s*([+-]?\\d+)\\s*",mt="\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)\\s*",Ae="\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)%\\s*",gl=/^#([0-9a-f]{3,8})$/,yl=new RegExp(`^rgb\\(${ot},${ot},${ot}\\)$`),ml=new RegExp(`^rgb\\(${Ae},${Ae},${Ae}\\)$`),xl=new RegExp(`^rgba\\(${ot},${ot},${ot},${mt}\\)$`),bl=new RegExp(`^rgba\\(${Ae},${Ae},${Ae},${mt}\\)$`),wl=new RegExp(`^hsl\\(${mt},${Ae},${Ae}\\)$`),vl=new RegExp(`^hsla\\(${mt},${Ae},${Ae},${mt}\\)$`),qo={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};Bn(gt,Xe,{copy(e){return Object.assign(new this.constructor,this,e)},displayable(){return this.rgb().displayable()},hex:Zo,formatHex:Zo,formatHex8:Sl,formatHsl:Cl,formatRgb:Qo,toString:Qo});function Zo(){return this.rgb().formatHex()}function Sl(){return this.rgb().formatHex8()}function Cl(){return tr(this).formatHsl()}function Qo(){return this.rgb().formatRgb()}function Xe(e){var t,n;return e=(e+"").trim().toLowerCase(),(t=gl.exec(e))?(n=t[1].length,t=parseInt(t[1],16),n===6?Jo(t):n===3?new ye(t>>8&15|t>>4&240,t>>4&15|t&240,(t&15)<<4|t&15,1):n===8?Xt(t>>24&255,t>>16&255,t>>8&255,(t&255)/255):n===4?Xt(t>>12&15|t>>8&240,t>>8&15|t>>4&240,t>>4&15|t&240,((t&15)<<4|t&15)/255):null):(t=yl.exec(e))?new ye(t[1],t[2],t[3],1):(t=ml.exec(e))?new ye(t[1]*255/100,t[2]*255/100,t[3]*255/100,1):(t=xl.exec(e))?Xt(t[1],t[2],t[3],t[4]):(t=bl.exec(e))?Xt(t[1]*255/100,t[2]*255/100,t[3]*255/100,t[4]):(t=wl.exec(e))?er(t[1],t[2]/100,t[3]/100,1):(t=vl.exec(e))?er(t[1],t[2]/100,t[3]/100,t[4]):qo.hasOwnProperty(e)?Jo(qo[e]):e==="transparent"?new ye(NaN,NaN,NaN,0):null}function Jo(e){return new ye(e>>16&255,e>>8&255,e&255,1)}function Xt(e,t,n,o){return o<=0&&(e=t=n=NaN),new ye(e,t,n,o)}function _l(e){return e instanceof gt||(e=Xe(e)),e?(e=e.rgb(),new ye(e.r,e.g,e.b,e.opacity)):new ye}function Ln(e,t,n,o){return arguments.length===1?_l(e):new ye(e,t,n,o??1)}function ye(e,t,n,o){this.r=+e,this.g=+t,this.b=+n,this.opacity=+o}Bn(ye,Ln,Ko(gt,{brighter(e){return e=e==null?Yt:Math.pow(Yt,e),new ye(this.r*e,this.g*e,this.b*e,this.opacity)},darker(e){return e=e==null?yt:Math.pow(yt,e),new ye(this.r*e,this.g*e,this.b*e,this.opacity)},rgb(){return this},clamp(){return new ye(Ue(this.r),Ue(this.g),Ue(this.b),Ut(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:jo,formatHex:jo,formatHex8:kl,formatRgb:Ro,toString:Ro}));function jo(){return`#${Ke(this.r)}${Ke(this.g)}${Ke(this.b)}`}function kl(){return`#${Ke(this.r)}${Ke(this.g)}${Ke(this.b)}${Ke((isNaN(this.opacity)?1:this.opacity)*255)}`}function Ro(){const e=Ut(this.opacity);return`${e===1?"rgb(":"rgba("}${Ue(this.r)}, ${Ue(this.g)}, ${Ue(this.b)}${e===1?")":`, ${e})`}`}function Ut(e){return isNaN(e)?1:Math.max(0,Math.min(1,e))}function Ue(e){return Math.max(0,Math.min(255,Math.round(e)||0))}function Ke(e){return e=Ue(e),(e<16?"0":"")+e.toString(16)}function er(e,t,n,o){return o<=0?e=t=n=NaN:n<=0||n>=1?e=t=NaN:t<=0&&(e=NaN),new Ce(e,t,n,o)}function tr(e){if(e instanceof Ce)return new Ce(e.h,e.s,e.l,e.opacity);if(e instanceof gt||(e=Xe(e)),!e)return new Ce;if(e instanceof Ce)return e;e=e.rgb();var t=e.r/255,n=e.g/255,o=e.b/255,r=Math.min(t,n,o),i=Math.max(t,n,o),s=NaN,a=i-r,d=(i+r)/2;return a?(t===i?s=(n-o)/a+(n<o)*6:n===i?s=(o-t)/a+2:s=(t-n)/a+4,a/=d<.5?i+r:2-i-r,s*=60):a=d>0&&d<1?0:s,new Ce(s,a,d,e.opacity)}function El(e,t,n,o){return arguments.length===1?tr(e):new Ce(e,t,n,o??1)}function Ce(e,t,n,o){this.h=+e,this.s=+t,this.l=+n,this.opacity=+o}Bn(Ce,El,Ko(gt,{brighter(e){return e=e==null?Yt:Math.pow(Yt,e),new Ce(this.h,this.s,this.l*e,this.opacity)},darker(e){return e=e==null?yt:Math.pow(yt,e),new Ce(this.h,this.s,this.l*e,this.opacity)},rgb(){var e=this.h%360+(this.h<0)*360,t=isNaN(e)||isNaN(this.s)?0:this.s,n=this.l,o=n+(n<.5?n:1-n)*t,r=2*n-o;return new ye(Hn(e>=240?e-240:e+120,r,o),Hn(e,r,o),Hn(e<120?e+240:e-120,r,o),this.opacity)},clamp(){return new Ce(nr(this.h),Kt(this.s),Kt(this.l),Ut(this.opacity))},displayable(){return(0<=this.s&&this.s<=1||isNaN(this.s))&&0<=this.l&&this.l<=1&&0<=this.opacity&&this.opacity<=1},formatHsl(){const e=Ut(this.opacity);return`${e===1?"hsl(":"hsla("}${nr(this.h)}, ${Kt(this.s)*100}%, ${Kt(this.l)*100}%${e===1?")":`, ${e})`}`}}));function nr(e){return e=(e||0)%360,e<0?e+360:e}function Kt(e){return Math.max(0,Math.min(1,e||0))}function Hn(e,t,n){return(e<60?t+(n-t)*e/60:e<180?n:e<240?t+(n-t)*(240-e)/60:t)*255}const On=e=>()=>e;function Nl(e,t){return function(n){return e+n*t}}function Il(e,t,n){return e=Math.pow(e,n),t=Math.pow(t,n)-e,n=1/n,function(o){return Math.pow(e+o*t,n)}}function Al(e){return(e=+e)==1?or:function(t,n){return n-t?Il(t,n,e):On(isNaN(t)?n:t)}}function or(e,t){var n=t-e;return n?Nl(e,n):On(isNaN(e)?t:e)}const qt=(function e(t){var n=Al(t);function o(r,i){var s=n((r=Ln(r)).r,(i=Ln(i)).r),a=n(r.g,i.g),d=n(r.b,i.b),u=or(r.opacity,i.opacity);return function(p){return r.r=s(p),r.g=a(p),r.b=d(p),r.opacity=u(p),r+""}}return o.gamma=e,o})(1);function Tl(e,t){t||(t=[]);var n=e?Math.min(t.length,e.length):0,o=t.slice(),r;return function(i){for(r=0;r<n;++r)o[r]=e[r]*(1-i)+t[r]*i;return o}}function Ml(e){return ArrayBuffer.isView(e)&&!(e instanceof DataView)}function $l(e,t){var n=t?t.length:0,o=e?Math.min(n,e.length):0,r=new Array(o),i=new Array(n),s;for(s=0;s<o;++s)r[s]=xt(e[s],t[s]);for(;s<n;++s)i[s]=t[s];return function(a){for(s=0;s<o;++s)i[s]=r[s](a);return i}}function Pl(e,t){var n=new Date;return e=+e,t=+t,function(o){return n.setTime(e*(1-o)+t*o),n}}function Te(e,t){return e=+e,t=+t,function(n){return e*(1-n)+t*n}}function zl(e,t){var n={},o={},r;(e===null||typeof e!="object")&&(e={}),(t===null||typeof t!="object")&&(t={});for(r in t)r in e?n[r]=xt(e[r],t[r]):o[r]=t[r];return function(i){for(r in n)o[r]=n[r](i);return o}}var Fn=/[-+]?(?:\d+\.?\d*|\.?\d+)(?:[eE][-+]?\d+)?/g,Wn=new RegExp(Fn.source,"g");function Dl(e){return function(){return e}}function Bl(e){return function(t){return e(t)+""}}function rr(e,t){var n=Fn.lastIndex=Wn.lastIndex=0,o,r,i,s=-1,a=[],d=[];for(e=e+"",t=t+"";(o=Fn.exec(e))&&(r=Wn.exec(t));)(i=r.index)>n&&(i=t.slice(n,i),a[s]?a[s]+=i:a[++s]=i),(o=o[0])===(r=r[0])?a[s]?a[s]+=r:a[++s]=r:(a[++s]=null,d.push({i:s,x:Te(o,r)})),n=Wn.lastIndex;return n<t.length&&(i=t.slice(n),a[s]?a[s]+=i:a[++s]=i),a.length<2?d[0]?Bl(d[0].x):Dl(t):(t=d.length,function(u){for(var p=0,l;p<t;++p)a[(l=d[p]).i]=l.x(u);return a.join("")})}function xt(e,t){var n=typeof t,o;return t==null||n==="boolean"?On(t):(n==="number"?Te:n==="string"?(o=Xe(t))?(t=o,qt):rr:t instanceof Xe?qt:t instanceof Date?Pl:Ml(t)?Tl:Array.isArray(t)?$l:typeof t.valueOf!="function"&&typeof t.toString!="function"||isNaN(t)?zl:Te)(e,t)}var ir=180/Math.PI,Vn={translateX:0,translateY:0,rotate:0,skewX:0,scaleX:1,scaleY:1};function sr(e,t,n,o,r,i){var s,a,d;return(s=Math.sqrt(e*e+t*t))&&(e/=s,t/=s),(d=e*n+t*o)&&(n-=e*d,o-=t*d),(a=Math.sqrt(n*n+o*o))&&(n/=a,o/=a,d/=a),e*o<t*n&&(e=-e,t=-t,d=-d,s=-s),{translateX:r,translateY:i,rotate:Math.atan2(t,e)*ir,skewX:Math.atan(d)*ir,scaleX:s,scaleY:a}}var Zt;function Ll(e){const t=new(typeof DOMMatrix=="function"?DOMMatrix:WebKitCSSMatrix)(e+"");return t.isIdentity?Vn:sr(t.a,t.b,t.c,t.d,t.e,t.f)}function Hl(e){return e==null||(Zt||(Zt=document.createElementNS("http://www.w3.org/2000/svg","g")),Zt.setAttribute("transform",e),!(e=Zt.transform.baseVal.consolidate()))?Vn:(e=e.matrix,sr(e.a,e.b,e.c,e.d,e.e,e.f))}function ar(e,t,n,o){function r(u){return u.length?u.pop()+" ":""}function i(u,p,l,f,g,x){if(u!==l||p!==f){var y=g.push("translate(",null,t,null,n);x.push({i:y-4,x:Te(u,l)},{i:y-2,x:Te(p,f)})}else(l||f)&&g.push("translate("+l+t+f+n)}function s(u,p,l,f){u!==p?(u-p>180?p+=360:p-u>180&&(u+=360),f.push({i:l.push(r(l)+"rotate(",null,o)-2,x:Te(u,p)})):p&&l.push(r(l)+"rotate("+p+o)}function a(u,p,l,f){u!==p?f.push({i:l.push(r(l)+"skewX(",null,o)-2,x:Te(u,p)}):p&&l.push(r(l)+"skewX("+p+o)}function d(u,p,l,f,g,x){if(u!==l||p!==f){var y=g.push(r(g)+"scale(",null,",",null,")");x.push({i:y-4,x:Te(u,l)},{i:y-2,x:Te(p,f)})}else(l!==1||f!==1)&&g.push(r(g)+"scale("+l+","+f+")")}return function(u,p){var l=[],f=[];return u=e(u),p=e(p),i(u.translateX,u.translateY,p.translateX,p.translateY,l,f),s(u.rotate,p.rotate,l,f),a(u.skewX,p.skewX,l,f),d(u.scaleX,u.scaleY,p.scaleX,p.scaleY,l,f),u=p=null,function(g){for(var x=-1,y=f.length,w;++x<y;)l[(w=f[x]).i]=w.x(g);return l.join("")}}}var Ol=ar(Ll,"px, ","px)","deg)"),Fl=ar(Hl,", ",")",")"),Wl=1e-12;function lr(e){return((e=Math.exp(e))+1/e)/2}function Vl(e){return((e=Math.exp(e))-1/e)/2}function Gl(e){return((e=Math.exp(2*e))-1)/(e+1)}const Qt=(function e(t,n,o){function r(i,s){var a=i[0],d=i[1],u=i[2],p=s[0],l=s[1],f=s[2],g=p-a,x=l-d,y=g*g+x*x,w,m;if(y<Wl)m=Math.log(f/u)/t,w=function(C){return[a+C*g,d+C*x,u*Math.exp(t*C*m)]};else{var _=Math.sqrt(y),h=(f*f-u*u+o*y)/(2*u*n*_),b=(f*f-u*u-o*y)/(2*f*n*_),v=Math.log(Math.sqrt(h*h+1)-h),k=Math.log(Math.sqrt(b*b+1)-b);m=(k-v)/t,w=function(C){var P=C*m,T=lr(v),K=u/(n*_)*(T*Gl(t*P+v)-Vl(v));return[a+K*g,d+K*x,u*T/lr(t*P+v)]}}return w.duration=m*1e3*t/Math.SQRT2,w}return r.rho=function(i){var s=Math.max(.001,+i),a=s*s,d=a*a;return e(s,a,d)},r})(Math.SQRT2,2,4);var rt=0,bt=0,wt=0,cr=1e3,Jt,vt,jt=0,qe=0,Rt=0,St=typeof performance=="object"&&performance.now?performance:Date,dr=typeof window=="object"&&window.requestAnimationFrame?window.requestAnimationFrame.bind(window):function(e){setTimeout(e,17)};function Gn(){return qe||(dr(Yl),qe=St.now()+Rt)}function Yl(){qe=0}function en(){this._call=this._time=this._next=null}en.prototype=ur.prototype={constructor:en,restart:function(e,t,n){if(typeof e!="function")throw new TypeError("callback is not a function");n=(n==null?Gn():+n)+(t==null?0:+t),!this._next&&vt!==this&&(vt?vt._next=this:Jt=this,vt=this),this._call=e,this._time=n,Yn()},stop:function(){this._call&&(this._call=null,this._time=1/0,Yn())}};function ur(e,t,n){var o=new en;return o.restart(e,t,n),o}function Xl(){Gn(),++rt;for(var e=Jt,t;e;)(t=qe-e._time)>=0&&e._call.call(void 0,t),e=e._next;--rt}function fr(){qe=(jt=St.now())+Rt,rt=bt=0;try{Xl()}finally{rt=0,Kl(),qe=0}}function Ul(){var e=St.now(),t=e-jt;t>cr&&(Rt-=t,jt=e)}function Kl(){for(var e,t=Jt,n,o=1/0;t;)t._call?(o>t._time&&(o=t._time),e=t,t=t._next):(n=t._next,t._next=null,t=e?e._next=n:Jt=n);vt=e,Yn(o)}function Yn(e){if(!rt){bt&&(bt=clearTimeout(bt));var t=e-qe;t>24?(e<1/0&&(bt=setTimeout(fr,e-St.now()-Rt)),wt&&(wt=clearInterval(wt))):(wt||(jt=St.now(),wt=setInterval(Ul,cr)),rt=1,dr(fr))}}function pr(e,t,n){var o=new en;return t=t==null?0:+t,o.restart(r=>{o.stop(),e(r+t)},t,n),o}var ql=Ot("start","end","cancel","interrupt"),Zl=[],hr=0,gr=1,Xn=2,tn=3,yr=4,Un=5,nn=6;function on(e,t,n,o,r,i){var s=e.__transition;if(!s)e.__transition={};else if(n in s)return;Ql(e,n,{name:t,index:o,group:r,on:ql,tween:Zl,time:i.time,delay:i.delay,duration:i.duration,ease:i.ease,timer:null,state:hr})}function Kn(e,t){var n=_e(e,t);if(n.state>hr)throw new Error("too late; already scheduled");return n}function Me(e,t){var n=_e(e,t);if(n.state>tn)throw new Error("too late; already running");return n}function _e(e,t){var n=e.__transition;if(!n||!(n=n[t]))throw new Error("transition not found");return n}function Ql(e,t,n){var o=e.__transition,r;o[t]=n,n.timer=ur(i,0,n.time);function i(u){n.state=gr,n.timer.restart(s,n.delay,n.time),n.delay<=u&&s(u-n.delay)}function s(u){var p,l,f,g;if(n.state!==gr)return d();for(p in o)if(g=o[p],g.name===n.name){if(g.state===tn)return pr(s);g.state===yr?(g.state=nn,g.timer.stop(),g.on.call("interrupt",e,e.__data__,g.index,g.group),delete o[p]):+p<t&&(g.state=nn,g.timer.stop(),g.on.call("cancel",e,e.__data__,g.index,g.group),delete o[p])}if(pr(function(){n.state===tn&&(n.state=yr,n.timer.restart(a,n.delay,n.time),a(u))}),n.state=Xn,n.on.call("start",e,e.__data__,n.index,n.group),n.state===Xn){for(n.state=tn,r=new Array(f=n.tween.length),p=0,l=-1;p<f;++p)(g=n.tween[p].value.call(e,e.__data__,n.index,n.group))&&(r[++l]=g);r.length=l+1}}function a(u){for(var p=u<n.duration?n.ease.call(null,u/n.duration):(n.timer.restart(d),n.state=Un,1),l=-1,f=r.length;++l<f;)r[l].call(e,p);n.state===Un&&(n.on.call("end",e,e.__data__,n.index,n.group),d())}function d(){n.state=nn,n.timer.stop(),delete o[t];for(var u in o)return;delete e.__transition}}function rn(e,t){var n=e.__transition,o,r,i=!0,s;if(n){t=t==null?null:t+"";for(s in n){if((o=n[s]).name!==t){i=!1;continue}r=o.state>Xn&&o.state<Un,o.state=nn,o.timer.stop(),o.on.call(r?"interrupt":"cancel",e,e.__data__,o.index,o.group),delete n[s]}i&&delete e.__transition}}function Jl(e){return this.each(function(){rn(this,e)})}function jl(e,t){var n,o;return function(){var r=Me(this,e),i=r.tween;if(i!==n){o=n=i;for(var s=0,a=o.length;s<a;++s)if(o[s].name===t){o=o.slice(),o.splice(s,1);break}}r.tween=o}}function Rl(e,t,n){var o,r;if(typeof n!="function")throw new Error;return function(){var i=Me(this,e),s=i.tween;if(s!==o){r=(o=s).slice();for(var a={name:t,value:n},d=0,u=r.length;d<u;++d)if(r[d].name===t){r[d]=a;break}d===u&&r.push(a)}i.tween=r}}function ec(e,t){var n=this._id;if(e+="",arguments.length<2){for(var o=_e(this.node(),n).tween,r=0,i=o.length,s;r<i;++r)if((s=o[r]).name===e)return s.value;return null}return this.each((t==null?jl:Rl)(n,e,t))}function qn(e,t,n){var o=e._id;return e.each(function(){var r=Me(this,o);(r.value||(r.value={}))[t]=n.apply(this,arguments)}),function(r){return _e(r,o).value[t]}}function mr(e,t){var n;return(typeof t=="number"?Te:t instanceof Xe?qt:(n=Xe(t))?(t=n,qt):rr)(e,t)}function tc(e){return function(){this.removeAttribute(e)}}function nc(e){return function(){this.removeAttributeNS(e.space,e.local)}}function oc(e,t,n){var o,r=n+"",i;return function(){var s=this.getAttribute(e);return s===r?null:s===o?i:i=t(o=s,n)}}function rc(e,t,n){var o,r=n+"",i;return function(){var s=this.getAttributeNS(e.space,e.local);return s===r?null:s===o?i:i=t(o=s,n)}}function ic(e,t,n){var o,r,i;return function(){var s,a=n(this),d;return a==null?void this.removeAttribute(e):(s=this.getAttribute(e),d=a+"",s===d?null:s===o&&d===r?i:(r=d,i=t(o=s,a)))}}function sc(e,t,n){var o,r,i;return function(){var s,a=n(this),d;return a==null?void this.removeAttributeNS(e.space,e.local):(s=this.getAttributeNS(e.space,e.local),d=a+"",s===d?null:s===o&&d===r?i:(r=d,i=t(o=s,a)))}}function ac(e,t){var n=Wt(e),o=n==="transform"?Fl:mr;return this.attrTween(e,typeof t=="function"?(n.local?sc:ic)(n,o,qn(this,"attr."+e,t)):t==null?(n.local?nc:tc)(n):(n.local?rc:oc)(n,o,t))}function lc(e,t){return function(n){this.setAttribute(e,t.call(this,n))}}function cc(e,t){return function(n){this.setAttributeNS(e.space,e.local,t.call(this,n))}}function dc(e,t){var n,o;function r(){var i=t.apply(this,arguments);return i!==o&&(n=(o=i)&&cc(e,i)),n}return r._value=t,r}function uc(e,t){var n,o;function r(){var i=t.apply(this,arguments);return i!==o&&(n=(o=i)&&lc(e,i)),n}return r._value=t,r}function fc(e,t){var n="attr."+e;if(arguments.length<2)return(n=this.tween(n))&&n._value;if(t==null)return this.tween(n,null);if(typeof t!="function")throw new Error;var o=Wt(e);return this.tween(n,(o.local?dc:uc)(o,t))}function pc(e,t){return function(){Kn(this,e).delay=+t.apply(this,arguments)}}function hc(e,t){return t=+t,function(){Kn(this,e).delay=t}}function gc(e){var t=this._id;return arguments.length?this.each((typeof e=="function"?pc:hc)(t,e)):_e(this.node(),t).delay}function yc(e,t){return function(){Me(this,e).duration=+t.apply(this,arguments)}}function mc(e,t){return t=+t,function(){Me(this,e).duration=t}}function xc(e){var t=this._id;return arguments.length?this.each((typeof e=="function"?yc:mc)(t,e)):_e(this.node(),t).duration}function bc(e,t){if(typeof t!="function")throw new Error;return function(){Me(this,e).ease=t}}function wc(e){var t=this._id;return arguments.length?this.each(bc(t,e)):_e(this.node(),t).ease}function vc(e,t){return function(){var n=t.apply(this,arguments);if(typeof n!="function")throw new Error;Me(this,e).ease=n}}function Sc(e){if(typeof e!="function")throw new Error;return this.each(vc(this._id,e))}function Cc(e){typeof e!="function"&&(e=zo(e));for(var t=this._groups,n=t.length,o=new Array(n),r=0;r<n;++r)for(var i=t[r],s=i.length,a=o[r]=[],d,u=0;u<s;++u)(d=i[u])&&e.call(d,d.__data__,u,i)&&a.push(d);return new ze(o,this._parents,this._name,this._id)}function _c(e){if(e._id!==this._id)throw new Error;for(var t=this._groups,n=e._groups,o=t.length,r=n.length,i=Math.min(o,r),s=new Array(o),a=0;a<i;++a)for(var d=t[a],u=n[a],p=d.length,l=s[a]=new Array(p),f,g=0;g<p;++g)(f=d[g]||u[g])&&(l[g]=f);for(;a<o;++a)s[a]=t[a];return new ze(s,this._parents,this._name,this._id)}function kc(e){return(e+"").trim().split(/^|\s+/).every(function(t){var n=t.indexOf(".");return n>=0&&(t=t.slice(0,n)),!t||t==="start"})}function Ec(e,t,n){var o,r,i=kc(t)?Kn:Me;return function(){var s=i(this,e),a=s.on;a!==o&&(r=(o=a).copy()).on(t,n),s.on=r}}function Nc(e,t){var n=this._id;return arguments.length<2?_e(this.node(),n).on.on(e):this.each(Ec(n,e,t))}function Ic(e){return function(){var t=this.parentNode;for(var n in this.__transition)if(+n!==e)return;t&&t.removeChild(this)}}function Ac(){return this.on("end.remove",Ic(this._id))}function Tc(e){var t=this._name,n=this._id;typeof e!="function"&&(e=$n(e));for(var o=this._groups,r=o.length,i=new Array(r),s=0;s<r;++s)for(var a=o[s],d=a.length,u=i[s]=new Array(d),p,l,f=0;f<d;++f)(p=a[f])&&(l=e.call(p,p.__data__,f,a))&&("__data__"in p&&(l.__data__=p.__data__),u[f]=l,on(u[f],t,n,f,u,_e(p,n)));return new ze(i,this._parents,t,n)}function Mc(e){var t=this._name,n=this._id;typeof e!="function"&&(e=Po(e));for(var o=this._groups,r=o.length,i=[],s=[],a=0;a<r;++a)for(var d=o[a],u=d.length,p,l=0;l<u;++l)if(p=d[l]){for(var f=e.call(p,p.__data__,l,d),g,x=_e(p,n),y=0,w=f.length;y<w;++y)(g=f[y])&&on(g,t,n,y,f,x);i.push(f),s.push(p)}return new ze(i,s,t,n)}var $c=pt.prototype.constructor;function Pc(){return new $c(this._groups,this._parents)}function zc(e,t){var n,o,r;return function(){var i=tt(this,e),s=(this.style.removeProperty(e),tt(this,e));return i===s?null:i===n&&s===o?r:r=t(n=i,o=s)}}function xr(e){return function(){this.style.removeProperty(e)}}function Dc(e,t,n){var o,r=n+"",i;return function(){var s=tt(this,e);return s===r?null:s===o?i:i=t(o=s,n)}}function Bc(e,t,n){var o,r,i;return function(){var s=tt(this,e),a=n(this),d=a+"";return a==null&&(d=a=(this.style.removeProperty(e),tt(this,e))),s===d?null:s===o&&d===r?i:(r=d,i=t(o=s,a))}}function Lc(e,t){var n,o,r,i="style."+t,s="end."+i,a;return function(){var d=Me(this,e),u=d.on,p=d.value[i]==null?a||(a=xr(t)):void 0;(u!==n||r!==p)&&(o=(n=u).copy()).on(s,r=p),d.on=o}}function Hc(e,t,n){var o=(e+="")=="transform"?Ol:mr;return t==null?this.styleTween(e,zc(e,o)).on("end.style."+e,xr(e)):typeof t=="function"?this.styleTween(e,Bc(e,o,qn(this,"style."+e,t))).each(Lc(this._id,e)):this.styleTween(e,Dc(e,o,t),n).on("end.style."+e,null)}function Oc(e,t,n){return function(o){this.style.setProperty(e,t.call(this,o),n)}}function Fc(e,t,n){var o,r;function i(){var s=t.apply(this,arguments);return s!==r&&(o=(r=s)&&Oc(e,s,n)),o}return i._value=t,i}function Wc(e,t,n){var o="style."+(e+="");if(arguments.length<2)return(o=this.tween(o))&&o._value;if(t==null)return this.tween(o,null);if(typeof t!="function")throw new Error;return this.tween(o,Fc(e,t,n??""))}function Vc(e){return function(){this.textContent=e}}function Gc(e){return function(){var t=e(this);this.textContent=t??""}}function Yc(e){return this.tween("text",typeof e=="function"?Gc(qn(this,"text",e)):Vc(e==null?"":e+""))}function Xc(e){return function(t){this.textContent=e.call(this,t)}}function Uc(e){var t,n;function o(){var r=e.apply(this,arguments);return r!==n&&(t=(n=r)&&Xc(r)),t}return o._value=e,o}function Kc(e){var t="text";if(arguments.length<1)return(t=this.tween(t))&&t._value;if(e==null)return this.tween(t,null);if(typeof e!="function")throw new Error;return this.tween(t,Uc(e))}function qc(){for(var e=this._name,t=this._id,n=br(),o=this._groups,r=o.length,i=0;i<r;++i)for(var s=o[i],a=s.length,d,u=0;u<a;++u)if(d=s[u]){var p=_e(d,t);on(d,e,n,u,s,{time:p.time+p.delay+p.duration,delay:0,duration:p.duration,ease:p.ease})}return new ze(o,this._parents,e,n)}function Zc(){var e,t,n=this,o=n._id,r=n.size();return new Promise(function(i,s){var a={value:s},d={value:function(){--r===0&&i()}};n.each(function(){var u=Me(this,o),p=u.on;p!==e&&(t=(e=p).copy(),t._.cancel.push(a),t._.interrupt.push(a),t._.end.push(d)),u.on=t}),r===0&&i()})}var Qc=0;function ze(e,t,n,o){this._groups=e,this._parents=t,this._name=n,this._id=o}function br(){return++Qc}var De=pt.prototype;ze.prototype={constructor:ze,select:Tc,selectAll:Mc,selectChild:De.selectChild,selectChildren:De.selectChildren,filter:Cc,merge:_c,selection:Pc,transition:qc,call:De.call,nodes:De.nodes,node:De.node,size:De.size,empty:De.empty,each:De.each,on:Nc,attr:ac,attrTween:fc,style:Hc,styleTween:Wc,text:Yc,textTween:Kc,remove:Ac,tween:ec,delay:gc,duration:xc,ease:wc,easeVarying:Sc,end:Zc,[Symbol.iterator]:De[Symbol.iterator]};function Jc(e){return((e*=2)<=1?e*e*e:(e-=2)*e*e+2)/2}var jc={time:null,delay:0,duration:250,ease:Jc};function Rc(e,t){for(var n;!(n=e.__transition)||!(n=n[t]);)if(!(e=e.parentNode))throw new Error(`transition ${t} not found`);return n}function ed(e){var t,n;e instanceof ze?(t=e._id,e=e._name):(t=br(),(n=jc).time=Gn(),e=e==null?null:e+"");for(var o=this._groups,r=o.length,i=0;i<r;++i)for(var s=o[i],a=s.length,d,u=0;u<a;++u)(d=s[u])&&on(d,e,t,u,s,n||Rc(d,t));return new ze(o,this._parents,e,t)}pt.prototype.interrupt=Jl,pt.prototype.transition=ed;const sn=e=>()=>e;function td(e,{sourceEvent:t,target:n,transform:o,dispatch:r}){Object.defineProperties(this,{type:{value:e,enumerable:!0,configurable:!0},sourceEvent:{value:t,enumerable:!0,configurable:!0},target:{value:n,enumerable:!0,configurable:!0},transform:{value:o,enumerable:!0,configurable:!0},_:{value:r}})}function Be(e,t,n){this.k=e,this.x=t,this.y=n}Be.prototype={constructor:Be,scale:function(e){return e===1?this:new Be(this.k*e,this.x,this.y)},translate:function(e,t){return e===0&t===0?this:new Be(this.k,this.x+this.k*e,this.y+this.k*t)},apply:function(e){return[e[0]*this.k+this.x,e[1]*this.k+this.y]},applyX:function(e){return e*this.k+this.x},applyY:function(e){return e*this.k+this.y},invert:function(e){return[(e[0]-this.x)/this.k,(e[1]-this.y)/this.k]},invertX:function(e){return(e-this.x)/this.k},invertY:function(e){return(e-this.y)/this.k},rescaleX:function(e){return e.copy().domain(e.range().map(this.invertX,this).map(e.invert,e))},rescaleY:function(e){return e.copy().domain(e.range().map(this.invertY,this).map(e.invert,e))},toString:function(){return"translate("+this.x+","+this.y+") scale("+this.k+")"}};var an=new Be(1,0,0);wr.prototype=Be.prototype;function wr(e){for(;!e.__zoom;)if(!(e=e.parentNode))return an;return e.__zoom}function Zn(e){e.stopImmediatePropagation()}function Ct(e){e.preventDefault(),e.stopImmediatePropagation()}function nd(e){return(!e.ctrlKey||e.type==="wheel")&&!e.button}function od(){var e=this;return e instanceof SVGElement?(e=e.ownerSVGElement||e,e.hasAttribute("viewBox")?(e=e.viewBox.baseVal,[[e.x,e.y],[e.x+e.width,e.y+e.height]]):[[0,0],[e.width.baseVal.value,e.height.baseVal.value]]):[[0,0],[e.clientWidth,e.clientHeight]]}function vr(){return this.__zoom||an}function rd(e){return-e.deltaY*(e.deltaMode===1?.05:e.deltaMode?1:.002)*(e.ctrlKey?10:1)}function id(){return navigator.maxTouchPoints||"ontouchstart"in this}function sd(e,t,n){var o=e.invertX(t[0][0])-n[0][0],r=e.invertX(t[1][0])-n[1][0],i=e.invertY(t[0][1])-n[0][1],s=e.invertY(t[1][1])-n[1][1];return e.translate(r>o?(o+r)/2:Math.min(0,o)||Math.max(0,r),s>i?(i+s)/2:Math.min(0,i)||Math.max(0,s))}function Sr(){var e=nd,t=od,n=sd,o=rd,r=id,i=[0,1/0],s=[[-1/0,-1/0],[1/0,1/0]],a=250,d=Qt,u=Ot("start","zoom","end"),p,l,f,g=500,x=150,y=0,w=10;function m(S){S.property("__zoom",vr).on("wheel.zoom",P,{passive:!1}).on("mousedown.zoom",T).on("dblclick.zoom",K).filter(r).on("touchstart.zoom",D).on("touchmove.zoom",M).on("touchend.zoom touchcancel.zoom",W).style("-webkit-tap-highlight-color","rgba(0,0,0,0)")}m.transform=function(S,$,N,z){var A=S.selection?S.selection():S;A.property("__zoom",vr),S!==A?v(S,$,N,z):A.interrupt().each(function(){k(this,arguments).event(z).start().zoom(null,typeof $=="function"?$.apply(this,arguments):$).end()})},m.scaleBy=function(S,$,N,z){m.scaleTo(S,function(){var A=this.__zoom.k,I=typeof $=="function"?$.apply(this,arguments):$;return A*I},N,z)},m.scaleTo=function(S,$,N,z){m.transform(S,function(){var A=t.apply(this,arguments),I=this.__zoom,L=N==null?b(A):typeof N=="function"?N.apply(this,arguments):N,X=I.invert(L),O=typeof $=="function"?$.apply(this,arguments):$;return n(h(_(I,O),L,X),A,s)},N,z)},m.translateBy=function(S,$,N,z){m.transform(S,function(){return n(this.__zoom.translate(typeof $=="function"?$.apply(this,arguments):$,typeof N=="function"?N.apply(this,arguments):N),t.apply(this,arguments),s)},null,z)},m.translateTo=function(S,$,N,z,A){m.transform(S,function(){var I=t.apply(this,arguments),L=this.__zoom,X=z==null?b(I):typeof z=="function"?z.apply(this,arguments):z;return n(an.translate(X[0],X[1]).scale(L.k).translate(typeof $=="function"?-$.apply(this,arguments):-$,typeof N=="function"?-N.apply(this,arguments):-N),I,s)},z,A)};function _(S,$){return $=Math.max(i[0],Math.min(i[1],$)),$===S.k?S:new Be($,S.x,S.y)}function h(S,$,N){var z=$[0]-N[0]*S.k,A=$[1]-N[1]*S.k;return z===S.x&&A===S.y?S:new Be(S.k,z,A)}function b(S){return[(+S[0][0]+ +S[1][0])/2,(+S[0][1]+ +S[1][1])/2]}function v(S,$,N,z){S.on("start.zoom",function(){k(this,arguments).event(z).start()}).on("interrupt.zoom end.zoom",function(){k(this,arguments).event(z).end()}).tween("zoom",function(){var A=this,I=arguments,L=k(A,I).event(z),X=t.apply(A,I),O=N==null?b(X):typeof N=="function"?N.apply(A,I):N,G=Math.max(X[1][0]-X[0][0],X[1][1]-X[0][1]),V=A.__zoom,Y=typeof $=="function"?$.apply(A,I):$,te=d(V.invert(O).concat(G/V.k),Y.invert(O).concat(G/Y.k));return function(ee){if(ee===1)ee=Y;else{var F=te(ee),q=G/F[2];ee=new Be(q,O[0]-F[0]*q,O[1]-F[1]*q)}L.zoom(null,ee)}})}function k(S,$,N){return!N&&S.__zooming||new C(S,$)}function C(S,$){this.that=S,this.args=$,this.active=0,this.sourceEvent=null,this.extent=t.apply(S,$),this.taps=0}C.prototype={event:function(S){return S&&(this.sourceEvent=S),this},start:function(){return++this.active===1&&(this.that.__zooming=this,this.emit("start")),this},zoom:function(S,$){return this.mouse&&S!=="mouse"&&(this.mouse[1]=$.invert(this.mouse[0])),this.touch0&&S!=="touch"&&(this.touch0[1]=$.invert(this.touch0[0])),this.touch1&&S!=="touch"&&(this.touch1[1]=$.invert(this.touch1[0])),this.that.__zoom=$,this.emit("zoom"),this},end:function(){return--this.active===0&&(delete this.that.__zooming,this.emit("end")),this},emit:function(S){var $=be(this.that).datum();u.call(S,this.that,new td(S,{sourceEvent:this.sourceEvent,target:m,transform:this.that.__zoom,dispatch:u}),$)}};function P(S,...$){if(!e.apply(this,arguments))return;var N=k(this,$).event(S),z=this.__zoom,A=Math.max(i[0],Math.min(i[1],z.k*Math.pow(2,o.apply(this,arguments)))),I=Se(S);if(N.wheel)(N.mouse[0][0]!==I[0]||N.mouse[0][1]!==I[1])&&(N.mouse[1]=z.invert(N.mouse[0]=I)),clearTimeout(N.wheel);else{if(z.k===A)return;N.mouse=[I,z.invert(I)],rn(this),N.start()}Ct(S),N.wheel=setTimeout(L,x),N.zoom("mouse",n(h(_(z,A),N.mouse[0],N.mouse[1]),N.extent,s));function L(){N.wheel=null,N.end()}}function T(S,...$){if(f||!e.apply(this,arguments))return;var N=S.currentTarget,z=k(this,$,!0).event(S),A=be(S.view).on("mousemove.zoom",O,!0).on("mouseup.zoom",G,!0),I=Se(S,N),L=S.clientX,X=S.clientY;Yo(S.view),Zn(S),z.mouse=[I,this.__zoom.invert(I)],rn(this),z.start();function O(V){if(Ct(V),!z.moved){var Y=V.clientX-L,te=V.clientY-X;z.moved=Y*Y+te*te>y}z.event(V).zoom("mouse",n(h(z.that.__zoom,z.mouse[0]=Se(V,N),z.mouse[1]),z.extent,s))}function G(V){A.on("mousemove.zoom mouseup.zoom",null),Xo(V.view,z.moved),Ct(V),z.event(V).end()}}function K(S,...$){if(e.apply(this,arguments)){var N=this.__zoom,z=Se(S.changedTouches?S.changedTouches[0]:S,this),A=N.invert(z),I=N.k*(S.shiftKey?.5:2),L=n(h(_(N,I),z,A),t.apply(this,$),s);Ct(S),a>0?be(this).transition().duration(a).call(v,L,z,S):be(this).call(m.transform,L,z,S)}}function D(S,...$){if(e.apply(this,arguments)){var N=S.touches,z=N.length,A=k(this,$,S.changedTouches.length===z).event(S),I,L,X,O;for(Zn(S),L=0;L<z;++L)X=N[L],O=Se(X,this),O=[O,this.__zoom.invert(O),X.identifier],A.touch0?!A.touch1&&A.touch0[2]!==O[2]&&(A.touch1=O,A.taps=0):(A.touch0=O,I=!0,A.taps=1+!!p);p&&(p=clearTimeout(p)),I&&(A.taps<2&&(l=O[0],p=setTimeout(function(){p=null},g)),rn(this),A.start())}}function M(S,...$){if(this.__zooming){var N=k(this,$).event(S),z=S.changedTouches,A=z.length,I,L,X,O;for(Ct(S),I=0;I<A;++I)L=z[I],X=Se(L,this),N.touch0&&N.touch0[2]===L.identifier?N.touch0[0]=X:N.touch1&&N.touch1[2]===L.identifier&&(N.touch1[0]=X);if(L=N.that.__zoom,N.touch1){var G=N.touch0[0],V=N.touch0[1],Y=N.touch1[0],te=N.touch1[1],ee=(ee=Y[0]-G[0])*ee+(ee=Y[1]-G[1])*ee,F=(F=te[0]-V[0])*F+(F=te[1]-V[1])*F;L=_(L,Math.sqrt(ee/F)),X=[(G[0]+Y[0])/2,(G[1]+Y[1])/2],O=[(V[0]+te[0])/2,(V[1]+te[1])/2]}else if(N.touch0)X=N.touch0[0],O=N.touch0[1];else return;N.zoom("touch",n(h(L,X,O),N.extent,s))}}function W(S,...$){if(this.__zooming){var N=k(this,$).event(S),z=S.changedTouches,A=z.length,I,L;for(Zn(S),f&&clearTimeout(f),f=setTimeout(function(){f=null},g),I=0;I<A;++I)L=z[I],N.touch0&&N.touch0[2]===L.identifier?delete N.touch0:N.touch1&&N.touch1[2]===L.identifier&&delete N.touch1;if(N.touch1&&!N.touch0&&(N.touch0=N.touch1,delete N.touch1),N.touch0)N.touch0[1]=this.__zoom.invert(N.touch0[0]);else if(N.end(),N.taps===2&&(L=Se(L,this),Math.hypot(l[0]-L[0],l[1]-L[1])<w)){var X=be(this).on("dblclick.zoom");X&&X.apply(this,arguments)}}}return m.wheelDelta=function(S){return arguments.length?(o=typeof S=="function"?S:sn(+S),m):o},m.filter=function(S){return arguments.length?(e=typeof S=="function"?S:sn(!!S),m):e},m.touchable=function(S){return arguments.length?(r=typeof S=="function"?S:sn(!!S),m):r},m.extent=function(S){return arguments.length?(t=typeof S=="function"?S:sn([[+S[0][0],+S[0][1]],[+S[1][0],+S[1][1]]]),m):t},m.scaleExtent=function(S){return arguments.length?(i[0]=+S[0],i[1]=+S[1],m):[i[0],i[1]]},m.translateExtent=function(S){return arguments.length?(s[0][0]=+S[0][0],s[1][0]=+S[1][0],s[0][1]=+S[0][1],s[1][1]=+S[1][1],m):[[s[0][0],s[0][1]],[s[1][0],s[1][1]]]},m.constrain=function(S){return arguments.length?(n=S,m):n},m.duration=function(S){return arguments.length?(a=+S,m):a},m.interpolate=function(S){return arguments.length?(d=S,m):d},m.on=function(){var S=u.on.apply(u,arguments);return S===u?m:S},m.clickDistance=function(S){return arguments.length?(y=(S=+S)*S,m):Math.sqrt(y)},m.tapDistance=function(S){return arguments.length?(w=+S,m):w},m}const $e={error001:()=>"[React Flow]: Seems like you have not used zustand provider as an ancestor. Help: https://reactflow.dev/error#001",error002:()=>"It looks like you've created a new nodeTypes or edgeTypes object. If this wasn't on purpose please define the nodeTypes/edgeTypes outside of the component or memoize them.",error003:e=>`Node type "${e}" not found. Using fallback type "default".`,error004:()=>"The React Flow parent container needs a width and a height to render the graph.",error005:()=>"Only child nodes can use a parent extent.",error006:()=>"Can't create edge. An edge needs a source and a target.",error007:e=>`The old edge with id=${e} does not exist.`,error009:e=>`Marker type "${e}" doesn't exist.`,error008:(e,{id:t,sourceHandle:n,targetHandle:o})=>`Couldn't create edge for ${e} handle id: "${e==="source"?n:o}", edge id: ${t}.`,error010:()=>"Handle: No node id found. Make sure to only use a Handle inside a custom Node.",error011:e=>`Edge type "${e}" not found. Using fallback type "default".`,error012:e=>`Node with id "${e}" does not exist, it may have been removed. This can happen when a node is deleted before the "onNodeClick" handler is called.`,error013:(e="react")=>`It seems that you haven't loaded the styles. Please import '@xyflow/${e}/dist/style.css' or base.css to make sure everything is working properly.`,error014:()=>"useNodeConnections: No node ID found. Call useNodeConnections inside a custom Node or provide a node ID.",error015:()=>"It seems that you are trying to drag a node that is not initialized. Please use onNodesChange as explained in the docs."},_t=[[Number.NEGATIVE_INFINITY,Number.NEGATIVE_INFINITY],[Number.POSITIVE_INFINITY,Number.POSITIVE_INFINITY]],Cr=["Enter"," ","Escape"],_r={"node.a11yDescription.default":"Press enter or space to select a node. Press delete to remove it and escape to cancel.","node.a11yDescription.keyboardDisabled":"Press enter or space to select a node. You can then use the arrow keys to move the node around. Press delete to remove it and escape to cancel.","node.a11yDescription.ariaLiveMessage":({direction:e,x:t,y:n})=>`Moved selected node ${e}. New position, x: ${t}, y: ${n}`,"edge.a11yDescription.default":"Press enter or space to select an edge. You can then press delete to remove it or escape to cancel.","controls.ariaLabel":"Control Panel","controls.zoomIn.ariaLabel":"Zoom In","controls.zoomOut.ariaLabel":"Zoom Out","controls.fitView.ariaLabel":"Fit View","controls.interactive.ariaLabel":"Toggle Interactivity","minimap.ariaLabel":"Mini Map","handle.ariaLabel":"Handle"};var it;(function(e){e.Strict="strict",e.Loose="loose"})(it||(it={}));var Ze;(function(e){e.Free="free",e.Vertical="vertical",e.Horizontal="horizontal"})(Ze||(Ze={}));var kt;(function(e){e.Partial="partial",e.Full="full"})(kt||(kt={}));const kr={inProgress:!1,isValid:null,from:null,fromHandle:null,fromPosition:null,fromNode:null,to:null,toHandle:null,toPosition:null,toNode:null,pointer:null};var Fe;(function(e){e.Bezier="default",e.Straight="straight",e.Step="step",e.SmoothStep="smoothstep",e.SimpleBezier="simplebezier"})(Fe||(Fe={}));var ln;(function(e){e.Arrow="arrow",e.ArrowClosed="arrowclosed"})(ln||(ln={}));var re;(function(e){e.Left="left",e.Top="top",e.Right="right",e.Bottom="bottom"})(re||(re={}));const Er={[re.Left]:re.Right,[re.Right]:re.Left,[re.Top]:re.Bottom,[re.Bottom]:re.Top};function Nr(e){return e===null?null:e?"valid":"invalid"}const Ir=e=>"id"in e&&"source"in e&&"target"in e,ad=e=>"id"in e&&"position"in e&&!("source"in e)&&!("target"in e),Qn=e=>"id"in e&&"internals"in e&&!("source"in e)&&!("target"in e),Et=(e,t=[0,0])=>{const{width:n,height:o}=Le(e),r=e.origin??t,i=n*r[0],s=o*r[1];return{x:e.position.x-i,y:e.position.y-s}},ld=(e,t={nodeOrigin:[0,0]})=>{if(e.length===0)return{x:0,y:0,width:0,height:0};const n=e.reduce((o,r)=>{const i=typeof r=="string";let s=!t.nodeLookup&&!i?r:void 0;t.nodeLookup&&(s=i?t.nodeLookup.get(r):Qn(r)?r:t.nodeLookup.get(r.id));const a=s?un(s,t.nodeOrigin):{x:0,y:0,x2:0,y2:0};return cn(o,a)},{x:1/0,y:1/0,x2:-1/0,y2:-1/0});return dn(n)},Nt=(e,t={})=>{let n={x:1/0,y:1/0,x2:-1/0,y2:-1/0},o=!1;return e.forEach(r=>{(t.filter===void 0||t.filter(r))&&(n=cn(n,un(r)),o=!0)}),o?dn(n):{x:0,y:0,width:0,height:0}},Jn=(e,t,[n,o,r]=[0,0,1],i=!1,s=!1)=>{const a={...Tt(t,[n,o,r]),width:t.width/r,height:t.height/r},d=[];for(const u of e.values()){const{measured:p,selectable:l=!0,hidden:f=!1}=u;if(s&&!l||f)continue;const g=p.width??u.width??u.initialWidth??null,x=p.height??u.height??u.initialHeight??null,y=It(a,at(u)),w=(g??0)*(x??0),m=i&&y>0;(!u.internals.handleBounds||m||y>=w||u.dragging)&&d.push(u)}return d},cd=(e,t)=>{const n=new Set;return e.forEach(o=>{n.add(o.id)}),t.filter(o=>n.has(o.source)||n.has(o.target))};function dd(e,t){const n=new Map,o=t!=null&&t.nodes?new Set(t.nodes.map(r=>r.id)):null;return e.forEach(r=>{r.measured.width&&r.measured.height&&((t==null?void 0:t.includeHiddenNodes)||!r.hidden)&&(!o||o.has(r.id))&&n.set(r.id,r)}),n}async function ud({nodes:e,width:t,height:n,panZoom:o,minZoom:r,maxZoom:i},s){if(e.size===0)return Promise.resolve(!0);const a=dd(e,s),d=Nt(a),u=Rn(d,t,n,(s==null?void 0:s.minZoom)??r,(s==null?void 0:s.maxZoom)??i,(s==null?void 0:s.padding)??.1);return await o.setViewport(u,{duration:s==null?void 0:s.duration,ease:s==null?void 0:s.ease,interpolate:s==null?void 0:s.interpolate}),Promise.resolve(!0)}function Ar({nodeId:e,nextPosition:t,nodeLookup:n,nodeOrigin:o=[0,0],nodeExtent:r,onError:i}){const s=n.get(e),a=s.parentId?n.get(s.parentId):void 0,{x:d,y:u}=a?a.internals.positionAbsolute:{x:0,y:0},p=s.origin??o;let l=s.extent||r;if(s.extent==="parent"&&!s.expandParent)if(!a)i==null||i("005",$e.error005());else{const g=a.measured.width,x=a.measured.height;g&&x&&(l=[[d,u],[d+g,u+x]])}else a&&ct(s.extent)&&(l=[[s.extent[0][0]+d,s.extent[0][1]+u],[s.extent[1][0]+d,s.extent[1][1]+u]]);const f=ct(l)?Qe(t,l,s.measured):t;return(s.measured.width===void 0||s.measured.height===void 0)&&(i==null||i("015",$e.error015())),{position:{x:f.x-d+(s.measured.width??0)*p[0],y:f.y-u+(s.measured.height??0)*p[1]},positionAbsolute:f}}async function fd({nodesToRemove:e=[],edgesToRemove:t=[],nodes:n,edges:o,onBeforeDelete:r}){const i=new Set(e.map(f=>f.id)),s=[];for(const f of n){if(f.deletable===!1)continue;const g=i.has(f.id),x=!g&&f.parentId&&s.find(y=>y.id===f.parentId);(g||x)&&s.push(f)}const a=new Set(t.map(f=>f.id)),d=o.filter(f=>f.deletable!==!1),p=cd(s,d);for(const f of d)a.has(f.id)&&!p.find(x=>x.id===f.id)&&p.push(f);if(!r)return{edges:p,nodes:s};const l=await r({nodes:s,edges:p});return typeof l=="boolean"?l?{edges:p,nodes:s}:{edges:[],nodes:[]}:l}const st=(e,t=0,n=1)=>Math.min(Math.max(e,t),n),Qe=(e={x:0,y:0},t,n)=>({x:st(e.x,t[0][0],t[1][0]-((n==null?void 0:n.width)??0)),y:st(e.y,t[0][1],t[1][1]-((n==null?void 0:n.height)??0))});function Tr(e,t,n){const{width:o,height:r}=Le(n),{x:i,y:s}=n.internals.positionAbsolute;return Qe(e,[[i,s],[i+o,s+r]],t)}const Mr=(e,t,n)=>e<t?st(Math.abs(e-t),1,t)/t:e>n?-st(Math.abs(e-n),1,t)/t:0,$r=(e,t,n=15,o=40)=>{const r=Mr(e.x,o,t.width-o)*n,i=Mr(e.y,o,t.height-o)*n;return[r,i]},cn=(e,t)=>({x:Math.min(e.x,t.x),y:Math.min(e.y,t.y),x2:Math.max(e.x2,t.x2),y2:Math.max(e.y2,t.y2)}),jn=({x:e,y:t,width:n,height:o})=>({x:e,y:t,x2:e+n,y2:t+o}),dn=({x:e,y:t,x2:n,y2:o})=>({x:e,y:t,width:n-e,height:o-t}),at=(e,t=[0,0])=>{var r,i;const{x:n,y:o}=Qn(e)?e.internals.positionAbsolute:Et(e,t);return{x:n,y:o,width:((r=e.measured)==null?void 0:r.width)??e.width??e.initialWidth??0,height:((i=e.measured)==null?void 0:i.height)??e.height??e.initialHeight??0}},un=(e,t=[0,0])=>{var r,i;const{x:n,y:o}=Qn(e)?e.internals.positionAbsolute:Et(e,t);return{x:n,y:o,x2:n+(((r=e.measured)==null?void 0:r.width)??e.width??e.initialWidth??0),y2:o+(((i=e.measured)==null?void 0:i.height)??e.height??e.initialHeight??0)}},Pr=(e,t)=>dn(cn(jn(e),jn(t))),It=(e,t)=>{const n=Math.max(0,Math.min(e.x+e.width,t.x+t.width)-Math.max(e.x,t.x)),o=Math.max(0,Math.min(e.y+e.height,t.y+t.height)-Math.max(e.y,t.y));return Math.ceil(n*o)},zr=e=>ke(e.width)&&ke(e.height)&&ke(e.x)&&ke(e.y),ke=e=>!isNaN(e)&&isFinite(e),pd=(e,t)=>{},At=(e,t=[1,1])=>({x:t[0]*Math.round(e.x/t[0]),y:t[1]*Math.round(e.y/t[1])}),Tt=({x:e,y:t},[n,o,r],i=!1,s=[1,1])=>{const a={x:(e-n)/r,y:(t-o)/r};return i?At(a,s):a},fn=({x:e,y:t},[n,o,r])=>({x:e*r+n,y:t*r+o});function lt(e,t){if(typeof e=="number")return Math.floor((t-t/(1+e))*.5);if(typeof e=="string"&&e.endsWith("px")){const n=parseFloat(e);if(!Number.isNaN(n))return Math.floor(n)}if(typeof e=="string"&&e.endsWith("%")){const n=parseFloat(e);if(!Number.isNaN(n))return Math.floor(t*n*.01)}return console.error(`[React Flow] The padding value "${e}" is invalid. Please provide a number or a string with a valid unit (px or %).`),0}function hd(e,t,n){if(typeof e=="string"||typeof e=="number"){const o=lt(e,n),r=lt(e,t);return{top:o,right:r,bottom:o,left:r,x:r*2,y:o*2}}if(typeof e=="object"){const o=lt(e.top??e.y??0,n),r=lt(e.bottom??e.y??0,n),i=lt(e.left??e.x??0,t),s=lt(e.right??e.x??0,t);return{top:o,right:s,bottom:r,left:i,x:i+s,y:o+r}}return{top:0,right:0,bottom:0,left:0,x:0,y:0}}function gd(e,t,n,o,r,i){const{x:s,y:a}=fn(e,[t,n,o]),{x:d,y:u}=fn({x:e.x+e.width,y:e.y+e.height},[t,n,o]),p=r-d,l=i-u;return{left:Math.floor(s),top:Math.floor(a),right:Math.floor(p),bottom:Math.floor(l)}}const Rn=(e,t,n,o,r,i)=>{const s=hd(i,t,n),a=(t-s.x)/e.width,d=(n-s.y)/e.height,u=Math.min(a,d),p=st(u,o,r),l=e.x+e.width/2,f=e.y+e.height/2,g=t/2-l*p,x=n/2-f*p,y=gd(e,g,x,p,t,n),w={left:Math.min(y.left-s.left,0),top:Math.min(y.top-s.top,0),right:Math.min(y.right-s.right,0),bottom:Math.min(y.bottom-s.bottom,0)};return{x:g-w.left+w.right,y:x-w.top+w.bottom,zoom:p}},Mt=()=>{var e;return typeof navigator<"u"&&((e=navigator==null?void 0:navigator.userAgent)==null?void 0:e.indexOf("Mac"))>=0};function ct(e){return e!=null&&e!=="parent"}function Le(e){var t,n;return{width:((t=e.measured)==null?void 0:t.width)??e.width??e.initialWidth??0,height:((n=e.measured)==null?void 0:n.height)??e.height??e.initialHeight??0}}function Dr(e){var t,n;return(((t=e.measured)==null?void 0:t.width)??e.width??e.initialWidth)!==void 0&&(((n=e.measured)==null?void 0:n.height)??e.height??e.initialHeight)!==void 0}function Br(e,t={width:0,height:0},n,o,r){const i={...e},s=o.get(n);if(s){const a=s.origin||r;i.x+=s.internals.positionAbsolute.x-(t.width??0)*a[0],i.y+=s.internals.positionAbsolute.y-(t.height??0)*a[1]}return i}function Lr(e,t){if(e.size!==t.size)return!1;for(const n of e)if(!t.has(n))return!1;return!0}function yd(){let e,t;return{promise:new Promise((o,r)=>{e=o,t=r}),resolve:e,reject:t}}function md(e){return{..._r,...e||{}}}function $t(e,{snapGrid:t=[0,0],snapToGrid:n=!1,transform:o,containerBounds:r}){const{x:i,y:s}=Ee(e),a=Tt({x:i-((r==null?void 0:r.left)??0),y:s-((r==null?void 0:r.top)??0)},o),{x:d,y:u}=n?At(a,t):a;return{xSnapped:d,ySnapped:u,...a}}const eo=e=>({width:e.offsetWidth,height:e.offsetHeight}),Hr=e=>{var t;return((t=e==null?void 0:e.getRootNode)==null?void 0:t.call(e))||(window==null?void 0:window.document)},xd=["INPUT","SELECT","TEXTAREA"];function Or(e){var o,r;const t=((r=(o=e.composedPath)==null?void 0:o.call(e))==null?void 0:r[0])||e.target;return(t==null?void 0:t.nodeType)!==1?!1:xd.includes(t.nodeName)||t.hasAttribute("contenteditable")||!!t.closest(".nokey")}const Fr=e=>"clientX"in e,Ee=(e,t)=>{var i,s;const n=Fr(e),o=n?e.clientX:(i=e.touches)==null?void 0:i[0].clientX,r=n?e.clientY:(s=e.touches)==null?void 0:s[0].clientY;return{x:o-((t==null?void 0:t.left)??0),y:r-((t==null?void 0:t.top)??0)}},Wr=(e,t,n,o,r)=>{const i=t.querySelectorAll(`.${e}`);return!i||!i.length?null:Array.from(i).map(s=>{const a=s.getBoundingClientRect();return{id:s.getAttribute("data-handleid"),type:e,nodeId:r,position:s.getAttribute("data-handlepos"),x:(a.left-n.left)/o,y:(a.top-n.top)/o,...eo(s)}})};function Vr({sourceX:e,sourceY:t,targetX:n,targetY:o,sourceControlX:r,sourceControlY:i,targetControlX:s,targetControlY:a}){const d=e*.125+r*.375+s*.375+n*.125,u=t*.125+i*.375+a*.375+o*.125,p=Math.abs(d-e),l=Math.abs(u-t);return[d,u,p,l]}function pn(e,t){return e>=0?.5*e:t*25*Math.sqrt(-e)}function Gr({pos:e,x1:t,y1:n,x2:o,y2:r,c:i}){switch(e){case re.Left:return[t-pn(t-o,i),n];case re.Right:return[t+pn(o-t,i),n];case re.Top:return[t,n-pn(n-r,i)];case re.Bottom:return[t,n+pn(r-n,i)]}}function Yr({sourceX:e,sourceY:t,sourcePosition:n=re.Bottom,targetX:o,targetY:r,targetPosition:i=re.Top,curvature:s=.25}){const[a,d]=Gr({pos:n,x1:e,y1:t,x2:o,y2:r,c:s}),[u,p]=Gr({pos:i,x1:o,y1:r,x2:e,y2:t,c:s}),[l,f,g,x]=Vr({sourceX:e,sourceY:t,targetX:o,targetY:r,sourceControlX:a,sourceControlY:d,targetControlX:u,targetControlY:p});return[`M${e},${t} C${a},${d} ${u},${p} ${o},${r}`,l,f,g,x]}function Xr({sourceX:e,sourceY:t,targetX:n,targetY:o}){const r=Math.abs(n-e)/2,i=n<e?n+r:n-r,s=Math.abs(o-t)/2,a=o<t?o+s:o-s;return[i,a,r,s]}function bd({sourceNode:e,targetNode:t,selected:n=!1,zIndex:o,elevateOnSelect:r=!1}){if(o!==void 0)return o;const i=r&&n?1e3:0,s=Math.max(e.parentId||r&&e.selected?e.internals.z:0,t.parentId||r&&t.selected?t.internals.z:0);return i+s}function wd({sourceNode:e,targetNode:t,width:n,height:o,transform:r}){const i=cn(un(e),un(t));i.x===i.x2&&(i.x2+=1),i.y===i.y2&&(i.y2+=1);const s={x:-r[0]/r[2],y:-r[1]/r[2],width:n/r[2],height:o/r[2]};return It(s,dn(i))>0}const vd=({source:e,sourceHandle:t,target:n,targetHandle:o})=>`xy-edge__${e}${t||""}-${n}${o||""}`,Sd=(e,t)=>t.some(n=>n.source===e.source&&n.target===e.target&&(n.sourceHandle===e.sourceHandle||!n.sourceHandle&&!e.sourceHandle)&&(n.targetHandle===e.targetHandle||!n.targetHandle&&!e.targetHandle)),Cd=(e,t)=>{if(!e.source||!e.target)return t;let n;return Ir(e)?n={...e}:n={...e,id:vd(e)},Sd(n,t)?t:(n.sourceHandle===null&&delete n.sourceHandle,n.targetHandle===null&&delete n.targetHandle,t.concat(n))};function Ur({sourceX:e,sourceY:t,targetX:n,targetY:o}){const[r,i,s,a]=Xr({sourceX:e,sourceY:t,targetX:n,targetY:o});return[`M ${e},${t}L ${n},${o}`,r,i,s,a]}const Kr={[re.Left]:{x:-1,y:0},[re.Right]:{x:1,y:0},[re.Top]:{x:0,y:-1},[re.Bottom]:{x:0,y:1}},_d=({source:e,sourcePosition:t=re.Bottom,target:n})=>t===re.Left||t===re.Right?e.x<n.x?{x:1,y:0}:{x:-1,y:0}:e.y<n.y?{x:0,y:1}:{x:0,y:-1},qr=(e,t)=>Math.sqrt(Math.pow(t.x-e.x,2)+Math.pow(t.y-e.y,2));function kd({source:e,sourcePosition:t=re.Bottom,target:n,targetPosition:o=re.Top,center:r,offset:i,stepPosition:s}){const a=Kr[t],d=Kr[o],u={x:e.x+a.x*i,y:e.y+a.y*i},p={x:n.x+d.x*i,y:n.y+d.y*i},l=_d({source:u,sourcePosition:t,target:p}),f=l.x!==0?"x":"y",g=l[f];let x=[],y,w;const m={x:0,y:0},_={x:0,y:0},[,,h,b]=Xr({sourceX:e.x,sourceY:e.y,targetX:n.x,targetY:n.y});if(a[f]*d[f]===-1){f==="x"?(y=r.x??u.x+(p.x-u.x)*s,w=r.y??(u.y+p.y)/2):(y=r.x??(u.x+p.x)/2,w=r.y??u.y+(p.y-u.y)*s);const k=[{x:y,y:u.y},{x:y,y:p.y}],C=[{x:u.x,y:w},{x:p.x,y:w}];a[f]===g?x=f==="x"?k:C:x=f==="x"?C:k}else{const k=[{x:u.x,y:p.y}],C=[{x:p.x,y:u.y}];if(f==="x"?x=a.x===g?C:k:x=a.y===g?k:C,t===o){const M=Math.abs(e[f]-n[f]);if(M<=i){const W=Math.min(i-1,i-M);a[f]===g?m[f]=(u[f]>e[f]?-1:1)*W:_[f]=(p[f]>n[f]?-1:1)*W}}if(t!==o){const M=f==="x"?"y":"x",W=a[f]===d[M],S=u[M]>p[M],$=u[M]<p[M];(a[f]===1&&(!W&&S||W&&$)||a[f]!==1&&(!W&&$||W&&S))&&(x=f==="x"?k:C)}const P={x:u.x+m.x,y:u.y+m.y},T={x:p.x+_.x,y:p.y+_.y},K=Math.max(Math.abs(P.x-x[0].x),Math.abs(T.x-x[0].x)),D=Math.max(Math.abs(P.y-x[0].y),Math.abs(T.y-x[0].y));K>=D?(y=(P.x+T.x)/2,w=x[0].y):(y=x[0].x,w=(P.y+T.y)/2)}return[[e,{x:u.x+m.x,y:u.y+m.y},...x,{x:p.x+_.x,y:p.y+_.y},n],y,w,h,b]}function Ed(e,t,n,o){const r=Math.min(qr(e,t)/2,qr(t,n)/2,o),{x:i,y:s}=t;if(e.x===i&&i===n.x||e.y===s&&s===n.y)return`L${i} ${s}`;if(e.y===s){const u=e.x<n.x?-1:1,p=e.y<n.y?1:-1;return`L ${i+r*u},${s}Q ${i},${s} ${i},${s+r*p}`}const a=e.x<n.x?1:-1,d=e.y<n.y?-1:1;return`L ${i},${s+r*d}Q ${i},${s} ${i+r*a},${s}`}function to({sourceX:e,sourceY:t,sourcePosition:n=re.Bottom,targetX:o,targetY:r,targetPosition:i=re.Top,borderRadius:s=5,centerX:a,centerY:d,offset:u=20,stepPosition:p=.5}){const[l,f,g,x,y]=kd({source:{x:e,y:t},sourcePosition:n,target:{x:o,y:r},targetPosition:i,center:{x:a,y:d},offset:u,stepPosition:p});return[l.reduce((m,_,h)=>{let b="";return h>0&&h<l.length-1?b=Ed(l[h-1],_,l[h+1],s):b=`${h===0?"M":"L"}${_.x} ${_.y}`,m+=b,m},""),f,g,x,y]}function Zr(e){var t;return e&&!!(e.internals.handleBounds||(t=e.handles)!=null&&t.length)&&!!(e.measured.width||e.width||e.initialWidth)}function Nd(e){var l;const{sourceNode:t,targetNode:n}=e;if(!Zr(t)||!Zr(n))return null;const o=t.internals.handleBounds||Qr(t.handles),r=n.internals.handleBounds||Qr(n.handles),i=Jr((o==null?void 0:o.source)??[],e.sourceHandle),s=Jr(e.connectionMode===it.Strict?(r==null?void 0:r.target)??[]:((r==null?void 0:r.target)??[]).concat((r==null?void 0:r.source)??[]),e.targetHandle);if(!i||!s)return(l=e.onError)==null||l.call(e,"008",$e.error008(i?"target":"source",{id:e.id,sourceHandle:e.sourceHandle,targetHandle:e.targetHandle})),null;const a=(i==null?void 0:i.position)||re.Bottom,d=(s==null?void 0:s.position)||re.Top,u=Pt(t,i,a),p=Pt(n,s,d);return{sourceX:u.x,sourceY:u.y,targetX:p.x,targetY:p.y,sourcePosition:a,targetPosition:d}}function Qr(e){if(!e)return null;const t=[],n=[];for(const o of e)o.width=o.width??1,o.height=o.height??1,o.type==="source"?t.push(o):o.type==="target"&&n.push(o);return{source:t,target:n}}function Pt(e,t,n=re.Left,o=!1){const r=((t==null?void 0:t.x)??0)+e.internals.positionAbsolute.x,i=((t==null?void 0:t.y)??0)+e.internals.positionAbsolute.y,{width:s,height:a}=t??Le(e);if(o)return{x:r+s/2,y:i+a/2};switch((t==null?void 0:t.position)??n){case re.Top:return{x:r+s/2,y:i};case re.Right:return{x:r+s,y:i+a/2};case re.Bottom:return{x:r+s/2,y:i+a};case re.Left:return{x:r,y:i+a/2}}}function Jr(e,t){return e&&(t?e.find(n=>n.id===t):e[0])||null}function no(e,t){return e?typeof e=="string"?e:`${t?`${t}__`:""}${Object.keys(e).sort().map(o=>`${o}=${e[o]}`).join("&")}`:""}function Id(e,{id:t,defaultColor:n,defaultMarkerStart:o,defaultMarkerEnd:r}){const i=new Set;return e.reduce((s,a)=>([a.markerStart||o,a.markerEnd||r].forEach(d=>{if(d&&typeof d=="object"){const u=no(d,t);i.has(u)||(s.push({id:u,color:d.color||n,...d}),i.add(u))}}),s),[]).sort((s,a)=>s.id.localeCompare(a.id))}const jr=1e3,Ad=10,oo={nodeOrigin:[0,0],nodeExtent:_t,elevateNodesOnSelect:!0,defaults:{}},Td={...oo,checkEquality:!0};function ro(e,t){const n={...e};for(const o in t)t[o]!==void 0&&(n[o]=t[o]);return n}function Md(e,t,n){const o=ro(oo,n);for(const r of e.values())if(r.parentId)so(r,e,t,o);else{const i=Et(r,o.nodeOrigin),s=ct(r.extent)?r.extent:o.nodeExtent,a=Qe(i,s,Le(r));r.internals.positionAbsolute=a}}function $d(e,t){if(!e.handles)return e.measured?t==null?void 0:t.internals.handleBounds:void 0;const n=[],o=[];for(const r of e.handles){const i={id:r.id,width:r.width??1,height:r.height??1,nodeId:e.id,x:r.x,y:r.y,position:r.position,type:r.type};r.type==="source"?n.push(i):r.type==="target"&&o.push(i)}return{source:n,target:o}}function io(e,t,n,o){var u,p;const r=ro(Td,o);let i={i:-1},s=e.length>0;const a=new Map(t),d=r!=null&&r.elevateNodesOnSelect?jr:0;t.clear(),n.clear();for(const l of e){let f=a.get(l.id);if(r.checkEquality&&l===(f==null?void 0:f.internals.userNode))t.set(l.id,f);else{const g=Et(l,r.nodeOrigin),x=ct(l.extent)?l.extent:r.nodeExtent,y=Qe(g,x,Le(l));f={...r.defaults,...l,measured:{width:(u=l.measured)==null?void 0:u.width,height:(p=l.measured)==null?void 0:p.height},internals:{positionAbsolute:y,handleBounds:$d(l,f),z:Rr(l,d),userNode:l}},t.set(l.id,f)}(f.measured===void 0||f.measured.width===void 0||f.measured.height===void 0)&&!f.hidden&&(s=!1),l.parentId&&so(f,t,n,o,i)}return s}function Pd(e,t){if(!e.parentId)return;const n=t.get(e.parentId);n?n.set(e.id,e):t.set(e.parentId,new Map([[e.id,e]]))}function so(e,t,n,o,r){const{elevateNodesOnSelect:i,nodeOrigin:s,nodeExtent:a}=ro(oo,o),d=e.parentId,u=t.get(d);if(!u){console.warn(`Parent node ${d} not found. Please make sure that parent nodes are in front of their child nodes in the nodes array.`);return}Pd(e,n),r&&!u.parentId&&u.internals.rootParentIndex===void 0&&(u.internals.rootParentIndex=++r.i,u.internals.z=u.internals.z+r.i*Ad),r&&u.internals.rootParentIndex!==void 0&&(r.i=u.internals.rootParentIndex);const p=i?jr:0,{x:l,y:f,z:g}=zd(e,u,s,a,p),{positionAbsolute:x}=e.internals,y=l!==x.x||f!==x.y;(y||g!==e.internals.z)&&t.set(e.id,{...e,internals:{...e.internals,positionAbsolute:y?{x:l,y:f}:x,z:g}})}function Rr(e,t){return(ke(e.zIndex)?e.zIndex:0)+(e.selected?t:0)}function zd(e,t,n,o,r){const{x:i,y:s}=t.internals.positionAbsolute,a=Le(e),d=Et(e,n),u=ct(e.extent)?Qe(d,e.extent,a):d;let p=Qe({x:i+u.x,y:s+u.y},o,a);e.extent==="parent"&&(p=Tr(p,a,t));const l=Rr(e,r),f=t.internals.z??0;return{x:p.x,y:p.y,z:f>=l?f+1:l}}function ao(e,t,n,o=[0,0]){var s;const r=[],i=new Map;for(const a of e){const d=t.get(a.parentId);if(!d)continue;const u=((s=i.get(a.parentId))==null?void 0:s.expandedRect)??at(d),p=Pr(u,a.rect);i.set(a.parentId,{expandedRect:p,parent:d})}return i.size>0&&i.forEach(({expandedRect:a,parent:d},u)=>{var h;const p=d.internals.positionAbsolute,l=Le(d),f=d.origin??o,g=a.x<p.x?Math.round(Math.abs(p.x-a.x)):0,x=a.y<p.y?Math.round(Math.abs(p.y-a.y)):0,y=Math.max(l.width,Math.round(a.width)),w=Math.max(l.height,Math.round(a.height)),m=(y-l.width)*f[0],_=(w-l.height)*f[1];(g>0||x>0||m||_)&&(r.push({id:u,type:"position",position:{x:d.position.x-g+m,y:d.position.y-x+_}}),(h=n.get(u))==null||h.forEach(b=>{e.some(v=>v.id===b.id)||r.push({id:b.id,type:"position",position:{x:b.position.x+g,y:b.position.y+x}})})),(l.width<a.width||l.height<a.height||g||x)&&r.push({id:u,type:"dimensions",setAttributes:!0,dimensions:{width:y+(g?f[0]*g-m:0),height:w+(x?f[1]*x-_:0)}})}),r}function Dd(e,t,n,o,r,i){const s=o==null?void 0:o.querySelector(".xyflow__viewport");let a=!1;if(!s)return{changes:[],updatedInternals:a};const d=[],u=window.getComputedStyle(s),{m22:p}=new window.DOMMatrixReadOnly(u.transform),l=[];for(const f of e.values()){const g=t.get(f.id);if(!g)continue;if(g.hidden){t.set(g.id,{...g,internals:{...g.internals,handleBounds:void 0}}),a=!0;continue}const x=eo(f.nodeElement),y=g.measured.width!==x.width||g.measured.height!==x.height;if(!!(x.width&&x.height&&(y||!g.internals.handleBounds||f.force))){const m=f.nodeElement.getBoundingClientRect(),_=ct(g.extent)?g.extent:i;let{positionAbsolute:h}=g.internals;g.parentId&&g.extent==="parent"?h=Tr(h,x,t.get(g.parentId)):_&&(h=Qe(h,_,x));const b={...g,measured:x,internals:{...g.internals,positionAbsolute:h,handleBounds:{source:Wr("source",f.nodeElement,m,p,g.id),target:Wr("target",f.nodeElement,m,p,g.id)}}};t.set(g.id,b),g.parentId&&so(b,t,n,{nodeOrigin:r}),a=!0,y&&(d.push({id:g.id,type:"dimensions",dimensions:x}),g.expandParent&&g.parentId&&l.push({id:g.id,parentId:g.parentId,rect:at(b,r)}))}}if(l.length>0){const f=ao(l,t,n,r);d.push(...f)}return{changes:d,updatedInternals:a}}async function Bd({delta:e,panZoom:t,transform:n,translateExtent:o,width:r,height:i}){if(!t||!e.x&&!e.y)return Promise.resolve(!1);const s=await t.setViewportConstrained({x:n[0]+e.x,y:n[1]+e.y,zoom:n[2]},[[0,0],[r,i]],o),a=!!s&&(s.x!==n[0]||s.y!==n[1]||s.k!==n[2]);return Promise.resolve(a)}function ei(e,t,n,o,r,i){let s=r;const a=o.get(s)||new Map;o.set(s,a.set(n,t)),s=`${r}-${e}`;const d=o.get(s)||new Map;if(o.set(s,d.set(n,t)),i){s=`${r}-${e}-${i}`;const u=o.get(s)||new Map;o.set(s,u.set(n,t))}}function ti(e,t,n){e.clear(),t.clear();for(const o of n){const{source:r,target:i,sourceHandle:s=null,targetHandle:a=null}=o,d={edgeId:o.id,source:r,target:i,sourceHandle:s,targetHandle:a},u=`${r}-${s}--${i}-${a}`,p=`${i}-${a}--${r}-${s}`;ei("source",d,p,e,r,s),ei("target",d,u,e,i,a),t.set(o.id,o)}}function ni(e,t){if(!e.parentId)return!1;const n=t.get(e.parentId);return n?n.selected?!0:ni(n,t):!1}function oi(e,t,n){var r;let o=e;do{if((r=o==null?void 0:o.matches)!=null&&r.call(o,t))return!0;if(o===n)return!1;o=o==null?void 0:o.parentElement}while(o);return!1}function Ld(e,t,n,o){const r=new Map;for(const[i,s]of e)if((s.selected||s.id===o)&&(!s.parentId||!ni(s,e))&&(s.draggable||t&&typeof s.draggable>"u")){const a=e.get(i);a&&r.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 r}function lo({nodeId:e,dragItems:t,nodeLookup:n,dragging:o=!0}){var s,a,d;const r=[];for(const[u,p]of t){const l=(s=n.get(u))==null?void 0:s.internals.userNode;l&&r.push({...l,position:p.position,dragging:o})}if(!e)return[r[0],r];const i=(a=n.get(e))==null?void 0:a.internals.userNode;return[i?{...i,position:((d=t.get(e))==null?void 0:d.position)||i.position,dragging:o}:r[0],r]}function Hd({dragItems:e,snapGrid:t,x:n,y:o}){const r=e.values().next().value;if(!r)return null;const i={x:n-r.distance.x,y:o-r.distance.y},s=At(i,t);return{x:s.x-i.x,y:s.y-i.y}}function Od({onNodeMouseDown:e,getStoreItems:t,onDragStart:n,onDrag:o,onDragStop:r}){let i={x:null,y:null},s=0,a=new Map,d=!1,u={x:0,y:0},p=null,l=!1,f=null,g=!1,x=!1,y=null;function w({noDragClassName:_,handleSelector:h,domNode:b,isSelectable:v,nodeId:k,nodeClickDistance:C=0}){f=be(b);function P({x:M,y:W}){const{nodeLookup:S,nodeExtent:$,snapGrid:N,snapToGrid:z,nodeOrigin:A,onNodeDrag:I,onSelectionDrag:L,onError:X,updateNodePositions:O}=t();i={x:M,y:W};let G=!1;const V=a.size>1,Y=V&&$?jn(Nt(a)):null,te=V&&z?Hd({dragItems:a,snapGrid:N,x:M,y:W}):null;for(const[ee,F]of a){if(!S.has(ee))continue;let q={x:M-F.distance.x,y:W-F.distance.y};z&&(q=te?{x:Math.round(q.x+te.x),y:Math.round(q.y+te.y)}:At(q,N));let ne=null;if(V&&$&&!F.extent&&Y){const{positionAbsolute:U}=F.internals,oe=U.x-Y.x+$[0][0],B=U.x+F.measured.width-Y.x2+$[1][0],E=U.y-Y.y+$[0][1],J=U.y+F.measured.height-Y.y2+$[1][1];ne=[[oe,E],[B,J]]}const{position:Q,positionAbsolute:j}=Ar({nodeId:ee,nextPosition:q,nodeLookup:S,nodeExtent:ne||$,nodeOrigin:A,onError:X});G=G||F.position.x!==Q.x||F.position.y!==Q.y,F.position=Q,F.internals.positionAbsolute=j}if(x=x||G,!!G&&(O(a,!0),y&&(o||I||!k&&L))){const[ee,F]=lo({nodeId:k,dragItems:a,nodeLookup:S});o==null||o(y,a,ee,F),I==null||I(y,ee,F),k||L==null||L(y,F)}}async function T(){if(!p)return;const{transform:M,panBy:W,autoPanSpeed:S,autoPanOnNodeDrag:$}=t();if(!$){d=!1,cancelAnimationFrame(s);return}const[N,z]=$r(u,p,S);(N!==0||z!==0)&&(i.x=(i.x??0)-N/M[2],i.y=(i.y??0)-z/M[2],await W({x:N,y:z})&&P(i)),s=requestAnimationFrame(T)}function K(M){var V;const{nodeLookup:W,multiSelectionActive:S,nodesDraggable:$,transform:N,snapGrid:z,snapToGrid:A,selectNodesOnDrag:I,onNodeDragStart:L,onSelectionDragStart:X,unselectNodesAndEdges:O}=t();l=!0,(!I||!v)&&!S&&k&&((V=W.get(k))!=null&&V.selected||O()),v&&I&&k&&(e==null||e(k));const G=$t(M.sourceEvent,{transform:N,snapGrid:z,snapToGrid:A,containerBounds:p});if(i=G,a=Ld(W,$,G,k),a.size>0&&(n||L||!k&&X)){const[Y,te]=lo({nodeId:k,dragItems:a,nodeLookup:W});n==null||n(M.sourceEvent,a,Y,te),L==null||L(M.sourceEvent,Y,te),k||X==null||X(M.sourceEvent,te)}}const D=Uo().clickDistance(C).on("start",M=>{const{domNode:W,nodeDragThreshold:S,transform:$,snapGrid:N,snapToGrid:z}=t();p=(W==null?void 0:W.getBoundingClientRect())||null,g=!1,x=!1,y=M.sourceEvent,S===0&&K(M),i=$t(M.sourceEvent,{transform:$,snapGrid:N,snapToGrid:z,containerBounds:p}),u=Ee(M.sourceEvent,p)}).on("drag",M=>{const{autoPanOnNodeDrag:W,transform:S,snapGrid:$,snapToGrid:N,nodeDragThreshold:z,nodeLookup:A}=t(),I=$t(M.sourceEvent,{transform:S,snapGrid:$,snapToGrid:N,containerBounds:p});if(y=M.sourceEvent,(M.sourceEvent.type==="touchmove"&&M.sourceEvent.touches.length>1||k&&!A.has(k))&&(g=!0),!g){if(!d&&W&&l&&(d=!0,T()),!l){const L=Ee(M.sourceEvent,p),X=L.x-u.x,O=L.y-u.y;Math.sqrt(X*X+O*O)>z&&K(M)}(i.x!==I.xSnapped||i.y!==I.ySnapped)&&a&&l&&(u=Ee(M.sourceEvent,p),P(I))}}).on("end",M=>{if(!(!l||g)&&(d=!1,l=!1,cancelAnimationFrame(s),a.size>0)){const{nodeLookup:W,updateNodePositions:S,onNodeDragStop:$,onSelectionDragStop:N}=t();if(x&&(S(a,!1),x=!1),r||$||!k&&N){const[z,A]=lo({nodeId:k,dragItems:a,nodeLookup:W,dragging:!1});r==null||r(M.sourceEvent,a,z,A),$==null||$(M.sourceEvent,z,A),k||N==null||N(M.sourceEvent,A)}}}).filter(M=>{const W=M.target;return!M.button&&(!_||!oi(W,`.${_}`,b))&&(!h||oi(W,h,b))});f.call(D)}function m(){f==null||f.on(".drag",null)}return{update:w,destroy:m}}function Fd(e,t,n){const o=[],r={x:e.x-n,y:e.y-n,width:n*2,height:n*2};for(const i of t.values())It(r,at(i))>0&&o.push(i);return o}const Wd=250;function Vd(e,t,n,o){var a,d;let r=[],i=1/0;const s=Fd(e,n,t+Wd);for(const u of s){const p=[...((a=u.internals.handleBounds)==null?void 0:a.source)??[],...((d=u.internals.handleBounds)==null?void 0:d.target)??[]];for(const l of p){if(o.nodeId===l.nodeId&&o.type===l.type&&o.id===l.id)continue;const{x:f,y:g}=Pt(u,l,l.position,!0),x=Math.sqrt(Math.pow(f-e.x,2)+Math.pow(g-e.y,2));x>t||(x<i?(r=[{...l,x:f,y:g}],i=x):x===i&&r.push({...l,x:f,y:g}))}}if(!r.length)return null;if(r.length>1){const u=o.type==="source"?"target":"source";return r.find(p=>p.type===u)??r[0]}return r[0]}function ri(e,t,n,o,r,i=!1){var u,p,l;const s=o.get(e);if(!s)return null;const a=r==="strict"?(u=s.internals.handleBounds)==null?void 0:u[t]:[...((p=s.internals.handleBounds)==null?void 0:p.source)??[],...((l=s.internals.handleBounds)==null?void 0:l.target)??[]],d=(n?a==null?void 0:a.find(f=>f.id===n):a==null?void 0:a[0])??null;return d&&i?{...d,...Pt(s,d,d.position,!0)}:d}function ii(e,t){return e||(t!=null&&t.classList.contains("target")?"target":t!=null&&t.classList.contains("source")?"source":null)}function Gd(e,t){let n=null;return t?n=!0:e&&!t&&(n=!1),n}const si=()=>!0;function Yd(e,{connectionMode:t,connectionRadius:n,handleId:o,nodeId:r,edgeUpdaterType:i,isTarget:s,domNode:a,nodeLookup:d,lib:u,autoPanOnConnect:p,flowId:l,panBy:f,cancelConnection:g,onConnectStart:x,onConnect:y,onConnectEnd:w,isValidConnection:m=si,onReconnectEnd:_,updateConnection:h,getTransform:b,getFromHandle:v,autoPanSpeed:k,dragThreshold:C=1,handleDomNode:P}){const T=Hr(e.target);let K=0,D;const{x:M,y:W}=Ee(e),S=ii(i,P),$=a==null?void 0:a.getBoundingClientRect();let N=!1;if(!$||!S)return;const z=ri(r,S,o,d,t);if(!z)return;let A=Ee(e,$),I=!1,L=null,X=!1,O=null;function G(){if(!p||!$)return;const[Q,j]=$r(A,$,k);f({x:Q,y:j}),K=requestAnimationFrame(G)}const V={...z,nodeId:r,type:S,position:z.position},Y=d.get(r);let ee={inProgress:!0,isValid:null,from:Pt(Y,V,re.Left,!0),fromHandle:V,fromPosition:V.position,fromNode:Y,to:A,toHandle:null,toPosition:Er[V.position],toNode:null,pointer:A};function F(){N=!0,h(ee),x==null||x(e,{nodeId:r,handleId:o,handleType:S})}C===0&&F();function q(Q){if(!N){const{x:B,y:E}=Ee(Q),J=B-M,ie=E-W;if(!(J*J+ie*ie>C*C))return;F()}if(!v()||!V){ne(Q);return}const j=b();A=Ee(Q,$),D=Vd(Tt(A,j,!1,[1,1]),n,d,V),I||(G(),I=!0);const U=ai(Q,{handle:D,connectionMode:t,fromNodeId:r,fromHandleId:o,fromType:s?"target":"source",isValidConnection:m,doc:T,lib:u,flowId:l,nodeLookup:d});O=U.handleDomNode,L=U.connection,X=Gd(!!D,U.isValid);const oe={...ee,isValid:X,to:U.toHandle&&X?fn({x:U.toHandle.x,y:U.toHandle.y},j):A,toHandle:U.toHandle,toPosition:X&&U.toHandle?U.toHandle.position:Er[V.position],toNode:U.toHandle?d.get(U.toHandle.nodeId):null,pointer:A};h(oe),ee=oe}function ne(Q){if(!("touches"in Q&&Q.touches.length>0)){if(N){(D||O)&&L&&X&&(y==null||y(L));const{inProgress:j,...U}=ee,oe={...U,toPosition:ee.toHandle?ee.toPosition:null};w==null||w(Q,oe),i&&(_==null||_(Q,oe))}g(),cancelAnimationFrame(K),I=!1,X=!1,L=null,O=null,T.removeEventListener("mousemove",q),T.removeEventListener("mouseup",ne),T.removeEventListener("touchmove",q),T.removeEventListener("touchend",ne)}}T.addEventListener("mousemove",q),T.addEventListener("mouseup",ne),T.addEventListener("touchmove",q),T.addEventListener("touchend",ne)}function ai(e,{handle:t,connectionMode:n,fromNodeId:o,fromHandleId:r,fromType:i,doc:s,lib:a,flowId:d,isValidConnection:u=si,nodeLookup:p}){const l=i==="target",f=t?s.querySelector(`.${a}-flow__handle[data-id="${d}-${t==null?void 0:t.nodeId}-${t==null?void 0:t.id}-${t==null?void 0:t.type}"]`):null,{x:g,y:x}=Ee(e),y=s.elementFromPoint(g,x),w=y!=null&&y.classList.contains(`${a}-flow__handle`)?y:f,m={handleDomNode:w,isValid:!1,connection:null,toHandle:null};if(w){const _=ii(void 0,w),h=w.getAttribute("data-nodeid"),b=w.getAttribute("data-handleid"),v=w.classList.contains("connectable"),k=w.classList.contains("connectableend");if(!h||!_)return m;const C={source:l?h:o,sourceHandle:l?b:r,target:l?o:h,targetHandle:l?r:b};m.connection=C;const T=v&&k&&(n===it.Strict?l&&_==="source"||!l&&_==="target":h!==o||b!==r);m.isValid=T&&u(C),m.toHandle=ri(h,_,b,p,n,!0)}return m}const co={onPointerDown:Yd,isValid:ai};function Xd({domNode:e,panZoom:t,getTransform:n,getViewScale:o}){const r=be(e);function i({translateExtent:a,width:d,height:u,zoomStep:p=1,pannable:l=!0,zoomable:f=!0,inversePan:g=!1}){const x=h=>{if(h.sourceEvent.type!=="wheel"||!t)return;const b=n(),v=h.sourceEvent.ctrlKey&&Mt()?10:1,k=-h.sourceEvent.deltaY*(h.sourceEvent.deltaMode===1?.05:h.sourceEvent.deltaMode?1:.002)*p,C=b[2]*Math.pow(2,k*v);t.scaleTo(C)};let y=[0,0];const w=h=>{(h.sourceEvent.type==="mousedown"||h.sourceEvent.type==="touchstart")&&(y=[h.sourceEvent.clientX??h.sourceEvent.touches[0].clientX,h.sourceEvent.clientY??h.sourceEvent.touches[0].clientY])},m=h=>{const b=n();if(h.sourceEvent.type!=="mousemove"&&h.sourceEvent.type!=="touchmove"||!t)return;const v=[h.sourceEvent.clientX??h.sourceEvent.touches[0].clientX,h.sourceEvent.clientY??h.sourceEvent.touches[0].clientY],k=[v[0]-y[0],v[1]-y[1]];y=v;const C=o()*Math.max(b[2],Math.log(b[2]))*(g?-1:1),P={x:b[0]-k[0]*C,y:b[1]-k[1]*C},T=[[0,0],[d,u]];t.setViewportConstrained({x:P.x,y:P.y,zoom:b[2]},T,a)},_=Sr().on("start",w).on("zoom",l?m:null).on("zoom.wheel",f?x:null);r.call(_,{})}function s(){r.on("zoom",null)}return{update:i,destroy:s,pointer:Se}}const hn=e=>({x:e.x,y:e.y,zoom:e.k}),uo=({x:e,y:t,zoom:n})=>an.translate(e,t).scale(n),dt=(e,t)=>e.target.closest(`.${t}`),li=(e,t)=>t===2&&Array.isArray(e)&&e.includes(2),Ud=e=>((e*=2)<=1?e*e*e:(e-=2)*e*e+2)/2,fo=(e,t=0,n=Ud,o=()=>{})=>{const r=typeof t=="number"&&t>0;return r||o(),r?e.transition().duration(t).ease(n).on("end",o):e},ci=e=>{const t=e.ctrlKey&&Mt()?10:1;return-e.deltaY*(e.deltaMode===1?.05:e.deltaMode?1:.002)*t};function Kd({zoomPanValues:e,noWheelClassName:t,d3Selection:n,d3Zoom:o,panOnScrollMode:r,panOnScrollSpeed:i,zoomOnPinch:s,onPanZoomStart:a,onPanZoom:d,onPanZoomEnd:u}){return p=>{if(dt(p,t))return p.ctrlKey&&p.preventDefault(),!1;p.preventDefault(),p.stopImmediatePropagation();const l=n.property("__zoom").k||1;if(p.ctrlKey&&s){const w=Se(p),m=ci(p),_=l*Math.pow(2,m);o.scaleTo(n,_,w,p);return}const f=p.deltaMode===1?20:1;let g=r===Ze.Vertical?0:p.deltaX*f,x=r===Ze.Horizontal?0:p.deltaY*f;!Mt()&&p.shiftKey&&r!==Ze.Vertical&&(g=p.deltaY*f,x=0),o.translateBy(n,-(g/l)*i,-(x/l)*i,{internal:!0});const y=hn(n.property("__zoom"));clearTimeout(e.panScrollTimeout),e.isPanScrolling?(d==null||d(p,y),e.panScrollTimeout=setTimeout(()=>{u==null||u(p,y),e.isPanScrolling=!1},150)):(e.isPanScrolling=!0,a==null||a(p,y))}}function qd({noWheelClassName:e,preventScrolling:t,d3ZoomHandler:n}){return function(o,r){const i=o.type==="wheel",s=!t&&i&&!o.ctrlKey,a=dt(o,e);if(o.ctrlKey&&i&&a&&o.preventDefault(),s||a)return null;o.preventDefault(),n.call(this,o,r)}}function Zd({zoomPanValues:e,onDraggingChange:t,onPanZoomStart:n}){return o=>{var i,s,a;if((i=o.sourceEvent)!=null&&i.internal)return;const r=hn(o.transform);e.mouseButton=((s=o.sourceEvent)==null?void 0:s.button)||0,e.isZoomingOrPanning=!0,e.prevViewport=r,((a=o.sourceEvent)==null?void 0:a.type)==="mousedown"&&t(!0),n&&(n==null||n(o.sourceEvent,r))}}function Qd({zoomPanValues:e,panOnDrag:t,onPaneContextMenu:n,onTransformChange:o,onPanZoom:r}){return i=>{var s,a;e.usedRightMouseButton=!!(n&&li(t,e.mouseButton??0)),(s=i.sourceEvent)!=null&&s.sync||o([i.transform.x,i.transform.y,i.transform.k]),r&&!((a=i.sourceEvent)!=null&&a.internal)&&(r==null||r(i.sourceEvent,hn(i.transform)))}}function Jd({zoomPanValues:e,panOnDrag:t,panOnScroll:n,onDraggingChange:o,onPanZoomEnd:r,onPaneContextMenu:i}){return s=>{var a;if(!((a=s.sourceEvent)!=null&&a.internal)&&(e.isZoomingOrPanning=!1,i&&li(t,e.mouseButton??0)&&!e.usedRightMouseButton&&s.sourceEvent&&i(s.sourceEvent),e.usedRightMouseButton=!1,o(!1),r)){const d=hn(s.transform);e.prevViewport=d,clearTimeout(e.timerId),e.timerId=setTimeout(()=>{r==null||r(s.sourceEvent,d)},n?150:0)}}}function jd({zoomActivationKeyPressed:e,zoomOnScroll:t,zoomOnPinch:n,panOnDrag:o,panOnScroll:r,zoomOnDoubleClick:i,userSelectionActive:s,noWheelClassName:a,noPanClassName:d,lib:u,connectionInProgress:p}){return l=>{var w;const f=e||t,g=n&&l.ctrlKey,x=l.type==="wheel";if(l.button===1&&l.type==="mousedown"&&(dt(l,`${u}-flow__node`)||dt(l,`${u}-flow__edge`)))return!0;if(!o&&!f&&!r&&!i&&!n||s||p&&!x||dt(l,a)&&x||dt(l,d)&&(!x||r&&x&&!e)||!n&&l.ctrlKey&&x)return!1;if(!n&&l.type==="touchstart"&&((w=l.touches)==null?void 0:w.length)>1)return l.preventDefault(),!1;if(!f&&!r&&!g&&x||!o&&(l.type==="mousedown"||l.type==="touchstart")||Array.isArray(o)&&!o.includes(l.button)&&l.type==="mousedown")return!1;const y=Array.isArray(o)&&o.includes(l.button)||!l.button||l.button<=1;return(!l.ctrlKey||x)&&y}}function Rd({domNode:e,minZoom:t,maxZoom:n,translateExtent:o,viewport:r,onPanZoom:i,onPanZoomStart:s,onPanZoomEnd:a,onDraggingChange:d}){const u={isZoomingOrPanning:!1,usedRightMouseButton:!1,prevViewport:{},mouseButton:0,timerId:void 0,panScrollTimeout:void 0,isPanScrolling:!1},p=e.getBoundingClientRect(),l=Sr().scaleExtent([t,n]).translateExtent(o),f=be(e).call(l);_({x:r.x,y:r.y,zoom:st(r.zoom,t,n)},[[0,0],[p.width,p.height]],o);const g=f.on("wheel.zoom"),x=f.on("dblclick.zoom");l.wheelDelta(ci);function y(D,M){return f?new Promise(W=>{l==null||l.interpolate((M==null?void 0:M.interpolate)==="linear"?xt:Qt).transform(fo(f,M==null?void 0:M.duration,M==null?void 0:M.ease,()=>W(!0)),D)}):Promise.resolve(!1)}function w({noWheelClassName:D,noPanClassName:M,onPaneContextMenu:W,userSelectionActive:S,panOnScroll:$,panOnDrag:N,panOnScrollMode:z,panOnScrollSpeed:A,preventScrolling:I,zoomOnPinch:L,zoomOnScroll:X,zoomOnDoubleClick:O,zoomActivationKeyPressed:G,lib:V,onTransformChange:Y,connectionInProgress:te,paneClickDistance:ee,selectionOnDrag:F}){S&&!u.isZoomingOrPanning&&m();const q=$&&!G&&!S;l.clickDistance(F?1/0:!ke(ee)||ee<0?0:ee);const ne=q?Kd({zoomPanValues:u,noWheelClassName:D,d3Selection:f,d3Zoom:l,panOnScrollMode:z,panOnScrollSpeed:A,zoomOnPinch:L,onPanZoomStart:s,onPanZoom:i,onPanZoomEnd:a}):qd({noWheelClassName:D,preventScrolling:I,d3ZoomHandler:g});if(f.on("wheel.zoom",ne,{passive:!1}),!S){const j=Zd({zoomPanValues:u,onDraggingChange:d,onPanZoomStart:s});l.on("start",j);const U=Qd({zoomPanValues:u,panOnDrag:N,onPaneContextMenu:!!W,onPanZoom:i,onTransformChange:Y});l.on("zoom",U);const oe=Jd({zoomPanValues:u,panOnDrag:N,panOnScroll:$,onPaneContextMenu:W,onPanZoomEnd:a,onDraggingChange:d});l.on("end",oe)}const Q=jd({zoomActivationKeyPressed:G,panOnDrag:N,zoomOnScroll:X,panOnScroll:$,zoomOnDoubleClick:O,zoomOnPinch:L,userSelectionActive:S,noPanClassName:M,noWheelClassName:D,lib:V,connectionInProgress:te});l.filter(Q),O?f.on("dblclick.zoom",x):f.on("dblclick.zoom",null)}function m(){l.on("zoom",null)}async function _(D,M,W){const S=uo(D),$=l==null?void 0:l.constrain()(S,M,W);return $&&await y($),new Promise(N=>N($))}async function h(D,M){const W=uo(D);return await y(W,M),new Promise(S=>S(W))}function b(D){if(f){const M=uo(D),W=f.property("__zoom");(W.k!==D.zoom||W.x!==D.x||W.y!==D.y)&&(l==null||l.transform(f,M,null,{sync:!0}))}}function v(){const D=f?wr(f.node()):{x:0,y:0,k:1};return{x:D.x,y:D.y,zoom:D.k}}function k(D,M){return f?new Promise(W=>{l==null||l.interpolate((M==null?void 0:M.interpolate)==="linear"?xt:Qt).scaleTo(fo(f,M==null?void 0:M.duration,M==null?void 0:M.ease,()=>W(!0)),D)}):Promise.resolve(!1)}function C(D,M){return f?new Promise(W=>{l==null||l.interpolate((M==null?void 0:M.interpolate)==="linear"?xt:Qt).scaleBy(fo(f,M==null?void 0:M.duration,M==null?void 0:M.ease,()=>W(!0)),D)}):Promise.resolve(!1)}function P(D){l==null||l.scaleExtent(D)}function T(D){l==null||l.translateExtent(D)}function K(D){const M=!ke(D)||D<0?0:D;l==null||l.clickDistance(M)}return{update:w,destroy:m,setViewport:h,setViewportConstrained:_,getViewport:v,scaleTo:k,scaleBy:C,setScaleExtent:P,setTranslateExtent:T,syncViewport:b,setClickDistance:K}}var ut;(function(e){e.Line="line",e.Handle="handle"})(ut||(ut={}));function eu({width:e,prevWidth:t,height:n,prevHeight:o,affectsX:r,affectsY:i}){const s=e-t,a=n-o,d=[s>0?1:s<0?-1:0,a>0?1:a<0?-1:0];return s&&r&&(d[0]=d[0]*-1),a&&i&&(d[1]=d[1]*-1),d}function di(e){const t=e.includes("right")||e.includes("left"),n=e.includes("bottom")||e.includes("top"),o=e.includes("left"),r=e.includes("top");return{isHorizontal:t,isVertical:n,affectsX:o,affectsY:r}}function We(e,t){return Math.max(0,t-e)}function Ve(e,t){return Math.max(0,e-t)}function gn(e,t,n){return Math.max(0,t-e,e-n)}function ui(e,t){return e?!t:t}function tu(e,t,n,o,r,i,s,a){let{affectsX:d,affectsY:u}=t;const{isHorizontal:p,isVertical:l}=t,f=p&&l,{xSnapped:g,ySnapped:x}=n,{minWidth:y,maxWidth:w,minHeight:m,maxHeight:_}=o,{x:h,y:b,width:v,height:k,aspectRatio:C}=e;let P=Math.floor(p?g-e.pointerX:0),T=Math.floor(l?x-e.pointerY:0);const K=v+(d?-P:P),D=k+(u?-T:T),M=-i[0]*v,W=-i[1]*k;let S=gn(K,y,w),$=gn(D,m,_);if(s){let A=0,I=0;d&&P<0?A=We(h+P+M,s[0][0]):!d&&P>0&&(A=Ve(h+K+M,s[1][0])),u&&T<0?I=We(b+T+W,s[0][1]):!u&&T>0&&(I=Ve(b+D+W,s[1][1])),S=Math.max(S,A),$=Math.max($,I)}if(a){let A=0,I=0;d&&P>0?A=Ve(h+P,a[0][0]):!d&&P<0&&(A=We(h+K,a[1][0])),u&&T>0?I=Ve(b+T,a[0][1]):!u&&T<0&&(I=We(b+D,a[1][1])),S=Math.max(S,A),$=Math.max($,I)}if(r){if(p){const A=gn(K/C,m,_)*C;if(S=Math.max(S,A),s){let I=0;!d&&!u||d&&!u&&f?I=Ve(b+W+K/C,s[1][1])*C:I=We(b+W+(d?P:-P)/C,s[0][1])*C,S=Math.max(S,I)}if(a){let I=0;!d&&!u||d&&!u&&f?I=We(b+K/C,a[1][1])*C:I=Ve(b+(d?P:-P)/C,a[0][1])*C,S=Math.max(S,I)}}if(l){const A=gn(D*C,y,w)/C;if($=Math.max($,A),s){let I=0;!d&&!u||u&&!d&&f?I=Ve(h+D*C+M,s[1][0])/C:I=We(h+(u?T:-T)*C+M,s[0][0])/C,$=Math.max($,I)}if(a){let I=0;!d&&!u||u&&!d&&f?I=We(h+D*C,a[1][0])/C:I=Ve(h+(u?T:-T)*C,a[0][0])/C,$=Math.max($,I)}}}T=T+(T<0?$:-$),P=P+(P<0?S:-S),r&&(f?K>D*C?T=(ui(d,u)?-P:P)/C:P=(ui(d,u)?-T:T)*C:p?(T=P/C,u=d):(P=T*C,d=u));const N=d?h+P:h,z=u?b+T:b;return{width:v+(d?-P:P),height:k+(u?-T:T),x:i[0]*P*(d?-1:1)+N,y:i[1]*T*(u?-1:1)+z}}const fi={width:0,height:0,x:0,y:0},nu={...fi,pointerX:0,pointerY:0,aspectRatio:1};function ou(e){return[[0,0],[e.measured.width,e.measured.height]]}function ru(e,t,n){const o=t.position.x+e.position.x,r=t.position.y+e.position.y,i=e.measured.width??0,s=e.measured.height??0,a=n[0]*i,d=n[1]*s;return[[o-a,r-d],[o+i-a,r+s-d]]}function iu({domNode:e,nodeId:t,getStoreItems:n,onChange:o,onEnd:r}){const i=be(e);let s={controlDirection:di("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:p,keepAspectRatio:l,resizeDirection:f,onResizeStart:g,onResize:x,onResizeEnd:y,shouldResize:w}){let m={...fi},_={...nu};s={boundaries:p,resizeDirection:f,keepAspectRatio:l,controlDirection:di(u)};let h,b=null,v=[],k,C,P,T=!1;const K=Uo().on("start",D=>{const{nodeLookup:M,transform:W,snapGrid:S,snapToGrid:$,nodeOrigin:N,paneDomNode:z}=n();if(h=M.get(t),!h)return;b=(z==null?void 0:z.getBoundingClientRect())??null;const{xSnapped:A,ySnapped:I}=$t(D.sourceEvent,{transform:W,snapGrid:S,snapToGrid:$,containerBounds:b});m={width:h.measured.width??0,height:h.measured.height??0,x:h.position.x??0,y:h.position.y??0},_={...m,pointerX:A,pointerY:I,aspectRatio:m.width/m.height},k=void 0,h.parentId&&(h.extent==="parent"||h.expandParent)&&(k=M.get(h.parentId),C=k&&h.extent==="parent"?ou(k):void 0),v=[],P=void 0;for(const[L,X]of M)if(X.parentId===t&&(v.push({id:L,position:{...X.position},extent:X.extent}),X.extent==="parent"||X.expandParent)){const O=ru(X,h,X.origin??N);P?P=[[Math.min(O[0][0],P[0][0]),Math.min(O[0][1],P[0][1])],[Math.max(O[1][0],P[1][0]),Math.max(O[1][1],P[1][1])]]:P=O}g==null||g(D,{...m})}).on("drag",D=>{const{transform:M,snapGrid:W,snapToGrid:S,nodeOrigin:$}=n(),N=$t(D.sourceEvent,{transform:M,snapGrid:W,snapToGrid:S,containerBounds:b}),z=[];if(!h)return;const{x:A,y:I,width:L,height:X}=m,O={},G=h.origin??$,{width:V,height:Y,x:te,y:ee}=tu(_,s.controlDirection,N,s.boundaries,s.keepAspectRatio,G,C,P),F=V!==L,q=Y!==X,ne=te!==A&&F,Q=ee!==I&&q;if(!ne&&!Q&&!F&&!q)return;if((ne||Q||G[0]===1||G[1]===1)&&(O.x=ne?te:m.x,O.y=Q?ee:m.y,m.x=O.x,m.y=O.y,v.length>0)){const B=te-A,E=ee-I;for(const J of v)J.position={x:J.position.x-B+G[0]*(V-L),y:J.position.y-E+G[1]*(Y-X)},z.push(J)}if((F||q)&&(O.width=F&&(!s.resizeDirection||s.resizeDirection==="horizontal")?V:m.width,O.height=q&&(!s.resizeDirection||s.resizeDirection==="vertical")?Y:m.height,m.width=O.width,m.height=O.height),k&&h.expandParent){const B=G[0]*(O.width??0);O.x&&O.x<B&&(m.x=B,_.x=_.x-(O.x-B));const E=G[1]*(O.height??0);O.y&&O.y<E&&(m.y=E,_.y=_.y-(O.y-E))}const j=eu({width:m.width,prevWidth:L,height:m.height,prevHeight:X,affectsX:s.controlDirection.affectsX,affectsY:s.controlDirection.affectsY}),U={...m,direction:j};(w==null?void 0:w(D,U))!==!1&&(T=!0,x==null||x(D,U),o(O,z))}).on("end",D=>{T&&(y==null||y(D,{...m}),r==null||r({...m}),T=!1)});i.call(K)}function d(){i.on(".drag",null)}return{update:a,destroy:d}}function su(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}var po={exports:{}},ho={},go={exports:{}},yo={};/**
3
+ * @license React
4
+ * use-sync-external-store-shim.production.js
5
+ *
6
+ * Copyright (c) Meta Platforms, Inc. and affiliates.
7
+ *
8
+ * This source code is licensed under the MIT license found in the
9
+ * LICENSE file in the root directory of this source tree.
10
+ */var pi;function au(){if(pi)return yo;pi=1;var e=Z.default;function t(l,f){return l===f&&(l!==0||1/l===1/f)||l!==l&&f!==f}var n=typeof Object.is=="function"?Object.is:t,o=e.useState,r=e.useEffect,i=e.useLayoutEffect,s=e.useDebugValue;function a(l,f){var g=f(),x=o({inst:{value:g,getSnapshot:f}}),y=x[0].inst,w=x[1];return i(function(){y.value=g,y.getSnapshot=f,d(y)&&w({inst:y})},[l,g,f]),r(function(){return d(y)&&w({inst:y}),l(function(){d(y)&&w({inst:y})})},[l]),s(g),g}function d(l){var f=l.getSnapshot;l=l.value;try{var g=f();return!n(l,g)}catch{return!0}}function u(l,f){return f()}var p=typeof window>"u"||typeof window.document>"u"||typeof window.document.createElement>"u"?u:a;return yo.useSyncExternalStore=e.useSyncExternalStore!==void 0?e.useSyncExternalStore:p,yo}var hi;function lu(){return hi||(hi=1,go.exports=au()),go.exports}/**
11
+ * @license React
12
+ * use-sync-external-store-shim/with-selector.production.js
13
+ *
14
+ * Copyright (c) Meta Platforms, Inc. and affiliates.
15
+ *
16
+ * This source code is licensed under the MIT license found in the
17
+ * LICENSE file in the root directory of this source tree.
18
+ */var gi;function cu(){if(gi)return ho;gi=1;var e=Z.default,t=lu();function n(u,p){return u===p&&(u!==0||1/u===1/p)||u!==u&&p!==p}var o=typeof Object.is=="function"?Object.is:n,r=t.useSyncExternalStore,i=e.useRef,s=e.useEffect,a=e.useMemo,d=e.useDebugValue;return ho.useSyncExternalStoreWithSelector=function(u,p,l,f,g){var x=i(null);if(x.current===null){var y={hasValue:!1,value:null};x.current=y}else y=x.current;x=a(function(){function m(k){if(!_){if(_=!0,h=k,k=f(k),g!==void 0&&y.hasValue){var C=y.value;if(g(C,k))return b=C}return b=k}if(C=b,o(h,k))return C;var P=f(k);return g!==void 0&&g(C,P)?(h=k,C):(h=k,b=P)}var _=!1,h,b,v=l===void 0?null:l;return[function(){return m(p())},v===null?void 0:function(){return m(v())}]},[p,l,f,g]);var w=r(u,x[0],x[1]);return s(function(){y.hasValue=!0,y.value=w},[w]),d(w),w},ho}var yi;function du(){return yi||(yi=1,po.exports=cu()),po.exports}var uu=du();const fu=su(uu),pu={},mi=e=>{let t;const n=new Set,o=(p,l)=>{const f=typeof p=="function"?p(t):p;if(!Object.is(f,t)){const g=t;t=l??(typeof f!="object"||f===null)?f:Object.assign({},t,f),n.forEach(x=>x(t,g))}},r=()=>t,d={setState:o,getState:r,getInitialState:()=>u,subscribe:p=>(n.add(p),()=>n.delete(p)),destroy:()=>{(pu?"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=t=e(o,r,d);return d},hu=e=>e?mi(e):mi,{useDebugValue:gu}=Z.default,{useSyncExternalStoreWithSelector:yu}=fu,mu=e=>e;function xi(e,t=mu,n){const o=yu(e.subscribe,e.getState,e.getServerState||e.getInitialState,t,n);return gu(o),o}const bi=(e,t)=>{const n=hu(e),o=(r,i=t)=>xi(n,r,i);return Object.assign(o,n),o},xu=(e,t)=>e?bi(e,t):bi;function fe(e,t){if(Object.is(e,t))return!0;if(typeof e!="object"||e===null||typeof t!="object"||t===null)return!1;if(e instanceof Map&&t instanceof Map){if(e.size!==t.size)return!1;for(const[o,r]of e)if(!Object.is(r,t.get(o)))return!1;return!0}if(e instanceof Set&&t instanceof Set){if(e.size!==t.size)return!1;for(const o of e)if(!t.has(o))return!1;return!0}const n=Object.keys(e);if(n.length!==Object.keys(t).length)return!1;for(const o of n)if(!Object.prototype.hasOwnProperty.call(t,o)||!Object.is(e[o],t[o]))return!1;return!0}const yn=H.createContext(null),bu=yn.Provider,wi=$e.error001();function ae(e,t){const n=H.useContext(yn);if(n===null)throw new Error(wi);return xi(n,e,t)}function ue(){const e=H.useContext(yn);if(e===null)throw new Error(wi);return H.useMemo(()=>({getState:e.getState,setState:e.setState,subscribe:e.subscribe}),[e])}const vi={display:"none"},wu={position:"absolute",width:1,height:1,margin:-1,border:0,padding:0,overflow:"hidden",clip:"rect(0px, 0px, 0px, 0px)",clipPath:"inset(100%)"},Si="react-flow__node-desc",Ci="react-flow__edge-desc",vu="react-flow__aria-live",Su=e=>e.ariaLiveMessage,Cu=e=>e.ariaLabelConfig;function _u({rfId:e}){const t=ae(Su);return c.jsx("div",{id:`${vu}-${e}`,"aria-live":"assertive","aria-atomic":"true",style:wu,children:t})}function ku({rfId:e,disableKeyboardA11y:t}){const n=ae(Cu);return c.jsxs(c.Fragment,{children:[c.jsx("div",{id:`${Si}-${e}`,style:vi,children:t?n["node.a11yDescription.default"]:n["node.a11yDescription.keyboardDisabled"]}),c.jsx("div",{id:`${Ci}-${e}`,style:vi,children:n["edge.a11yDescription.default"]}),!t&&c.jsx(_u,{rfId:e})]})}const mn=H.forwardRef(({position:e="top-left",children:t,className:n,style:o,...r},i)=>{const s=`${e}`.split("-");return c.jsx("div",{className:he(["react-flow__panel",n,...s]),style:o,ref:i,...r,children:t})});mn.displayName="Panel";function Eu({proOptions:e,position:t="bottom-right"}){return e!=null&&e.hideAttribution?null:c.jsx(mn,{position:t,className:"react-flow__attribution","data-message":"Please only hide this attribution when you are subscribed to React Flow Pro: https://pro.reactflow.dev",children:c.jsx("a",{href:"https://reactflow.dev",target:"_blank",rel:"noopener noreferrer","aria-label":"React Flow attribution",children:"React Flow"})})}const Nu=e=>{const t=[],n=[];for(const[,o]of e.nodeLookup)o.selected&&t.push(o.internals.userNode);for(const[,o]of e.edgeLookup)o.selected&&n.push(o);return{selectedNodes:t,selectedEdges:n}},xn=e=>e.id;function Iu(e,t){return fe(e.selectedNodes.map(xn),t.selectedNodes.map(xn))&&fe(e.selectedEdges.map(xn),t.selectedEdges.map(xn))}function Au({onSelectionChange:e}){const t=ue(),{selectedNodes:n,selectedEdges:o}=ae(Nu,Iu);return H.useEffect(()=>{const r={nodes:n,edges:o};e==null||e(r),t.getState().onSelectionChangeHandlers.forEach(i=>i(r))},[n,o,e]),null}const Tu=e=>!!e.onSelectionChangeHandlers;function Mu({onSelectionChange:e}){const t=ae(Tu);return e||t?c.jsx(Au,{onSelectionChange:e}):null}const _i=[0,0],$u={x:0,y:0,zoom:1},ki=[...["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"],"rfId"],Pu=e=>({setNodes:e.setNodes,setEdges:e.setEdges,setMinZoom:e.setMinZoom,setMaxZoom:e.setMaxZoom,setTranslateExtent:e.setTranslateExtent,setNodeExtent:e.setNodeExtent,reset:e.reset,setDefaultNodesAndEdges:e.setDefaultNodesAndEdges}),Ei={translateExtent:_t,nodeOrigin:_i,minZoom:.5,maxZoom:2,elementsSelectable:!0,noPanClassName:"nopan",rfId:"1"};function zu(e){const{setNodes:t,setEdges:n,setMinZoom:o,setMaxZoom:r,setTranslateExtent:i,setNodeExtent:s,reset:a,setDefaultNodesAndEdges:d}=ae(Pu,fe),u=ue();H.useEffect(()=>(d(e.defaultNodes,e.defaultEdges),()=>{p.current=Ei,a()}),[]);const p=H.useRef(Ei);return H.useEffect(()=>{for(const l of ki){const f=e[l],g=p.current[l];f!==g&&(typeof e[l]>"u"||(l==="nodes"?t(f):l==="edges"?n(f):l==="minZoom"?o(f):l==="maxZoom"?r(f):l==="translateExtent"?i(f):l==="nodeExtent"?s(f):l==="ariaLabelConfig"?u.setState({ariaLabelConfig:md(f)}):l==="fitView"?u.setState({fitViewQueued:f}):l==="fitViewOptions"?u.setState({fitViewOptions:f}):u.setState({[l]:f})))}p.current=e},ki.map(l=>e[l])),null}function Ni(){return typeof window>"u"||!window.matchMedia?null:window.matchMedia("(prefers-color-scheme: dark)")}function Du(e){var o;const[t,n]=H.useState(e==="system"?null:e);return H.useEffect(()=>{if(e!=="system"){n(e);return}const r=Ni(),i=()=>n(r!=null&&r.matches?"dark":"light");return i(),r==null||r.addEventListener("change",i),()=>{r==null||r.removeEventListener("change",i)}},[e]),t!==null?t:(o=Ni())!=null&&o.matches?"dark":"light"}const Ii=typeof document<"u"?document:null;function zt(e=null,t={target:Ii,actInsideInputWithModifier:!0}){const[n,o]=H.useState(!1),r=H.useRef(!1),i=H.useRef(new Set([])),[s,a]=H.useMemo(()=>{if(e!==null){const u=(Array.isArray(e)?e:[e]).filter(l=>typeof l=="string").map(l=>l.replace("+",`
19
+ `).replace(`
20
+
21
+ `,`
22
+ +`).split(`
23
+ `)),p=u.reduce((l,f)=>l.concat(...f),[]);return[u,p]}return[[],[]]},[e]);return H.useEffect(()=>{const d=(t==null?void 0:t.target)??Ii,u=(t==null?void 0:t.actInsideInputWithModifier)??!0;if(e!==null){const p=g=>{var w,m;if(r.current=g.ctrlKey||g.metaKey||g.shiftKey||g.altKey,(!r.current||r.current&&!u)&&Or(g))return!1;const y=Ti(g.code,a);if(i.current.add(g[y]),Ai(s,i.current,!1)){const _=((m=(w=g.composedPath)==null?void 0:w.call(g))==null?void 0:m[0])||g.target,h=(_==null?void 0:_.nodeName)==="BUTTON"||(_==null?void 0:_.nodeName)==="A";t.preventDefault!==!1&&(r.current||!h)&&g.preventDefault(),o(!0)}},l=g=>{const x=Ti(g.code,a);Ai(s,i.current,!0)?(o(!1),i.current.clear()):i.current.delete(g[x]),g.key==="Meta"&&i.current.clear(),r.current=!1},f=()=>{i.current.clear(),o(!1)};return d==null||d.addEventListener("keydown",p),d==null||d.addEventListener("keyup",l),window.addEventListener("blur",f),window.addEventListener("contextmenu",f),()=>{d==null||d.removeEventListener("keydown",p),d==null||d.removeEventListener("keyup",l),window.removeEventListener("blur",f),window.removeEventListener("contextmenu",f)}}},[e,o]),n}function Ai(e,t,n){return e.filter(o=>n||o.length===t.size).some(o=>o.every(r=>t.has(r)))}function Ti(e,t){return t.includes(e)?"code":"key"}const Bu=()=>{const e=ue();return H.useMemo(()=>({zoomIn:t=>{const{panZoom:n}=e.getState();return n?n.scaleBy(1.2,{duration:t==null?void 0:t.duration}):Promise.resolve(!1)},zoomOut:t=>{const{panZoom:n}=e.getState();return n?n.scaleBy(1/1.2,{duration:t==null?void 0:t.duration}):Promise.resolve(!1)},zoomTo:(t,n)=>{const{panZoom:o}=e.getState();return o?o.scaleTo(t,{duration:n==null?void 0:n.duration}):Promise.resolve(!1)},getZoom:()=>e.getState().transform[2],setViewport:async(t,n)=>{const{transform:[o,r,i],panZoom:s}=e.getState();return s?(await s.setViewport({x:t.x??o,y:t.y??r,zoom:t.zoom??i},n),Promise.resolve(!0)):Promise.resolve(!1)},getViewport:()=>{const[t,n,o]=e.getState().transform;return{x:t,y:n,zoom:o}},setCenter:async(t,n,o)=>e.getState().setCenter(t,n,o),fitBounds:async(t,n)=>{const{width:o,height:r,minZoom:i,maxZoom:s,panZoom:a}=e.getState(),d=Rn(t,o,r,i,s,(n==null?void 0:n.padding)??.1);return a?(await a.setViewport(d,{duration:n==null?void 0:n.duration,ease:n==null?void 0:n.ease,interpolate:n==null?void 0:n.interpolate}),Promise.resolve(!0)):Promise.resolve(!1)},screenToFlowPosition:(t,n={})=>{const{transform:o,snapGrid:r,snapToGrid:i,domNode:s}=e.getState();if(!s)return t;const{x:a,y:d}=s.getBoundingClientRect(),u={x:t.x-a,y:t.y-d},p=n.snapGrid??r,l=n.snapToGrid??i;return Tt(u,o,l,p)},flowToScreenPosition:t=>{const{transform:n,domNode:o}=e.getState();if(!o)return t;const{x:r,y:i}=o.getBoundingClientRect(),s=fn(t,n);return{x:s.x+r,y:s.y+i}}}),[])};function Mi(e,t){const n=[],o=new Map,r=[];for(const i of e)if(i.type==="add"){r.push(i);continue}else if(i.type==="remove"||i.type==="replace")o.set(i.id,[i]);else{const s=o.get(i.id);s?s.push(i):o.set(i.id,[i])}for(const i of t){const s=o.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 d of s)Lu(d,a);n.push(a)}return r.length&&r.forEach(i=>{i.index!==void 0?n.splice(i.index,0,{...i.item}):n.push({...i.item})}),n}function Lu(e,t){switch(e.type){case"select":{t.selected=e.selected;break}case"position":{typeof e.position<"u"&&(t.position=e.position),typeof e.dragging<"u"&&(t.dragging=e.dragging);break}case"dimensions":{typeof e.dimensions<"u"&&(t.measured??(t.measured={}),t.measured.width=e.dimensions.width,t.measured.height=e.dimensions.height,e.setAttributes&&((e.setAttributes===!0||e.setAttributes==="width")&&(t.width=e.dimensions.width),(e.setAttributes===!0||e.setAttributes==="height")&&(t.height=e.dimensions.height))),typeof e.resizing=="boolean"&&(t.resizing=e.resizing);break}}}function Hu(e,t){return Mi(e,t)}function Ou(e,t){return Mi(e,t)}function Je(e,t){return{id:e,type:"select",selected:t}}function ft(e,t=new Set,n=!1){const o=[];for(const[r,i]of e){const s=t.has(r);!(i.selected===void 0&&!s)&&i.selected!==s&&(n&&(i.selected=s),o.push(Je(i.id,s)))}return o}function $i({items:e=[],lookup:t}){var r;const n=[],o=new Map(e.map(i=>[i.id,i]));for(const[i,s]of e.entries()){const a=t.get(s.id),d=((r=a==null?void 0:a.internals)==null?void 0:r.userNode)??a;d!==void 0&&d!==s&&n.push({id:s.id,item:s,type:"replace"}),d===void 0&&n.push({item:s,type:"add",index:i})}for(const[i]of t)o.get(i)===void 0&&n.push({id:i,type:"remove"});return n}function Pi(e){return{id:e.id,type:"remove"}}const zi=e=>ad(e),Fu=e=>Ir(e);function Di(e){return H.forwardRef(e)}const Wu=typeof window<"u"?H.useLayoutEffect:H.useEffect;function Bi(e){const[t,n]=H.useState(BigInt(0)),[o]=H.useState(()=>Vu(()=>n(r=>r+BigInt(1))));return Wu(()=>{const r=o.get();r.length&&(e(r),o.reset())},[t]),o}function Vu(e){let t=[];return{get:()=>t,reset:()=>{t=[]},push:n=>{t.push(n),e()}}}const Li=H.createContext(null);function Gu({children:e}){const t=ue(),n=H.useCallback(a=>{const{nodes:d=[],setNodes:u,hasDefaultNodes:p,onNodesChange:l,nodeLookup:f,fitViewQueued:g}=t.getState();let x=d;for(const w of a)x=typeof w=="function"?w(x):w;const y=$i({items:x,lookup:f});p&&u(x),y.length>0?l==null||l(y):g&&window.requestAnimationFrame(()=>{const{fitViewQueued:w,nodes:m,setNodes:_}=t.getState();w&&_(m)})},[]),o=Bi(n),r=H.useCallback(a=>{const{edges:d=[],setEdges:u,hasDefaultEdges:p,onEdgesChange:l,edgeLookup:f}=t.getState();let g=d;for(const x of a)g=typeof x=="function"?x(g):x;p?u(g):l&&l($i({items:g,lookup:f}))},[]),i=Bi(r),s=H.useMemo(()=>({nodeQueue:o,edgeQueue:i}),[]);return c.jsx(Li.Provider,{value:s,children:e})}function Yu(){const e=H.useContext(Li);if(!e)throw new Error("useBatchContext must be used within a BatchProvider");return e}const Xu=e=>!!e.panZoom;function bn(){const e=Bu(),t=ue(),n=Yu(),o=ae(Xu),r=H.useMemo(()=>{const i=l=>t.getState().nodeLookup.get(l),s=l=>{n.nodeQueue.push(l)},a=l=>{n.edgeQueue.push(l)},d=l=>{var m,_;const{nodeLookup:f,nodeOrigin:g}=t.getState(),x=zi(l)?l:f.get(l.id),y=x.parentId?Br(x.position,x.measured,x.parentId,f,g):x.position,w={...x,position:y,width:((m=x.measured)==null?void 0:m.width)??x.width,height:((_=x.measured)==null?void 0:_.height)??x.height};return at(w)},u=(l,f,g={replace:!1})=>{s(x=>x.map(y=>{if(y.id===l){const w=typeof f=="function"?f(y):f;return g.replace&&zi(w)?w:{...y,...w}}return y}))},p=(l,f,g={replace:!1})=>{a(x=>x.map(y=>{if(y.id===l){const w=typeof f=="function"?f(y):f;return g.replace&&Fu(w)?w:{...y,...w}}return y}))};return{getNodes:()=>t.getState().nodes.map(l=>({...l})),getNode:l=>{var f;return(f=i(l))==null?void 0:f.internals.userNode},getInternalNode:i,getEdges:()=>{const{edges:l=[]}=t.getState();return l.map(f=>({...f}))},getEdge:l=>t.getState().edgeLookup.get(l),setNodes:s,setEdges:a,addNodes:l=>{const f=Array.isArray(l)?l:[l];n.nodeQueue.push(g=>[...g,...f])},addEdges:l=>{const f=Array.isArray(l)?l:[l];n.edgeQueue.push(g=>[...g,...f])},toObject:()=>{const{nodes:l=[],edges:f=[],transform:g}=t.getState(),[x,y,w]=g;return{nodes:l.map(m=>({...m})),edges:f.map(m=>({...m})),viewport:{x,y,zoom:w}}},deleteElements:async({nodes:l=[],edges:f=[]})=>{const{nodes:g,edges:x,onNodesDelete:y,onEdgesDelete:w,triggerNodeChanges:m,triggerEdgeChanges:_,onDelete:h,onBeforeDelete:b}=t.getState(),{nodes:v,edges:k}=await fd({nodesToRemove:l,edgesToRemove:f,nodes:g,edges:x,onBeforeDelete:b}),C=k.length>0,P=v.length>0;if(C){const T=k.map(Pi);w==null||w(k),_(T)}if(P){const T=v.map(Pi);y==null||y(v),m(T)}return(P||C)&&(h==null||h({nodes:v,edges:k})),{deletedNodes:v,deletedEdges:k}},getIntersectingNodes:(l,f=!0,g)=>{const x=zr(l),y=x?l:d(l),w=g!==void 0;return y?(g||t.getState().nodes).filter(m=>{const _=t.getState().nodeLookup.get(m.id);if(_&&!x&&(m.id===l.id||!_.internals.positionAbsolute))return!1;const h=at(w?m:_),b=It(h,y);return f&&b>0||b>=h.width*h.height||b>=y.width*y.height}):[]},isNodeIntersecting:(l,f,g=!0)=>{const y=zr(l)?l:d(l);if(!y)return!1;const w=It(y,f);return g&&w>0||w>=f.width*f.height||w>=y.width*y.height},updateNode:u,updateNodeData:(l,f,g={replace:!1})=>{u(l,x=>{const y=typeof f=="function"?f(x):f;return g.replace?{...x,data:y}:{...x,data:{...x.data,...y}}},g)},updateEdge:p,updateEdgeData:(l,f,g={replace:!1})=>{p(l,x=>{const y=typeof f=="function"?f(x):f;return g.replace?{...x,data:y}:{...x,data:{...x.data,...y}}},g)},getNodesBounds:l=>{const{nodeLookup:f,nodeOrigin:g}=t.getState();return ld(l,{nodeLookup:f,nodeOrigin:g})},getHandleConnections:({type:l,id:f,nodeId:g})=>{var x;return Array.from(((x=t.getState().connectionLookup.get(`${g}-${l}${f?`-${f}`:""}`))==null?void 0:x.values())??[])},getNodeConnections:({type:l,handleId:f,nodeId:g})=>{var x;return Array.from(((x=t.getState().connectionLookup.get(`${g}${l?f?`-${l}-${f}`:`-${l}`:""}`))==null?void 0:x.values())??[])},fitView:async l=>{const f=t.getState().fitViewResolver??yd();return t.setState({fitViewQueued:!0,fitViewOptions:l,fitViewResolver:f}),n.nodeQueue.push(g=>[...g]),f.promise}}},[]);return H.useMemo(()=>({...r,...e,viewportInitialized:o}),[o])}const Hi=e=>e.selected,Uu=typeof window<"u"?window:void 0;function Ku({deleteKeyCode:e,multiSelectionKeyCode:t}){const n=ue(),{deleteElements:o}=bn(),r=zt(e,{actInsideInputWithModifier:!1}),i=zt(t,{target:Uu});H.useEffect(()=>{if(r){const{edges:s,nodes:a}=n.getState();o({nodes:a.filter(Hi),edges:s.filter(Hi)}),n.setState({nodesSelectionActive:!1})}},[r]),H.useEffect(()=>{n.setState({multiSelectionActive:i})},[i])}function qu(e){const t=ue();H.useEffect(()=>{const n=()=>{var r,i,s,a;if(!e.current||!(((i=(r=e.current).checkVisibility)==null?void 0:i.call(r))??!0))return!1;const o=eo(e.current);(o.height===0||o.width===0)&&((a=(s=t.getState()).onError)==null||a.call(s,"004",$e.error004())),t.setState({width:o.width||500,height:o.height||500})};if(e.current){n(),window.addEventListener("resize",n);const o=new ResizeObserver(()=>n());return o.observe(e.current),()=>{window.removeEventListener("resize",n),o&&e.current&&o.unobserve(e.current)}}},[])}const wn={position:"absolute",width:"100%",height:"100%",top:0,left:0},Zu=e=>({userSelectionActive:e.userSelectionActive,lib:e.lib,connectionInProgress:e.connection.inProgress});function Qu({onPaneContextMenu:e,zoomOnScroll:t=!0,zoomOnPinch:n=!0,panOnScroll:o=!1,panOnScrollSpeed:r=.5,panOnScrollMode:i=Ze.Free,zoomOnDoubleClick:s=!0,panOnDrag:a=!0,defaultViewport:d,translateExtent:u,minZoom:p,maxZoom:l,zoomActivationKeyCode:f,preventScrolling:g=!0,children:x,noWheelClassName:y,noPanClassName:w,onViewportChange:m,isControlledViewport:_,paneClickDistance:h,selectionOnDrag:b}){const v=ue(),k=H.useRef(null),{userSelectionActive:C,lib:P,connectionInProgress:T}=ae(Zu,fe),K=zt(f),D=H.useRef();qu(k);const M=H.useCallback(W=>{m==null||m({x:W[0],y:W[1],zoom:W[2]}),_||v.setState({transform:W})},[m,_]);return H.useEffect(()=>{if(k.current){D.current=Rd({domNode:k.current,minZoom:p,maxZoom:l,translateExtent:u,viewport:d,onDraggingChange:N=>v.setState({paneDragging:N}),onPanZoomStart:(N,z)=>{const{onViewportChangeStart:A,onMoveStart:I}=v.getState();I==null||I(N,z),A==null||A(z)},onPanZoom:(N,z)=>{const{onViewportChange:A,onMove:I}=v.getState();I==null||I(N,z),A==null||A(z)},onPanZoomEnd:(N,z)=>{const{onViewportChangeEnd:A,onMoveEnd:I}=v.getState();I==null||I(N,z),A==null||A(z)}});const{x:W,y:S,zoom:$}=D.current.getViewport();return v.setState({panZoom:D.current,transform:[W,S,$],domNode:k.current.closest(".react-flow")}),()=>{var N;(N=D.current)==null||N.destroy()}}},[]),H.useEffect(()=>{var W;(W=D.current)==null||W.update({onPaneContextMenu:e,zoomOnScroll:t,zoomOnPinch:n,panOnScroll:o,panOnScrollSpeed:r,panOnScrollMode:i,zoomOnDoubleClick:s,panOnDrag:a,zoomActivationKeyPressed:K,preventScrolling:g,noPanClassName:w,userSelectionActive:C,noWheelClassName:y,lib:P,onTransformChange:M,connectionInProgress:T,selectionOnDrag:b,paneClickDistance:h})},[e,t,n,o,r,i,s,a,K,g,w,C,y,P,M,T,b,h]),c.jsx("div",{className:"react-flow__renderer",ref:k,style:wn,children:x})}const Ju=e=>({userSelectionActive:e.userSelectionActive,userSelectionRect:e.userSelectionRect});function ju(){const{userSelectionActive:e,userSelectionRect:t}=ae(Ju,fe);return e&&t?c.jsx("div",{className:"react-flow__selection react-flow__container",style:{width:t.width,height:t.height,transform:`translate(${t.x}px, ${t.y}px)`}}):null}const mo=(e,t)=>n=>{n.target===t.current&&(e==null||e(n))},Ru=e=>({userSelectionActive:e.userSelectionActive,elementsSelectable:e.elementsSelectable,connectionInProgress:e.connection.inProgress,dragging:e.paneDragging});function ef({isSelecting:e,selectionKeyPressed:t,selectionMode:n=kt.Full,panOnDrag:o,paneClickDistance:r,selectionOnDrag:i,onSelectionStart:s,onSelectionEnd:a,onPaneClick:d,onPaneContextMenu:u,onPaneScroll:p,onPaneMouseEnter:l,onPaneMouseMove:f,onPaneMouseLeave:g,children:x}){const y=ue(),{userSelectionActive:w,elementsSelectable:m,dragging:_,connectionInProgress:h}=ae(Ru,fe),b=m&&(e||w),v=H.useRef(null),k=H.useRef(),C=H.useRef(new Set),P=H.useRef(new Set),T=H.useRef(!1),K=A=>{if(T.current||h){T.current=!1;return}d==null||d(A),y.getState().resetSelectedElements(),y.setState({nodesSelectionActive:!1})},D=A=>{if(Array.isArray(o)&&(o!=null&&o.includes(2))){A.preventDefault();return}u==null||u(A)},M=p?A=>p(A):void 0,W=A=>{T.current&&(A.stopPropagation(),T.current=!1)},S=A=>{var Y,te;const{domNode:I}=y.getState();if(k.current=I==null?void 0:I.getBoundingClientRect(),!k.current)return;const L=A.target===v.current;if(!L&&!!A.target.closest(".nokey")||!e||!(i&&L||t)||A.button!==0||!A.isPrimary)return;(te=(Y=A.target)==null?void 0:Y.setPointerCapture)==null||te.call(Y,A.pointerId),T.current=!1;const{x:G,y:V}=Ee(A.nativeEvent,k.current);y.setState({userSelectionRect:{width:0,height:0,startX:G,startY:V,x:G,y:V}}),L||(A.stopPropagation(),A.preventDefault())},$=A=>{const{userSelectionRect:I,transform:L,nodeLookup:X,edgeLookup:O,connectionLookup:G,triggerNodeChanges:V,triggerEdgeChanges:Y,defaultEdgeOptions:te,resetSelectedElements:ee}=y.getState();if(!k.current||!I)return;const{x:F,y:q}=Ee(A.nativeEvent,k.current),{startX:ne,startY:Q}=I;if(!T.current){const E=t?0:r;if(Math.hypot(F-ne,q-Q)<=E)return;ee(),s==null||s(A)}T.current=!0;const j={startX:ne,startY:Q,x:F<ne?F:ne,y:q<Q?q:Q,width:Math.abs(F-ne),height:Math.abs(q-Q)},U=C.current,oe=P.current;C.current=new Set(Jn(X,j,L,n===kt.Partial,!0).map(E=>E.id)),P.current=new Set;const B=(te==null?void 0:te.selectable)??!0;for(const E of C.current){const J=G.get(E);if(J)for(const{edgeId:ie}of J.values()){const se=O.get(ie);se&&(se.selectable??B)&&P.current.add(ie)}}if(!Lr(U,C.current)){const E=ft(X,C.current,!0);V(E)}if(!Lr(oe,P.current)){const E=ft(O,P.current);Y(E)}y.setState({userSelectionRect:j,userSelectionActive:!0,nodesSelectionActive:!1})},N=A=>{var I,L;A.button===0&&((L=(I=A.target)==null?void 0:I.releasePointerCapture)==null||L.call(I,A.pointerId),!w&&A.target===v.current&&y.getState().userSelectionRect&&(K==null||K(A)),y.setState({userSelectionActive:!1,userSelectionRect:null}),T.current&&(a==null||a(A),y.setState({nodesSelectionActive:C.current.size>0})))},z=o===!0||Array.isArray(o)&&o.includes(0);return c.jsxs("div",{className:he(["react-flow__pane",{draggable:z,dragging:_,selection:e}]),onClick:b?void 0:mo(K,v),onContextMenu:mo(D,v),onWheel:mo(M,v),onPointerEnter:b?void 0:l,onPointerMove:b?$:f,onPointerUp:b?N:void 0,onPointerDownCapture:b?S:void 0,onClickCapture:b?W:void 0,onPointerLeave:g,ref:v,style:wn,children:[x,c.jsx(ju,{})]})}function xo({id:e,store:t,unselect:n=!1,nodeRef:o}){const{addSelectedNodes:r,unselectNodesAndEdges:i,multiSelectionActive:s,nodeLookup:a,onError:d}=t.getState(),u=a.get(e);if(!u){d==null||d("012",$e.error012(e));return}t.setState({nodesSelectionActive:!1}),u.selected?(n||u.selected&&s)&&(i({nodes:[u],edges:[]}),requestAnimationFrame(()=>{var p;return(p=o==null?void 0:o.current)==null?void 0:p.blur()})):r([e])}function Oi({nodeRef:e,disabled:t=!1,noDragClassName:n,handleSelector:o,nodeId:r,isSelectable:i,nodeClickDistance:s}){const a=ue(),[d,u]=H.useState(!1),p=H.useRef();return H.useEffect(()=>{p.current=Od({getStoreItems:()=>a.getState(),onNodeMouseDown:l=>{xo({id:l,store:a,nodeRef:e})},onDragStart:()=>{u(!0)},onDragStop:()=>{u(!1)}})},[]),H.useEffect(()=>{var l,f;if(t)(l=p.current)==null||l.destroy();else if(e.current)return(f=p.current)==null||f.update({noDragClassName:n,handleSelector:o,domNode:e.current,isSelectable:i,nodeId:r,nodeClickDistance:s}),()=>{var g;(g=p.current)==null||g.destroy()}},[n,o,t,i,e,r]),d}const tf=e=>t=>t.selected&&(t.draggable||e&&typeof t.draggable>"u");function Fi(){const e=ue();return H.useCallback(n=>{const{nodeExtent:o,snapToGrid:r,snapGrid:i,nodesDraggable:s,onError:a,updateNodePositions:d,nodeLookup:u,nodeOrigin:p}=e.getState(),l=new Map,f=tf(s),g=r?i[0]:5,x=r?i[1]:5,y=n.direction.x*g*n.factor,w=n.direction.y*x*n.factor;for(const[,m]of u){if(!f(m))continue;let _={x:m.internals.positionAbsolute.x+y,y:m.internals.positionAbsolute.y+w};r&&(_=At(_,i));const{position:h,positionAbsolute:b}=Ar({nodeId:m.id,nextPosition:_,nodeLookup:u,nodeExtent:o,nodeOrigin:p,onError:a});m.position=h,m.internals.positionAbsolute=b,l.set(m.id,m)}d(l)},[])}const bo=H.createContext(null),nf=bo.Provider;bo.Consumer;const Wi=()=>H.useContext(bo),of=e=>({connectOnClick:e.connectOnClick,noPanClassName:e.noPanClassName,rfId:e.rfId}),rf=(e,t,n)=>o=>{const{connectionClickStartHandle:r,connectionMode:i,connection:s}=o,{fromHandle:a,toHandle:d,isValid:u}=s,p=(d==null?void 0:d.nodeId)===e&&(d==null?void 0:d.id)===t&&(d==null?void 0:d.type)===n;return{connectingFrom:(a==null?void 0:a.nodeId)===e&&(a==null?void 0:a.id)===t&&(a==null?void 0:a.type)===n,connectingTo:p,clickConnecting:(r==null?void 0:r.nodeId)===e&&(r==null?void 0:r.id)===t&&(r==null?void 0:r.type)===n,isPossibleEndHandle:i===it.Strict?(a==null?void 0:a.type)!==n:e!==(a==null?void 0:a.nodeId)||t!==(a==null?void 0:a.id),connectionInProcess:!!a,clickConnectionInProcess:!!r,valid:p&&u}};function sf({type:e="source",position:t=re.Top,isValidConnection:n,isConnectable:o=!0,isConnectableStart:r=!0,isConnectableEnd:i=!0,id:s,onConnect:a,children:d,className:u,onMouseDown:p,onTouchStart:l,...f},g){var $,N;const x=s||null,y=e==="target",w=ue(),m=Wi(),{connectOnClick:_,noPanClassName:h,rfId:b}=ae(of,fe),{connectingFrom:v,connectingTo:k,clickConnecting:C,isPossibleEndHandle:P,connectionInProcess:T,clickConnectionInProcess:K,valid:D}=ae(rf(m,x,e),fe);m||(N=($=w.getState()).onError)==null||N.call($,"010",$e.error010());const M=z=>{const{defaultEdgeOptions:A,onConnect:I,hasDefaultEdges:L}=w.getState(),X={...A,...z};if(L){const{edges:O,setEdges:G}=w.getState();G(Cd(X,O))}I==null||I(X),a==null||a(X)},W=z=>{if(!m)return;const A=Fr(z.nativeEvent);if(r&&(A&&z.button===0||!A)){const I=w.getState();co.onPointerDown(z.nativeEvent,{handleDomNode:z.currentTarget,autoPanOnConnect:I.autoPanOnConnect,connectionMode:I.connectionMode,connectionRadius:I.connectionRadius,domNode:I.domNode,nodeLookup:I.nodeLookup,lib:I.lib,isTarget:y,handleId:x,nodeId:m,flowId:I.rfId,panBy:I.panBy,cancelConnection:I.cancelConnection,onConnectStart:I.onConnectStart,onConnectEnd:I.onConnectEnd,updateConnection:I.updateConnection,onConnect:M,isValidConnection:n||I.isValidConnection,getTransform:()=>w.getState().transform,getFromHandle:()=>w.getState().connection.fromHandle,autoPanSpeed:I.autoPanSpeed,dragThreshold:I.connectionDragThreshold})}A?p==null||p(z):l==null||l(z)},S=z=>{const{onClickConnectStart:A,onClickConnectEnd:I,connectionClickStartHandle:L,connectionMode:X,isValidConnection:O,lib:G,rfId:V,nodeLookup:Y,connection:te}=w.getState();if(!m||!L&&!r)return;if(!L){A==null||A(z.nativeEvent,{nodeId:m,handleId:x,handleType:e}),w.setState({connectionClickStartHandle:{nodeId:m,type:e,id:x}});return}const ee=Hr(z.target),F=n||O,{connection:q,isValid:ne}=co.isValid(z.nativeEvent,{handle:{nodeId:m,id:x,type:e},connectionMode:X,fromNodeId:L.nodeId,fromHandleId:L.id||null,fromType:L.type,isValidConnection:F,flowId:V,doc:ee,lib:G,nodeLookup:Y});ne&&q&&M(q);const Q=structuredClone(te);delete Q.inProgress,Q.toPosition=Q.toHandle?Q.toHandle.position:null,I==null||I(z,Q),w.setState({connectionClickStartHandle:null})};return c.jsx("div",{"data-handleid":x,"data-nodeid":m,"data-handlepos":t,"data-id":`${b}-${m}-${x}-${e}`,className:he(["react-flow__handle",`react-flow__handle-${t}`,"nodrag",h,u,{source:!y,target:y,connectable:o,connectablestart:r,connectableend:i,clickconnecting:C,connectingfrom:v,connectingto:k,valid:D,connectionindicator:o&&(!T||P)&&(T||K?i:r)}]),onMouseDown:W,onTouchStart:W,onClick:_?S:void 0,ref:g,...f,children:d})}const vn=H.memo(Di(sf));function af({data:e,isConnectable:t,sourcePosition:n=re.Bottom}){return c.jsxs(c.Fragment,{children:[e==null?void 0:e.label,c.jsx(vn,{type:"source",position:n,isConnectable:t})]})}function lf({data:e,isConnectable:t,targetPosition:n=re.Top,sourcePosition:o=re.Bottom}){return c.jsxs(c.Fragment,{children:[c.jsx(vn,{type:"target",position:n,isConnectable:t}),e==null?void 0:e.label,c.jsx(vn,{type:"source",position:o,isConnectable:t})]})}function cf(){return null}function df({data:e,isConnectable:t,targetPosition:n=re.Top}){return c.jsxs(c.Fragment,{children:[c.jsx(vn,{type:"target",position:n,isConnectable:t}),e==null?void 0:e.label]})}const Sn={ArrowUp:{x:0,y:-1},ArrowDown:{x:0,y:1},ArrowLeft:{x:-1,y:0},ArrowRight:{x:1,y:0}},Vi={input:af,default:lf,output:df,group:cf};function uf(e){var t,n,o,r;return e.internals.handleBounds===void 0?{width:e.width??e.initialWidth??((t=e.style)==null?void 0:t.width),height:e.height??e.initialHeight??((n=e.style)==null?void 0:n.height)}:{width:e.width??((o=e.style)==null?void 0:o.width),height:e.height??((r=e.style)==null?void 0:r.height)}}const ff=e=>{const{width:t,height:n,x:o,y:r}=Nt(e.nodeLookup,{filter:i=>!!i.selected});return{width:ke(t)?t:null,height:ke(n)?n:null,userSelectionActive:e.userSelectionActive,transformString:`translate(${e.transform[0]}px,${e.transform[1]}px) scale(${e.transform[2]}) translate(${o}px,${r}px)`}};function pf({onSelectionContextMenu:e,noPanClassName:t,disableKeyboardA11y:n}){const o=ue(),{width:r,height:i,transformString:s,userSelectionActive:a}=ae(ff,fe),d=Fi(),u=H.useRef(null);if(H.useEffect(()=>{var f;n||(f=u.current)==null||f.focus({preventScroll:!0})},[n]),Oi({nodeRef:u}),a||!r||!i)return null;const p=e?f=>{const g=o.getState().nodes.filter(x=>x.selected);e(f,g)}:void 0,l=f=>{Object.prototype.hasOwnProperty.call(Sn,f.key)&&(f.preventDefault(),d({direction:Sn[f.key],factor:f.shiftKey?4:1}))};return c.jsx("div",{className:he(["react-flow__nodesselection","react-flow__container",t]),style:{transform:s},children:c.jsx("div",{ref:u,className:"react-flow__nodesselection-rect",onContextMenu:p,tabIndex:n?void 0:-1,onKeyDown:n?void 0:l,style:{width:r,height:i}})})}const Gi=typeof window<"u"?window:void 0,hf=e=>({nodesSelectionActive:e.nodesSelectionActive,userSelectionActive:e.userSelectionActive});function Yi({children:e,onPaneClick:t,onPaneMouseEnter:n,onPaneMouseMove:o,onPaneMouseLeave:r,onPaneContextMenu:i,onPaneScroll:s,paneClickDistance:a,deleteKeyCode:d,selectionKeyCode:u,selectionOnDrag:p,selectionMode:l,onSelectionStart:f,onSelectionEnd:g,multiSelectionKeyCode:x,panActivationKeyCode:y,zoomActivationKeyCode:w,elementsSelectable:m,zoomOnScroll:_,zoomOnPinch:h,panOnScroll:b,panOnScrollSpeed:v,panOnScrollMode:k,zoomOnDoubleClick:C,panOnDrag:P,defaultViewport:T,translateExtent:K,minZoom:D,maxZoom:M,preventScrolling:W,onSelectionContextMenu:S,noWheelClassName:$,noPanClassName:N,disableKeyboardA11y:z,onViewportChange:A,isControlledViewport:I}){const{nodesSelectionActive:L,userSelectionActive:X}=ae(hf),O=zt(u,{target:Gi}),G=zt(y,{target:Gi}),V=G||P,Y=G||b,te=p&&V!==!0,ee=O||X||te;return Ku({deleteKeyCode:d,multiSelectionKeyCode:x}),c.jsx(Qu,{onPaneContextMenu:i,elementsSelectable:m,zoomOnScroll:_,zoomOnPinch:h,panOnScroll:Y,panOnScrollSpeed:v,panOnScrollMode:k,zoomOnDoubleClick:C,panOnDrag:!O&&V,defaultViewport:T,translateExtent:K,minZoom:D,maxZoom:M,zoomActivationKeyCode:w,preventScrolling:W,noWheelClassName:$,noPanClassName:N,onViewportChange:A,isControlledViewport:I,paneClickDistance:a,selectionOnDrag:te,children:c.jsxs(ef,{onSelectionStart:f,onSelectionEnd:g,onPaneClick:t,onPaneMouseEnter:n,onPaneMouseMove:o,onPaneMouseLeave:r,onPaneContextMenu:i,onPaneScroll:s,panOnDrag:V,isSelecting:!!ee,selectionMode:l,selectionKeyPressed:O,paneClickDistance:a,selectionOnDrag:te,children:[e,L&&c.jsx(pf,{onSelectionContextMenu:S,noPanClassName:N,disableKeyboardA11y:z})]})})}Yi.displayName="FlowRenderer";const gf=H.memo(Yi),yf=e=>t=>e?Jn(t.nodeLookup,{x:0,y:0,width:t.width,height:t.height},t.transform,!0).map(n=>n.id):Array.from(t.nodeLookup.keys());function mf(e){return ae(H.useCallback(yf(e),[e]),fe)}const xf=e=>e.updateNodeInternals;function bf(){const e=ae(xf),[t]=H.useState(()=>typeof ResizeObserver>"u"?null:new ResizeObserver(n=>{const o=new Map;n.forEach(r=>{const i=r.target.getAttribute("data-id");o.set(i,{id:i,nodeElement:r.target,force:!0})}),e(o)}));return H.useEffect(()=>()=>{t==null||t.disconnect()},[t]),t}function wf({node:e,nodeType:t,hasDimensions:n,resizeObserver:o}){const r=ue(),i=H.useRef(null),s=H.useRef(null),a=H.useRef(e.sourcePosition),d=H.useRef(e.targetPosition),u=H.useRef(t),p=n&&!!e.internals.handleBounds;return H.useEffect(()=>{i.current&&!e.hidden&&(!p||s.current!==i.current)&&(s.current&&(o==null||o.unobserve(s.current)),o==null||o.observe(i.current),s.current=i.current)},[p,e.hidden]),H.useEffect(()=>()=>{s.current&&(o==null||o.unobserve(s.current),s.current=null)},[]),H.useEffect(()=>{if(i.current){const l=u.current!==t,f=a.current!==e.sourcePosition,g=d.current!==e.targetPosition;(l||f||g)&&(u.current=t,a.current=e.sourcePosition,d.current=e.targetPosition,r.getState().updateNodeInternals(new Map([[e.id,{id:e.id,nodeElement:i.current,force:!0}]])))}},[e.id,t,e.sourcePosition,e.targetPosition]),i}function vf({id:e,onClick:t,onMouseEnter:n,onMouseMove:o,onMouseLeave:r,onContextMenu:i,onDoubleClick:s,nodesDraggable:a,elementsSelectable:d,nodesConnectable:u,nodesFocusable:p,resizeObserver:l,noDragClassName:f,noPanClassName:g,disableKeyboardA11y:x,rfId:y,nodeTypes:w,nodeClickDistance:m,onError:_}){const{node:h,internals:b,isParent:v}=ae(F=>{const q=F.nodeLookup.get(e),ne=F.parentLookup.has(e);return{node:q,internals:q.internals,isParent:ne}},fe);let k=h.type||"default",C=(w==null?void 0:w[k])||Vi[k];C===void 0&&(_==null||_("003",$e.error003(k)),k="default",C=(w==null?void 0:w.default)||Vi.default);const P=!!(h.draggable||a&&typeof h.draggable>"u"),T=!!(h.selectable||d&&typeof h.selectable>"u"),K=!!(h.connectable||u&&typeof h.connectable>"u"),D=!!(h.focusable||p&&typeof h.focusable>"u"),M=ue(),W=Dr(h),S=wf({node:h,nodeType:k,hasDimensions:W,resizeObserver:l}),$=Oi({nodeRef:S,disabled:h.hidden||!P,noDragClassName:f,handleSelector:h.dragHandle,nodeId:e,isSelectable:T,nodeClickDistance:m}),N=Fi();if(h.hidden)return null;const z=Le(h),A=uf(h),I=T||P||t||n||o||r,L=n?F=>n(F,{...b.userNode}):void 0,X=o?F=>o(F,{...b.userNode}):void 0,O=r?F=>r(F,{...b.userNode}):void 0,G=i?F=>i(F,{...b.userNode}):void 0,V=s?F=>s(F,{...b.userNode}):void 0,Y=F=>{const{selectNodesOnDrag:q,nodeDragThreshold:ne}=M.getState();T&&(!q||!P||ne>0)&&xo({id:e,store:M,nodeRef:S}),t&&t(F,{...b.userNode})},te=F=>{if(!(Or(F.nativeEvent)||x)){if(Cr.includes(F.key)&&T){const q=F.key==="Escape";xo({id:e,store:M,unselect:q,nodeRef:S})}else if(P&&h.selected&&Object.prototype.hasOwnProperty.call(Sn,F.key)){F.preventDefault();const{ariaLabelConfig:q}=M.getState();M.setState({ariaLiveMessage:q["node.a11yDescription.ariaLiveMessage"]({direction:F.key.replace("Arrow","").toLowerCase(),x:~~b.positionAbsolute.x,y:~~b.positionAbsolute.y})}),N({direction:Sn[F.key],factor:F.shiftKey?4:1})}}},ee=()=>{var oe;if(x||!((oe=S.current)!=null&&oe.matches(":focus-visible")))return;const{transform:F,width:q,height:ne,autoPanOnNodeFocus:Q,setCenter:j}=M.getState();if(!Q)return;Jn(new Map([[e,h]]),{x:0,y:0,width:q,height:ne},F,!0).length>0||j(h.position.x+z.width/2,h.position.y+z.height/2,{zoom:F[2]})};return c.jsx("div",{className:he(["react-flow__node",`react-flow__node-${k}`,{[g]:P},h.className,{selected:h.selected,selectable:T,parent:v,draggable:P,dragging:$}]),ref:S,style:{zIndex:b.z,transform:`translate(${b.positionAbsolute.x}px,${b.positionAbsolute.y}px)`,pointerEvents:I?"all":"none",visibility:W?"visible":"hidden",...h.style,...A},"data-id":e,"data-testid":`rf__node-${e}`,onMouseEnter:L,onMouseMove:X,onMouseLeave:O,onContextMenu:G,onClick:Y,onDoubleClick:V,onKeyDown:D?te:void 0,tabIndex:D?0:void 0,onFocus:D?ee:void 0,role:h.ariaRole??(D?"group":void 0),"aria-roledescription":"node","aria-describedby":x?void 0:`${Si}-${y}`,"aria-label":h.ariaLabel,...h.domAttributes,children:c.jsx(nf,{value:e,children:c.jsx(C,{id:e,data:h.data,type:k,positionAbsoluteX:b.positionAbsolute.x,positionAbsoluteY:b.positionAbsolute.y,selected:h.selected??!1,selectable:T,draggable:P,deletable:h.deletable??!0,isConnectable:K,sourcePosition:h.sourcePosition,targetPosition:h.targetPosition,dragging:$,dragHandle:h.dragHandle,zIndex:b.z,parentId:h.parentId,...z})})})}var Sf=H.memo(vf);const Cf=e=>({nodesDraggable:e.nodesDraggable,nodesConnectable:e.nodesConnectable,nodesFocusable:e.nodesFocusable,elementsSelectable:e.elementsSelectable,onError:e.onError});function Xi(e){const{nodesDraggable:t,nodesConnectable:n,nodesFocusable:o,elementsSelectable:r,onError:i}=ae(Cf,fe),s=mf(e.onlyRenderVisibleElements),a=bf();return c.jsx("div",{className:"react-flow__nodes",style:wn,children:s.map(d=>c.jsx(Sf,{id:d,nodeTypes:e.nodeTypes,nodeExtent:e.nodeExtent,onClick:e.onNodeClick,onMouseEnter:e.onNodeMouseEnter,onMouseMove:e.onNodeMouseMove,onMouseLeave:e.onNodeMouseLeave,onContextMenu:e.onNodeContextMenu,onDoubleClick:e.onNodeDoubleClick,noDragClassName:e.noDragClassName,noPanClassName:e.noPanClassName,rfId:e.rfId,disableKeyboardA11y:e.disableKeyboardA11y,resizeObserver:a,nodesDraggable:t,nodesConnectable:n,nodesFocusable:o,elementsSelectable:r,nodeClickDistance:e.nodeClickDistance,onError:i},d))})}Xi.displayName="NodeRenderer";const _f=H.memo(Xi);function kf(e){return ae(H.useCallback(n=>{if(!e)return n.edges.map(r=>r.id);const o=[];if(n.width&&n.height)for(const r of n.edges){const i=n.nodeLookup.get(r.source),s=n.nodeLookup.get(r.target);i&&s&&wd({sourceNode:i,targetNode:s,width:n.width,height:n.height,transform:n.transform})&&o.push(r.id)}return o},[e]),fe)}const Ef=({color:e="none",strokeWidth:t=1})=>{const n={strokeWidth:t,...e&&{stroke:e}};return c.jsx("polyline",{className:"arrow",style:n,strokeLinecap:"round",fill:"none",strokeLinejoin:"round",points:"-5,-4 0,0 -5,4"})},Nf=({color:e="none",strokeWidth:t=1})=>{const n={strokeWidth:t,...e&&{stroke:e,fill:e}};return c.jsx("polyline",{className:"arrowclosed",style:n,strokeLinecap:"round",strokeLinejoin:"round",points:"-5,-4 0,0 -5,4 -5,-4"})},Ui={[ln.Arrow]:Ef,[ln.ArrowClosed]:Nf};function If(e){const t=ue();return H.useMemo(()=>{var r,i;return Object.prototype.hasOwnProperty.call(Ui,e)?Ui[e]:((i=(r=t.getState()).onError)==null||i.call(r,"009",$e.error009(e)),null)},[e])}const Af=({id:e,type:t,color:n,width:o=12.5,height:r=12.5,markerUnits:i="strokeWidth",strokeWidth:s,orient:a="auto-start-reverse"})=>{const d=If(t);return d?c.jsx("marker",{className:"react-flow__arrowhead",id:e,markerWidth:`${o}`,markerHeight:`${r}`,viewBox:"-10 -10 20 20",markerUnits:i,orient:a,refX:"0",refY:"0",children:c.jsx(d,{color:n,strokeWidth:s})}):null},Ki=({defaultColor:e,rfId:t})=>{const n=ae(i=>i.edges),o=ae(i=>i.defaultEdgeOptions),r=H.useMemo(()=>Id(n,{id:t,defaultColor:e,defaultMarkerStart:o==null?void 0:o.markerStart,defaultMarkerEnd:o==null?void 0:o.markerEnd}),[n,o,t,e]);return r.length?c.jsx("svg",{className:"react-flow__marker","aria-hidden":"true",children:c.jsx("defs",{children:r.map(i=>c.jsx(Af,{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};Ki.displayName="MarkerDefinitions";var Tf=H.memo(Ki);function qi({x:e,y:t,label:n,labelStyle:o,labelShowBg:r=!0,labelBgStyle:i,labelBgPadding:s=[2,4],labelBgBorderRadius:a=2,children:d,className:u,...p}){const[l,f]=H.useState({x:1,y:0,width:0,height:0}),g=he(["react-flow__edge-textwrapper",u]),x=H.useRef(null);return H.useEffect(()=>{if(x.current){const y=x.current.getBBox();f({x:y.x,y:y.y,width:y.width,height:y.height})}},[n]),n?c.jsxs("g",{transform:`translate(${e-l.width/2} ${t-l.height/2})`,className:g,visibility:l.width?"visible":"hidden",...p,children:[r&&c.jsx("rect",{width:l.width+2*s[0],x:-s[0],y:-s[1],height:l.height+2*s[1],className:"react-flow__edge-textbg",style:i,rx:a,ry:a}),c.jsx("text",{className:"react-flow__edge-text",y:l.height/2,dy:"0.3em",ref:x,style:o,children:n}),d]}):null}qi.displayName="EdgeText";const Mf=H.memo(qi);function Cn({path:e,labelX:t,labelY:n,label:o,labelStyle:r,labelShowBg:i,labelBgStyle:s,labelBgPadding:a,labelBgBorderRadius:d,interactionWidth:u=20,...p}){return c.jsxs(c.Fragment,{children:[c.jsx("path",{...p,d:e,fill:"none",className:he(["react-flow__edge-path",p.className])}),u?c.jsx("path",{d:e,fill:"none",strokeOpacity:0,strokeWidth:u,className:"react-flow__edge-interaction"}):null,o&&ke(t)&&ke(n)?c.jsx(Mf,{x:t,y:n,label:o,labelStyle:r,labelShowBg:i,labelBgStyle:s,labelBgPadding:a,labelBgBorderRadius:d}):null]})}function Zi({pos:e,x1:t,y1:n,x2:o,y2:r}){return e===re.Left||e===re.Right?[.5*(t+o),n]:[t,.5*(n+r)]}function Qi({sourceX:e,sourceY:t,sourcePosition:n=re.Bottom,targetX:o,targetY:r,targetPosition:i=re.Top}){const[s,a]=Zi({pos:n,x1:e,y1:t,x2:o,y2:r}),[d,u]=Zi({pos:i,x1:o,y1:r,x2:e,y2:t}),[p,l,f,g]=Vr({sourceX:e,sourceY:t,targetX:o,targetY:r,sourceControlX:s,sourceControlY:a,targetControlX:d,targetControlY:u});return[`M${e},${t} C${s},${a} ${d},${u} ${o},${r}`,p,l,f,g]}function Ji(e){return H.memo(({id:t,sourceX:n,sourceY:o,targetX:r,targetY:i,sourcePosition:s,targetPosition:a,label:d,labelStyle:u,labelShowBg:p,labelBgStyle:l,labelBgPadding:f,labelBgBorderRadius:g,style:x,markerEnd:y,markerStart:w,interactionWidth:m})=>{const[_,h,b]=Qi({sourceX:n,sourceY:o,sourcePosition:s,targetX:r,targetY:i,targetPosition:a}),v=e.isInternal?void 0:t;return c.jsx(Cn,{id:v,path:_,labelX:h,labelY:b,label:d,labelStyle:u,labelShowBg:p,labelBgStyle:l,labelBgPadding:f,labelBgBorderRadius:g,style:x,markerEnd:y,markerStart:w,interactionWidth:m})})}const $f=Ji({isInternal:!1}),ji=Ji({isInternal:!0});$f.displayName="SimpleBezierEdge",ji.displayName="SimpleBezierEdgeInternal";function Ri(e){return H.memo(({id:t,sourceX:n,sourceY:o,targetX:r,targetY:i,label:s,labelStyle:a,labelShowBg:d,labelBgStyle:u,labelBgPadding:p,labelBgBorderRadius:l,style:f,sourcePosition:g=re.Bottom,targetPosition:x=re.Top,markerEnd:y,markerStart:w,pathOptions:m,interactionWidth:_})=>{const[h,b,v]=to({sourceX:n,sourceY:o,sourcePosition:g,targetX:r,targetY:i,targetPosition:x,borderRadius:m==null?void 0:m.borderRadius,offset:m==null?void 0:m.offset,stepPosition:m==null?void 0:m.stepPosition}),k=e.isInternal?void 0:t;return c.jsx(Cn,{id:k,path:h,labelX:b,labelY:v,label:s,labelStyle:a,labelShowBg:d,labelBgStyle:u,labelBgPadding:p,labelBgBorderRadius:l,style:f,markerEnd:y,markerStart:w,interactionWidth:_})})}const es=Ri({isInternal:!1}),ts=Ri({isInternal:!0});es.displayName="SmoothStepEdge",ts.displayName="SmoothStepEdgeInternal";function ns(e){return H.memo(({id:t,...n})=>{var r;const o=e.isInternal?void 0:t;return c.jsx(es,{...n,id:o,pathOptions:H.useMemo(()=>{var i;return{borderRadius:0,offset:(i=n.pathOptions)==null?void 0:i.offset}},[(r=n.pathOptions)==null?void 0:r.offset])})})}const Pf=ns({isInternal:!1}),os=ns({isInternal:!0});Pf.displayName="StepEdge",os.displayName="StepEdgeInternal";function rs(e){return H.memo(({id:t,sourceX:n,sourceY:o,targetX:r,targetY:i,label:s,labelStyle:a,labelShowBg:d,labelBgStyle:u,labelBgPadding:p,labelBgBorderRadius:l,style:f,markerEnd:g,markerStart:x,interactionWidth:y})=>{const[w,m,_]=Ur({sourceX:n,sourceY:o,targetX:r,targetY:i}),h=e.isInternal?void 0:t;return c.jsx(Cn,{id:h,path:w,labelX:m,labelY:_,label:s,labelStyle:a,labelShowBg:d,labelBgStyle:u,labelBgPadding:p,labelBgBorderRadius:l,style:f,markerEnd:g,markerStart:x,interactionWidth:y})})}const zf=rs({isInternal:!1}),is=rs({isInternal:!0});zf.displayName="StraightEdge",is.displayName="StraightEdgeInternal";function ss(e){return H.memo(({id:t,sourceX:n,sourceY:o,targetX:r,targetY:i,sourcePosition:s=re.Bottom,targetPosition:a=re.Top,label:d,labelStyle:u,labelShowBg:p,labelBgStyle:l,labelBgPadding:f,labelBgBorderRadius:g,style:x,markerEnd:y,markerStart:w,pathOptions:m,interactionWidth:_})=>{const[h,b,v]=Yr({sourceX:n,sourceY:o,sourcePosition:s,targetX:r,targetY:i,targetPosition:a,curvature:m==null?void 0:m.curvature}),k=e.isInternal?void 0:t;return c.jsx(Cn,{id:k,path:h,labelX:b,labelY:v,label:d,labelStyle:u,labelShowBg:p,labelBgStyle:l,labelBgPadding:f,labelBgBorderRadius:g,style:x,markerEnd:y,markerStart:w,interactionWidth:_})})}const Df=ss({isInternal:!1}),as=ss({isInternal:!0});Df.displayName="BezierEdge",as.displayName="BezierEdgeInternal";const ls={default:as,straight:is,step:os,smoothstep:ts,simplebezier:ji},cs={sourceX:null,sourceY:null,targetX:null,targetY:null,sourcePosition:null,targetPosition:null},Bf=(e,t,n)=>n===re.Left?e-t:n===re.Right?e+t:e,Lf=(e,t,n)=>n===re.Top?e-t:n===re.Bottom?e+t:e,ds="react-flow__edgeupdater";function us({position:e,centerX:t,centerY:n,radius:o=10,onMouseDown:r,onMouseEnter:i,onMouseOut:s,type:a}){return c.jsx("circle",{onMouseDown:r,onMouseEnter:i,onMouseOut:s,className:he([ds,`${ds}-${a}`]),cx:Bf(t,o,e),cy:Lf(n,o,e),r:o,stroke:"transparent",fill:"transparent"})}function Hf({isReconnectable:e,reconnectRadius:t,edge:n,sourceX:o,sourceY:r,targetX:i,targetY:s,sourcePosition:a,targetPosition:d,onReconnect:u,onReconnectStart:p,onReconnectEnd:l,setReconnecting:f,setUpdateHover:g}){const x=ue(),y=(b,v)=>{if(b.button!==0)return;const{autoPanOnConnect:k,domNode:C,isValidConnection:P,connectionMode:T,connectionRadius:K,lib:D,onConnectStart:M,onConnectEnd:W,cancelConnection:S,nodeLookup:$,rfId:N,panBy:z,updateConnection:A}=x.getState(),I=v.type==="target",L=(G,V)=>{f(!1),l==null||l(G,n,v.type,V)},X=G=>u==null?void 0:u(n,G),O=(G,V)=>{f(!0),p==null||p(b,n,v.type),M==null||M(G,V)};co.onPointerDown(b.nativeEvent,{autoPanOnConnect:k,connectionMode:T,connectionRadius:K,domNode:C,handleId:v.id,nodeId:v.nodeId,nodeLookup:$,isTarget:I,edgeUpdaterType:v.type,lib:D,flowId:N,cancelConnection:S,panBy:z,isValidConnection:P,onConnect:X,onConnectStart:O,onConnectEnd:W,onReconnectEnd:L,updateConnection:A,getTransform:()=>x.getState().transform,getFromHandle:()=>x.getState().connection.fromHandle,dragThreshold:x.getState().connectionDragThreshold,handleDomNode:b.currentTarget})},w=b=>y(b,{nodeId:n.target,id:n.targetHandle??null,type:"target"}),m=b=>y(b,{nodeId:n.source,id:n.sourceHandle??null,type:"source"}),_=()=>g(!0),h=()=>g(!1);return c.jsxs(c.Fragment,{children:[(e===!0||e==="source")&&c.jsx(us,{position:a,centerX:o,centerY:r,radius:t,onMouseDown:w,onMouseEnter:_,onMouseOut:h,type:"source"}),(e===!0||e==="target")&&c.jsx(us,{position:d,centerX:i,centerY:s,radius:t,onMouseDown:m,onMouseEnter:_,onMouseOut:h,type:"target"})]})}function Of({id:e,edgesFocusable:t,edgesReconnectable:n,elementsSelectable:o,onClick:r,onDoubleClick:i,onContextMenu:s,onMouseEnter:a,onMouseMove:d,onMouseLeave:u,reconnectRadius:p,onReconnect:l,onReconnectStart:f,onReconnectEnd:g,rfId:x,edgeTypes:y,noPanClassName:w,onError:m,disableKeyboardA11y:_}){let h=ae(j=>j.edgeLookup.get(e));const b=ae(j=>j.defaultEdgeOptions);h=b?{...b,...h}:h;let v=h.type||"default",k=(y==null?void 0:y[v])||ls[v];k===void 0&&(m==null||m("011",$e.error011(v)),v="default",k=(y==null?void 0:y.default)||ls.default);const C=!!(h.focusable||t&&typeof h.focusable>"u"),P=typeof l<"u"&&(h.reconnectable||n&&typeof h.reconnectable>"u"),T=!!(h.selectable||o&&typeof h.selectable>"u"),K=H.useRef(null),[D,M]=H.useState(!1),[W,S]=H.useState(!1),$=ue(),{zIndex:N,sourceX:z,sourceY:A,targetX:I,targetY:L,sourcePosition:X,targetPosition:O}=ae(H.useCallback(j=>{const U=j.nodeLookup.get(h.source),oe=j.nodeLookup.get(h.target);if(!U||!oe)return{zIndex:h.zIndex,...cs};const B=Nd({id:e,sourceNode:U,targetNode:oe,sourceHandle:h.sourceHandle||null,targetHandle:h.targetHandle||null,connectionMode:j.connectionMode,onError:m});return{zIndex:bd({selected:h.selected,zIndex:h.zIndex,sourceNode:U,targetNode:oe,elevateOnSelect:j.elevateEdgesOnSelect}),...B||cs}},[h.source,h.target,h.sourceHandle,h.targetHandle,h.selected,h.zIndex]),fe),G=H.useMemo(()=>h.markerStart?`url('#${no(h.markerStart,x)}')`:void 0,[h.markerStart,x]),V=H.useMemo(()=>h.markerEnd?`url('#${no(h.markerEnd,x)}')`:void 0,[h.markerEnd,x]);if(h.hidden||z===null||A===null||I===null||L===null)return null;const Y=j=>{var E;const{addSelectedEdges:U,unselectNodesAndEdges:oe,multiSelectionActive:B}=$.getState();T&&($.setState({nodesSelectionActive:!1}),h.selected&&B?(oe({nodes:[],edges:[h]}),(E=K.current)==null||E.blur()):U([e])),r&&r(j,h)},te=i?j=>{i(j,{...h})}:void 0,ee=s?j=>{s(j,{...h})}:void 0,F=a?j=>{a(j,{...h})}:void 0,q=d?j=>{d(j,{...h})}:void 0,ne=u?j=>{u(j,{...h})}:void 0,Q=j=>{var U;if(!_&&Cr.includes(j.key)&&T){const{unselectNodesAndEdges:oe,addSelectedEdges:B}=$.getState();j.key==="Escape"?((U=K.current)==null||U.blur(),oe({edges:[h]})):B([e])}};return c.jsx("svg",{style:{zIndex:N},children:c.jsxs("g",{className:he(["react-flow__edge",`react-flow__edge-${v}`,h.className,w,{selected:h.selected,animated:h.animated,inactive:!T&&!r,updating:D,selectable:T}]),onClick:Y,onDoubleClick:te,onContextMenu:ee,onMouseEnter:F,onMouseMove:q,onMouseLeave:ne,onKeyDown:C?Q:void 0,tabIndex:C?0:void 0,role:h.ariaRole??(C?"group":"img"),"aria-roledescription":"edge","data-id":e,"data-testid":`rf__edge-${e}`,"aria-label":h.ariaLabel===null?void 0:h.ariaLabel||`Edge from ${h.source} to ${h.target}`,"aria-describedby":C?`${Ci}-${x}`:void 0,ref:K,...h.domAttributes,children:[!W&&c.jsx(k,{id:e,source:h.source,target:h.target,type:h.type,selected:h.selected,animated:h.animated,selectable:T,deletable:h.deletable??!0,label:h.label,labelStyle:h.labelStyle,labelShowBg:h.labelShowBg,labelBgStyle:h.labelBgStyle,labelBgPadding:h.labelBgPadding,labelBgBorderRadius:h.labelBgBorderRadius,sourceX:z,sourceY:A,targetX:I,targetY:L,sourcePosition:X,targetPosition:O,data:h.data,style:h.style,sourceHandleId:h.sourceHandle,targetHandleId:h.targetHandle,markerStart:G,markerEnd:V,pathOptions:"pathOptions"in h?h.pathOptions:void 0,interactionWidth:h.interactionWidth}),P&&c.jsx(Hf,{edge:h,isReconnectable:P,reconnectRadius:p,onReconnect:l,onReconnectStart:f,onReconnectEnd:g,sourceX:z,sourceY:A,targetX:I,targetY:L,sourcePosition:X,targetPosition:O,setUpdateHover:M,setReconnecting:S})]})})}var Ff=H.memo(Of);const Wf=e=>({edgesFocusable:e.edgesFocusable,edgesReconnectable:e.edgesReconnectable,elementsSelectable:e.elementsSelectable,connectionMode:e.connectionMode,onError:e.onError});function fs({defaultMarkerColor:e,onlyRenderVisibleElements:t,rfId:n,edgeTypes:o,noPanClassName:r,onReconnect:i,onEdgeContextMenu:s,onEdgeMouseEnter:a,onEdgeMouseMove:d,onEdgeMouseLeave:u,onEdgeClick:p,reconnectRadius:l,onEdgeDoubleClick:f,onReconnectStart:g,onReconnectEnd:x,disableKeyboardA11y:y}){const{edgesFocusable:w,edgesReconnectable:m,elementsSelectable:_,onError:h}=ae(Wf,fe),b=kf(t);return c.jsxs("div",{className:"react-flow__edges",children:[c.jsx(Tf,{defaultColor:e,rfId:n}),b.map(v=>c.jsx(Ff,{id:v,edgesFocusable:w,edgesReconnectable:m,elementsSelectable:_,noPanClassName:r,onReconnect:i,onContextMenu:s,onMouseEnter:a,onMouseMove:d,onMouseLeave:u,onClick:p,reconnectRadius:l,onDoubleClick:f,onReconnectStart:g,onReconnectEnd:x,rfId:n,onError:h,edgeTypes:o,disableKeyboardA11y:y},v))]})}fs.displayName="EdgeRenderer";const Vf=H.memo(fs),Gf=e=>`translate(${e.transform[0]}px,${e.transform[1]}px) scale(${e.transform[2]})`;function Yf({children:e}){const t=ae(Gf);return c.jsx("div",{className:"react-flow__viewport xyflow__viewport react-flow__container",style:{transform:t},children:e})}function Xf(e){const t=bn(),n=H.useRef(!1);H.useEffect(()=>{!n.current&&t.viewportInitialized&&e&&(setTimeout(()=>e(t),1),n.current=!0)},[e,t.viewportInitialized])}const Uf=e=>{var t;return(t=e.panZoom)==null?void 0:t.syncViewport};function Kf(e){const t=ae(Uf),n=ue();return H.useEffect(()=>{e&&(t==null||t(e),n.setState({transform:[e.x,e.y,e.zoom]}))},[e,t]),null}function qf(e){return e.connection.inProgress?{...e.connection,to:Tt(e.connection.to,e.transform)}:{...e.connection}}function Zf(e){return qf}function Qf(e){const t=Zf();return ae(t,fe)}const Jf=e=>({nodesConnectable:e.nodesConnectable,isValid:e.connection.isValid,inProgress:e.connection.inProgress,width:e.width,height:e.height});function jf({containerStyle:e,style:t,type:n,component:o}){const{nodesConnectable:r,width:i,height:s,isValid:a,inProgress:d}=ae(Jf,fe);return!(i&&r&&d)?null:c.jsx("svg",{style:e,width:i,height:s,className:"react-flow__connectionline react-flow__container",children:c.jsx("g",{className:he(["react-flow__connection",Nr(a)]),children:c.jsx(ps,{style:t,type:n,CustomComponent:o,isValid:a})})})}const ps=({style:e,type:t=Fe.Bezier,CustomComponent:n,isValid:o})=>{const{inProgress:r,from:i,fromNode:s,fromHandle:a,fromPosition:d,to:u,toNode:p,toHandle:l,toPosition:f,pointer:g}=Qf();if(!r)return;if(n)return c.jsx(n,{connectionLineType:t,connectionLineStyle:e,fromNode:s,fromHandle:a,fromX:i.x,fromY:i.y,toX:u.x,toY:u.y,fromPosition:d,toPosition:f,connectionStatus:Nr(o),toNode:p,toHandle:l,pointer:g});let x="";const y={sourceX:i.x,sourceY:i.y,sourcePosition:d,targetX:u.x,targetY:u.y,targetPosition:f};switch(t){case Fe.Bezier:[x]=Yr(y);break;case Fe.SimpleBezier:[x]=Qi(y);break;case Fe.Step:[x]=to({...y,borderRadius:0});break;case Fe.SmoothStep:[x]=to(y);break;default:[x]=Ur(y)}return c.jsx("path",{d:x,fill:"none",className:"react-flow__connection-path",style:e})};ps.displayName="ConnectionLine";const Rf={};function hs(e=Rf){H.useRef(e),ue(),H.useEffect(()=>{},[e])}function ep(){ue(),H.useRef(!1),H.useEffect(()=>{},[])}function gs({nodeTypes:e,edgeTypes:t,onInit:n,onNodeClick:o,onEdgeClick:r,onNodeDoubleClick:i,onEdgeDoubleClick:s,onNodeMouseEnter:a,onNodeMouseMove:d,onNodeMouseLeave:u,onNodeContextMenu:p,onSelectionContextMenu:l,onSelectionStart:f,onSelectionEnd:g,connectionLineType:x,connectionLineStyle:y,connectionLineComponent:w,connectionLineContainerStyle:m,selectionKeyCode:_,selectionOnDrag:h,selectionMode:b,multiSelectionKeyCode:v,panActivationKeyCode:k,zoomActivationKeyCode:C,deleteKeyCode:P,onlyRenderVisibleElements:T,elementsSelectable:K,defaultViewport:D,translateExtent:M,minZoom:W,maxZoom:S,preventScrolling:$,defaultMarkerColor:N,zoomOnScroll:z,zoomOnPinch:A,panOnScroll:I,panOnScrollSpeed:L,panOnScrollMode:X,zoomOnDoubleClick:O,panOnDrag:G,onPaneClick:V,onPaneMouseEnter:Y,onPaneMouseMove:te,onPaneMouseLeave:ee,onPaneScroll:F,onPaneContextMenu:q,paneClickDistance:ne,nodeClickDistance:Q,onEdgeContextMenu:j,onEdgeMouseEnter:U,onEdgeMouseMove:oe,onEdgeMouseLeave:B,reconnectRadius:E,onReconnect:J,onReconnectStart:ie,onReconnectEnd:se,noDragClassName:pe,noWheelClassName:me,noPanClassName:ge,disableKeyboardA11y:He,nodeExtent:je,rfId:Ye,viewport:we,onViewportChange:Re}){return hs(e),hs(t),ep(),Xf(n),Kf(we),c.jsx(gf,{onPaneClick:V,onPaneMouseEnter:Y,onPaneMouseMove:te,onPaneMouseLeave:ee,onPaneContextMenu:q,onPaneScroll:F,paneClickDistance:ne,deleteKeyCode:P,selectionKeyCode:_,selectionOnDrag:h,selectionMode:b,onSelectionStart:f,onSelectionEnd:g,multiSelectionKeyCode:v,panActivationKeyCode:k,zoomActivationKeyCode:C,elementsSelectable:K,zoomOnScroll:z,zoomOnPinch:A,zoomOnDoubleClick:O,panOnScroll:I,panOnScrollSpeed:L,panOnScrollMode:X,panOnDrag:G,defaultViewport:D,translateExtent:M,minZoom:W,maxZoom:S,onSelectionContextMenu:l,preventScrolling:$,noDragClassName:pe,noWheelClassName:me,noPanClassName:ge,disableKeyboardA11y:He,onViewportChange:Re,isControlledViewport:!!we,children:c.jsxs(Yf,{children:[c.jsx(Vf,{edgeTypes:t,onEdgeClick:r,onEdgeDoubleClick:s,onReconnect:J,onReconnectStart:ie,onReconnectEnd:se,onlyRenderVisibleElements:T,onEdgeContextMenu:j,onEdgeMouseEnter:U,onEdgeMouseMove:oe,onEdgeMouseLeave:B,reconnectRadius:E,defaultMarkerColor:N,noPanClassName:ge,disableKeyboardA11y:He,rfId:Ye}),c.jsx(jf,{style:y,type:x,component:w,containerStyle:m}),c.jsx("div",{className:"react-flow__edgelabel-renderer"}),c.jsx(_f,{nodeTypes:e,onNodeClick:o,onNodeDoubleClick:i,onNodeMouseEnter:a,onNodeMouseMove:d,onNodeMouseLeave:u,onNodeContextMenu:p,nodeClickDistance:Q,onlyRenderVisibleElements:T,noPanClassName:ge,noDragClassName:pe,disableKeyboardA11y:He,nodeExtent:je,rfId:Ye}),c.jsx("div",{className:"react-flow__viewport-portal"})]})})}gs.displayName="GraphView";const tp=H.memo(gs),ys=({nodes:e,edges:t,defaultNodes:n,defaultEdges:o,width:r,height:i,fitView:s,fitViewOptions:a,minZoom:d=.5,maxZoom:u=2,nodeOrigin:p,nodeExtent:l}={})=>{const f=new Map,g=new Map,x=new Map,y=new Map,w=o??t??[],m=n??e??[],_=p??[0,0],h=l??_t;ti(x,y,w);const b=io(m,f,g,{nodeOrigin:_,nodeExtent:h,elevateNodesOnSelect:!1});let v=[0,0,1];if(s&&r&&i){const k=Nt(f,{filter:K=>!!((K.width||K.initialWidth)&&(K.height||K.initialHeight))}),{x:C,y:P,zoom:T}=Rn(k,r,i,d,u,(a==null?void 0:a.padding)??.1);v=[C,P,T]}return{rfId:"1",width:r??0,height:i??0,transform:v,nodes:m,nodesInitialized:b,nodeLookup:f,parentLookup:g,edges:w,edgeLookup:y,connectionLookup:x,onNodesChange:null,onEdgesChange:null,hasDefaultNodes:n!==void 0,hasDefaultEdges:o!==void 0,panZoom:null,minZoom:d,maxZoom:u,translateExtent:_t,nodeExtent:h,nodesSelectionActive:!1,userSelectionActive:!1,userSelectionRect:null,connectionMode:it.Strict,domNode:null,paneDragging:!1,noPanClassName:"nopan",nodeOrigin:_,nodeDragThreshold:1,connectionDragThreshold:1,snapGrid:[15,15],snapToGrid:!1,nodesDraggable:!0,nodesConnectable:!0,nodesFocusable:!0,edgesFocusable:!0,edgesReconnectable:!0,elementsSelectable:!0,elevateNodesOnSelect:!0,elevateEdgesOnSelect:!1,selectNodesOnDrag:!0,multiSelectionActive:!1,fitViewQueued:s??!1,fitViewOptions:a,fitViewResolver:null,connection:{...kr},connectionClickStartHandle:null,connectOnClick:!0,ariaLiveMessage:"",autoPanOnConnect:!0,autoPanOnNodeDrag:!0,autoPanOnNodeFocus:!0,autoPanSpeed:15,connectionRadius:20,onError:pd,isValidConnection:void 0,onSelectionChangeHandlers:[],lib:"react",debug:!1,ariaLabelConfig:_r}},np=({nodes:e,edges:t,defaultNodes:n,defaultEdges:o,width:r,height:i,fitView:s,fitViewOptions:a,minZoom:d,maxZoom:u,nodeOrigin:p,nodeExtent:l})=>xu((f,g)=>{async function x(){const{nodeLookup:y,panZoom:w,fitViewOptions:m,fitViewResolver:_,width:h,height:b,minZoom:v,maxZoom:k}=g();w&&(await ud({nodes:y,width:h,height:b,panZoom:w,minZoom:v,maxZoom:k},m),_==null||_.resolve(!0),f({fitViewResolver:null}))}return{...ys({nodes:e,edges:t,width:r,height:i,fitView:s,fitViewOptions:a,minZoom:d,maxZoom:u,nodeOrigin:p,nodeExtent:l,defaultNodes:n,defaultEdges:o}),setNodes:y=>{const{nodeLookup:w,parentLookup:m,nodeOrigin:_,elevateNodesOnSelect:h,fitViewQueued:b}=g(),v=io(y,w,m,{nodeOrigin:_,nodeExtent:l,elevateNodesOnSelect:h,checkEquality:!0});b&&v?(x(),f({nodes:y,nodesInitialized:v,fitViewQueued:!1,fitViewOptions:void 0})):f({nodes:y,nodesInitialized:v})},setEdges:y=>{const{connectionLookup:w,edgeLookup:m}=g();ti(w,m,y),f({edges:y})},setDefaultNodesAndEdges:(y,w)=>{if(y){const{setNodes:m}=g();m(y),f({hasDefaultNodes:!0})}if(w){const{setEdges:m}=g();m(w),f({hasDefaultEdges:!0})}},updateNodeInternals:y=>{const{triggerNodeChanges:w,nodeLookup:m,parentLookup:_,domNode:h,nodeOrigin:b,nodeExtent:v,debug:k,fitViewQueued:C}=g(),{changes:P,updatedInternals:T}=Dd(y,m,_,h,b,v);T&&(Md(m,_,{nodeOrigin:b,nodeExtent:v}),C?(x(),f({fitViewQueued:!1,fitViewOptions:void 0})):f({}),(P==null?void 0:P.length)>0&&(k&&console.log("React Flow: trigger node changes",P),w==null||w(P)))},updateNodePositions:(y,w=!1)=>{const m=[],_=[],{nodeLookup:h,triggerNodeChanges:b}=g();for(const[v,k]of y){const C=h.get(v),P=!!(C!=null&&C.expandParent&&(C!=null&&C.parentId)&&(k!=null&&k.position)),T={id:v,type:"position",position:P?{x:Math.max(0,k.position.x),y:Math.max(0,k.position.y)}:k.position,dragging:w};P&&C.parentId&&m.push({id:v,parentId:C.parentId,rect:{...k.internals.positionAbsolute,width:k.measured.width??0,height:k.measured.height??0}}),_.push(T)}if(m.length>0){const{parentLookup:v,nodeOrigin:k}=g(),C=ao(m,h,v,k);_.push(...C)}b(_)},triggerNodeChanges:y=>{const{onNodesChange:w,setNodes:m,nodes:_,hasDefaultNodes:h,debug:b}=g();if(y!=null&&y.length){if(h){const v=Hu(y,_);m(v)}b&&console.log("React Flow: trigger node changes",y),w==null||w(y)}},triggerEdgeChanges:y=>{const{onEdgesChange:w,setEdges:m,edges:_,hasDefaultEdges:h,debug:b}=g();if(y!=null&&y.length){if(h){const v=Ou(y,_);m(v)}b&&console.log("React Flow: trigger edge changes",y),w==null||w(y)}},addSelectedNodes:y=>{const{multiSelectionActive:w,edgeLookup:m,nodeLookup:_,triggerNodeChanges:h,triggerEdgeChanges:b}=g();if(w){const v=y.map(k=>Je(k,!0));h(v);return}h(ft(_,new Set([...y]),!0)),b(ft(m))},addSelectedEdges:y=>{const{multiSelectionActive:w,edgeLookup:m,nodeLookup:_,triggerNodeChanges:h,triggerEdgeChanges:b}=g();if(w){const v=y.map(k=>Je(k,!0));b(v);return}b(ft(m,new Set([...y]))),h(ft(_,new Set,!0))},unselectNodesAndEdges:({nodes:y,edges:w}={})=>{const{edges:m,nodes:_,nodeLookup:h,triggerNodeChanges:b,triggerEdgeChanges:v}=g(),k=y||_,C=w||m,P=k.map(K=>{const D=h.get(K.id);return D&&(D.selected=!1),Je(K.id,!1)}),T=C.map(K=>Je(K.id,!1));b(P),v(T)},setMinZoom:y=>{const{panZoom:w,maxZoom:m}=g();w==null||w.setScaleExtent([y,m]),f({minZoom:y})},setMaxZoom:y=>{const{panZoom:w,minZoom:m}=g();w==null||w.setScaleExtent([m,y]),f({maxZoom:y})},setTranslateExtent:y=>{var w;(w=g().panZoom)==null||w.setTranslateExtent(y),f({translateExtent:y})},resetSelectedElements:()=>{const{edges:y,nodes:w,triggerNodeChanges:m,triggerEdgeChanges:_,elementsSelectable:h}=g();if(!h)return;const b=w.reduce((k,C)=>C.selected?[...k,Je(C.id,!1)]:k,[]),v=y.reduce((k,C)=>C.selected?[...k,Je(C.id,!1)]:k,[]);m(b),_(v)},setNodeExtent:y=>{const{nodes:w,nodeLookup:m,parentLookup:_,nodeOrigin:h,elevateNodesOnSelect:b,nodeExtent:v}=g();y[0][0]===v[0][0]&&y[0][1]===v[0][1]&&y[1][0]===v[1][0]&&y[1][1]===v[1][1]||(io(w,m,_,{nodeOrigin:h,nodeExtent:y,elevateNodesOnSelect:b,checkEquality:!1}),f({nodeExtent:y}))},panBy:y=>{const{transform:w,width:m,height:_,panZoom:h,translateExtent:b}=g();return Bd({delta:y,panZoom:h,transform:w,translateExtent:b,width:m,height:_})},setCenter:async(y,w,m)=>{const{width:_,height:h,maxZoom:b,panZoom:v}=g();if(!v)return Promise.resolve(!1);const k=typeof(m==null?void 0:m.zoom)<"u"?m.zoom:b;return await v.setViewport({x:_/2-y*k,y:h/2-w*k,zoom:k},{duration:m==null?void 0:m.duration,ease:m==null?void 0:m.ease,interpolate:m==null?void 0:m.interpolate}),Promise.resolve(!0)},cancelConnection:()=>{f({connection:{...kr}})},updateConnection:y=>{f({connection:y})},reset:()=>f({...ys()})}},Object.is);function ms({initialNodes:e,initialEdges:t,defaultNodes:n,defaultEdges:o,initialWidth:r,initialHeight:i,initialMinZoom:s,initialMaxZoom:a,initialFitViewOptions:d,fitView:u,nodeOrigin:p,nodeExtent:l,children:f}){const[g]=H.useState(()=>np({nodes:e,edges:t,defaultNodes:n,defaultEdges:o,width:r,height:i,fitView:u,minZoom:s,maxZoom:a,fitViewOptions:d,nodeOrigin:p,nodeExtent:l}));return c.jsx(bu,{value:g,children:c.jsx(Gu,{children:f})})}function op({children:e,nodes:t,edges:n,defaultNodes:o,defaultEdges:r,width:i,height:s,fitView:a,fitViewOptions:d,minZoom:u,maxZoom:p,nodeOrigin:l,nodeExtent:f}){return H.useContext(yn)?c.jsx(c.Fragment,{children:e}):c.jsx(ms,{initialNodes:t,initialEdges:n,defaultNodes:o,defaultEdges:r,initialWidth:i,initialHeight:s,fitView:a,initialFitViewOptions:d,initialMinZoom:u,initialMaxZoom:p,nodeOrigin:l,nodeExtent:f,children:e})}const rp={width:"100%",height:"100%",overflow:"hidden",position:"relative",zIndex:0};function ip({nodes:e,edges:t,defaultNodes:n,defaultEdges:o,className:r,nodeTypes:i,edgeTypes:s,onNodeClick:a,onEdgeClick:d,onInit:u,onMove:p,onMoveStart:l,onMoveEnd:f,onConnect:g,onConnectStart:x,onConnectEnd:y,onClickConnectStart:w,onClickConnectEnd:m,onNodeMouseEnter:_,onNodeMouseMove:h,onNodeMouseLeave:b,onNodeContextMenu:v,onNodeDoubleClick:k,onNodeDragStart:C,onNodeDrag:P,onNodeDragStop:T,onNodesDelete:K,onEdgesDelete:D,onDelete:M,onSelectionChange:W,onSelectionDragStart:S,onSelectionDrag:$,onSelectionDragStop:N,onSelectionContextMenu:z,onSelectionStart:A,onSelectionEnd:I,onBeforeDelete:L,connectionMode:X,connectionLineType:O=Fe.Bezier,connectionLineStyle:G,connectionLineComponent:V,connectionLineContainerStyle:Y,deleteKeyCode:te="Backspace",selectionKeyCode:ee="Shift",selectionOnDrag:F=!1,selectionMode:q=kt.Full,panActivationKeyCode:ne="Space",multiSelectionKeyCode:Q=Mt()?"Meta":"Control",zoomActivationKeyCode:j=Mt()?"Meta":"Control",snapToGrid:U,snapGrid:oe,onlyRenderVisibleElements:B=!1,selectNodesOnDrag:E,nodesDraggable:J,autoPanOnNodeFocus:ie,nodesConnectable:se,nodesFocusable:pe,nodeOrigin:me=_i,edgesFocusable:ge,edgesReconnectable:He,elementsSelectable:je=!0,defaultViewport:Ye=$u,minZoom:we=.5,maxZoom:Re=2,translateExtent:Lt=_t,preventScrolling:Xp=!0,nodeExtent:So,defaultMarkerColor:Up="#b1b1b7",zoomOnScroll:Kp=!0,zoomOnPinch:qp=!0,panOnScroll:Zp=!1,panOnScrollSpeed:Qp=.5,panOnScrollMode:Jp=Ze.Free,zoomOnDoubleClick:jp=!0,panOnDrag:Rp=!0,onPaneClick:eh,onPaneMouseEnter:th,onPaneMouseMove:nh,onPaneMouseLeave:oh,onPaneScroll:rh,onPaneContextMenu:ih,paneClickDistance:sh=1,nodeClickDistance:ah=0,children:lh,onReconnect:ch,onReconnectStart:dh,onReconnectEnd:uh,onEdgeContextMenu:fh,onEdgeDoubleClick:ph,onEdgeMouseEnter:hh,onEdgeMouseMove:gh,onEdgeMouseLeave:yh,reconnectRadius:mh=10,onNodesChange:xh,onEdgesChange:bh,noDragClassName:wh="nodrag",noWheelClassName:vh="nowheel",noPanClassName:Ss="nopan",fitView:Cs,fitViewOptions:_s,connectOnClick:Sh,attributionPosition:Ch,proOptions:_h,defaultEdgeOptions:kh,elevateNodesOnSelect:Eh,elevateEdgesOnSelect:Nh,disableKeyboardA11y:ks=!1,autoPanOnConnect:Ih,autoPanOnNodeDrag:Ah,autoPanSpeed:Th,connectionRadius:Mh,isValidConnection:$h,onError:Ph,style:zh,id:Es,nodeDragThreshold:Dh,connectionDragThreshold:Bh,viewport:Lh,onViewportChange:Hh,width:Oh,height:Fh,colorMode:Wh="light",debug:Vh,onScroll:An,ariaLabelConfig:Gh,...Yh},Xh){const Co=Es||"1",Uh=Du(Wh),Kh=H.useCallback(Ns=>{Ns.currentTarget.scrollTo({top:0,left:0,behavior:"instant"}),An==null||An(Ns)},[An]);return c.jsx("div",{"data-testid":"rf__wrapper",...Yh,onScroll:Kh,style:{...zh,...rp},ref:Xh,className:he(["react-flow",r,Uh]),id:Es,role:"application",children:c.jsxs(op,{nodes:e,edges:t,width:Oh,height:Fh,fitView:Cs,fitViewOptions:_s,minZoom:we,maxZoom:Re,nodeOrigin:me,nodeExtent:So,children:[c.jsx(tp,{onInit:u,onNodeClick:a,onEdgeClick:d,onNodeMouseEnter:_,onNodeMouseMove:h,onNodeMouseLeave:b,onNodeContextMenu:v,onNodeDoubleClick:k,nodeTypes:i,edgeTypes:s,connectionLineType:O,connectionLineStyle:G,connectionLineComponent:V,connectionLineContainerStyle:Y,selectionKeyCode:ee,selectionOnDrag:F,selectionMode:q,deleteKeyCode:te,multiSelectionKeyCode:Q,panActivationKeyCode:ne,zoomActivationKeyCode:j,onlyRenderVisibleElements:B,defaultViewport:Ye,translateExtent:Lt,minZoom:we,maxZoom:Re,preventScrolling:Xp,zoomOnScroll:Kp,zoomOnPinch:qp,zoomOnDoubleClick:jp,panOnScroll:Zp,panOnScrollSpeed:Qp,panOnScrollMode:Jp,panOnDrag:Rp,onPaneClick:eh,onPaneMouseEnter:th,onPaneMouseMove:nh,onPaneMouseLeave:oh,onPaneScroll:rh,onPaneContextMenu:ih,paneClickDistance:sh,nodeClickDistance:ah,onSelectionContextMenu:z,onSelectionStart:A,onSelectionEnd:I,onReconnect:ch,onReconnectStart:dh,onReconnectEnd:uh,onEdgeContextMenu:fh,onEdgeDoubleClick:ph,onEdgeMouseEnter:hh,onEdgeMouseMove:gh,onEdgeMouseLeave:yh,reconnectRadius:mh,defaultMarkerColor:Up,noDragClassName:wh,noWheelClassName:vh,noPanClassName:Ss,rfId:Co,disableKeyboardA11y:ks,nodeExtent:So,viewport:Lh,onViewportChange:Hh}),c.jsx(zu,{nodes:e,edges:t,defaultNodes:n,defaultEdges:o,onConnect:g,onConnectStart:x,onConnectEnd:y,onClickConnectStart:w,onClickConnectEnd:m,nodesDraggable:J,autoPanOnNodeFocus:ie,nodesConnectable:se,nodesFocusable:pe,edgesFocusable:ge,edgesReconnectable:He,elementsSelectable:je,elevateNodesOnSelect:Eh,elevateEdgesOnSelect:Nh,minZoom:we,maxZoom:Re,nodeExtent:So,onNodesChange:xh,onEdgesChange:bh,snapToGrid:U,snapGrid:oe,connectionMode:X,translateExtent:Lt,connectOnClick:Sh,defaultEdgeOptions:kh,fitView:Cs,fitViewOptions:_s,onNodesDelete:K,onEdgesDelete:D,onDelete:M,onNodeDragStart:C,onNodeDrag:P,onNodeDragStop:T,onSelectionDrag:$,onSelectionDragStart:S,onSelectionDragStop:N,onMove:p,onMoveStart:l,onMoveEnd:f,noPanClassName:Ss,nodeOrigin:me,rfId:Co,autoPanOnConnect:Ih,autoPanOnNodeDrag:Ah,autoPanSpeed:Th,onError:Ph,connectionRadius:Mh,isValidConnection:$h,selectNodesOnDrag:E,nodeDragThreshold:Dh,connectionDragThreshold:Bh,onBeforeDelete:L,debug:Vh,ariaLabelConfig:Gh}),c.jsx(Mu,{onSelectionChange:W}),lh,c.jsx(Eu,{proOptions:_h,position:Ch}),c.jsx(ku,{rfId:Co,disableKeyboardA11y:ks})]})})}var sp=Di(ip);function ap({dimensions:e,lineWidth:t,variant:n,className:o}){return c.jsx("path",{strokeWidth:t,d:`M${e[0]/2} 0 V${e[1]} M0 ${e[1]/2} H${e[0]}`,className:he(["react-flow__background-pattern",n,o])})}function lp({radius:e,className:t}){return c.jsx("circle",{cx:e,cy:e,r:e,className:he(["react-flow__background-pattern","dots",t])})}var Ge;(function(e){e.Lines="lines",e.Dots="dots",e.Cross="cross"})(Ge||(Ge={}));const cp={[Ge.Dots]:1,[Ge.Lines]:1,[Ge.Cross]:6},dp=e=>({transform:e.transform,patternId:`pattern-${e.rfId}`});function xs({id:e,variant:t=Ge.Dots,gap:n=20,size:o,lineWidth:r=1,offset:i=0,color:s,bgColor:a,style:d,className:u,patternClassName:p}){const l=H.useRef(null),{transform:f,patternId:g}=ae(dp,fe),x=o||cp[t],y=t===Ge.Dots,w=t===Ge.Cross,m=Array.isArray(n)?n:[n,n],_=[m[0]*f[2]||1,m[1]*f[2]||1],h=x*f[2],b=Array.isArray(i)?i:[i,i],v=w?[h,h]:_,k=[b[0]*f[2]||1+v[0]/2,b[1]*f[2]||1+v[1]/2],C=`${g}${e||""}`;return c.jsxs("svg",{className:he(["react-flow__background",u]),style:{...d,...wn,"--xy-background-color-props":a,"--xy-background-pattern-color-props":s},ref:l,"data-testid":"rf__background",children:[c.jsx("pattern",{id:C,x:f[0]%_[0],y:f[1]%_[1],width:_[0],height:_[1],patternUnits:"userSpaceOnUse",patternTransform:`translate(-${k[0]},-${k[1]})`,children:y?c.jsx(lp,{radius:h/2,className:p}):c.jsx(ap,{dimensions:v,lineWidth:r,variant:t,className:p})}),c.jsx("rect",{x:"0",y:"0",width:"100%",height:"100%",fill:`url(#${C})`})]})}xs.displayName="Background";const up=H.memo(xs);function fp(){return c.jsx("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 32 32",children:c.jsx("path",{d:"M32 18.133H18.133V32h-4.266V18.133H0v-4.266h13.867V0h4.266v13.867H32z"})})}function pp(){return c.jsx("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 32 5",children:c.jsx("path",{d:"M0 0h32v4.2H0z"})})}function hp(){return c.jsx("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 32 30",children:c.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 gp(){return c.jsx("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 25 32",children:c.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 yp(){return c.jsx("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 25 32",children:c.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 _n({children:e,className:t,...n}){return c.jsx("button",{type:"button",className:he(["react-flow__controls-button",t]),...n,children:e})}const mp=e=>({isInteractive:e.nodesDraggable||e.nodesConnectable||e.elementsSelectable,minZoomReached:e.transform[2]<=e.minZoom,maxZoomReached:e.transform[2]>=e.maxZoom,ariaLabelConfig:e.ariaLabelConfig});function bs({style:e,showZoom:t=!0,showFitView:n=!0,showInteractive:o=!0,fitViewOptions:r,onZoomIn:i,onZoomOut:s,onFitView:a,onInteractiveChange:d,className:u,children:p,position:l="bottom-left",orientation:f="vertical","aria-label":g}){const x=ue(),{isInteractive:y,minZoomReached:w,maxZoomReached:m,ariaLabelConfig:_}=ae(mp,fe),{zoomIn:h,zoomOut:b,fitView:v}=bn(),k=()=>{h(),i==null||i()},C=()=>{b(),s==null||s()},P=()=>{v(r),a==null||a()},T=()=>{x.setState({nodesDraggable:!y,nodesConnectable:!y,elementsSelectable:!y}),d==null||d(!y)},K=f==="horizontal"?"horizontal":"vertical";return c.jsxs(mn,{className:he(["react-flow__controls",K,u]),position:l,style:e,"data-testid":"rf__controls","aria-label":g??_["controls.ariaLabel"],children:[t&&c.jsxs(c.Fragment,{children:[c.jsx(_n,{onClick:k,className:"react-flow__controls-zoomin",title:_["controls.zoomIn.ariaLabel"],"aria-label":_["controls.zoomIn.ariaLabel"],disabled:m,children:c.jsx(fp,{})}),c.jsx(_n,{onClick:C,className:"react-flow__controls-zoomout",title:_["controls.zoomOut.ariaLabel"],"aria-label":_["controls.zoomOut.ariaLabel"],disabled:w,children:c.jsx(pp,{})})]}),n&&c.jsx(_n,{className:"react-flow__controls-fitview",onClick:P,title:_["controls.fitView.ariaLabel"],"aria-label":_["controls.fitView.ariaLabel"],children:c.jsx(hp,{})}),o&&c.jsx(_n,{className:"react-flow__controls-interactive",onClick:T,title:_["controls.interactive.ariaLabel"],"aria-label":_["controls.interactive.ariaLabel"],children:y?c.jsx(yp,{}):c.jsx(gp,{})}),p]})}bs.displayName="Controls";const xp=H.memo(bs);function bp({id:e,x:t,y:n,width:o,height:r,style:i,color:s,strokeColor:a,strokeWidth:d,className:u,borderRadius:p,shapeRendering:l,selected:f,onClick:g}){const{background:x,backgroundColor:y}=i||{},w=s||x||y;return c.jsx("rect",{className:he(["react-flow__minimap-node",{selected:f},u]),x:t,y:n,rx:p,ry:p,width:o,height:r,style:{fill:w,stroke:a,strokeWidth:d},shapeRendering:l,onClick:g?m=>g(m,e):void 0})}const wp=H.memo(bp),vp=e=>e.nodes.map(t=>t.id),wo=e=>e instanceof Function?e:()=>e;function Sp({nodeStrokeColor:e,nodeColor:t,nodeClassName:n="",nodeBorderRadius:o=5,nodeStrokeWidth:r,nodeComponent:i=wp,onClick:s}){const a=ae(vp,fe),d=wo(t),u=wo(e),p=wo(n),l=typeof window>"u"||window.chrome?"crispEdges":"geometricPrecision";return c.jsx(c.Fragment,{children:a.map(f=>c.jsx(_p,{id:f,nodeColorFunc:d,nodeStrokeColorFunc:u,nodeClassNameFunc:p,nodeBorderRadius:o,nodeStrokeWidth:r,NodeComponent:i,onClick:s,shapeRendering:l},f))})}function Cp({id:e,nodeColorFunc:t,nodeStrokeColorFunc:n,nodeClassNameFunc:o,nodeBorderRadius:r,nodeStrokeWidth:i,shapeRendering:s,NodeComponent:a,onClick:d}){const{node:u,x:p,y:l,width:f,height:g}=ae(x=>{const{internals:y}=x.nodeLookup.get(e),w=y.userNode,{x:m,y:_}=y.positionAbsolute,{width:h,height:b}=Le(w);return{node:w,x:m,y:_,width:h,height:b}},fe);return!u||u.hidden||!Dr(u)?null:c.jsx(a,{x:p,y:l,width:f,height:g,style:u.style,selected:!!u.selected,className:o(u),color:t(u),borderRadius:r,strokeColor:n(u),strokeWidth:i,shapeRendering:s,onClick:d,id:u.id})}const _p=H.memo(Cp);var kp=H.memo(Sp);const Ep=200,Np=150,Ip=e=>!e.hidden,Ap=e=>{const t={x:-e.transform[0]/e.transform[2],y:-e.transform[1]/e.transform[2],width:e.width/e.transform[2],height:e.height/e.transform[2]};return{viewBB:t,boundingRect:e.nodeLookup.size>0?Pr(Nt(e.nodeLookup,{filter:Ip}),t):t,rfId:e.rfId,panZoom:e.panZoom,translateExtent:e.translateExtent,flowWidth:e.width,flowHeight:e.height,ariaLabelConfig:e.ariaLabelConfig}},Tp="react-flow__minimap-desc";function ws({style:e,className:t,nodeStrokeColor:n,nodeColor:o,nodeClassName:r="",nodeBorderRadius:i=5,nodeStrokeWidth:s,nodeComponent:a,bgColor:d,maskColor:u,maskStrokeColor:p,maskStrokeWidth:l,position:f="bottom-right",onClick:g,onNodeClick:x,pannable:y=!1,zoomable:w=!1,ariaLabel:m,inversePan:_,zoomStep:h=1,offsetScale:b=5}){const v=ue(),k=H.useRef(null),{boundingRect:C,viewBB:P,rfId:T,panZoom:K,translateExtent:D,flowWidth:M,flowHeight:W,ariaLabelConfig:S}=ae(Ap,fe),$=(e==null?void 0:e.width)??Ep,N=(e==null?void 0:e.height)??Np,z=C.width/$,A=C.height/N,I=Math.max(z,A),L=I*$,X=I*N,O=b*I,G=C.x-(L-C.width)/2-O,V=C.y-(X-C.height)/2-O,Y=L+O*2,te=X+O*2,ee=`${Tp}-${T}`,F=H.useRef(0),q=H.useRef();F.current=I,H.useEffect(()=>{if(k.current&&K)return q.current=Xd({domNode:k.current,panZoom:K,getTransform:()=>v.getState().transform,getViewScale:()=>F.current}),()=>{var U;(U=q.current)==null||U.destroy()}},[K]),H.useEffect(()=>{var U;(U=q.current)==null||U.update({translateExtent:D,width:M,height:W,inversePan:_,pannable:y,zoomStep:h,zoomable:w})},[y,w,_,h,D,M,W]);const ne=g?U=>{var E;const[oe,B]=((E=q.current)==null?void 0:E.pointer(U))||[0,0];g(U,{x:oe,y:B})}:void 0,Q=x?H.useCallback((U,oe)=>{const B=v.getState().nodeLookup.get(oe).internals.userNode;x(U,B)},[]):void 0,j=m??S["minimap.ariaLabel"];return c.jsx(mn,{position:f,style:{...e,"--xy-minimap-background-color-props":typeof d=="string"?d:void 0,"--xy-minimap-mask-background-color-props":typeof u=="string"?u:void 0,"--xy-minimap-mask-stroke-color-props":typeof p=="string"?p:void 0,"--xy-minimap-mask-stroke-width-props":typeof l=="number"?l*I:void 0,"--xy-minimap-node-background-color-props":typeof o=="string"?o: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:he(["react-flow__minimap",t]),"data-testid":"rf__minimap",children:c.jsxs("svg",{width:$,height:N,viewBox:`${G} ${V} ${Y} ${te}`,className:"react-flow__minimap-svg",role:"img","aria-labelledby":ee,ref:k,onClick:ne,children:[j&&c.jsx("title",{id:ee,children:j}),c.jsx(kp,{onClick:Q,nodeColor:o,nodeStrokeColor:n,nodeBorderRadius:i,nodeClassName:r,nodeStrokeWidth:s,nodeComponent:a}),c.jsx("path",{className:"react-flow__minimap-mask",d:`M${G-O},${V-O}h${Y+O*2}v${te+O*2}h${-Y-O*2}z
24
+ M${P.x},${P.y}h${P.width}v${P.height}h${-P.width}z`,fillRule:"evenodd",pointerEvents:"none"})]})})}ws.displayName="MiniMap",H.memo(ws);const Mp=e=>t=>e?`${Math.max(1/t.transform[2],1)}`:void 0,$p={[ut.Line]:"right",[ut.Handle]:"bottom-right"};function Pp({nodeId:e,position:t,variant:n=ut.Handle,className:o,style:r=void 0,children:i,color:s,minWidth:a=10,minHeight:d=10,maxWidth:u=Number.MAX_VALUE,maxHeight:p=Number.MAX_VALUE,keepAspectRatio:l=!1,resizeDirection:f,autoScale:g=!0,shouldResize:x,onResizeStart:y,onResize:w,onResizeEnd:m}){const _=Wi(),h=typeof e=="string"?e:_,b=ue(),v=H.useRef(null),k=n===ut.Handle,C=ae(H.useCallback(Mp(k&&g),[k,g]),fe),P=H.useRef(null),T=t??$p[n];H.useEffect(()=>{if(!(!v.current||!h))return P.current||(P.current=iu({domNode:v.current,nodeId:h,getStoreItems:()=>{const{nodeLookup:D,transform:M,snapGrid:W,snapToGrid:S,nodeOrigin:$,domNode:N}=b.getState();return{nodeLookup:D,transform:M,snapGrid:W,snapToGrid:S,nodeOrigin:$,paneDomNode:N}},onChange:(D,M)=>{const{triggerNodeChanges:W,nodeLookup:S,parentLookup:$,nodeOrigin:N}=b.getState(),z=[],A={x:D.x,y:D.y},I=S.get(h);if(I&&I.expandParent&&I.parentId){const L=I.origin??N,X=D.width??I.measured.width??0,O=D.height??I.measured.height??0,G={id:I.id,parentId:I.parentId,rect:{width:X,height:O,...Br({x:D.x??I.position.x,y:D.y??I.position.y},{width:X,height:O},I.parentId,S,L)}},V=ao([G],S,$,N);z.push(...V),A.x=D.x?Math.max(L[0]*X,D.x):void 0,A.y=D.y?Math.max(L[1]*O,D.y):void 0}if(A.x!==void 0&&A.y!==void 0){const L={id:h,type:"position",position:{...A}};z.push(L)}if(D.width!==void 0&&D.height!==void 0){const X={id:h,type:"dimensions",resizing:!0,setAttributes:f?f==="horizontal"?"width":"height":!0,dimensions:{width:D.width,height:D.height}};z.push(X)}for(const L of M){const X={...L,type:"position"};z.push(X)}W(z)},onEnd:({width:D,height:M})=>{const W={id:h,type:"dimensions",resizing:!1,dimensions:{width:D,height:M}};b.getState().triggerNodeChanges([W])}})),P.current.update({controlPosition:T,boundaries:{minWidth:a,minHeight:d,maxWidth:u,maxHeight:p},keepAspectRatio:l,resizeDirection:f,onResizeStart:y,onResize:w,onResizeEnd:m,shouldResize:x}),()=>{var D;(D=P.current)==null||D.destroy()}},[T,a,d,u,p,l,y,w,m,x]);const K=T.split("-");return c.jsx("div",{className:he(["react-flow__resize-control","nodrag",...K,n,o]),ref:v,style:{...r,scale:C,...s&&{[k?"backgroundColor":"borderColor"]:s}},children:i})}H.memo(Pp);function zp(){const e=et.useTheme(),t=e.palette.mode==="dark";return H.useMemo(()=>{const n={broker:t?"#60a5fa":"#2563eb",controller:t?"#34d399":"#059669",zookeeper:t?"#fbbf24":"#d97706",nodePool:t?"#a78bfa":"#7c3aed",dual:t?"#f472b6":"#db2777"},o={canvasBackground:t?"#1a1a1a":"#ffffff",gridColor:t?"rgba(255, 255, 255, 0.25)":"rgba(80, 80, 80, 0.65)",nodeBackground:t?e.palette.background.paper:"#f3f4f6",nodeBorder:t?e.palette.divider:"#d1d5db",nodeText:t?e.palette.text.primary:"#374151",nodeTextSecondary:t?e.palette.text.secondary:"#6b7280",nodeHover:t?"rgba(255, 255, 255, 0.08)":"rgba(0, 0, 0, 0.04)",nodeSelected:e.palette.primary.main,nodeShadow:t?"0 4px 6px rgba(0, 0, 0, 0.4)":"0 4px 6px rgba(0, 0, 0, 0.1)",edgeStroke:e.palette.divider,edgeStrokeSelected:e.palette.primary.main,edgeLabelBg:e.palette.background.paper,edgeLabelText:t?e.palette.text.primary:"#374151",broker:n.broker,controller:n.controller,zookeeper:n.zookeeper,nodePool:n.nodePool,dual:n.dual,statusReady:t?"#34d399":"#059669",statusNotReady:t?"#f87171":"#dc2626",statusReadyBg:t?"rgba(16, 185, 129, 0.25)":"rgba(16, 185, 129, 0.15)",statusNotReadyBg:t?"rgba(239, 68, 68, 0.25)":"rgba(239, 68, 68, 0.15)",controlsBg:t?"#334155":"#f1f5f9",controlsBorder:t?"#475569":"#cbd5e1",controlsText:t?e.palette.text.primary:"#374151",controlsHover:t?"#475569":"#e2e8f0",overlay:t?"rgba(0, 0, 0, 0.6)":"rgba(255, 255, 255, 0.6)",highlight:e.palette.primary.light},r={fontFamily:e.typography.fontFamily,fontSize:{small:e.typography.caption.fontSize||"12px",medium:e.typography.body2.fontSize||"14px",large:e.typography.body1.fontSize||"18px",xlarge:e.typography.h6.fontSize||"20px"},fontWeight:{regular:e.typography.fontWeightRegular,medium:e.typography.fontWeightMedium,bold:e.typography.fontWeightBold},lineHeight:{tight:1.2,normal:1.5,relaxed:1.8},letterSpacing:"0.01em"},i={xs:e.spacing(.5),sm:e.spacing(1),md:e.spacing(2),lg:e.spacing(3),xl:e.spacing(4)};return{colors:o,typography:r,spacing:i,isDark:t}},[e,t])}function Ne(e,t){const n=parseInt(e.slice(1,3),16),o=parseInt(e.slice(3,5),16),r=parseInt(e.slice(5,7),16);return`rgba(${n}, ${o}, ${r}, ${t})`}function Dp(e){const{colors:t,isDark:n}=e,o=n?.1:.08,r=n?.25:.12,i=n?.2:.08,s=d=>n?d:Ne(d,.1),a=d=>n?d:t.nodeBorder;return{cluster:{border:a(t.nodePool),bg:Ne(t.nodePool,o),label:s(t.nodePool)},nodePool:{border:a(t.nodePool),bg:Ne(t.nodePool,o),label:s(t.nodePool)},controller:{border:a(t.controller),bg:n?`linear-gradient(135deg, rgba(52, 211, 153, ${r}) 0%, rgba(16, 185, 129, ${i}) 100%)`:`linear-gradient(135deg, rgba(5, 150, 105, ${r}) 0%, rgba(4, 120, 87, ${i}) 100%)`,label:s(t.controller)},broker:{border:a(t.broker),bg:n?`linear-gradient(135deg, rgba(96, 165, 250, ${r}) 0%, rgba(59, 130, 246, ${i}) 100%)`:`linear-gradient(135deg, rgba(37, 99, 235, ${r}) 0%, rgba(29, 78, 216, ${i}) 100%)`,label:s(t.broker)},zookeeper:{border:a(t.zookeeper),bg:n?`linear-gradient(135deg, rgba(251, 191, 36, ${r}) 0%, rgba(245, 158, 11, ${i}) 100%)`:`linear-gradient(135deg, rgba(217, 119, 6, ${r}) 0%, rgba(180, 83, 9, ${i}) 100%)`,label:s(t.zookeeper)},dual:{border:a(t.dual),bg:n?`linear-gradient(135deg, rgba(244, 114, 182, ${r}) 0%, rgba(236, 72, 153, ${i}) 100%)`:`linear-gradient(135deg, rgba(219, 39, 119, ${r}) 0%, rgba(190, 24, 93, ${i}) 100%)`,label:s(t.dual)}}}const R={CLUSTER_LABEL_HEIGHT:85,GROUP_LABEL_HEIGHT:85,PODSET_LABEL_HEIGHT:95,LABEL_TOP_OFFSET:25,PADDING_HORIZONTAL:30,PADDING_VERTICAL:30,POD_NODE_MIN_WIDTH:200,POD_NODE_BASE_HEIGHT:180,POD_NODE_PADDING:12,POD_CONTENT_CHAR_WIDTH:8,NODE_SPACING:20,GROUP_SPACING:30,CLUSTER_MIN_WIDTH:300,CLUSTER_HORIZONTAL_MARGIN:80,CLUSTER_VERTICAL_MARGIN_START:40,CLUSTER_VERTICAL_MARGIN_LEGACY:60,CLUSTER_VERTICAL_MARGIN_END:40,NAMESPACE_PADDING:30,NAMESPACE_LABEL_HEIGHT:50,GRID_GAP:20,GRID_SIZE:1,NAMESPACE_BORDER_WIDTH:2,NAMESPACE_BG_OPACITY:.25,CLUSTER_BG_OPACITY:.3,GROUP_BG_OPACITY:.35,POD_BG_OPACITY:.4,NAMESPACE_ICON_SIZE:40,CLUSTER_ICON_SIZE:40,GROUP_ICON_SIZE:40,POD_ICON_SIZE:40},de={group:{top:R.GROUP_LABEL_HEIGHT+R.LABEL_TOP_OFFSET,right:R.PADDING_HORIZONTAL,bottom:R.PADDING_VERTICAL,left:R.PADDING_HORIZONTAL},podSet:{top:R.PODSET_LABEL_HEIGHT+R.LABEL_TOP_OFFSET,right:R.PADDING_HORIZONTAL,bottom:R.PADDING_VERTICAL,left:R.PADDING_HORIZONTAL}};function kn(e){const{name:t,nodeId:n,role:o,podIP:r,phase:i}=e,s=`Pod: ${t}-${n}`,a=`ID: ${n}`,d=`Role: ${o}`,u=`IP: ${r}`,p=`Phase: ${i}`,f=Math.max(s.length,a.length,d.length,u.length,p.length,"✗ Not Ready".length),g=R.POD_ICON_SIZE+20+f*R.POD_CONTENT_CHAR_WIDTH+R.POD_NODE_PADDING*3,x=Math.max(R.POD_NODE_MIN_WIDTH,g),y=R.POD_NODE_BASE_HEIGHT;return{width:x,height:y}}function Bp(e){const t=e.reduce((d,u)=>d+u.width,0),n=Math.max(...e.map(d=>d.height)),o=(e.length-1)*R.NODE_SPACING,r=de.podSet.left+de.podSet.right+t+o,i=de.podSet.top+de.podSet.bottom+n,s=de.group.left+de.group.right+r,a=de.group.top+de.group.bottom+i;return{podSetInnerWidth:r,podSetInnerHeight:i,poolWidth:s,poolHeight:a}}function Dt(e){var n;if(!((n=e==null?void 0:e.status)!=null&&n.conditions))return!1;const t=e.status.conditions.find(o=>o.type==="Ready");return(t==null?void 0:t.status)==="True"}function En({icon:e,color:t,size:n="24px"}){return c.jsx("div",{style:{width:n,height:n,borderRadius:"50%",background:`${t}20`,display:"flex",alignItems:"center",justifyContent:"center",flexShrink:0},children:c.jsx(Ht.Icon,{icon:e,width:`calc(${n} * 0.6)`,height:`calc(${n} * 0.6)`,style:{color:t}})})}function Nn({children:e,onClick:t,title:n,disabled:o}){const r=ce.useTheme(),i={width:"32px",height:"32px",padding:0,minWidth:"32px",borderRadius:"50%","> svg":{width:"14px",height:"14px"},fontSize:"x-small",backgroundColor:r.palette.background.paper,color:r.palette.text.primary,border:"none",boxShadow:r.palette.mode==="dark"?"0 2px 4px rgba(0,0,0,0.3)":"0 2px 4px rgba(0,0,0,0.1)","&:hover":{backgroundColor:r.palette.action.hover},"&.Mui-disabled":{backgroundColor:r.palette.action.disabledBackground,color:r.palette.action.disabled}};return c.jsx(ce.Button,{disabled:o,sx:i,variant:"contained",title:n,onClick:t,children:e})}function Lp({children:e}){const t=ae(s=>s.transform[2]<=s.minZoom),n=ae(s=>s.transform[2]>=s.maxZoom),{zoomIn:o,zoomOut:r,fitView:i}=bn();return c.jsxs(ce.Box,{display:"flex",gap:1,flexDirection:"column",children:[c.jsxs(ce.ButtonGroup,{sx:{borderRadius:"40px","> .MuiButtonGroup-grouped":{minWidth:"32px"}},orientation:"vertical",variant:"contained",children:[c.jsx(Nn,{disabled:n,title:"Zoom in",onClick:()=>o(),children:c.jsx(Ht.Icon,{icon:"mdi:plus"})}),c.jsx(Nn,{disabled:t,title:"Zoom out",onClick:()=>r(),children:c.jsx(Ht.Icon,{icon:"mdi:minus"})})]}),c.jsxs(ce.ButtonGroup,{sx:{borderRadius:"40px","> .MuiButtonGroup-grouped":{minWidth:"32px"}},orientation:"vertical",variant:"contained",children:[c.jsx(Nn,{title:"Fit to screen",onClick:()=>i(),children:c.jsx(Ht.Icon,{icon:"mdi:fit-to-screen"})}),c.jsx(Nn,{title:"Zoom to 100%",onClick:()=>i({minZoom:1,maxZoom:1}),children:"100%"})]}),e]})}function In(e){var x,y;const{id:t,name:n,nodeId:o,role:r,parentId:i,position:s,pod:a,theme:d,width:u,height:p}=e,l=((x=a==null?void 0:a.status)==null?void 0:x.podIP)||"N/A",f=Dt(a),g=((y=a==null?void 0:a.status)==null?void 0:y.phase)||"Unknown";return{id:t,type:"default",position:s,data:{label:c.jsxs("div",{style:{padding:"6px",width:"100%",height:"100%",display:"flex",flexDirection:"column"},children:[c.jsxs("div",{style:{fontSize:d.typography.fontSize.large,fontWeight:d.typography.fontWeight.bold,fontFamily:d.typography.fontFamily,color:d.colors.nodeText,marginBottom:"6px",display:"flex",alignItems:"flex-start",justifyContent:"flex-start",gap:"8px",letterSpacing:d.typography.letterSpacing},children:[c.jsx(En,{icon:"mdi:cube",color:"#00ACC1",size:`${R.POD_ICON_SIZE}px`}),c.jsxs("div",{style:{display:"flex",flexDirection:"column",lineHeight:"1.3",alignItems:"flex-start"},children:[c.jsx("span",{style:{fontSize:d.typography.fontSize.large,fontWeight:d.typography.fontWeight.bold,whiteSpace:"nowrap"},children:"Pod"}),c.jsxs("span",{style:{fontSize:d.typography.fontSize.medium,fontWeight:d.typography.fontWeight.medium,whiteSpace:"nowrap"},children:[n,"-",o]})]})]}),c.jsxs("div",{style:{fontSize:"13px",fontFamily:d.typography.fontFamily,color:d.colors.nodeTextSecondary,lineHeight:"1.5",fontWeight:d.typography.fontWeight.medium,flex:1,textAlign:"left"},children:[c.jsxs("div",{children:[c.jsx("strong",{style:{color:d.colors.nodeText},children:"ID: "})," ",o]}),c.jsxs("div",{children:[c.jsx("strong",{style:{color:d.colors.nodeText},children:"Role: "})," ",r]}),c.jsxs("div",{style:{overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:[c.jsx("strong",{style:{color:d.colors.nodeText},children:"IP: "})," ",l]}),c.jsxs("div",{children:[c.jsx("strong",{style:{color:d.colors.nodeText},children:"Phase: "})," ",g]})]}),c.jsx("div",{style:{marginTop:"6px",textAlign:"center"},children:c.jsx(vs,{ready:f})})]})},style:{background:Ne(d.colors.nodeBackground,R.POD_BG_OPACITY),border:`${R.NAMESPACE_BORDER_WIDTH}px solid ${d.colors.nodeBorder}`,borderRadius:"12px",padding:0,width:u,height:p,boxShadow:d.colors.nodeShadow,overflow:"hidden"},parentId:i,extent:"parent"}}function vs({ready:e}){const n=ce.useTheme().palette.mode==="dark";return c.jsx(ce.Chip,{label:e?"Ready":"Not Ready",variant:n?"outlined":"filled",size:"medium",color:e?"success":"warning",sx:{borderRadius:"4px",...n&&e&&{borderColor:"#34d399",color:"#34d399",backgroundColor:"rgba(52, 211, 153, 0.15)"},...n&&!e&&{borderColor:"#f87171",color:"#f87171",backgroundColor:"rgba(248, 113, 113, 0.15)"}}})}function Bt(e){const{id:t,title:n,parentId:o,theme:r,resourceType:i,replicaInfo:s}=e,d=(()=>{switch(i){case"KafkaNodePool":return{icon:"mdi:server",color:"#0baf9e"};case"StrimziPodSet":return{icon:"mdi:view-grid-outline",color:"#0baf9e"};default:return{icon:"mdi:cube",color:"#0baf9e"}}})();return{id:t,type:"default",position:{x:20,y:20},data:{label:c.jsxs("div",{style:{display:"flex",alignItems:"flex-start",gap:"8px"},children:[c.jsx(En,{icon:d.icon,color:d.color,size:`${R.GROUP_ICON_SIZE}px`}),c.jsxs("div",{style:{display:"flex",flexDirection:"column",lineHeight:"1.3",alignItems:"flex-start"},children:[c.jsx("span",{style:{fontSize:r.typography.fontSize.large,fontWeight:r.typography.fontWeight.bold,fontFamily:r.typography.fontFamily,color:r.colors.nodeText,letterSpacing:r.typography.letterSpacing,whiteSpace:"nowrap"},children:i}),c.jsx("span",{style:{fontSize:r.typography.fontSize.medium,fontWeight:r.typography.fontWeight.medium,fontFamily:r.typography.fontFamily,color:r.colors.nodeText,letterSpacing:r.typography.letterSpacing,whiteSpace:"nowrap"},children:n}),s&&c.jsx("span",{style:{fontSize:r.typography.fontSize.small,fontWeight:r.typography.fontWeight.medium,fontFamily:r.typography.fontFamily,color:r.colors.nodeTextSecondary,letterSpacing:r.typography.letterSpacing,whiteSpace:"nowrap",marginTop:"2px"},children:s})]})]})},style:{background:"transparent",border:"none",padding:0},parentId:o,draggable:!1,selectable:!1}}function Hp({kafka:e}){const[t,n]=Z.default.useState([]),[o,r]=Z.default.useState([]),[i,s]=Z.default.useState([]),[a,d]=Z.default.useState(!0),[u,p]=Z.default.useState([]),l=zp(),f=Z.default.useMemo(()=>Dp(l),[l]),g=Z.default.useMemo(()=>_o(e),[e]),x=Z.default.useMemo(()=>{var y,w,m;return((m=(w=(y=e.status)==null?void 0:y.conditions)==null?void 0:w.find(_=>_.type==="Ready"))==null?void 0:m.status)==="True"},[e.status]);return Z.default.useEffect(()=>{const y=e.metadata.name,w=e.metadata.namespace;Promise.all([le.ApiProxy.request("/apis/kafka.strimzi.io/v1beta2/kafkanodepools"),le.ApiProxy.request("/apis/core.strimzi.io/v1beta2/strimzipodsets"),le.ApiProxy.request(`/api/v1/namespaces/${w}/pods?labelSelector=strimzi.io/cluster=${y}`)]).then(([m,_,h])=>{if(m!=null&&m.items){const b=m.items.filter(v=>{var k;return((k=v.metadata.labels)==null?void 0:k["strimzi.io/cluster"])===y&&v.metadata.namespace===w});n(b)}if(_!=null&&_.items){const b=_.items.filter(v=>{var k;return((k=v.metadata.labels)==null?void 0:k["strimzi.io/cluster"])===y&&v.metadata.namespace===w});r(b)}h!=null&&h.items&&s(h.items),d(!1)}).catch(m=>{console.error("Failed to fetch Kafka topology data:",m),d(!1)})},[e.metadata.name,e.metadata.namespace]),Z.default.useEffect(()=>{var S,$,N,z,A,I,L,X,O;if(a)return;const y=e.metadata.name,w=e.metadata.namespace,m=[];let _=[],h=null,b=null,v=null;if(t.length>0)_=t.map(G=>{var j;const V=G.metadata.name,Y=G.spec.roles||[],te=G.spec.replicas,ee=((j=G.status)==null?void 0:j.nodeIds)||Array.from({length:te},(U,oe)=>oe),F=Y.includes("controller"),q=Y.includes("broker"),ne=F&&q,Q=ee.map(U=>{var E,J;const oe=`${y}-${V}-${U}`,B=i.find(ie=>{var se;return((se=ie.metadata)==null?void 0:se.name)===oe});return kn({name:V,nodeId:U,role:ne?"Controller + Broker":F?"Controller":"Broker",podIP:((E=B==null?void 0:B.status)==null?void 0:E.podIP)||"N/A",phase:((J=B==null?void 0:B.status)==null?void 0:J.phase)||"Unknown"})});return{poolName:V,podDimensions:Q,dimensions:Bp(Q)}});else if(g){const G=e.spec.kafka.replicas,V=[];for(let F=0;F<G;F++){const q=`${y}-kafka-${F}`,ne=i.find(Q=>{var j;return((j=Q.metadata)==null?void 0:j.name)===q});V.push(kn({name:"kafka",nodeId:F,role:"Controller + Broker",podIP:((S=ne==null?void 0:ne.status)==null?void 0:S.podIP)||"N/A",phase:(($=ne==null?void 0:ne.status)==null?void 0:$.phase)||"Unknown"}))}const Y=V.reduce((F,q)=>F+q.width,0),te=Math.max(...V.map(F=>F.height)),ee=(G-1)*R.NODE_SPACING;h={podDimensions:V,groupWidth:de.group.left+de.group.right+Y+ee,groupHeight:de.group.top+de.group.bottom+te}}else{const G=((N=e.spec.zookeeper)==null?void 0:N.replicas)||0,V=e.spec.kafka.replicas;if(G>0){const q=[];for(let U=0;U<G;U++){const oe=`${y}-zookeeper-${U}`,B=i.find(E=>{var J;return((J=E.metadata)==null?void 0:J.name)===oe});q.push(kn({name:"zookeeper",nodeId:U,role:"Metadata",podIP:((z=B==null?void 0:B.status)==null?void 0:z.podIP)||"N/A",phase:((A=B==null?void 0:B.status)==null?void 0:A.phase)||"Unknown"}))}const ne=q.reduce((U,oe)=>U+oe.width,0),Q=Math.max(...q.map(U=>U.height)),j=(G-1)*R.NODE_SPACING;b={podDimensions:q,groupWidth:de.group.left+de.group.right+ne+j,groupHeight:de.group.top+de.group.bottom+Q}}const Y=[];for(let q=0;q<V;q++){const ne=`${y}-kafka-${q}`,Q=i.find(j=>{var U;return((U=j.metadata)==null?void 0:U.name)===ne});Y.push(kn({name:"kafka",nodeId:q,role:"Broker",podIP:((I=Q==null?void 0:Q.status)==null?void 0:I.podIP)||"N/A",phase:((L=Q==null?void 0:Q.status)==null?void 0:L.phase)||"Unknown"}))}const te=Y.reduce((q,ne)=>q+ne.width,0),ee=Math.max(...Y.map(q=>q.height)),F=(V-1)*R.NODE_SPACING;v={podDimensions:Y,groupWidth:de.group.left+de.group.right+te+F,groupHeight:de.group.top+de.group.bottom+ee}}let k=400,C=400,P=0,T=0,K=0;if(t.length>0){let G=0;_.forEach(({dimensions:V})=>{P=Math.max(P,V.poolWidth),K=Math.max(K,V.podSetInnerWidth),G+=V.poolHeight+R.GROUP_SPACING}),k=Math.max(P+R.CLUSTER_HORIZONTAL_MARGIN,R.CLUSTER_MIN_WIDTH),C=R.CLUSTER_LABEL_HEIGHT+R.CLUSTER_VERTICAL_MARGIN_START+G+R.CLUSTER_VERTICAL_MARGIN_END}else if(g&&h)k=Math.max(h.groupWidth+R.CLUSTER_HORIZONTAL_MARGIN,R.CLUSTER_MIN_WIDTH),C=R.CLUSTER_LABEL_HEIGHT+R.CLUSTER_VERTICAL_MARGIN_LEGACY+h.groupHeight+R.CLUSTER_VERTICAL_MARGIN_END;else{const G=(b==null?void 0:b.groupWidth)||0,V=(b==null?void 0:b.groupHeight)||0,Y=(v==null?void 0:v.groupWidth)||0,te=(v==null?void 0:v.groupHeight)||0;T=Math.max(G,Y),k=Math.max(T+R.CLUSTER_HORIZONTAL_MARGIN,R.CLUSTER_MIN_WIDTH),C=R.CLUSTER_LABEL_HEIGHT+R.CLUSTER_VERTICAL_MARGIN_START+(V>0?V+R.GROUP_SPACING:0)+te+R.CLUSTER_VERTICAL_MARGIN_END}const D=k+R.NAMESPACE_PADDING*2,M=C+R.NAMESPACE_PADDING*2+R.NAMESPACE_LABEL_HEIGHT+10;m.push({id:"namespace",type:"group",position:{x:0,y:0},data:{label:""},style:{width:D,height:M,backgroundColor:Ne(l.colors.nodeBackground,R.NAMESPACE_BG_OPACITY),border:`${R.NAMESPACE_BORDER_WIDTH}px solid ${l.colors.nodeBorder}`,borderRadius:"16px",padding:`${R.NAMESPACE_LABEL_HEIGHT+20}px ${R.NAMESPACE_PADDING}px ${R.NAMESPACE_PADDING}px ${R.NAMESPACE_PADDING}px`}}),m.push({id:"namespace-label",type:"default",position:{x:20,y:20},data:{label:c.jsxs("div",{style:{display:"flex",alignItems:"flex-start",gap:"8px"},children:[c.jsx(En,{icon:"mdi:square-rounded-outline",color:"#0baf9e",size:`${R.NAMESPACE_ICON_SIZE}px`}),c.jsxs("div",{style:{display:"flex",flexDirection:"column",lineHeight:"1.3",alignItems:"flex-start"},children:[c.jsx("span",{style:{fontSize:l.typography.fontSize.large,fontWeight:l.typography.fontWeight.bold,fontFamily:l.typography.fontFamily,color:l.colors.nodeText,letterSpacing:l.typography.letterSpacing,whiteSpace:"nowrap"},children:"Namespace"}),c.jsx("span",{style:{fontSize:l.typography.fontSize.medium,fontWeight:l.typography.fontWeight.medium,fontFamily:l.typography.fontFamily,color:l.colors.nodeText,letterSpacing:l.typography.letterSpacing,whiteSpace:"nowrap"},children:w})]})]})},style:{background:"transparent",border:"none",padding:0},parentId:"namespace",draggable:!1,selectable:!1}),m.push({id:"cluster",type:"group",position:{x:R.NAMESPACE_PADDING,y:R.NAMESPACE_LABEL_HEIGHT+20},data:{label:""},style:{width:k,height:C,backgroundColor:Ne(l.colors.nodeBackground,R.CLUSTER_BG_OPACITY),border:`${R.NAMESPACE_BORDER_WIDTH}px solid ${l.colors.nodeBorder}`,borderRadius:"16px",padding:`${R.CLUSTER_LABEL_HEIGHT+20}px 20px 20px 20px`},parentId:"namespace",extent:"parent"}),m.push({id:"cluster-label",type:"default",position:{x:20,y:20},data:{label:c.jsxs("div",{style:{display:"flex",alignItems:"flex-start",gap:"8px"},children:[c.jsx(En,{icon:"mdi:apache-kafka",color:"#0baf9e",size:`${R.CLUSTER_ICON_SIZE}px`}),c.jsxs("div",{style:{display:"flex",flexDirection:"column",lineHeight:"1.3",alignItems:"flex-start"},children:[c.jsx("span",{style:{fontSize:l.typography.fontSize.large,fontWeight:l.typography.fontWeight.bold,fontFamily:l.typography.fontFamily,color:l.colors.nodeText,letterSpacing:l.typography.letterSpacing,whiteSpace:"nowrap"},children:"Kafka"}),c.jsx("span",{style:{fontSize:l.typography.fontSize.medium,fontWeight:l.typography.fontWeight.medium,fontFamily:l.typography.fontFamily,color:l.colors.nodeText,letterSpacing:l.typography.letterSpacing,whiteSpace:"nowrap"},children:y}),t.length===0&&c.jsx("span",{style:{fontSize:l.typography.fontSize.small,fontWeight:l.typography.fontWeight.medium,fontFamily:l.typography.fontFamily,color:l.colors.nodeTextSecondary,letterSpacing:l.typography.letterSpacing,whiteSpace:"nowrap",marginTop:"2px"},children:g?`Replicas: ${e.spec.kafka.replicas}`:`Brokers: ${e.spec.kafka.replicas}, ZooKeeper: ${((X=e.spec.zookeeper)==null?void 0:X.replicas)||0}`}),c.jsx("div",{style:{marginTop:"6px"},children:c.jsx(vs,{ready:x})})]})]})},style:{background:"transparent",border:"none",padding:0},parentId:"cluster",draggable:!1,selectable:!1});const W=R.CLUSTER_LABEL_HEIGHT+R.CLUSTER_VERTICAL_MARGIN_START;if(t.length>0){const G=_.map(Y=>{const te=t.find(ee=>ee.metadata.name===Y.poolName);return{...Y,pool:te}}).sort((Y,te)=>{const ee=Y.pool.spec.roles||[],F=te.pool.spec.roles||[],q=ee.includes("controller"),ne=F.includes("controller"),Q=ee.includes("broker")&&!q,j=F.includes("broker")&&!ne;return q&&!ne?-1:!q&&ne||Q&&!j?1:!Q&&j?-1:0});let V=W;G.forEach(({poolName:Y,podDimensions:te,dimensions:ee,pool:F})=>{var se;const q=F.spec.roles||[],ne=F.spec.replicas,Q=((se=F.status)==null?void 0:se.nodeIds)||Array.from({length:ne},(pe,me)=>me),j=q.includes("controller"),U=q.includes("broker"),oe=j&&U,B=o.find(pe=>pe.metadata.name===`${y}-${Y}`),{podSetInnerHeight:E,poolHeight:J}=ee,ie=R.CLUSTER_HORIZONTAL_MARGIN/2;if(m.push({id:`pool-${Y}`,type:"group",position:{x:ie,y:V},data:{label:""},style:{width:P,height:J,backgroundColor:Ne(l.colors.nodeBackground,R.GROUP_BG_OPACITY),border:`${R.NAMESPACE_BORDER_WIDTH}px solid ${l.colors.nodeBorder}`,borderRadius:"12px",boxShadow:"0 1px 3px 0 rgba(0, 0, 0, 0.1)"},parentId:"cluster",extent:"parent"}),m.push(Bt({id:`pool-label-${Y}`,title:Y,parentId:`pool-${Y}`,theme:l,resourceType:"KafkaNodePool",replicaInfo:`Replicas: ${ne}`})),B){m.push({id:`podset-${Y}`,type:"group",position:{x:de.group.left,y:de.group.top},data:{label:""},style:{width:K,height:E,backgroundColor:Ne(l.colors.nodeBackground,R.GROUP_BG_OPACITY),border:`${R.NAMESPACE_BORDER_WIDTH}px solid ${l.colors.nodeBorder}`,borderRadius:"12px",boxShadow:"0 1px 3px 0 rgba(0, 0, 0, 0.1)"},parentId:`pool-${Y}`,extent:"parent"});const pe=Q.filter(ge=>{const He=`${y}-${Y}-${ge}`,je=i.find(Ye=>{var we;return((we=Ye.metadata)==null?void 0:we.name)===He});return Dt(je)}).length;m.push(Bt({id:`podset-label-${Y}`,title:B.metadata.name,parentId:`podset-${Y}`,theme:l,resourceType:"StrimziPodSet",replicaInfo:`Ready Pods: ${pe}/${Q.length}`}));let me=de.podSet.left;Q.forEach((ge,He)=>{const je=`${y}-${Y}-${ge}`,Ye=i.find(Re=>{var Lt;return((Lt=Re.metadata)==null?void 0:Lt.name)===je}),we=te[He];m.push(In({id:`pod-${Y}-${ge}`,name:Y,nodeId:ge,role:oe?"Controller + Broker":j?"Controller":"Broker",parentId:`podset-${Y}`,position:{x:me,y:de.podSet.top},pod:Ye,theme:l,width:we.width,height:we.height})),me+=we.width+R.NODE_SPACING})}V+=J+R.GROUP_SPACING})}else if(g&&h){const G=e.spec.kafka.replicas,{podDimensions:V,groupWidth:Y,groupHeight:te}=h,ee=(k-Y)/2,F=o.find(q=>q.metadata.name===`${y}-kafka`);if(F){m.push({id:"podset-kafka",type:"group",position:{x:ee,y:W},data:{label:""},style:{width:Y,height:te,backgroundColor:Ne(l.colors.nodeBackground,R.GROUP_BG_OPACITY),border:`${R.NAMESPACE_BORDER_WIDTH}px solid ${l.colors.nodeBorder}`,borderRadius:"12px",boxShadow:"0 1px 3px 0 rgba(0, 0, 0, 0.1)"},parentId:"cluster",extent:"parent"});let q=0;for(let Q=0;Q<G;Q++){const j=`${y}-kafka-${Q}`,U=i.find(oe=>{var B;return((B=oe.metadata)==null?void 0:B.name)===j});Dt(U)&&q++}m.push(Bt({id:"podset-kafka-label",title:F.metadata.name,parentId:"podset-kafka",theme:l,resourceType:"StrimziPodSet",replicaInfo:`Ready Pods: ${q}/${G}`}));let ne=de.group.left;for(let Q=0;Q<G;Q++){const j=`${y}-kafka-${Q}`,U=i.find(B=>{var E;return((E=B.metadata)==null?void 0:E.name)===j}),oe=V[Q];m.push(In({id:`pod-broker-${Q}`,name:"kafka",nodeId:Q,role:"Controller + Broker",parentId:"podset-kafka",position:{x:ne,y:de.group.top},pod:U,theme:l,width:oe.width,height:oe.height})),ne+=oe.width+R.NODE_SPACING}}}else{const G=((O=e.spec.zookeeper)==null?void 0:O.replicas)||0,V=e.spec.kafka.replicas;let Y=W;const te=o.find(F=>F.metadata.name===`${y}-zookeeper`),ee=o.find(F=>F.metadata.name===`${y}-kafka`);if(G>0&&te&&b){const{podDimensions:F,groupHeight:q}=b,ne=(k-T)/2;m.push({id:"podset-zk",type:"group",position:{x:ne,y:Y},data:{label:""},style:{width:T,height:q,backgroundColor:Ne(l.colors.nodeBackground,R.GROUP_BG_OPACITY),border:`${R.NAMESPACE_BORDER_WIDTH}px solid ${l.colors.nodeBorder}`,borderRadius:"12px",boxShadow:"0 1px 3px 0 rgba(0, 0, 0, 0.1)"},parentId:"cluster",extent:"parent"});let Q=0;for(let U=0;U<G;U++){const oe=`${y}-zookeeper-${U}`,B=i.find(E=>{var J;return((J=E.metadata)==null?void 0:J.name)===oe});Dt(B)&&Q++}m.push(Bt({id:"podset-zk-label",title:te.metadata.name,parentId:"podset-zk",theme:l,resourceType:"StrimziPodSet",replicaInfo:`Ready Pods: ${Q}/${G}`}));let j=de.group.left;for(let U=0;U<G;U++){const oe=`${y}-zookeeper-${U}`,B=i.find(J=>{var ie;return((ie=J.metadata)==null?void 0:ie.name)===oe}),E=F[U];m.push(In({id:`pod-zk-${U}`,name:"zookeeper",nodeId:U,role:"Metadata",parentId:"podset-zk",position:{x:j,y:de.group.top},pod:B,theme:l,width:E.width,height:E.height})),j+=E.width+R.NODE_SPACING}Y+=q+R.GROUP_SPACING}if(ee&&v){const{podDimensions:F,groupHeight:q}=v,ne=(k-T)/2;m.push({id:"podset-kafka",type:"group",position:{x:ne,y:Y},data:{label:""},style:{width:T,height:q,backgroundColor:Ne(l.colors.nodeBackground,R.GROUP_BG_OPACITY),border:`${R.NAMESPACE_BORDER_WIDTH}px solid ${l.colors.nodeBorder}`,borderRadius:"12px",boxShadow:"0 1px 3px 0 rgba(0, 0, 0, 0.1)"},parentId:"cluster",extent:"parent"});let Q=0;for(let U=0;U<V;U++){const oe=`${y}-kafka-${U}`,B=i.find(E=>{var J;return((J=E.metadata)==null?void 0:J.name)===oe});Dt(B)&&Q++}m.push(Bt({id:"podset-kafka-label",title:ee.metadata.name,parentId:"podset-kafka",theme:l,resourceType:"StrimziPodSet",replicaInfo:`Ready Pods: ${Q}/${V}`}));let j=de.group.left;for(let U=0;U<V;U++){const oe=`${y}-kafka-${U}`,B=i.find(J=>{var ie;return((ie=J.metadata)==null?void 0:ie.name)===oe}),E=F[U];m.push(In({id:`pod-broker-${U}`,name:"kafka",nodeId:U,role:"Broker",parentId:"podset-kafka",position:{x:j,y:de.group.top},pod:B,theme:l,width:E.width,height:E.height})),j+=E.width+R.NODE_SPACING}}}p(m)},[e,g,t,o,i,a,x,f,l]),a?c.jsx("div",{style:{width:"100%",height:"calc(100vh - 250px)",display:"flex",alignItems:"center",justifyContent:"center",backgroundColor:l.colors.canvasBackground,fontFamily:l.typography.fontFamily},children:c.jsx("div",{style:{fontSize:l.typography.fontSize.large,color:l.colors.nodeTextSecondary,fontWeight:l.typography.fontWeight.bold},children:"Loading topology..."})}):c.jsxs("div",{style:{width:"100%",height:"calc(100vh - 250px)",backgroundColor:l.colors.canvasBackground,borderRadius:"12px",overflow:"hidden",boxShadow:l.colors.nodeShadow},children:[c.jsx("style",{children:`
25
+ /* Hide ReactFlow default controls background */
26
+ .react-flow__controls {
27
+ background: transparent !important;
28
+ border: none !important;
29
+ box-shadow: none !important;
30
+ }
31
+
32
+ /* Hide connection handles */
33
+ .react-flow__handle {
34
+ opacity: 0 !important;
35
+ }
36
+
37
+ /* ReactFlow attribution badge - theme aware */
38
+ .react-flow__attribution {
39
+ background: ${l.colors.controlsBg} !important;
40
+ color: ${l.colors.controlsText} !important;
41
+ border: 1px solid ${l.colors.controlsBorder} !important;
42
+ padding: 2px 6px !important;
43
+ border-radius: 4px !important;
44
+ font-size: 10px !important;
45
+ opacity: 0.8 !important;
46
+ }
47
+
48
+ .react-flow__attribution a {
49
+ color: ${l.colors.controlsText} !important;
50
+ text-decoration: none !important;
51
+ }
52
+
53
+ .react-flow__attribution:hover {
54
+ opacity: 1 !important;
55
+ }
56
+ `}),c.jsxs(sp,{nodes:u,edges:[],nodesFocusable:!1,fitView:!0,fitViewOptions:{padding:.2,includeHiddenNodes:!1},minZoom:.1,maxZoom:2,panOnScroll:!0,children:[c.jsx(up,{color:l.colors.gridColor,gap:R.GRID_GAP,size:R.GRID_SIZE}),c.jsx(xp,{showInteractive:!1,showFitView:!1,showZoom:!1,children:c.jsx(Lp,{})})]})]})}function Op({kafka:e}){return c.jsx(ms,{children:c.jsx(Hp,{kafka:e})})}function Fp({kafka:e,open:t,onClose:n}){const o=et.useTheme(),r=o.palette.mode==="dark";return!e||!t?null:c.jsx("div",{style:{position:"fixed",top:0,left:0,right:0,bottom:0,backgroundColor:r?"rgba(0, 0, 0, 0.75)":"rgba(0, 0, 0, 0.5)",zIndex:9999,display:"flex",alignItems:"center",justifyContent:"center",padding:"20px"},onClick:n,children:c.jsxs("div",{style:{backgroundColor:o.palette.background.paper,borderRadius:"12px",width:"95vw",maxWidth:"1600px",height:"90vh",display:"flex",flexDirection:"column",boxShadow:r?"0 20px 25px -5px rgba(0, 0, 0, 0.5), 0 10px 10px -5px rgba(0, 0, 0, 0.3)":"0 20px 25px -5px rgba(0, 0, 0, 0.2), 0 10px 10px -5px rgba(0, 0, 0, 0.1)"},onClick:i=>i.stopPropagation(),children:[c.jsxs("div",{style:{padding:"20px 24px",borderBottom:`1px solid ${o.palette.divider}`,display:"flex",justifyContent:"space-between",alignItems:"center"},children:[c.jsxs("div",{children:[c.jsx("div",{style:{fontSize:"20px",fontWeight:700,color:o.palette.text.primary},children:e.metadata.name}),c.jsxs("div",{style:{fontSize:"14px",fontWeight:400,color:o.palette.text.secondary,marginTop:"4px"},children:[e.metadata.namespace," • Cluster Topology"]})]}),c.jsx("button",{onClick:n,style:{width:"32px",height:"32px",borderRadius:"6px",border:"none",backgroundColor:r?"#334155":"#e2e8f0",color:o.palette.text.secondary,cursor:"pointer",fontSize:"20px",display:"flex",alignItems:"center",justifyContent:"center",transition:"all 0.2s"},onMouseEnter:i=>{i.currentTarget.style.backgroundColor=r?"#475569":"#cbd5e1",i.currentTarget.style.color=o.palette.text.primary},onMouseLeave:i=>{i.currentTarget.style.backgroundColor=r?"#334155":"#e2e8f0",i.currentTarget.style.color=o.palette.text.secondary},children:"×"})]}),c.jsx("div",{style:{flex:1,overflow:"auto",padding:"24px",backgroundColor:o.palette.background.default},children:c.jsx(Op,{kafka:e})})]})})}function Ie(e){if(e instanceof Error)return e.message;if(typeof e=="string")return e;if(e&&typeof e=="object"&&"message"in e){const t=e.message;if(typeof t=="string")return t}return"An unknown error occurred"}function vo({toast:e,onClose:t}){const n=Oe(),[o,r]=Z.default.useState(!1),[i,s]=Z.default.useState(!1);Z.default.useEffect(()=>{if(e){r(!0),s(!1);const p=e.duration||4e3,l=setTimeout(()=>{a()},p);return()=>clearTimeout(l)}else r(!1)},[e]);const a=()=>{s(!0),setTimeout(()=>{r(!1),s(!1),t()},300)};if(!e||!o)return null;const d=()=>{switch(e.type){case"success":return n.text==="#e0e0e0"?"#2e7d32":"#4caf50";case"error":return n.text==="#e0e0e0"?"#c62828":"#f44336";case"info":return n.text==="#e0e0e0"?"#1565c0":"#2196f3";default:return n.background}},u=()=>{switch(e.type){case"success":return"✓";case"error":return"✕";case"info":return"ℹ";default:return""}};return c.jsxs("div",{style:{position:"fixed",bottom:"24px",right:"24px",zIndex:9999,maxWidth:"400px",minWidth:"300px",opacity:i?0:1,transform:i?"translateY(20px)":"translateY(0)",transition:"opacity 300ms ease-out, transform 300ms ease-out",animation:i?"none":"slideInUp 300ms ease-out"},children:[c.jsxs("div",{style:{backgroundColor:d(),color:"#ffffff",padding:"14px 20px",borderRadius:"8px",boxShadow:"0 4px 12px rgba(0, 0, 0, 0.3)",display:"flex",alignItems:"center",gap:"12px"},children:[c.jsx("div",{style:{fontSize:"20px",fontWeight:"bold",flexShrink:0,width:"24px",height:"24px",display:"flex",alignItems:"center",justifyContent:"center",backgroundColor:"rgba(255, 255, 255, 0.2)",borderRadius:"50%"},children:u()}),c.jsx("div",{style:{flex:1,fontSize:"14px",lineHeight:"1.4",wordBreak:"break-word"},children:e.message}),c.jsx("button",{onClick:a,style:{background:"none",border:"none",color:"#ffffff",cursor:"pointer",fontSize:"18px",padding:"4px",marginLeft:"8px",opacity:.8,transition:"opacity 0.2s",flexShrink:0},onMouseEnter:p=>{p.currentTarget.style.opacity="1"},onMouseLeave:p=>{p.currentTarget.style.opacity="0.8"},"aria-label":"Close notification",children:"✕"})]}),c.jsx("style",{children:`
57
+ @keyframes slideInUp {
58
+ from {
59
+ opacity: 0;
60
+ transform: translateY(20px);
61
+ }
62
+ to {
63
+ opacity: 1;
64
+ transform: translateY(0);
65
+ }
66
+ }
67
+ `})]})}function Wp(){const e=et.useTheme(),[t,n]=Z.default.useState([]),[o,r]=Z.default.useState([]),[i,s]=Z.default.useState(null),[a,d]=Z.default.useState(""),[u,p]=Z.default.useState("all"),[l,f]=Z.default.useState("all"),[g,x]=Z.default.useState("all"),[y,w]=Z.default.useState(null),[m,_]=Z.default.useState(!1),h=Z.default.useCallback(()=>{le.ApiProxy.request("/apis/kafka.strimzi.io/v1beta2/kafkas").then(T=>{n(T.items)}).catch(T=>{const K=Ie(T);K==="Not Found"||K.includes("404")?s({message:"Strimzi is not installed in this cluster. Please install the Strimzi operator first.",type:"error",duration:6e3}):s({message:K,type:"error"})})},[]),b=Z.default.useCallback(()=>{le.ApiProxy.request("/apis/kafka.strimzi.io/v1beta2/kafkanodepools").then(T=>{r(T.items)}).catch(()=>{r([])})},[]);Z.default.useEffect(()=>{h(),b();const T=setInterval(()=>{h(),b()},5e3);return()=>clearInterval(T)},[h,b]);const v=Z.default.useMemo(()=>[...new Set(t.map(T=>T.metadata.namespace))].sort(),[t]),k=Z.default.useMemo(()=>[{value:"all",label:"All"},...v.map(T=>({value:T,label:T}))],[v]),C=Z.default.useMemo(()=>t.filter(T=>{const K=a.toLowerCase();if(!(a===""||T.metadata.name.toLowerCase().includes(K)||T.metadata.namespace.toLowerCase().includes(K))||u!=="all"&&T.metadata.namespace!==u)return!1;if(l!=="all"){const M=ko(T);if(l==="kraft"&&M!=="KRaft"||l==="zookeeper"&&M!=="ZooKeeper")return!1}if(g!=="all"){const M=Eo(T);if(g==="ready"&&!M||g==="not-ready"&&M)return!1}return!0}),[t,a,u,l,g]),P=T=>{var I,L,X,O;const K=T.metadata.name,D=T.metadata.namespace,M=(L=(I=T.spec)==null?void 0:I.kafka)==null?void 0:L.replicas,W=(O=(X=T.spec)==null?void 0:X.zookeeper)==null?void 0:O.replicas;if(W!==void 0)return`${W} Zookeeper / ${M} Kafka`;if(M!==void 0)return M.toString();const S=o.filter(G=>{var V;return G.metadata.namespace===D&&((V=G.metadata.labels)==null?void 0:V["strimzi.io/cluster"])===K});if(S.length===0)return"N/A";let $=0,N=0,z=0;S.forEach(G=>{const V=G.spec.roles||[],Y=G.spec.replicas,te=V.includes("controller"),ee=V.includes("broker");te&&ee?z+=Y:te?$+=Y:ee&&(N+=Y)});const A=[];return $>0&&A.push(`${$} Controller`),N>0&&A.push(`${N} Broker`),z>0&&A.push(`${z} Dual`),A.length>0?A.join(" / "):"N/A"};return c.jsxs("div",{style:{padding:"20px"},children:[c.jsx("h1",{children:"Kafka Clusters"}),c.jsx("p",{children:"Strimzi Kafka clusters with KRaft and ZooKeeper support"}),c.jsx(Tn,{searchTerm:a,onSearchChange:d,placeholder:"Search clusters by name or namespace...",resultCount:C.length,totalCount:t.length,children:c.jsxs("div",{style:{display:"grid",gridTemplateColumns:v.length>0?"1fr 1fr 1fr":"1fr 1fr",gap:"15px"},children:[v.length>0&&c.jsx(ve,{label:"Namespace",children:c.jsx(Pe,{value:u,onChange:p,options:k})}),c.jsx(ve,{label:"Mode",children:c.jsx(Pe,{value:l,onChange:f,options:[{value:"all",label:"All"},{value:"kraft",label:"KRaft"},{value:"zookeeper",label:"ZooKeeper"}]})}),c.jsx(ve,{label:"Status",children:c.jsx(Pe,{value:g,onChange:x,options:[{value:"all",label:"All"},{value:"ready",label:"Ready"},{value:"not-ready",label:"Not Ready"}]})})]})}),C.length===0?c.jsx("p",{style:{textAlign:"center",color:e.palette.text.secondary,padding:"40px"},children:t.length===0?"No Kafka clusters found":"No clusters match your search criteria"}):c.jsxs("table",{style:{width:"100%",borderCollapse:"collapse",marginTop:"20px"},children:[c.jsx("thead",{children:c.jsxs("tr",{style:{borderBottom:"2px solid #ddd",textAlign:"left"},children:[c.jsx("th",{style:{padding:"12px"},children:"Name"}),c.jsx("th",{style:{padding:"12px"},children:"Namespace"}),c.jsx("th",{style:{padding:"12px"},children:"Mode"}),c.jsx("th",{style:{padding:"12px"},children:"Version"}),c.jsx("th",{style:{padding:"12px"},children:"Replicas"}),c.jsx("th",{style:{padding:"12px"},children:"Status"})]})}),c.jsx("tbody",{children:C.map(T=>{const K=ko(T),D=Eo(T),M=P(T);return c.jsxs("tr",{style:{borderBottom:"1px solid #eee"},children:[c.jsx("td",{style:{padding:"12px"},children:c.jsx(ce.Link,{component:"button",variant:"body2",onClick:()=>{w(T),_(!0)},sx:{textAlign:"left",fontWeight:500},children:T.metadata.name})}),c.jsx("td",{style:{padding:"12px"},children:T.metadata.namespace}),c.jsx("td",{style:{padding:"12px"},children:c.jsx(ce.Chip,{label:K,variant:e.palette.mode==="dark"?"outlined":"filled",size:"medium",color:"info",sx:{borderRadius:"4px",...e.palette.mode==="dark"&&{borderColor:"#60a5fa",color:"#60a5fa",backgroundColor:"rgba(96, 165, 250, 0.15)"}}})}),c.jsx("td",{style:{padding:"12px"},children:T.spec.kafka.version||"N/A"}),c.jsx("td",{style:{padding:"12px"},children:M}),c.jsx("td",{style:{padding:"12px"},children:c.jsx(ce.Chip,{label:D?"Ready":"Not Ready",variant:e.palette.mode==="dark"?"outlined":"filled",size:"medium",color:D?"success":"warning",sx:{borderRadius:"4px",...e.palette.mode==="dark"&&D&&{borderColor:"#34d399",color:"#34d399",backgroundColor:"rgba(52, 211, 153, 0.15)"},...e.palette.mode==="dark"&&!D&&{borderColor:"#f87171",color:"#f87171",backgroundColor:"rgba(248, 113, 113, 0.15)"}}})})]},`${T.metadata.namespace}/${T.metadata.name}`)})})]}),c.jsx(Fp,{kafka:y,open:m,onClose:()=>{_(!1),w(null)}}),c.jsx(vo,{toast:i,onClose:()=>s(null)})]})}function Vp(){const e=et.useTheme(),[t,n]=Z.default.useState([]),[o,r]=Z.default.useState([]),[i,s]=Z.default.useState(null),[a,d]=Z.default.useState(!1),[u,p]=Z.default.useState(!1),[l,f]=Z.default.useState(!1),[g,x]=Z.default.useState(null),[y,w]=Z.default.useState(null),[m,_]=Z.default.useState({name:"",namespace:"",cluster:"",partitions:3,replicas:3}),[h,b]=Z.default.useState(!1),v=Oe(),[k,C]=Z.default.useState(""),[P,T]=Z.default.useState("all"),[K,D]=Z.default.useState("all"),[M,W]=Z.default.useState(""),[S,$]=Z.default.useState(""),[N,z]=Z.default.useState(""),[A,I]=Z.default.useState(""),L=Z.default.useCallback(()=>{le.ApiProxy.request("/apis/kafka.strimzi.io/v1beta2/kafkatopics").then(B=>{n(B.items)}).catch(B=>{const E=Ie(B);E==="Not Found"||E.includes("404")?s({message:"Strimzi is not installed in this cluster. Please install the Strimzi operator first.",type:"error",duration:6e3}):s({message:E,type:"error"})})},[]),X=Z.default.useCallback(()=>{le.ApiProxy.request("/apis/kafka.strimzi.io/v1beta2/kafkas").then(B=>{r(B.items)}).catch(B=>{const E=Ie(B);!E.includes("404")&&E!=="Not Found"&&console.error("Failed to fetch Kafka clusters:",E)})},[]);Z.default.useEffect(()=>{L(),X();const B=setInterval(()=>{L(),X()},5e3);return()=>clearInterval(B)},[L,X]);const O=Z.default.useMemo(()=>[...new Set(t.map(B=>B.metadata.namespace))].sort(),[t]),G=Z.default.useMemo(()=>[{value:"all",label:"All"},...O.map(B=>({value:B,label:B}))],[O]),V=Z.default.useMemo(()=>[...new Set(o.map(B=>B.metadata.namespace))].sort(),[o]),Y=Z.default.useMemo(()=>o.map(B=>B.metadata.name).sort(),[o]),te=Z.default.useMemo(()=>m.namespace?o.filter(B=>B.metadata.namespace===m.namespace).map(B=>B.metadata.name).sort():[],[o,m.namespace]),ee=Z.default.useMemo(()=>t.filter(B=>{const E=k.toLowerCase();if(!(k===""||B.metadata.name.toLowerCase().includes(E)||B.metadata.namespace.toLowerCase().includes(E))||P!=="all"&&B.metadata.namespace!==P)return!1;if(K!=="all"){const pe=No(B);if(K==="ready"&&!pe||K==="not-ready"&&pe)return!1}const ie=B.spec.partitions||0;if(M!==""&&ie<M||S!==""&&ie>S)return!1;const se=B.spec.replicas||0;return!(N!==""&&se<N||A!==""&&se>A)}),[t,k,P,K,M,S,N,A]),F=async()=>{b(!0);try{const B={apiVersion:"kafka.strimzi.io/v1beta2",kind:"KafkaTopic",metadata:{name:m.name,namespace:m.namespace,labels:{"strimzi.io/cluster":m.cluster}},spec:{partitions:m.partitions,replicas:m.replicas,config:{...m.retentionMs&&{"retention.ms":m.retentionMs.toString()},...m.compressionType&&{"compression.type":m.compressionType},...m.minInSyncReplicas&&{"min.insync.replicas":m.minInSyncReplicas.toString()}}}};await le.ApiProxy.request(`/apis/kafka.strimzi.io/v1beta2/namespaces/${m.namespace}/kafkatopics`,{method:"POST",body:JSON.stringify(B),headers:{"Content-Type":"application/json"}}),d(!1),_({name:"",namespace:V.length>0?V[0]:"",cluster:Y.length>0?Y[0]:"",partitions:3,replicas:3}),s({message:`Topic "${m.name}" created successfully`,type:"success"}),L()}catch(B){s({message:Ie(B)||"Failed to create topic",type:"error"})}finally{b(!1)}},q=async()=>{if(g){b(!0);try{const B={...g,spec:{...g.spec,partitions:m.partitions,replicas:m.replicas,config:{...g.spec.config,...m.retentionMs&&{"retention.ms":m.retentionMs.toString()},...m.compressionType&&{"compression.type":m.compressionType},...m.minInSyncReplicas&&{"min.insync.replicas":m.minInSyncReplicas.toString()}}}};await le.ApiProxy.request(`/apis/kafka.strimzi.io/v1beta2/namespaces/${g.metadata.namespace}/kafkatopics/${g.metadata.name}`,{method:"PUT",body:JSON.stringify(B),headers:{"Content-Type":"application/json"}}),p(!1),x(null),s({message:`Topic "${g==null?void 0:g.metadata.name}" updated successfully`,type:"success"}),L()}catch(B){s({message:Ie(B)||"Failed to update topic",type:"error"})}finally{b(!1)}}},ne=B=>{w(B),f(!0)},Q=async()=>{if(y){f(!1);try{await le.ApiProxy.request(`/apis/kafka.strimzi.io/v1beta2/namespaces/${y.metadata.namespace}/kafkatopics/${y.metadata.name}`,{method:"DELETE"}),s({message:`Topic "${y.metadata.name}" deleted successfully`,type:"success"}),L()}catch(B){s({message:Ie(B)||"Failed to delete topic",type:"error"})}finally{w(null)}}},j=()=>{f(!1),w(null)},U=B=>{var E,J,ie,se;x(B),_({name:B.metadata.name,namespace:B.metadata.namespace,cluster:((E=B.metadata.labels)==null?void 0:E["strimzi.io/cluster"])||"my-cluster",partitions:B.spec.partitions||3,replicas:B.spec.replicas||3,retentionMs:(J=B.spec.config)!=null&&J["retention.ms"]?parseInt(B.spec.config["retention.ms"]):void 0,compressionType:(ie=B.spec.config)==null?void 0:ie["compression.type"],minInSyncReplicas:(se=B.spec.config)!=null&&se["min.insync.replicas"]?parseInt(B.spec.config["min.insync.replicas"]):void 0}),p(!0)},oe=B=>!a&&!B||!u&&B?null:c.jsx("div",{style:{position:"fixed",top:0,left:0,right:0,bottom:0,backgroundColor:v.overlay,display:"flex",alignItems:"center",justifyContent:"center",zIndex:1e3},children:c.jsxs("div",{style:{backgroundColor:v.background,color:v.text,padding:"24px",borderRadius:"8px",minWidth:"500px",maxHeight:"80vh",overflow:"auto"},children:[c.jsx("h2",{style:{color:v.text},children:B?"Edit Topic":"Create New Topic"}),c.jsxs("div",{style:{marginBottom:"16px"},children:[c.jsx("label",{style:{display:"block",marginBottom:"4px",fontWeight:"bold",color:v.text},children:"Name"}),c.jsx("input",{type:"text",value:m.name,disabled:B,onChange:E=>_({...m,name:E.target.value}),style:{width:"100%",padding:"8px",border:`1px solid ${v.inputBorder}`,borderRadius:"4px",backgroundColor:v.inputBg,color:v.text}})]}),c.jsxs("div",{style:{marginBottom:"16px"},children:[c.jsx("label",{style:{display:"block",marginBottom:"4px",fontWeight:"bold",color:v.text},children:"Namespace"}),B?c.jsx("input",{type:"text",value:m.namespace,disabled:!0,style:{width:"100%",padding:"8px",border:`1px solid ${v.inputBorder}`,borderRadius:"4px",backgroundColor:v.inputBg,color:v.text}}):c.jsx("select",{value:m.namespace,onChange:E=>{const J=E.target.value,ie=o.filter(se=>se.metadata.namespace===J).map(se=>se.metadata.name).sort();_({...m,namespace:J,cluster:ie.length>0?ie[0]:""})},style:{width:"100%",padding:"8px",border:`1px solid ${v.inputBorder}`,borderRadius:"4px",backgroundColor:v.inputBg,color:v.text,cursor:"pointer"},children:V.length===0?c.jsx("option",{value:"",children:"No namespaces available"}):V.map(E=>c.jsx("option",{value:E,children:E},E))})]}),c.jsxs("div",{style:{marginBottom:"16px"},children:[c.jsx("label",{style:{display:"block",marginBottom:"4px",fontWeight:"bold",color:v.text},children:"Cluster"}),B?c.jsx("input",{type:"text",value:m.cluster,disabled:!0,style:{width:"100%",padding:"8px",border:`1px solid ${v.inputBorder}`,borderRadius:"4px",backgroundColor:v.inputBg,color:v.text}}):c.jsx("select",{value:m.cluster,onChange:E=>_({...m,cluster:E.target.value}),style:{width:"100%",padding:"8px",border:`1px solid ${v.inputBorder}`,borderRadius:"4px",backgroundColor:v.inputBg,color:v.text,cursor:"pointer"},children:te.length===0?c.jsx("option",{value:"",children:"No clusters available in this namespace"}):te.map(E=>c.jsx("option",{value:E,children:E},E))})]}),c.jsxs("div",{style:{marginBottom:"16px"},children:[c.jsx("label",{style:{display:"block",marginBottom:"4px",fontWeight:"bold",color:v.text},children:"Partitions"}),c.jsx("input",{type:"number",value:m.partitions,onChange:E=>_({...m,partitions:parseInt(E.target.value)}),style:{width:"100%",padding:"8px",border:`1px solid ${v.inputBorder}`,borderRadius:"4px",backgroundColor:v.inputBg,color:v.text}})]}),c.jsxs("div",{style:{marginBottom:"16px"},children:[c.jsx("label",{style:{display:"block",marginBottom:"4px",fontWeight:"bold",color:v.text},children:"Replicas"}),c.jsx("input",{type:"number",value:m.replicas,onChange:E=>_({...m,replicas:parseInt(E.target.value)}),style:{width:"100%",padding:"8px",border:`1px solid ${v.inputBorder}`,borderRadius:"4px",backgroundColor:v.inputBg,color:v.text}})]}),c.jsxs("div",{style:{marginBottom:"16px"},children:[c.jsx("label",{style:{display:"block",marginBottom:"4px",fontWeight:"bold",color:v.text},children:"Retention (ms)"}),c.jsx("input",{type:"number",value:m.retentionMs||"",placeholder:"Optional, e.g., 604800000 (7 days)",onChange:E=>_({...m,retentionMs:E.target.value?parseInt(E.target.value):void 0}),style:{width:"100%",padding:"8px",border:`1px solid ${v.inputBorder}`,borderRadius:"4px",backgroundColor:v.inputBg,color:v.text}})]}),c.jsxs("div",{style:{marginBottom:"16px"},children:[c.jsx("label",{style:{display:"block",marginBottom:"4px",fontWeight:"bold",color:v.text},children:"Compression Type"}),c.jsxs("select",{value:m.compressionType||"",onChange:E=>_({...m,compressionType:E.target.value||void 0}),style:{width:"100%",padding:"8px",border:`1px solid ${v.inputBorder}`,borderRadius:"4px",backgroundColor:v.inputBg,color:v.text},children:[c.jsx("option",{value:"",children:"None"}),c.jsx("option",{value:"gzip",children:"gzip"}),c.jsx("option",{value:"snappy",children:"snappy"}),c.jsx("option",{value:"lz4",children:"lz4"}),c.jsx("option",{value:"zstd",children:"zstd"}),c.jsx("option",{value:"producer",children:"producer"})]})]}),c.jsxs("div",{style:{marginBottom:"24px"},children:[c.jsx("label",{style:{display:"block",marginBottom:"4px",fontWeight:"bold",color:v.text},children:"Min In-Sync Replicas"}),c.jsx("input",{type:"number",value:m.minInSyncReplicas||"",placeholder:"Optional, e.g., 2",onChange:E=>_({...m,minInSyncReplicas:E.target.value?parseInt(E.target.value):void 0}),style:{width:"100%",padding:"8px",border:`1px solid ${v.inputBorder}`,borderRadius:"4px",backgroundColor:v.inputBg,color:v.text}})]}),c.jsxs("div",{style:{display:"flex",gap:"12px",justifyContent:"flex-end"},children:[c.jsx("button",{onClick:()=>{B?p(!1):d(!1),x(null)},disabled:h,style:{padding:"8px 16px",border:`1px solid ${v.border}`,borderRadius:"4px",backgroundColor:v.inputBg,color:v.text,cursor:h?"not-allowed":"pointer"},children:"Cancel"}),c.jsx("button",{onClick:B?q:F,disabled:h||!m.name,style:{padding:"8px 16px",border:"none",borderRadius:"4px",backgroundColor:e.palette.primary.main,color:e.palette.common.white,cursor:h||!m.name?"not-allowed":"pointer",opacity:h||!m.name?.5:1},children:h?"Saving...":B?"Update":"Create"})]})]})});return c.jsxs("div",{style:{padding:"20px"},children:[c.jsxs("div",{style:{display:"flex",justifyContent:"space-between",alignItems:"center",marginBottom:"20px"},children:[c.jsxs("div",{children:[c.jsx("h1",{style:{margin:0},children:"Kafka Topics"}),c.jsx("p",{style:{margin:"8px 0 0 0",color:e.palette.text.secondary},children:"Strimzi Kafka topics"})]}),c.jsx(ce.Button,{onClick:()=>{_({name:"",namespace:V.length>0?V[0]:"",cluster:Y.length>0?Y[0]:"",partitions:3,replicas:3}),d(!0)},variant:"contained",color:"primary",size:"medium",children:"+ Create Topic"})]}),c.jsx(Tn,{searchTerm:k,onSearchChange:C,placeholder:"Search topics by name or namespace...",resultCount:ee.length,totalCount:t.length,children:c.jsxs("div",{style:{display:"grid",gridTemplateColumns:"1fr 1fr",gap:"15px"},children:[O.length>0&&c.jsx(ve,{label:"Namespace",children:c.jsx(Pe,{value:P,onChange:T,options:G})}),c.jsx(ve,{label:"Status",children:c.jsx(Pe,{value:K,onChange:D,options:[{value:"all",label:"All"},{value:"ready",label:"Ready"},{value:"not-ready",label:"Not Ready"}]})}),c.jsx(ve,{label:"Partitions",children:c.jsx(Ao,{minValue:M,maxValue:S,onMinChange:W,onMaxChange:$,minPlaceholder:"Min partitions",maxPlaceholder:"Max partitions"})}),c.jsx(ve,{label:"Replicas",children:c.jsx(Ao,{minValue:N,maxValue:A,onMinChange:z,onMaxChange:I,minPlaceholder:"Min replicas",maxPlaceholder:"Max replicas"})})]})}),ee.length===0?c.jsx("p",{style:{textAlign:"center",color:e.palette.text.secondary,padding:"40px"},children:t.length===0?"No Kafka topics found":"No topics match your search criteria"}):c.jsxs("table",{style:{width:"100%",borderCollapse:"collapse",marginTop:"20px"},children:[c.jsx("thead",{children:c.jsxs("tr",{style:{borderBottom:"2px solid #ddd",textAlign:"left"},children:[c.jsx("th",{style:{padding:"12px"},children:"Name"}),c.jsx("th",{style:{padding:"12px"},children:"Namespace"}),c.jsx("th",{style:{padding:"12px"},children:"Partitions"}),c.jsx("th",{style:{padding:"12px"},children:"Replicas"}),c.jsx("th",{style:{padding:"12px"},children:"Status"}),c.jsx("th",{style:{padding:"12px"},children:"Actions"})]})}),c.jsx("tbody",{children:ee.map(B=>{const E=No(B);return c.jsxs("tr",{style:{borderBottom:"1px solid #eee"},children:[c.jsx("td",{style:{padding:"12px"},children:B.metadata.name}),c.jsx("td",{style:{padding:"12px"},children:B.metadata.namespace}),c.jsx("td",{style:{padding:"12px"},children:B.spec.partitions||"N/A"}),c.jsx("td",{style:{padding:"12px"},children:B.spec.replicas||"N/A"}),c.jsx("td",{style:{padding:"12px"},children:c.jsx(ce.Chip,{label:E?"Ready":"Not Ready",variant:e.palette.mode==="dark"?"outlined":"filled",size:"medium",color:E?"success":"warning",sx:{borderRadius:"4px",...e.palette.mode==="dark"&&E&&{borderColor:"#34d399",color:"#34d399",backgroundColor:"rgba(52, 211, 153, 0.15)"},...e.palette.mode==="dark"&&!E&&{borderColor:"#f87171",color:"#f87171",backgroundColor:"rgba(248, 113, 113, 0.15)"}}})}),c.jsxs("td",{style:{padding:"12px"},children:[c.jsx(ce.Button,{onClick:()=>U(B),variant:"contained",color:"primary",size:"small",sx:{marginRight:1},children:"Edit"}),c.jsx(ce.Button,{onClick:()=>ne(B),variant:"contained",color:"error",size:"small",children:"Delete"})]})]},`${B.metadata.namespace}/${B.metadata.name}`)})})]}),oe(!1),oe(!0),c.jsxs(ce.Dialog,{open:l,onClose:j,"aria-labelledby":"delete-dialog-title","aria-describedby":"delete-dialog-description",children:[c.jsx(ce.DialogTitle,{id:"delete-dialog-title",children:"Delete Topic"}),c.jsx(ce.DialogContent,{children:c.jsxs(ce.DialogContentText,{id:"delete-dialog-description",children:["Are you sure you want to delete topic ",c.jsx("strong",{children:y==null?void 0:y.metadata.name}),"? This action cannot be undone."]})}),c.jsxs(ce.DialogActions,{children:[c.jsx(ce.Button,{onClick:j,children:"Cancel"}),c.jsx(ce.Button,{onClick:Q,color:"error",variant:"contained",autoFocus:!0,children:"Delete"})]})]}),c.jsx(vo,{toast:i,onClose:()=>s(null)})]})}function Gp({secretValue:e,secretType:t,resourceName:n,isOpen:o,onClose:r}){const i=Oe(),[s,a]=Z.default.useState(!1),[d,u]=Z.default.useState(!1);if(Z.default.useEffect(()=>{o&&(a(!1),u(!1))},[o]),!o)return null;const p=()=>{navigator.clipboard.writeText(e).then(()=>{u(!0),setTimeout(()=>u(!1),2e3)})},l=()=>{a(!1),u(!1),r()};return s?c.jsx("div",{style:{position:"fixed",top:0,left:0,right:0,bottom:0,backgroundColor:i.overlay,display:"flex",alignItems:"center",justifyContent:"center",zIndex:1e3},onClick:l,children:c.jsxs("div",{style:{backgroundColor:i.background,color:i.text,padding:"24px",borderRadius:"8px",minWidth:"600px",maxWidth:"800px",maxHeight:"80vh",overflow:"auto",border:"2px solid #f44336"},onClick:f=>f.stopPropagation(),children:[c.jsxs("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",marginBottom:"16px"},children:[c.jsxs("div",{style:{display:"flex",alignItems:"center",gap:"12px"},children:[c.jsx("span",{style:{fontSize:"24px"},children:"🔐"}),c.jsx("h2",{style:{margin:0},children:"Sensitive Credentials"})]}),c.jsx("span",{style:{padding:"4px 12px",backgroundColor:"#f44336",color:"white",borderRadius:"4px",fontSize:"12px",fontWeight:"600"},children:"CONFIDENTIAL"})]}),c.jsxs("div",{style:{marginBottom:"16px"},children:[c.jsx("p",{style:{margin:"0 0 4px 0",fontSize:"14px",color:i.textSecondary},children:"Resource:"}),c.jsx("p",{style:{margin:"0",fontFamily:"monospace",fontSize:"14px",fontWeight:"600"},children:n})]}),c.jsxs("div",{style:{marginTop:"16px"},children:[c.jsxs("div",{style:{display:"flex",justifyContent:"space-between",alignItems:"center",marginBottom:"8px"},children:[c.jsx("label",{style:{fontWeight:"bold",fontSize:"14px"},children:t==="password"?"Password":"Certificate & Private Key"}),c.jsx("button",{onClick:p,style:{padding:"6px 12px",backgroundColor:d?"#4caf50":i.inputBg,color:d?"white":i.text,border:`1px solid ${i.inputBorder}`,borderRadius:"4px",cursor:"pointer",fontSize:"12px"},children:d?"✓ Copied!":"📋 Copy"})]}),c.jsx("textarea",{readOnly:!0,value:e,style:{width:"100%",minHeight:t==="certificate"?"300px":"100px",padding:"12px",border:"2px solid #f44336",borderRadius:"4px",backgroundColor:i.inputBg,color:i.text,fontFamily:"monospace",fontSize:"12px",resize:"vertical"}})]}),c.jsxs("div",{style:{marginTop:"16px",padding:"12px",backgroundColor:"#fff3cd",border:"1px solid #ffc107",borderRadius:"4px",fontSize:"12px",color:"#856404"},children:[c.jsx("strong",{children:"⚠️ Remember:"})," Close this window immediately after use. Do not share these credentials via insecure channels."]}),c.jsx("div",{style:{marginTop:"20px",display:"flex",justifyContent:"flex-end"},children:c.jsx("button",{onClick:l,style:{padding:"10px 24px",backgroundColor:"#2196f3",color:"white",border:"none",borderRadius:"4px",cursor:"pointer",fontSize:"14px",fontWeight:"600"},children:"Close"})})]})}):c.jsx("div",{style:{position:"fixed",top:0,left:0,right:0,bottom:0,backgroundColor:i.overlay,display:"flex",alignItems:"center",justifyContent:"center",zIndex:1e3},onClick:l,children:c.jsxs("div",{style:{backgroundColor:i.background,color:i.text,padding:"24px",borderRadius:"8px",maxWidth:"500px",border:"2px solid #ff9800"},onClick:f=>f.stopPropagation(),children:[c.jsxs("div",{style:{display:"flex",alignItems:"center",gap:"12px",marginBottom:"16px"},children:[c.jsx("span",{style:{fontSize:"32px"},children:"⚠️"}),c.jsx("h2",{style:{margin:0,color:"#ff9800"},children:"Security Warning"})]}),c.jsxs("div",{style:{marginBottom:"20px",lineHeight:"1.6"},children:[c.jsxs("p",{style:{margin:"0 0 12px 0"},children:["You are about to view ",c.jsx("strong",{children:"sensitive credentials"})," for:"]}),c.jsx("p",{style:{margin:"0 0 12px 0",padding:"8px",backgroundColor:i.inputBg,borderRadius:"4px",fontFamily:"monospace",fontSize:"14px"},children:n}),c.jsx("p",{style:{margin:"0 0 8px 0",fontSize:"14px"},children:c.jsx("strong",{children:"Security best practices:"})}),c.jsxs("ul",{style:{margin:"0",paddingLeft:"20px",fontSize:"13px"},children:[c.jsx("li",{children:"Ensure no one can see your screen"}),c.jsxs("li",{children:["Do not share this ",t," via insecure channels"]}),c.jsx("li",{children:"Close this dialog immediately after use"}),c.jsx("li",{children:"Be aware this action may be logged"})]})]}),c.jsxs("div",{style:{display:"flex",gap:"12px",justifyContent:"flex-end"},children:[c.jsx("button",{onClick:l,style:{padding:"10px 20px",backgroundColor:i.inputBg,color:i.text,border:`1px solid ${i.inputBorder}`,borderRadius:"4px",cursor:"pointer",fontSize:"14px"},children:"Cancel"}),c.jsx("button",{onClick:()=>a(!0),style:{padding:"10px 20px",backgroundColor:"#ff9800",color:"white",border:"none",borderRadius:"4px",cursor:"pointer",fontSize:"14px",fontWeight:"600"},children:"I Understand, Show Secret"})]})]})})}function Yp(){const e=et.useTheme(),[t,n]=Z.default.useState([]),[o,r]=Z.default.useState([]),[i,s]=Z.default.useState(null),[a,d]=Z.default.useState(!1),[u,p]=Z.default.useState(!1),[l,f]=Z.default.useState(!1),[g,x]=Z.default.useState(null),[y,w]=Z.default.useState(null),[m,_]=Z.default.useState(""),[h,b]=Z.default.useState({name:"",namespace:"",cluster:"",authenticationType:"scram-sha-512",authorizationType:"simple",acls:[]}),[v,k]=Z.default.useState(!1),C=Oe(),[P,T]=Z.default.useState(""),[K,D]=Z.default.useState("all"),[M,W]=Z.default.useState("all"),[S,$]=Z.default.useState("all"),[N,z]=Z.default.useState("all"),A=Z.default.useCallback(()=>{le.ApiProxy.request("/apis/kafka.strimzi.io/v1beta2/kafkausers").then(E=>{n(E.items)}).catch(E=>{const J=Ie(E);J==="Not Found"||J.includes("404")?s({message:"Strimzi is not installed in this cluster. Please install the Strimzi operator first.",type:"error",duration:6e3}):s({message:J,type:"error"})})},[]),I=Z.default.useCallback(()=>{le.ApiProxy.request("/apis/kafka.strimzi.io/v1beta2/kafkas").then(E=>{r(E.items)}).catch(E=>{const J=Ie(E);!J.includes("404")&&J!=="Not Found"&&console.error("Failed to fetch Kafka clusters:",J)})},[]);Z.default.useEffect(()=>{A(),I();const E=setInterval(()=>{A(),I()},5e3);return()=>clearInterval(E)},[A,I]);const L=Z.default.useMemo(()=>[...new Set(t.map(E=>E.metadata.namespace))].sort(),[t]),X=Z.default.useMemo(()=>[{value:"all",label:"All"},...L.map(E=>({value:E,label:E}))],[L]),O=Z.default.useMemo(()=>[...new Set(o.map(E=>E.metadata.namespace))].sort(),[o]),G=Z.default.useMemo(()=>o.map(E=>E.metadata.name).sort(),[o]),V=Z.default.useMemo(()=>h.namespace?o.filter(E=>E.metadata.namespace===h.namespace).map(E=>E.metadata.name).sort():[],[o,h.namespace]),Y=Z.default.useMemo(()=>t.filter(E=>{var se,pe,me;const J=P.toLowerCase();if(!(P===""||E.metadata.name.toLowerCase().includes(J)||E.metadata.namespace.toLowerCase().includes(J))||K!=="all"&&E.metadata.namespace!==K)return!1;if(M!=="all"){const ge=Io(E);if(M==="ready"&&!ge||M==="not-ready"&&ge)return!1}if(S!=="all"){const ge=E.spec.authentication.type;if(S==="scram"&&ge!=="scram-sha-512"||S==="tls"&&ge!=="tls")return!1}if(N!=="all"){const ge=((se=E.spec.authorization)==null?void 0:se.type)==="simple"&&(((me=(pe=E.spec.authorization)==null?void 0:pe.acls)==null?void 0:me.length)??0)>0;if(N==="yes"&&!ge||N==="no"&&ge)return!1}return!0}),[t,P,K,M,S,N]),te=async E=>{try{k(!0);const J=E.metadata.name,ie=E.metadata.namespace,se=await le.ApiProxy.request(`/api/v1/namespaces/${ie}/secrets/${J}`);try{if(E.spec.authentication.type==="scram-sha-512"){const pe=atob(se.data.password||"");_(pe)}else if(E.spec.authentication.type==="tls"){const pe=atob(se.data["user.crt"]||""),me=atob(se.data["user.key"]||"");_(`Certificate:
68
+ ${pe}
69
+
70
+ Private Key:
71
+ ${me}`)}}catch{_("Failed to decode secret data")}x(E),f(!0)}catch(J){s({message:Ie(J)||"Failed to fetch user secret",type:"error"})}finally{k(!1)}},ee=async()=>{k(!0);try{const E={apiVersion:"kafka.strimzi.io/v1beta2",kind:"KafkaUser",metadata:{name:h.name,namespace:h.namespace,labels:{"strimzi.io/cluster":h.cluster}},spec:{authentication:{type:h.authenticationType}}};h.authorizationType!=="none"&&(E.spec.authorization={type:h.authorizationType,acls:h.acls}),await le.ApiProxy.request(`/apis/kafka.strimzi.io/v1beta2/namespaces/${h.namespace}/kafkausers`,{method:"POST",body:JSON.stringify(E),headers:{"Content-Type":"application/json"}}),d(!1);const J=h.name;b({name:"",namespace:O.length>0?O[0]:"",cluster:G.length>0?G[0]:"",authenticationType:"scram-sha-512",authorizationType:"simple",acls:[]}),s({message:`User "${J}" created successfully`,type:"success"}),A()}catch(E){s({message:Ie(E)||"Failed to create user",type:"error"})}finally{k(!1)}},F=E=>{w(E),p(!0)},q=async()=>{if(y){p(!1);try{await le.ApiProxy.request(`/apis/kafka.strimzi.io/v1beta2/namespaces/${y.metadata.namespace}/kafkausers/${y.metadata.name}`,{method:"DELETE"}),s({message:`User "${y.metadata.name}" deleted successfully`,type:"success"}),A()}catch(E){s({message:Ie(E)||"Failed to delete user",type:"error"})}finally{w(null)}}},ne=()=>{p(!1),w(null)},Q=()=>{b({...h,acls:[...h.acls,{resource:{type:"topic",name:"*",patternType:"literal"},operations:["Read"],host:"*"}]})},j=E=>{b({...h,acls:h.acls.filter((J,ie)=>ie!==E)})},U=(E,J,ie)=>{const se=[...h.acls];if(J.startsWith("resource.")){const pe=J.split(".")[1];se[E]={...se[E],resource:{...se[E].resource,[pe]:ie}}}else J==="operations"?se[E]={...se[E],operations:ie}:se[E]={...se[E],[J]:ie};b({...h,acls:se})},oe=()=>{f(!1),x(null),_("")},B=()=>a?c.jsx("div",{style:{position:"fixed",top:0,left:0,right:0,bottom:0,backgroundColor:C.overlay,display:"flex",alignItems:"center",justifyContent:"center",zIndex:1e3},children:c.jsxs("div",{style:{backgroundColor:C.background,color:C.text,padding:"24px",borderRadius:"8px",minWidth:"600px",maxHeight:"80vh",overflow:"auto"},children:[c.jsx("h2",{style:{color:C.text},children:"Create New User"}),c.jsxs("div",{style:{marginBottom:"16px"},children:[c.jsx("label",{style:{display:"block",marginBottom:"4px",fontWeight:"bold",color:C.text},children:"Name"}),c.jsx("input",{type:"text",value:h.name,onChange:E=>b({...h,name:E.target.value}),style:{width:"100%",padding:"8px",border:`1px solid ${C.inputBorder}`,borderRadius:"4px",backgroundColor:C.inputBg,color:C.text}})]}),c.jsxs("div",{style:{marginBottom:"16px"},children:[c.jsx("label",{style:{display:"block",marginBottom:"4px",fontWeight:"bold",color:C.text},children:"Namespace"}),c.jsx("select",{value:h.namespace,onChange:E=>{const J=E.target.value,ie=o.filter(se=>se.metadata.namespace===J).map(se=>se.metadata.name).sort();b({...h,namespace:J,cluster:ie.length>0?ie[0]:""})},style:{width:"100%",padding:"8px",border:`1px solid ${C.inputBorder}`,borderRadius:"4px",backgroundColor:C.inputBg,color:C.text,cursor:"pointer"},children:O.length===0?c.jsx("option",{value:"",children:"No namespaces available"}):O.map(E=>c.jsx("option",{value:E,children:E},E))})]}),c.jsxs("div",{style:{marginBottom:"16px"},children:[c.jsx("label",{style:{display:"block",marginBottom:"4px",fontWeight:"bold",color:C.text},children:"Cluster"}),c.jsx("select",{value:h.cluster,onChange:E=>b({...h,cluster:E.target.value}),style:{width:"100%",padding:"8px",border:`1px solid ${C.inputBorder}`,borderRadius:"4px",backgroundColor:C.inputBg,color:C.text,cursor:"pointer"},children:V.length===0?c.jsx("option",{value:"",children:"No clusters available in this namespace"}):V.map(E=>c.jsx("option",{value:E,children:E},E))})]}),c.jsxs("div",{style:{marginBottom:"16px"},children:[c.jsx("label",{style:{display:"block",marginBottom:"4px",fontWeight:"bold",color:C.text},children:"Authentication Type"}),c.jsxs("select",{value:h.authenticationType,onChange:E=>b({...h,authenticationType:E.target.value}),style:{width:"100%",padding:"8px",border:`1px solid ${C.inputBorder}`,borderRadius:"4px",backgroundColor:C.inputBg,color:C.text},children:[c.jsx("option",{value:"scram-sha-512",children:"SCRAM-SHA-512"}),c.jsx("option",{value:"tls",children:"TLS"})]})]}),c.jsxs("div",{style:{marginBottom:"16px"},children:[c.jsx("label",{style:{display:"block",marginBottom:"4px",fontWeight:"bold",color:C.text},children:"Authorization Type"}),c.jsxs("select",{value:h.authorizationType,onChange:E=>b({...h,authorizationType:E.target.value}),style:{width:"100%",padding:"8px",border:`1px solid ${C.inputBorder}`,borderRadius:"4px",backgroundColor:C.inputBg,color:C.text},children:[c.jsx("option",{value:"simple",children:"Simple"}),c.jsx("option",{value:"none",children:"None"})]})]}),h.authorizationType==="simple"&&c.jsxs("div",{style:{marginBottom:"16px"},children:[c.jsxs("div",{style:{display:"flex",justifyContent:"space-between",alignItems:"center",marginBottom:"8px"},children:[c.jsx("label",{style:{fontWeight:"bold",color:C.text},children:"ACLs"}),c.jsx("button",{onClick:Q,style:{padding:"4px 12px",backgroundColor:"#4caf50",color:"white",border:"none",borderRadius:"4px",cursor:"pointer",fontSize:"12px"},children:"+ Add ACL"})]}),h.acls.map((E,J)=>c.jsxs("div",{style:{marginBottom:"12px",padding:"12px",border:`1px solid ${C.border}`,borderRadius:"4px",backgroundColor:C.inputBg},children:[c.jsxs("div",{style:{display:"flex",justifyContent:"space-between",marginBottom:"8px"},children:[c.jsxs("strong",{style:{color:C.text},children:["ACL ",J+1]}),c.jsx("button",{onClick:()=>j(J),style:{padding:"2px 8px",backgroundColor:"#f44336",color:"white",border:"none",borderRadius:"4px",cursor:"pointer",fontSize:"11px"},children:"Remove"})]}),c.jsxs("div",{style:{display:"grid",gridTemplateColumns:"1fr 1fr",gap:"8px"},children:[c.jsxs("div",{children:[c.jsx("label",{style:{display:"block",fontSize:"12px",marginBottom:"2px",color:C.text},children:"Resource Type"}),c.jsxs("select",{value:E.resource.type,onChange:ie=>U(J,"resource.type",ie.target.value),style:{width:"100%",padding:"4px",border:`1px solid ${C.inputBorder}`,borderRadius:"4px",fontSize:"12px",backgroundColor:C.background,color:C.text},children:[c.jsx("option",{value:"topic",children:"Topic"}),c.jsx("option",{value:"group",children:"Group"}),c.jsx("option",{value:"cluster",children:"Cluster"})]})]}),c.jsxs("div",{children:[c.jsx("label",{style:{display:"block",fontSize:"12px",marginBottom:"2px",color:C.text},children:"Resource Name"}),c.jsx("input",{type:"text",value:E.resource.name,onChange:ie=>U(J,"resource.name",ie.target.value),style:{width:"100%",padding:"4px",border:`1px solid ${C.inputBorder}`,borderRadius:"4px",fontSize:"12px",backgroundColor:C.background,color:C.text}})]}),c.jsxs("div",{children:[c.jsx("label",{style:{display:"block",fontSize:"12px",marginBottom:"2px",color:C.text},children:"Pattern Type"}),c.jsxs("select",{value:E.resource.patternType,onChange:ie=>U(J,"resource.patternType",ie.target.value),style:{width:"100%",padding:"4px",border:`1px solid ${C.inputBorder}`,borderRadius:"4px",fontSize:"12px",backgroundColor:C.background,color:C.text},children:[c.jsx("option",{value:"literal",children:"Literal"}),c.jsx("option",{value:"prefix",children:"Prefix"})]})]}),c.jsxs("div",{children:[c.jsx("label",{style:{display:"block",fontSize:"12px",marginBottom:"2px",color:C.text},children:"Operations (comma-separated)"}),c.jsx("input",{type:"text",value:E.operations.join(","),onChange:ie=>U(J,"operations",ie.target.value.split(",").map(se=>se.trim())),placeholder:"e.g., Read,Write,Describe",style:{width:"100%",padding:"4px",border:`1px solid ${C.inputBorder}`,borderRadius:"4px",fontSize:"12px",backgroundColor:C.background,color:C.text}})]})]})]},J))]}),c.jsxs("div",{style:{display:"flex",gap:"12px",justifyContent:"flex-end",marginTop:"24px"},children:[c.jsx("button",{onClick:()=>{d(!1),b({name:"",namespace:O.length>0?O[0]:"",cluster:G.length>0?G[0]:"",authenticationType:"scram-sha-512",authorizationType:"simple",acls:[]})},disabled:v,style:{padding:"8px 16px",border:`1px solid ${C.border}`,borderRadius:"4px",backgroundColor:C.inputBg,color:C.text,cursor:v?"not-allowed":"pointer"},children:"Cancel"}),c.jsx("button",{onClick:ee,disabled:v||!h.name,style:{padding:"8px 16px",border:"none",borderRadius:"4px",backgroundColor:"#2196f3",color:"white",cursor:v||!h.name?"not-allowed":"pointer"},children:v?"Creating...":"Create"})]})]})}):null;return c.jsxs("div",{style:{padding:"20px"},children:[c.jsxs("div",{style:{display:"flex",justifyContent:"space-between",alignItems:"center",marginBottom:"20px"},children:[c.jsxs("div",{children:[c.jsx("h1",{style:{margin:0},children:"Kafka Users"}),c.jsx("p",{style:{margin:"8px 0 0 0",color:"#666"},children:"Strimzi Kafka users"})]}),c.jsx(ce.Button,{onClick:()=>{b({name:"",namespace:O.length>0?O[0]:"",cluster:G.length>0?G[0]:"",authenticationType:"scram-sha-512",authorizationType:"simple",acls:[]}),d(!0)},variant:"contained",color:"primary",size:"medium",children:"+ Create User"})]}),c.jsx(Tn,{searchTerm:P,onSearchChange:T,placeholder:"Search users by name or namespace...",resultCount:Y.length,totalCount:t.length,children:c.jsxs("div",{style:{display:"grid",gridTemplateColumns:"1fr 1fr",gap:"15px"},children:[L.length>0&&c.jsx(ve,{label:"Namespace",children:c.jsx(Pe,{value:K,onChange:D,options:X})}),c.jsx(ve,{label:"Status",children:c.jsx(Pe,{value:M,onChange:W,options:[{value:"all",label:"All"},{value:"ready",label:"Ready"},{value:"not-ready",label:"Not Ready"}]})}),c.jsx(ve,{label:"Authentication Type",children:c.jsx(Pe,{value:S,onChange:$,options:[{value:"all",label:"All"},{value:"scram",label:"SCRAM-SHA-512"},{value:"tls",label:"TLS"}]})}),c.jsx(ve,{label:"Has ACLs",children:c.jsx(Pe,{value:N,onChange:z,options:[{value:"all",label:"All"},{value:"yes",label:"Yes"},{value:"no",label:"No"}]})})]})}),Y.length===0?c.jsx("p",{style:{textAlign:"center",color:"#666",padding:"40px"},children:t.length===0?"No Kafka users found":"No users match your search criteria"}):c.jsxs("table",{style:{width:"100%",borderCollapse:"collapse",marginTop:"20px"},children:[c.jsx("thead",{children:c.jsxs("tr",{style:{borderBottom:"2px solid #ddd",textAlign:"left"},children:[c.jsx("th",{style:{padding:"12px"},children:"Name"}),c.jsx("th",{style:{padding:"12px"},children:"Namespace"}),c.jsx("th",{style:{padding:"12px"},children:"Authentication"}),c.jsx("th",{style:{padding:"12px"},children:"Authorization"}),c.jsx("th",{style:{padding:"12px"},children:"Status"}),c.jsx("th",{style:{padding:"12px"},children:"Actions"})]})}),c.jsx("tbody",{children:Y.map(E=>{var ie;const J=Io(E);return c.jsxs("tr",{style:{borderBottom:"1px solid #eee"},children:[c.jsx("td",{style:{padding:"12px"},children:E.metadata.name}),c.jsx("td",{style:{padding:"12px"},children:E.metadata.namespace}),c.jsx("td",{style:{padding:"12px"},children:c.jsx("span",{style:{padding:"4px 8px",borderRadius:"4px",backgroundColor:"#9c27b0",color:"white",fontSize:"11px"},children:E.spec.authentication.type})}),c.jsx("td",{style:{padding:"12px"},children:((ie=E.spec.authorization)==null?void 0:ie.type)||"None"}),c.jsx("td",{style:{padding:"12px"},children:c.jsx(ce.Chip,{label:J?"Ready":"Not Ready",variant:e.palette.mode==="dark"?"outlined":"filled",size:"medium",color:J?"success":"warning",sx:{borderRadius:"4px",...e.palette.mode==="dark"&&J&&{borderColor:"#34d399",color:"#34d399",backgroundColor:"rgba(52, 211, 153, 0.15)"},...e.palette.mode==="dark"&&!J&&{borderColor:"#f87171",color:"#f87171",backgroundColor:"rgba(248, 113, 113, 0.15)"}}})}),c.jsxs("td",{style:{padding:"12px"},children:[c.jsx(ce.Button,{onClick:()=>te(E),disabled:v,variant:"contained",color:"warning",size:"small",sx:{marginRight:1},children:"View Secret"}),c.jsx(ce.Button,{onClick:()=>F(E),variant:"contained",color:"error",size:"small",children:"Delete"})]})]},`${E.metadata.namespace}/${E.metadata.name}`)})})]}),B(),c.jsx(Gp,{secretValue:m,secretType:(g==null?void 0:g.spec.authentication.type)==="scram-sha-512"?"password":"certificate",resourceName:(g==null?void 0:g.metadata.name)||"",isOpen:l,onClose:oe}),c.jsxs(ce.Dialog,{open:u,onClose:ne,"aria-labelledby":"delete-dialog-title","aria-describedby":"delete-dialog-description",children:[c.jsx(ce.DialogTitle,{id:"delete-dialog-title",children:"Delete User"}),c.jsx(ce.DialogContent,{children:c.jsxs(ce.DialogContentText,{id:"delete-dialog-description",children:["Are you sure you want to delete user ",c.jsx("strong",{children:y==null?void 0:y.metadata.name}),"? This action cannot be undone."]})}),c.jsxs(ce.DialogActions,{children:[c.jsx(ce.Button,{onClick:ne,children:"Cancel"}),c.jsx(ce.Button,{onClick:q,color:"error",variant:"contained",autoFocus:!0,children:"Delete"})]})]}),c.jsx(vo,{toast:i,onClose:()=>s(null)})]})}le.registerRoute({path:"/strimzi/kafkas",sidebar:"kafkas",name:"Kafka Clusters",exact:!0,component:()=>Z.default.createElement(Wp)}),le.registerRoute({path:"/strimzi/topics",sidebar:"topics",name:"Kafka Topics",exact:!0,component:()=>Z.default.createElement(Vp)}),le.registerRoute({path:"/strimzi/users",sidebar:"users",name:"Kafka Users",exact:!0,component:()=>Z.default.createElement(Yp)}),le.registerSidebarEntry({parent:null,name:"strimzi",label:"Strimzi",url:"/strimzi/kafkas",icon:"streamline-ultimate:share"}),le.registerSidebarEntry({parent:"strimzi",name:"kafkas",label:"Kafka Clusters",url:"/strimzi/kafkas"}),le.registerSidebarEntry({parent:"strimzi",name:"topics",label:"Kafka Topics",url:"/strimzi/topics"}),le.registerSidebarEntry({parent:"strimzi",name:"users",label:"Kafka Users",url:"/strimzi/users"})}));