@stonecrop/node-editor 0.2.24 → 0.2.25

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.
@@ -1 +1 @@
1
- {"version":3,"file":"node-editor.js","sources":["../../common/temp/node_modules/.pnpm/@vue-flow+core@1.19.4_vue@3.4.23/node_modules/@vue-flow/core/dist/vue-flow-core.mjs","../src/components/EditableNode.vue","../src/components/EditableEdge.vue","../src/components/NodeEditor.vue","../src/components/StateEditor.vue","../src/index.ts"],"sourcesContent":["import { unref as C, ref as ie, watch as de, customRef as br, getCurrentScope as hi, onScopeDispose as Vt, getCurrentInstance as on, onMounted as Ve, nextTick as Ue, readonly as Er, isRef as Sr, computed as J, onBeforeMount as Nr, markRaw as it, inject as He, defineComponent as ge, toRef as M, openBlock as oe, createElementBlock as se, normalizeClass as Ke, renderSlot as xe, h as ue, provide as ut, onBeforeUnmount as gi, normalizeStyle as Le, createCommentVNode as Ee, createElementVNode as ct, mergeProps as vi, createBlock as ze, resolveDynamicComponent as mi, Fragment as Ce, createTextVNode as Cr, toDisplayString as Vn, Teleport as Mr, normalizeProps as $r, reactive as kr, toRefs as Or, effectScope as Tr, renderList as dt, resolveComponent as pi, createVNode as qe, watchEffect as bo, withCtx as Fe, useSlots as Ir, onUnmounted as Pr } from \"vue\";\nvar Eo;\nconst oo = typeof window < \"u\", Dr = (e) => typeof e < \"u\", zr = (e) => typeof e == \"boolean\", Ae = (e) => typeof e == \"function\", Ie = (e) => typeof e == \"number\", Pe = (e) => typeof e == \"string\", Ar = () => {\n};\noo && ((Eo = window == null ? void 0 : window.navigator) != null && Eo.userAgent) && /iP(ad|hone|od)/.test(window.navigator.userAgent);\nfunction le(e) {\n return typeof e == \"function\" ? e() : C(e);\n}\nfunction Br(e, t) {\n function n(...o) {\n return new Promise((i, r) => {\n Promise.resolve(e(() => t.apply(this, o), { fn: t, thisArg: this, args: o })).then(i).catch(r);\n });\n }\n return n;\n}\nconst yi = (e) => e();\nfunction Rr(e = yi) {\n const t = ie(!0);\n function n() {\n t.value = !1;\n }\n function o() {\n t.value = !0;\n }\n const i = (...r) => {\n t.value && e(...r);\n };\n return { isActive: Er(t), pause: n, resume: o, eventFilter: i };\n}\nfunction So(e, t = !1, n = \"Timeout\") {\n return new Promise((o, i) => {\n setTimeout(t ? () => i(n) : o, e);\n });\n}\nfunction Vr(e) {\n return e;\n}\nfunction Sn(e, t) {\n let n, o, i;\n const r = ie(!0), a = () => {\n r.value = !0, i();\n };\n de(e, a, { flush: \"sync\" });\n const s = Ae(t) ? t : t.get, l = Ae(t) ? void 0 : t.set, u = br((c, v) => (o = c, i = v, {\n get() {\n return r.value && (n = s(), r.value = !1), o(), n;\n },\n set(g) {\n l == null || l(g);\n }\n }));\n return Object.isExtensible(u) && (u.trigger = a), u;\n}\nfunction Mt(e) {\n return hi() ? (Vt(e), !0) : !1;\n}\nfunction Hr(e, t = !0) {\n on() ? Ve(e) : t ? e() : Ue(e);\n}\nfunction Hn(e, t = !1) {\n function n(v, { flush: g = \"sync\", deep: x = !1, timeout: h, throwOnTimeout: d } = {}) {\n let w = null;\n const S = [new Promise((V) => {\n w = de(e, (p) => {\n v(p) !== t && (w == null || w(), V(p));\n }, {\n flush: g,\n deep: x,\n immediate: !0\n });\n })];\n return h != null && S.push(So(h, d).then(() => le(e)).finally(() => w == null ? void 0 : w())), Promise.race(S);\n }\n function o(v, g) {\n if (!Sr(v))\n return n((p) => p === v, g);\n const { flush: x = \"sync\", deep: h = !1, timeout: d, throwOnTimeout: w } = g ?? {};\n let y = null;\n const V = [new Promise((p) => {\n y = de([e, v], ([N, T]) => {\n t !== (N === T) && (y == null || y(), p(N));\n }, {\n flush: x,\n deep: h,\n immediate: !0\n });\n })];\n return d != null && V.push(So(d, w).then(() => le(e)).finally(() => (y == null || y(), le(e)))), Promise.race(V);\n }\n function i(v) {\n return n((g) => Boolean(g), v);\n }\n function r(v) {\n return o(null, v);\n }\n function a(v) {\n return o(void 0, v);\n }\n function s(v) {\n return n(Number.isNaN, v);\n }\n function l(v, g) {\n return n((x) => {\n const h = Array.from(x);\n return h.includes(v) || h.includes(le(v));\n }, g);\n }\n function u(v) {\n return c(1, v);\n }\n function c(v = 1, g) {\n let x = -1;\n return n(() => (x += 1, x >= v), g);\n }\n return Array.isArray(le(e)) ? {\n toMatch: n,\n toContains: l,\n changed: u,\n changedTimes: c,\n get not() {\n return Hn(e, !t);\n }\n } : {\n toMatch: n,\n toBe: o,\n toBeTruthy: i,\n toBeNull: r,\n toBeNaN: s,\n toBeUndefined: a,\n changed: u,\n changedTimes: c,\n get not() {\n return Hn(e, !t);\n }\n };\n}\nfunction ye(e) {\n return Hn(e);\n}\nvar No = Object.getOwnPropertySymbols, Lr = Object.prototype.hasOwnProperty, Gr = Object.prototype.propertyIsEnumerable, Fr = (e, t) => {\n var n = {};\n for (var o in e)\n Lr.call(e, o) && t.indexOf(o) < 0 && (n[o] = e[o]);\n if (e != null && No)\n for (var o of No(e))\n t.indexOf(o) < 0 && Gr.call(e, o) && (n[o] = e[o]);\n return n;\n};\nfunction Yr(e, t, n = {}) {\n const o = n, {\n eventFilter: i = yi\n } = o, r = Fr(o, [\n \"eventFilter\"\n ]);\n return de(e, Br(i, t), r);\n}\nvar Xr = Object.defineProperty, Zr = Object.defineProperties, Ur = Object.getOwnPropertyDescriptors, Yt = Object.getOwnPropertySymbols, xi = Object.prototype.hasOwnProperty, _i = Object.prototype.propertyIsEnumerable, Co = (e, t, n) => t in e ? Xr(e, t, { enumerable: !0, configurable: !0, writable: !0, value: n }) : e[t] = n, Wr = (e, t) => {\n for (var n in t || (t = {}))\n xi.call(t, n) && Co(e, n, t[n]);\n if (Yt)\n for (var n of Yt(t))\n _i.call(t, n) && Co(e, n, t[n]);\n return e;\n}, Kr = (e, t) => Zr(e, Ur(t)), qr = (e, t) => {\n var n = {};\n for (var o in e)\n xi.call(e, o) && t.indexOf(o) < 0 && (n[o] = e[o]);\n if (e != null && Yt)\n for (var o of Yt(e))\n t.indexOf(o) < 0 && _i.call(e, o) && (n[o] = e[o]);\n return n;\n};\nfunction tt(e, t, n = {}) {\n const o = n, {\n eventFilter: i\n } = o, r = qr(o, [\n \"eventFilter\"\n ]), { eventFilter: a, pause: s, resume: l, isActive: u } = Rr(i);\n return { stop: Yr(e, t, Kr(Wr({}, r), {\n eventFilter: a\n })), pause: s, resume: l, isActive: u };\n}\nfunction wi(e) {\n var t;\n const n = le(e);\n return (t = n == null ? void 0 : n.$el) != null ? t : n;\n}\nconst io = oo ? window : void 0;\nfunction ro(...e) {\n let t, n, o, i;\n if (Pe(e[0]) || Array.isArray(e[0]) ? ([n, o, i] = e, t = io) : [t, n, o, i] = e, !t)\n return Ar;\n Array.isArray(n) || (n = [n]), Array.isArray(o) || (o = [o]);\n const r = [], a = () => {\n r.forEach((c) => c()), r.length = 0;\n }, s = (c, v, g, x) => (c.addEventListener(v, g, x), () => c.removeEventListener(v, g, x)), l = de(() => [wi(t), le(i)], ([c, v]) => {\n a(), c && r.push(...n.flatMap((g) => o.map((x) => s(c, g, x, v))));\n }, { immediate: !0, flush: \"post\" }), u = () => {\n l(), a();\n };\n return Mt(u), u;\n}\nconst jr = (e) => typeof e == \"function\" ? e : typeof e == \"string\" ? (t) => t.key === e : Array.isArray(e) ? (t) => e.includes(t.key) : () => !0;\nfunction Mo(...e) {\n let t, n, o = {};\n e.length === 3 ? (t = e[0], n = e[1], o = e[2]) : e.length === 2 ? typeof e[1] == \"object\" ? (t = !0, n = e[0], o = e[1]) : (t = e[0], n = e[1]) : (t = !0, n = e[0]);\n const { target: i = io, eventName: r = \"keydown\", passive: a = !1 } = o, s = jr(t);\n return ro(i, r, (u) => {\n s(u) && n(u);\n }, a);\n}\nfunction Qr(e, t = !1) {\n const n = ie(), o = () => n.value = Boolean(e());\n return o(), Hr(o, t), n;\n}\nfunction Jr(e) {\n return JSON.parse(JSON.stringify(e));\n}\nconst Ln = typeof globalThis < \"u\" ? globalThis : typeof window < \"u\" ? window : typeof global < \"u\" ? global : typeof self < \"u\" ? self : {}, Gn = \"__vueuse_ssr_handlers__\";\nLn[Gn] = Ln[Gn] || {};\nLn[Gn];\nvar $o = Object.getOwnPropertySymbols, ea = Object.prototype.hasOwnProperty, ta = Object.prototype.propertyIsEnumerable, na = (e, t) => {\n var n = {};\n for (var o in e)\n ea.call(e, o) && t.indexOf(o) < 0 && (n[o] = e[o]);\n if (e != null && $o)\n for (var o of $o(e))\n t.indexOf(o) < 0 && ta.call(e, o) && (n[o] = e[o]);\n return n;\n};\nfunction oa(e, t, n = {}) {\n const o = n, { window: i = io } = o, r = na(o, [\"window\"]);\n let a;\n const s = Qr(() => i && \"ResizeObserver\" in i), l = () => {\n a && (a.disconnect(), a = void 0);\n }, u = de(() => wi(e), (v) => {\n l(), s.value && i && v && (a = new ResizeObserver(t), a.observe(v, r));\n }, { immediate: !0, flush: \"post\" }), c = () => {\n l(), u();\n };\n return Mt(c), {\n isSupported: s,\n stop: c\n };\n}\nvar ko;\n(function(e) {\n e.UP = \"UP\", e.RIGHT = \"RIGHT\", e.DOWN = \"DOWN\", e.LEFT = \"LEFT\", e.NONE = \"NONE\";\n})(ko || (ko = {}));\nvar ia = Object.defineProperty, Oo = Object.getOwnPropertySymbols, ra = Object.prototype.hasOwnProperty, aa = Object.prototype.propertyIsEnumerable, To = (e, t, n) => t in e ? ia(e, t, { enumerable: !0, configurable: !0, writable: !0, value: n }) : e[t] = n, sa = (e, t) => {\n for (var n in t || (t = {}))\n ra.call(t, n) && To(e, n, t[n]);\n if (Oo)\n for (var n of Oo(t))\n aa.call(t, n) && To(e, n, t[n]);\n return e;\n};\nconst la = {\n easeInSine: [0.12, 0, 0.39, 0],\n easeOutSine: [0.61, 1, 0.88, 1],\n easeInOutSine: [0.37, 0, 0.63, 1],\n easeInQuad: [0.11, 0, 0.5, 0],\n easeOutQuad: [0.5, 1, 0.89, 1],\n easeInOutQuad: [0.45, 0, 0.55, 1],\n easeInCubic: [0.32, 0, 0.67, 0],\n easeOutCubic: [0.33, 1, 0.68, 1],\n easeInOutCubic: [0.65, 0, 0.35, 1],\n easeInQuart: [0.5, 0, 0.75, 0],\n easeOutQuart: [0.25, 1, 0.5, 1],\n easeInOutQuart: [0.76, 0, 0.24, 1],\n easeInQuint: [0.64, 0, 0.78, 0],\n easeOutQuint: [0.22, 1, 0.36, 1],\n easeInOutQuint: [0.83, 0, 0.17, 1],\n easeInExpo: [0.7, 0, 0.84, 0],\n easeOutExpo: [0.16, 1, 0.3, 1],\n easeInOutExpo: [0.87, 0, 0.13, 1],\n easeInCirc: [0.55, 0, 1, 0.45],\n easeOutCirc: [0, 0.55, 0.45, 1],\n easeInOutCirc: [0.85, 0, 0.15, 1],\n easeInBack: [0.36, 0, 0.66, -0.56],\n easeOutBack: [0.34, 1.56, 0.64, 1],\n easeInOutBack: [0.68, -0.6, 0.32, 1.6]\n};\nsa({\n linear: Vr\n}, la);\nfunction yt(e, t, n, o = {}) {\n var i, r, a;\n const {\n clone: s = !1,\n passive: l = !1,\n eventName: u,\n deep: c = !1,\n defaultValue: v\n } = o, g = on(), x = n || (g == null ? void 0 : g.emit) || ((i = g == null ? void 0 : g.$emit) == null ? void 0 : i.bind(g)) || ((a = (r = g == null ? void 0 : g.proxy) == null ? void 0 : r.$emit) == null ? void 0 : a.bind(g == null ? void 0 : g.proxy));\n let h = u;\n t || (t = \"modelValue\"), h = u || h || `update:${t.toString()}`;\n const d = (y) => s ? Ae(s) ? s(y) : Jr(y) : y, w = () => Dr(e[t]) ? d(e[t]) : v;\n if (l) {\n const y = w(), S = ie(y);\n return de(() => e[t], (V) => S.value = d(V)), de(S, (V) => {\n (V !== e[t] || c) && x(h, V);\n }, { deep: c }), S;\n } else\n return J({\n get() {\n return w();\n },\n set(y) {\n x(h, y);\n }\n });\n}\nfunction X(e = () => {\n}) {\n const t = ie(/* @__PURE__ */ new Set());\n e && t.value.add(e);\n const n = (r) => {\n t.value.delete(r);\n };\n return {\n on: (r) => {\n t.value.has(e) && t.value.delete(e), t.value.add(r);\n const a = () => n(r);\n return Mt(a), {\n off: a\n };\n },\n off: n,\n trigger: (r) => Promise.all(Array.from(t.value).map((a) => a(r))),\n fns: t\n };\n}\nconst ua = [\"production\", \"prod\"];\nfunction wt(e, ...t) {\n ua.includes(process.env.NODE_ENV || \"\") || console.warn(`[Vue Flow]: ${e}`, ...t);\n}\nfunction ca() {\n return {\n edgesChange: X(),\n nodesChange: X(),\n nodeDoubleClick: X(),\n nodeClick: X(),\n nodeMouseEnter: X(),\n nodeMouseMove: X(),\n nodeMouseLeave: X(),\n nodeContextMenu: X(),\n nodeDragStart: X(),\n nodeDrag: X(),\n nodeDragStop: X(),\n nodesInitialized: X(),\n miniMapNodeClick: X(),\n miniMapNodeDoubleClick: X(),\n miniMapNodeMouseEnter: X(),\n miniMapNodeMouseMove: X(),\n miniMapNodeMouseLeave: X(),\n connect: X(),\n connectStart: X(),\n connectEnd: X(),\n clickConnectStart: X(),\n clickConnectEnd: X(),\n paneReady: X(),\n move: X(),\n moveStart: X(),\n moveEnd: X(),\n selectionDragStart: X(),\n selectionDrag: X(),\n selectionDragStop: X(),\n selectionContextMenu: X(),\n selectionStart: X(),\n selectionEnd: X(),\n viewportChangeStart: X(),\n viewportChange: X(),\n viewportChangeEnd: X(),\n paneScroll: X(),\n paneClick: X(),\n paneContextMenu: X(),\n paneMouseEnter: X(),\n paneMouseMove: X(),\n paneMouseLeave: X(),\n edgeContextMenu: X(),\n edgeMouseEnter: X(),\n edgeMouseMove: X(),\n edgeMouseLeave: X(),\n edgeDoubleClick: X(),\n edgeClick: X(),\n edgeUpdateStart: X(),\n edgeUpdate: X(),\n edgeUpdateEnd: X(),\n updateNodeInternals: X(),\n error: X((e) => wt(e.message))\n };\n}\nfunction da(e, t) {\n Nr(() => {\n for (const [n, o] of Object.entries(t.value)) {\n const i = (r) => {\n e(n, r);\n };\n o.on(i), Mt(() => {\n o.off(i);\n });\n }\n });\n}\nvar he = /* @__PURE__ */ ((e) => (e.MISSING_VIEWPORT_DIMENSIONS = \"MISSING_VIEWPORT_DIMENSIONS\", e.NODE_NOT_FOUND = \"NODE_NOT_FOUND\", e.NODE_MISSING_PARENT = \"NODE_MISSING_PARENT\", e.NODE_TYPE_MISSING = \"NODE_TYPE_MISSING\", e.NODE_EXTENT_INVALID = \"NODE_EXTENT_INVALID\", e.EDGE_INVALID = \"EDGE_INVALID\", e.EDGE_NOT_FOUND = \"EDGE_NOT_FOUND\", e.EDGE_SOURCE_MISSING = \"EDGE_SOURCE_MISSING\", e.EDGE_TARGET_MISSING = \"EDGE_TARGET_MISSING\", e.EDGE_TYPE_MISSING = \"EDGE_TYPE_MISSING\", e.EDGE_SOURCE_TARGET_SAME = \"EDGE_SOURCE_TARGET_SAME\", e.EDGE_SOURCE_TARGET_MISSING = \"EDGE_SOURCE_TARGET_MISSING\", e.EDGE_ORPHANED = \"EDGE_ORPHANED\", e))(he || {});\nconst Nn = {\n MISSING_VIEWPORT_DIMENSIONS: () => \"The Vue Flow parent container needs a width and a height to render the graph\",\n NODE_NOT_FOUND: (e) => `Node not found\nNode: ${e}`,\n NODE_MISSING_PARENT: (e, t) => `Node is missing a parent\nNode: ${e}\nParent: ${t}`,\n NODE_TYPE_MISSING: (e) => `Node type is missing\nType: ${e}`,\n NODE_EXTENT_INVALID: (e) => `Only child nodes can use a parent extent\nNode: ${e}`,\n EDGE_INVALID: (e) => `An edge needs a source and a target\nEdge: ${e}`,\n EDGE_SOURCE_MISSING: (e, t) => `Edge source is missing\nEdge: ${e} \nSource: ${t}`,\n EDGE_TARGET_MISSING: (e, t) => `Edge target is missing\nEdge: ${e} \nTarget: ${t}`,\n EDGE_TYPE_MISSING: (e) => `Edge type is missing\nType: ${e}`,\n EDGE_SOURCE_TARGET_SAME: (e, t, n) => `Edge source and target are the same\nEdge: ${e} \nSource: ${t} \nTarget: ${n}`,\n EDGE_SOURCE_TARGET_MISSING: (e, t, n) => `Edge source or target is missing\nEdge: ${e} \nSource: ${t} \nTarget: ${n}`,\n EDGE_ORPHANED: (e) => `Edge was orphaned (suddenly missing source or target) and has been removed\nEdge: ${e}`,\n EDGE_NOT_FOUND: (e) => `Edge not found\nEdge: ${e}`\n};\nclass ve extends Error {\n constructor(t, ...n) {\n var o;\n super((o = Nn[t]) == null ? void 0 : o.call(Nn, ...n)), this.code = t;\n }\n}\nconst ao = () => typeof window < \"u\" ? window : { chrome: !1 };\nfunction Io(e) {\n return {\n ...e.computedPosition || { x: 0, y: 0 },\n width: e.dimensions.width || 0,\n height: e.dimensions.height || 0\n };\n}\nfunction Fn(e, t) {\n 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));\n return Math.ceil(n * o);\n}\nfunction rn(e) {\n return {\n width: e.offsetWidth,\n height: e.offsetHeight\n };\n}\nfunction je(e, t = 0, n = 1) {\n return Math.min(Math.max(e, t), n);\n}\nfunction so(e, t) {\n return {\n x: je(e.x, t[0][0], t[1][0]),\n y: je(e.y, t[0][1], t[1][1])\n };\n}\nfunction Po(e) {\n const t = e.getRootNode(), n = ao();\n return \"elementFromPoint\" in t ? t : n.document;\n}\nfunction $e(e) {\n return e && \"id\" in e && \"source\" in e && \"target\" in e;\n}\nfunction fa(e) {\n return $e(e) && \"sourceNode\" in e && \"targetNode\" in e;\n}\nfunction xt(e) {\n return e && \"id\" in e && !$e(e);\n}\nfunction nt(e) {\n return xt(e) && \"computedPosition\" in e;\n}\nfunction ha(e) {\n return !!e.width && !!e.height && !!e.x && !!e.y;\n}\nfunction ga(e, t = {}) {\n let n = t;\n return nt(e) || (n = {\n type: e.type ?? t.type ?? \"default\",\n dimensions: it({\n width: 0,\n height: 0\n }),\n handleBounds: {\n source: [],\n target: []\n },\n computedPosition: it({\n z: 0,\n ...e.position\n }),\n draggable: void 0,\n selectable: void 0,\n connectable: void 0,\n focusable: void 0,\n selected: !1,\n dragging: !1,\n resizing: !1,\n initialized: !1,\n ...t,\n data: ce(e.data) ? e.data : {},\n events: it(ce(e.events) ? e.events : {})\n }), Object.assign({}, n, e, { id: e.id.toString() });\n}\nfunction lo(e, t = {}) {\n const n = ce(e.events) ? e.events : t.events && ce(t.events) ? t.events : {}, o = ce(e.data) ? e.data : t.data && ce(t.data) ? t.data : {};\n return t = fa(e) ? t : {\n ...t,\n sourceHandle: (e.sourceHandle ? e.sourceHandle.toString() : void 0) || t.sourceHandle,\n targetHandle: (e.targetHandle ? e.targetHandle.toString() : void 0) || t.targetHandle,\n type: e.type ?? t.type ?? \"default\",\n source: e.source.toString() || t.source,\n target: e.target.toString() || t.target,\n updatable: e.updatable ?? t.updatable,\n selectable: e.selectable ?? t.selectable,\n focusable: e.focusable ?? t.focusable,\n data: o,\n events: it(n),\n label: (e.label && !Pe(e.label) ? it(e.label) : e.label) || t.label,\n interactionWidth: e.interactionWidth || t.interactionWidth\n }, Object.assign({}, t, e, { id: e.id.toString() });\n}\nfunction bi(e, t, n) {\n if (!xt(e))\n return [];\n const o = n === \"source\" ? \"target\" : \"source\", i = t.filter((r) => $e(r) && r[o] === e.id).map((r) => $e(r) && r[n]);\n return t.filter((r) => i.includes(r.id));\n}\nfunction Pd(e, t) {\n return bi(e, t, \"target\");\n}\nfunction Dd(e, t) {\n return bi(e, t, \"source\");\n}\nfunction an({ source: e, sourceHandle: t, target: n, targetHandle: o }) {\n return `vueflow__edge-${e}${t ?? \"\"}-${n}${o ?? \"\"}`;\n}\nfunction Ei(e, t) {\n return t.some(\n (n) => $e(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)\n );\n}\nfunction zd(e, t, n) {\n if (!e.source || !e.target)\n return wt(\"Can't create edge. An edge needs a source and a target.\"), t;\n let o;\n return $e(e) ? o = { ...e } : o = {\n ...e,\n id: an(e)\n }, o = lo(o, n), Ei(o, t) || t.push(o), t;\n}\nfunction Ad(e, t, n) {\n if (!t.source || !t.target)\n return wt(\"Can't create new edge. An edge needs a source and a target.\"), n;\n const o = n.find((r) => $e(r) && r.id === e.id);\n if (!o)\n return wt(`The old edge with id=${e.id} does not exist.`), n;\n const i = {\n ...e,\n id: an(t),\n source: t.source,\n target: t.target,\n sourceHandle: t.sourceHandle,\n targetHandle: t.targetHandle\n };\n return n.splice(n.indexOf(o), 1, i), n.filter((r) => r.id !== e.id);\n}\nfunction va({ x: e, y: t }, { x: n, y: o, zoom: i }) {\n return {\n x: e * i + n,\n y: t * i + o\n };\n}\nfunction uo({ x: e, y: t }, { x: n, y: o, zoom: i }, r, [a, s]) {\n const l = {\n x: (e - n) / i,\n y: (t - o) / i\n };\n return r ? {\n x: a * Math.round(l.x / a),\n y: s * Math.round(l.y / s)\n } : l;\n}\nfunction Si(e, t) {\n return {\n x: Math.min(e.x, t.x),\n y: Math.min(e.y, t.y),\n x2: Math.max(e.x2, t.x2),\n y2: Math.max(e.y2, t.y2)\n };\n}\nfunction Xt({ x: e, y: t, width: n, height: o }) {\n return {\n x: e,\n y: t,\n x2: e + n,\n y2: t + o\n };\n}\nfunction Ni({ x: e, y: t, x2: n, y2: o }) {\n return {\n x: e,\n y: t,\n width: n - e,\n height: o - t\n };\n}\nfunction Bd(e, t) {\n return Ni(Si(Xt(e), Xt(t)));\n}\nfunction co(e) {\n const t = e.reduce(\n (n, { computedPosition: o = { x: 0, y: 0 }, dimensions: i = { width: 0, height: 0 } } = {}) => Si(\n n,\n Xt({\n ...o,\n ...i\n })\n ),\n { x: 1 / 0, y: 1 / 0, x2: -1 / 0, y2: -1 / 0 }\n );\n return Ni(t);\n}\nfunction Ci(e, t, { x: n, y: o, zoom: i } = { x: 0, y: 0, zoom: 1 }, r = !1, a = !1) {\n const s = {\n x: (t.x - n) / i,\n y: (t.y - o) / i,\n width: t.width / i,\n height: t.height / i\n };\n return e.filter((l) => {\n const { computedPosition: u = { x: 0, y: 0 }, dimensions: c = { width: 0, height: 0 }, selectable: v } = l;\n if (a && !v)\n return !1;\n const g = { ...u, width: c.width || 0, height: c.height || 0 }, x = Fn(s, g), h = typeof c.width > \"u\" || typeof c.height > \"u\" || c.width === 0 || c.height === 0, d = r && x > 0, w = c.width * c.height;\n return h || d || x >= w;\n });\n}\nfunction sn(e, t) {\n const n = e.map((o) => Pe(o) ? o : o.id);\n return t.filter((o) => n.includes(o.source) || n.includes(o.target));\n}\nfunction Zt(e, t, n, o, i, r = 0.1, a = { x: 0, y: 0 }) {\n const s = t / (e.width * (1 + r)), l = n / (e.height * (1 + r)), u = Math.min(s, l), c = je(u, o, i), v = e.x + e.width / 2, g = e.y + e.height / 2, x = t / 2 - v * c + (a.x ?? 0), h = n / 2 - g * c + (a.y ?? 0);\n return { x, y: h, zoom: c };\n}\nfunction ma(e, t) {\n return {\n x: t.x + e.x,\n y: t.y + e.y,\n z: (e.z > t.z ? e.z : t.z) + 1\n };\n}\nfunction Mi(e, t) {\n if (!e.parentNode)\n return !1;\n const n = t(e.parentNode);\n return n ? n.selected ? !0 : Mi(n, t) : !1;\n}\nfunction Xe(e, t) {\n return typeof e > \"u\" ? \"\" : typeof e == \"string\" ? e : `${t ? `${t}__` : \"\"}${Object.keys(e).sort().map((o) => `${o}=${e[o]}`).join(\"&\")}`;\n}\nfunction ce(e) {\n return typeof C(e) < \"u\";\n}\nfunction pa(e, t, n) {\n if (!e.source || !e.target)\n return n(new ve(he.EDGE_INVALID, e.id)), !1;\n let o;\n return $e(e) ? o = e : o = {\n ...e,\n id: an(e)\n }, o = lo(o), Ei(o, t) ? !1 : o;\n}\nfunction ya(e, t, n, o, i, r) {\n if (!t.source || !t.target)\n return r(new ve(he.EDGE_INVALID, e.id)), !1;\n const a = o(e.id);\n if (!a)\n return r(new ve(he.EDGE_NOT_FOUND, e.id)), !1;\n const { id: s, ...l } = e, u = {\n ...l,\n id: i ? an(t) : s,\n source: t.source,\n target: t.target,\n sourceHandle: t.sourceHandle,\n targetHandle: t.targetHandle\n };\n return n.splice(n.indexOf(a), 1, u), u;\n}\nfunction Do(e, t, n, o) {\n const i = {}, r = e.map((s) => {\n const l = ga(s, {\n ...n(s.id),\n parentNode: s.parentNode\n });\n return s.parentNode && (i[s.parentNode] = !0), l;\n }), a = [...r, ...t];\n return r.forEach((s) => {\n const l = a.find((u) => u.id === s.parentNode);\n s.parentNode && !l && o(new ve(he.NODE_MISSING_PARENT, s.id, s.parentNode)), (s.parentNode || i[s.id]) && (i[s.id] && (s.isParent = !0), l && (l.isParent = !0));\n }), r;\n}\nvar j = /* @__PURE__ */ ((e) => (e.Left = \"left\", e.Top = \"top\", e.Right = \"right\", e.Bottom = \"bottom\", e))(j || {}), fo = /* @__PURE__ */ ((e) => (e.Partial = \"partial\", e.Full = \"full\", e))(fo || {}), Ye = /* @__PURE__ */ ((e) => (e.Bezier = \"default\", e.SimpleBezier = \"simple-bezier\", e.Straight = \"straight\", e.Step = \"step\", e.SmoothStep = \"smoothstep\", e))(Ye || {}), Qe = /* @__PURE__ */ ((e) => (e.Strict = \"strict\", e.Loose = \"loose\", e))(Qe || {}), Yn = /* @__PURE__ */ ((e) => (e.Arrow = \"arrow\", e.ArrowClosed = \"arrowclosed\", e))(Yn || {}), Ut = /* @__PURE__ */ ((e) => (e.Free = \"free\", e.Vertical = \"vertical\", e.Horizontal = \"horizontal\", e))(Ut || {}), xa = /* @__PURE__ */ ((e) => (e.TopLeft = \"top-left\", e.TopCenter = \"top-center\", e.TopRight = \"top-right\", e.BottomLeft = \"bottom-left\", e.BottomCenter = \"bottom-center\", e.BottomRight = \"bottom-right\", e))(xa || {});\nconst zo = Symbol(\"vueFlow\"), $i = Symbol(\"nodeId\"), ki = Symbol(\"nodeRef\"), Oi = Symbol(\"edgeId\"), Ti = Symbol(\"edgeRef\"), ln = Symbol(\"slots\");\nfunction _a(e) {\n const t = e ?? He($i, \"\"), n = He(ki, null), { findNode: o, edges: i, emits: r } = fe(), a = o(t);\n return a || r.error(new ve(he.NODE_NOT_FOUND, t)), {\n id: t,\n nodeEl: n,\n node: a,\n parentNode: J(() => o(a.parentNode)),\n connectedEdges: J(() => sn([a], i.value))\n };\n}\nfunction ho(e) {\n return \"clientX\" in e;\n}\nfunction rt(e, t) {\n var r, a;\n const n = ho(e), o = n ? e.clientX : (r = e.touches) == null ? void 0 : r[0].clientX, i = n ? e.clientY : (a = e.touches) == null ? void 0 : a[0].clientY;\n return {\n x: o - ((t == null ? void 0 : t.left) ?? 0),\n y: i - ((t == null ? void 0 : t.top) ?? 0)\n };\n}\nfunction Wt(e, t, n) {\n const o = ((n == null ? void 0 : n.x) ?? 0) + t.x, i = ((n == null ? void 0 : n.y) ?? 0) + t.y, r = (n == null ? void 0 : n.width) ?? t.width, a = (n == null ? void 0 : n.height) ?? t.height;\n switch (e) {\n case j.Top:\n return {\n x: o + r / 2,\n y: i\n };\n case j.Right:\n return {\n x: o + r,\n y: i + a / 2\n };\n case j.Bottom:\n return {\n x: o + r / 2,\n y: i + a\n };\n case j.Left:\n return {\n x: o,\n y: i + a / 2\n };\n }\n}\nfunction Ao(e = [], t) {\n return e.length ? !t || e.length === 1 ? e[0] : t && e.find((n) => n.id === t) || null : null;\n}\nfunction wa(e, t, n, o, i, r) {\n const a = Wt(\n n,\n {\n ...e.dimensions,\n ...e.computedPosition\n },\n t\n ), s = Wt(\n r,\n {\n ...o.dimensions,\n ...o.computedPosition\n },\n i\n );\n return {\n sourceX: a.x,\n sourceY: a.y,\n targetX: s.x,\n targetY: s.y\n };\n}\nfunction ba({\n sourcePos: e,\n targetPos: t,\n sourceWidth: n,\n sourceHeight: o,\n targetWidth: i,\n targetHeight: r,\n width: a,\n height: s,\n viewport: l\n}) {\n const u = {\n x: Math.min(e.x, t.x),\n y: Math.min(e.y, t.y),\n x2: Math.max(e.x + n, t.x + i),\n y2: Math.max(e.y + o, t.y + r)\n };\n u.x === u.x2 && (u.x2 += 1), u.y === u.y2 && (u.y2 += 1);\n const c = Xt({\n x: (0 - l.x) / l.zoom,\n y: (0 - l.y) / l.zoom,\n width: a / l.zoom,\n height: s / l.zoom\n }), v = Math.max(0, Math.min(c.x2, u.x2) - Math.max(c.x, u.x)), g = Math.max(0, Math.min(c.y2, u.y2) - Math.max(c.y, u.y));\n return Math.ceil(v * g) > 0;\n}\nfunction Ea(e, t, n = !1) {\n let o = -1;\n const i = e.reduce((r, a) => {\n const s = Ie(a.zIndex);\n let l = s ? a.zIndex : 0;\n const u = t(a.source), c = t(a.target);\n return !u || !c || (n && (l = s ? a.zIndex : Math.max(u.computedPosition.z || 0, c.computedPosition.z || 0)), r[l] ? r[l].push(a) : r[l] = [a], o = l > o ? l : o), r;\n }, {});\n return Object.entries(Object.keys(i).length ? i : { 0: [] }).map(([r, a]) => {\n const s = +r;\n return {\n edges: a,\n level: s,\n isMaxLevel: s === o\n };\n });\n}\nfunction Cn(e) {\n e == null || e.classList.remove(\"valid\", \"connecting\", \"vue-flow__handle-valid\", \"vue-flow__handle-connecting\");\n}\nfunction Bo(e, t, n, o) {\n return (t[n] || []).reduce((i, r) => (`${e.id}-${r.id}-${n}` !== o && i.push({\n id: r.id || null,\n type: n,\n nodeId: e.id,\n ...Wt(\n r.position,\n {\n ...e.dimensions,\n ...e.computedPosition\n },\n r\n )\n }), i), []);\n}\nfunction Sa(e, t, n) {\n let o = null, i = 1 / 0;\n return n.forEach((r) => {\n const a = Math.sqrt((r.x - e.x) ** 2 + (r.y - e.y) ** 2);\n a <= t && a < i && (i = a, o = r);\n }), o;\n}\nfunction Ro(e, t, n, o, i, r, a, s, l, u) {\n const c = r === \"target\", v = s.querySelector(`.vue-flow__handle[data-id=\"${t == null ? void 0 : t.nodeId}-${t == null ? void 0 : t.id}-${t == null ? void 0 : t.type}\"]`), { x: g, y: x } = rt(e), h = s.elementFromPoint(g, x), d = h != null && h.classList.contains(\"vue-flow__handle\") ? h : v, w = {\n handleDomNode: d,\n isValid: !1,\n connection: { source: \"\", target: \"\", sourceHandle: null, targetHandle: null },\n endHandle: null\n };\n if (d) {\n const y = Ii(void 0, d), S = d.getAttribute(\"data-nodeid\"), V = d.getAttribute(\"data-handleid\"), p = d.classList.contains(\"connectable\"), N = d.classList.contains(\"connectableend\"), T = {\n source: c ? S : o,\n sourceHandle: c ? V : i,\n target: c ? o : S,\n targetHandle: c ? i : V\n };\n w.connection = T, p && N && (n === Qe.Strict ? c && y === \"source\" || !c && y === \"target\" : S !== o || V !== i) && (w.endHandle = {\n nodeId: S,\n handleId: V,\n type: y\n }, w.isValid = a(T, {\n edges: l,\n sourceNode: u(T.source),\n targetNode: u(T.target)\n }));\n }\n return w;\n}\nfunction Na({ nodes: e, nodeId: t, handleId: n, handleType: o }) {\n return e.reduce((i, r) => {\n const { handleBounds: a } = r;\n let s = [], l = [];\n return a && (s = Bo(r, a, \"source\", `${t}-${n}-${o}`), l = Bo(r, a, \"target\", `${t}-${n}-${o}`)), i.push(...s, ...l), i;\n }, []);\n}\nfunction Ii(e, t) {\n return e || (t != null && t.classList.contains(\"target\") ? \"target\" : t != null && t.classList.contains(\"source\") ? \"source\" : null);\n}\nfunction Ca(e, t) {\n let n = null;\n return t ? n = \"valid\" : e && !t && (n = \"invalid\"), n;\n}\nfunction Vo(e, t, n) {\n return e < t ? je(Math.abs(e - t), 1, 50) / 50 : e > n ? -je(Math.abs(e - n), 1, 50) / 50 : 0;\n}\nfunction Pi(e, t) {\n const n = Vo(e.x, 35, t.width - 35) * 20, o = Vo(e.y, 35, t.height - 35) * 20;\n return [n, o];\n}\nfunction It() {\n return !0;\n}\nfunction Di({\n handleId: e,\n nodeId: t,\n type: n,\n isValidConnection: o,\n edgeUpdaterType: i,\n onEdgeUpdate: r,\n onEdgeUpdateEnd: a\n}) {\n const s = J(() => le(n) === \"target\"), {\n vueFlowRef: l,\n connectionMode: u,\n connectionRadius: c,\n connectOnClick: v,\n connectionClickStartHandle: g,\n nodesConnectable: x,\n autoPanOnConnect: h,\n findNode: d,\n panBy: w,\n getNodes: y,\n startConnection: S,\n updateConnection: V,\n endConnection: p,\n emits: N,\n viewport: T,\n edges: _,\n isValidConnection: P\n } = fe();\n let R = null, $ = !1, D = null;\n function Q(m) {\n var G;\n const A = ho(m), E = Po(m.target);\n if (A && m.button === 0 || !A) {\n let Z = function(Y) {\n L = rt(Y, f), B = Sa(\n uo(L, T.value, !1, [1, 1]),\n c.value,\n F\n ), I || (U(), I = !0);\n const ne = Ro(\n Y,\n B,\n u.value,\n le(t),\n le(e),\n s.value ? \"target\" : \"source\",\n W,\n E,\n _.value,\n d\n );\n if (R = ne.connection, $ = ne.isValid, D = ne.handleDomNode, V(\n B && $ ? va(\n {\n x: B.x,\n y: B.y\n },\n T.value\n ) : L,\n ne.endHandle,\n Ca(!!B, $)\n ), !B && !$ && !D)\n return Cn(b);\n R && R.source !== R.target && D && (Cn(b), b = D, D.classList.add(\"connecting\", \"vue-flow__handle-connecting\"), D.classList.toggle(\"valid\", $), D.classList.toggle(\"vue-flow__handle-valid\", $));\n }, K = function(Y) {\n (B || D) && R && $ && (r ? r(Y, R) : N.connect(R)), N.connectEnd(Y), i && (a == null || a(Y)), Cn(b), cancelAnimationFrame(q), p(Y), I = !1, $ = !1, R = null, D = null, E.removeEventListener(\"mousemove\", Z), E.removeEventListener(\"mouseup\", K), E.removeEventListener(\"touchmove\", Z), E.removeEventListener(\"touchend\", K);\n };\n const z = d(le(t));\n let W = o || P.value || It;\n !W && z && (W = (s ? z.isValidSourcePos : z.isValidTargetPos) || It);\n let B, q = 0;\n const { x: te, y: re } = rt(m), k = E == null ? void 0 : E.elementFromPoint(te, re), H = Ii(le(i), k), f = (G = l.value) == null ? void 0 : G.getBoundingClientRect();\n if (!f || !H)\n return;\n let b, L = rt(m, f), I = !1;\n const F = Na({\n nodes: y.value,\n nodeId: le(t),\n handleId: le(e),\n handleType: H\n }), U = () => {\n if (!h)\n return;\n const [Y, ne] = Pi(L, f);\n w({ x: Y, y: ne }), q = requestAnimationFrame(U);\n };\n S(\n {\n nodeId: le(t),\n handleId: le(e),\n type: H\n },\n {\n x: te - f.left,\n y: re - f.top\n },\n m\n ), N.connectStart({ event: m, nodeId: le(t), handleId: le(e), handleType: H }), E.addEventListener(\"mousemove\", Z), E.addEventListener(\"mouseup\", K), E.addEventListener(\"touchmove\", Z), E.addEventListener(\"touchend\", K);\n }\n }\n function ee(m) {\n if (v.value)\n if (!g.value)\n N.clickConnectStart({ event: m, nodeId: le(t), handleId: le(e) }), S(\n { nodeId: le(t), type: le(n), handleId: le(e) },\n void 0,\n m,\n !0\n );\n else {\n let A = o || P.value || It;\n const E = d(le(t));\n if (!A && E && (A = (s ? E.isValidSourcePos : E.isValidTargetPos) || It), E && (typeof E.connectable > \"u\" ? x.value : E.connectable) === !1)\n return;\n const G = Po(m.target), { connection: Z, isValid: K } = Ro(\n m,\n {\n nodeId: le(t),\n id: le(e),\n type: le(n)\n },\n u.value,\n g.value.nodeId,\n g.value.handleId || null,\n g.value.type,\n A,\n G,\n _.value,\n d\n ), z = Z.source === Z.target;\n K && !z && N.connect(Z), N.clickConnectEnd(m), p(m, !0);\n }\n }\n return {\n handlePointerDown: Q,\n handleClick: ee\n };\n}\nfunction Ma(e, t) {\n const n = {};\n for (const o in e)\n t.includes(o) || Object.defineProperty(n, o, {\n enumerable: !0,\n get: () => e[o]\n });\n return n;\n}\nconst $a = [\"data-id\", \"data-handleid\", \"data-nodeid\", \"data-handlepos\"], ka = {\n name: \"Handle\",\n compatConfig: { MODE: 3 }\n}, Kt = /* @__PURE__ */ ge({\n ...ka,\n props: {\n id: null,\n type: null,\n position: { default: j.Top },\n isValidConnection: { type: Function },\n connectable: { type: [Boolean, String, Function], default: void 0 },\n connectableStart: { type: Boolean, default: !0 },\n connectableEnd: { type: Boolean, default: !0 }\n },\n setup(e) {\n const t = Ma(e, [\"position\", \"connectable\", \"connectableStart\", \"connectableEnd\", \"id\", \"isValidConnection\"]), n = M(t, \"type\", \"source\"), {\n connectionStartHandle: o,\n connectionClickStartHandle: i,\n connectionEndHandle: r,\n vueFlowRef: a,\n nodesConnectable: s,\n noDragClassName: l,\n noPanClassName: u\n } = fe(), { id: c, node: v, nodeEl: g, connectedEdges: x } = _a(), h = ie(), d = J(() => e.id ?? `${c}__handle-${e.position}`), w = J(() => typeof e.connectableStart < \"u\" ? e.connectableStart : !0), y = J(() => typeof e.connectableEnd < \"u\" ? e.connectableEnd : !0), { handlePointerDown: S, handleClick: V } = Di({\n nodeId: c,\n handleId: d,\n isValidConnection: e.isValidConnection,\n type: n\n }), p = J(() => Pe(e.connectable) && e.connectable === \"single\" ? !x.value.some((R) => {\n const $ = R[`${n.value}Handle`];\n return R[n.value] !== c ? !1 : $ ? $ === d.value : !0;\n }) : Ae(e.connectable) ? e.connectable(v, x.value) : ce(e.connectable) ? e.connectable : s.value), N = J(\n () => {\n var R, $, D, Q, ee, m;\n return ((R = o.value) == null ? void 0 : R.nodeId) === c && (($ = o.value) == null ? void 0 : $.handleId) === d.value && ((D = o.value) == null ? void 0 : D.type) === n.value || ((Q = r.value) == null ? void 0 : Q.nodeId) === c && ((ee = r.value) == null ? void 0 : ee.handleId) === d.value && ((m = r.value) == null ? void 0 : m.type) === n.value;\n }\n ), T = J(\n () => {\n var R, $, D;\n return ((R = i.value) == null ? void 0 : R.nodeId) === c && (($ = i.value) == null ? void 0 : $.handleId) === d.value && ((D = i.value) == null ? void 0 : D.type) === n.value;\n }\n );\n ye(() => v.initialized).toBe(!0, { flush: \"post\" }).then(() => {\n var E;\n const R = (E = v.handleBounds[n.value]) == null ? void 0 : E.find((G) => G.id === d.value);\n if (!a.value || R)\n return;\n const $ = a.value.querySelector(\".vue-flow__transformationpane\");\n if (!g || !h.value || !$ || !d.value)\n return;\n const D = g.value.getBoundingClientRect(), Q = h.value.getBoundingClientRect(), ee = window.getComputedStyle($), { m22: m } = new window.DOMMatrixReadOnly(ee.transform), A = {\n id: d.value,\n position: e.position,\n x: (Q.left - D.left) / m,\n y: (Q.top - D.top) / m,\n ...rn(h.value)\n };\n v.handleBounds[n.value] = [...v.handleBounds[n.value] ?? [], A];\n });\n function _(R) {\n const $ = ho(R);\n p.value && w.value && ($ && R.button === 0 || !$) && S(R);\n }\n function P(R) {\n !c || !i.value && !w.value || p.value && V(R);\n }\n return (R, $) => (oe(), se(\"div\", {\n ref_key: \"handle\",\n ref: h,\n \"data-id\": `${C(c)}-${C(d)}-${C(n)}`,\n \"data-handleid\": C(d),\n \"data-nodeid\": C(c),\n \"data-handlepos\": e.position,\n class: Ke([\"vue-flow__handle\", [\n `vue-flow__handle-${e.position}`,\n `vue-flow__handle-${C(d)}`,\n C(l),\n C(u),\n C(n),\n {\n connectable: C(p),\n connecting: C(T),\n connectablestart: C(w),\n connectableend: C(y),\n connectionindicator: C(p) && (C(w) && !C(N) || C(y) && C(N))\n }\n ]]),\n onMousedown: _,\n onTouchstartPassive: _,\n onClick: P\n }, [\n xe(R.$slots, \"default\", { id: e.id })\n ], 42, $a));\n }\n}), un = function({\n sourcePosition: e = j.Bottom,\n targetPosition: t = j.Top,\n label: n,\n connectable: o = !0,\n isValidTargetPos: i,\n isValidSourcePos: r\n}) {\n return [\n ue(Kt, { type: \"target\", position: t, connectable: o, isValidConnection: i }),\n typeof n != \"string\" && n ? ue(n) : ue(\"div\", { innerHTML: n }),\n ue(Kt, { type: \"source\", position: e, connectable: o, isValidConnection: r })\n ];\n};\nun.props = [\"sourcePosition\", \"targetPosition\", \"label\", \"isValidTargetPos\", \"isValidSourcePos\", \"connectable\"];\nun.inheritAttrs = !1;\nun.compatConfig = { MODE: 3 };\nconst Oa = un, cn = function({\n sourcePosition: e = j.Bottom,\n label: t,\n connectable: n = !0,\n isValidSourcePos: o\n}) {\n return [\n typeof t != \"string\" && t ? ue(t) : ue(\"div\", { innerHTML: t }),\n ue(Kt, { type: \"source\", position: e, connectable: n, isValidConnection: o })\n ];\n};\ncn.props = [\"sourcePosition\", \"label\", \"isValidSourcePos\", \"connectable\"];\ncn.inheritAttrs = !1;\ncn.compatConfig = { MODE: 3 };\nconst Ta = cn, dn = function({\n targetPosition: e = j.Top,\n label: t,\n connectable: n = !0,\n isValidTargetPos: o\n}) {\n return [\n ue(Kt, { type: \"target\", position: e, connectable: n, isValidConnection: o }),\n typeof t != \"string\" && t ? ue(t) : ue(\"div\", { innerHTML: t })\n ];\n};\ndn.props = [\"targetPosition\", \"label\", \"isValidTargetPos\", \"connectable\"];\ndn.inheritAttrs = !1;\ndn.compatConfig = { MODE: 3 };\nconst Ia = dn;\nfunction Ho(e, t, n) {\n let o = e;\n do {\n if (o && o.matches(t))\n return !0;\n if (o === n)\n return !1;\n o = o.parentElement;\n } while (o);\n return !1;\n}\nfunction Pa(e, t, n, o, i) {\n return e.filter(\n (r) => (r.selected || r.id === i) && (!r.parentNode || !Mi(r, o)) && (r.draggable || t && typeof r.draggable > \"u\")\n ).map(\n (r) => {\n var a, s;\n return it({\n id: r.id,\n position: r.position || { x: 0, y: 0 },\n distance: {\n x: n.x - ((a = r.computedPosition) == null ? void 0 : a.x) || 0,\n y: n.y - ((s = r.computedPosition) == null ? void 0 : s.y) || 0\n },\n from: r.computedPosition,\n extent: r.extent,\n parentNode: r.parentNode,\n dimensions: r.dimensions\n });\n }\n );\n}\nfunction Mn({\n id: e,\n dragItems: t,\n findNode: n\n}) {\n const o = t.reduce((i, r) => {\n const a = n(r.id);\n return a && i.push(a), i;\n }, []);\n return [e ? o.find((i) => i.id === e) : o[0], o];\n}\nfunction zi(e) {\n if (Array.isArray(e))\n switch (e.length) {\n case 1:\n return [e[0], e[0], e[0], e[0]];\n case 2:\n return [e[0], e[1], e[0], e[1]];\n case 3:\n return [e[0], e[1], e[2], e[1]];\n case 4:\n return e;\n default:\n return [0, 0, 0, 0];\n }\n return [e, e, e, e];\n}\nfunction Da(e, t, n) {\n const [o, i, r, a] = typeof e != \"string\" ? zi(e.padding) : [0, 0, 0, 0];\n return n && Ie(n.computedPosition.x) && Ie(n.computedPosition.y) && Ie(n.dimensions.width) && Ie(n.dimensions.height) ? [\n [n.computedPosition.x + a, n.computedPosition.y + o],\n [\n n.computedPosition.x + (n.dimensions.width - t.dimensions.width) - i,\n n.computedPosition.y + (n.dimensions.height - t.dimensions.height) - r\n ]\n ] : !1;\n}\nfunction za(e, t, n, o) {\n let i = e.extent || n;\n if (i === \"parent\" || !Array.isArray(i) && (i == null ? void 0 : i.range) === \"parent\")\n if (e.parentNode && o && e.dimensions.width && e.dimensions.height) {\n const r = Da(i, e, o);\n r && (i = r);\n } else\n t(new ve(he.NODE_EXTENT_INVALID, e.id)), i = n;\n else if (Array.isArray(i)) {\n const r = (o == null ? void 0 : o.computedPosition.x) || 0, a = (o == null ? void 0 : o.computedPosition.y) || 0;\n i = [\n [i[0][0] + r, i[0][1] + a],\n [i[1][0] + r, i[1][1] + a]\n ];\n } else if (i != null && i.range && Array.isArray(i.range)) {\n const [r, a, s, l] = zi(i.padding), u = (o == null ? void 0 : o.computedPosition.x) || 0, c = (o == null ? void 0 : o.computedPosition.y) || 0;\n i = [\n [i.range[0][0] + u + l, i.range[0][1] + c + r],\n [i.range[1][0] + u - a, i.range[1][1] + c - s]\n ];\n }\n return i;\n}\nfunction go(e, t, n, o, i) {\n const r = za(e, n, o, i), a = so(t, r);\n return {\n position: {\n x: a.x - ((i == null ? void 0 : i.computedPosition.x) || 0),\n y: a.y - ((i == null ? void 0 : i.computedPosition.y) || 0)\n },\n computedPosition: a\n };\n}\nfunction Ai() {\n const { getSelectedNodes: e, nodeExtent: t, updateNodePositions: n, findNode: o, snapGrid: i, snapToGrid: r, nodesDraggable: a, emits: s } = fe();\n return (l, u = !1) => {\n const c = r.value ? i.value[0] : 5, v = r.value ? i.value[1] : 5, g = u ? 4 : 1, x = l.x * c * g, h = l.y * v * g, d = e.value.filter((w) => w.draggable || a && typeof w.draggable > \"u\").map((w) => {\n const y = { x: w.computedPosition.x + x, y: w.computedPosition.y + h }, { computedPosition: S } = go(\n w,\n y,\n s.error,\n t.value,\n w.parentNode ? o(w.parentNode) : void 0\n );\n return {\n id: w.id,\n position: S,\n from: w.position,\n distance: { x: l.x, y: l.y },\n dimensions: w.dimensions\n };\n });\n n(d, !0, !1);\n };\n}\nfunction Aa() {\n return {\n doubleClick: X(),\n click: X(),\n mouseEnter: X(),\n mouseMove: X(),\n mouseLeave: X(),\n contextMenu: X(),\n dragStart: X(),\n drag: X(),\n dragStop: X()\n };\n}\nfunction Ba(e, t) {\n const n = Aa();\n return n.doubleClick.on((o) => {\n var i, r;\n t.nodeDoubleClick(o), (r = (i = e.events) == null ? void 0 : i.doubleClick) == null || r.call(i, o);\n }), n.click.on((o) => {\n var i, r;\n t.nodeClick(o), (r = (i = e.events) == null ? void 0 : i.click) == null || r.call(i, o);\n }), n.mouseEnter.on((o) => {\n var i, r;\n t.nodeMouseEnter(o), (r = (i = e.events) == null ? void 0 : i.mouseEnter) == null || r.call(i, o);\n }), n.mouseMove.on((o) => {\n var i, r;\n t.nodeMouseMove(o), (r = (i = e.events) == null ? void 0 : i.mouseMove) == null || r.call(i, o);\n }), n.mouseLeave.on((o) => {\n var i, r;\n t.nodeMouseLeave(o), (r = (i = e.events) == null ? void 0 : i.mouseLeave) == null || r.call(i, o);\n }), n.contextMenu.on((o) => {\n var i, r;\n t.nodeContextMenu(o), (r = (i = e.events) == null ? void 0 : i.contextMenu) == null || r.call(i, o);\n }), n.dragStart.on((o) => {\n var i, r;\n t.nodeDragStart(o), (r = (i = e.events) == null ? void 0 : i.dragStart) == null || r.call(i, o);\n }), n.drag.on((o) => {\n var i, r;\n t.nodeDrag(o), (r = (i = e.events) == null ? void 0 : i.drag) == null || r.call(i, o);\n }), n.dragStop.on((o) => {\n var i, r;\n t.nodeDragStop(o), (r = (i = e.events) == null ? void 0 : i.dragStop) == null || r.call(i, o);\n }), Object.entries(n).reduce(\n (o, [i, r]) => (o.emit[i] = r.trigger, o.on[i] = r.on, o),\n { emit: {}, on: {} }\n );\n}\nfunction Ra() {\n const { viewport: e, snapGrid: t, snapToGrid: n } = fe();\n return ({ sourceEvent: o }) => {\n const i = o.touches ? o.touches[0].clientX : o.clientX, r = o.touches ? o.touches[0].clientY : o.clientY, a = {\n x: (i - e.value.x) / e.value.zoom,\n y: (r - e.value.y) / e.value.zoom\n };\n return {\n xSnapped: n.value ? t.value[0] * Math.round(a.x / t.value[0]) : a.x,\n ySnapped: n.value ? t.value[1] * Math.round(a.y / t.value[1]) : a.y,\n ...a\n };\n };\n}\nfunction Lo(e, t, n) {\n const o = t.querySelectorAll(`.vue-flow__handle${e}`);\n if (!o || !o.length)\n return;\n const i = Array.from(o), r = t.getBoundingClientRect();\n return i.map((a) => {\n const s = a.getBoundingClientRect();\n return {\n id: a.getAttribute(\"data-handleid\"),\n position: a.getAttribute(\"data-handlepos\"),\n x: (s.left - r.left) / n,\n y: (s.top - r.top) / n,\n ...rn(a)\n };\n });\n}\nfunction Xn(e, t, n, o, i, r = !1, a) {\n i.value = !1, e.selected ? (r || e.selected && t) && (o([e]), Ue(a.blur)) : n([e]);\n}\nvar Va = { value: () => {\n} };\nfunction fn() {\n for (var e = 0, t = arguments.length, n = {}, o; e < t; ++e) {\n if (!(o = arguments[e] + \"\") || o in n || /[\\s.]/.test(o))\n throw new Error(\"illegal type: \" + o);\n n[o] = [];\n }\n return new Ht(n);\n}\nfunction Ht(e) {\n this._ = e;\n}\nfunction Ha(e, t) {\n return e.trim().split(/^|\\s+/).map(function(n) {\n var o = \"\", i = n.indexOf(\".\");\n if (i >= 0 && (o = n.slice(i + 1), n = n.slice(0, i)), n && !t.hasOwnProperty(n))\n throw new Error(\"unknown type: \" + n);\n return { type: n, name: o };\n });\n}\nHt.prototype = fn.prototype = {\n constructor: Ht,\n on: function(e, t) {\n var n = this._, o = Ha(e + \"\", n), i, r = -1, a = o.length;\n if (arguments.length < 2) {\n for (; ++r < a; )\n if ((i = (e = o[r]).type) && (i = La(n[i], e.name)))\n return i;\n return;\n }\n if (t != null && typeof t != \"function\")\n throw new Error(\"invalid callback: \" + t);\n for (; ++r < a; )\n if (i = (e = o[r]).type)\n n[i] = Go(n[i], e.name, t);\n else if (t == null)\n for (i in n)\n n[i] = Go(n[i], e.name, null);\n return this;\n },\n copy: function() {\n var e = {}, t = this._;\n for (var n in t)\n e[n] = t[n].slice();\n return new Ht(e);\n },\n call: function(e, t) {\n if ((i = arguments.length - 2) > 0)\n for (var n = new Array(i), o = 0, i, r; o < i; ++o)\n n[o] = arguments[o + 2];\n if (!this._.hasOwnProperty(e))\n throw new Error(\"unknown type: \" + e);\n for (r = this._[e], o = 0, i = r.length; o < i; ++o)\n r[o].value.apply(t, n);\n },\n apply: function(e, t, n) {\n if (!this._.hasOwnProperty(e))\n throw new Error(\"unknown type: \" + e);\n for (var o = this._[e], i = 0, r = o.length; i < r; ++i)\n o[i].value.apply(t, n);\n }\n};\nfunction La(e, t) {\n for (var n = 0, o = e.length, i; n < o; ++n)\n if ((i = e[n]).name === t)\n return i.value;\n}\nfunction Go(e, t, n) {\n for (var o = 0, i = e.length; o < i; ++o)\n if (e[o].name === t) {\n e[o] = Va, e = e.slice(0, o).concat(e.slice(o + 1));\n break;\n }\n return n != null && e.push({ name: t, value: n }), e;\n}\nvar Zn = \"http://www.w3.org/1999/xhtml\";\nconst Fo = {\n svg: \"http://www.w3.org/2000/svg\",\n xhtml: Zn,\n xlink: \"http://www.w3.org/1999/xlink\",\n xml: \"http://www.w3.org/XML/1998/namespace\",\n xmlns: \"http://www.w3.org/2000/xmlns/\"\n};\nfunction hn(e) {\n var t = e += \"\", n = t.indexOf(\":\");\n return n >= 0 && (t = e.slice(0, n)) !== \"xmlns\" && (e = e.slice(n + 1)), Fo.hasOwnProperty(t) ? { space: Fo[t], local: e } : e;\n}\nfunction Ga(e) {\n return function() {\n var t = this.ownerDocument, n = this.namespaceURI;\n return n === Zn && t.documentElement.namespaceURI === Zn ? t.createElement(e) : t.createElementNS(n, e);\n };\n}\nfunction Fa(e) {\n return function() {\n return this.ownerDocument.createElementNS(e.space, e.local);\n };\n}\nfunction Bi(e) {\n var t = hn(e);\n return (t.local ? Fa : Ga)(t);\n}\nfunction Ya() {\n}\nfunction vo(e) {\n return e == null ? Ya : function() {\n return this.querySelector(e);\n };\n}\nfunction Xa(e) {\n typeof e != \"function\" && (e = vo(e));\n for (var t = this._groups, n = t.length, o = new Array(n), i = 0; i < n; ++i)\n for (var r = t[i], a = r.length, s = o[i] = new Array(a), l, u, c = 0; c < a; ++c)\n (l = r[c]) && (u = e.call(l, l.__data__, c, r)) && (\"__data__\" in l && (u.__data__ = l.__data__), s[c] = u);\n return new _e(o, this._parents);\n}\nfunction Za(e) {\n return e == null ? [] : Array.isArray(e) ? e : Array.from(e);\n}\nfunction Ua() {\n return [];\n}\nfunction Ri(e) {\n return e == null ? Ua : function() {\n return this.querySelectorAll(e);\n };\n}\nfunction Wa(e) {\n return function() {\n return Za(e.apply(this, arguments));\n };\n}\nfunction Ka(e) {\n typeof e == \"function\" ? e = Wa(e) : e = Ri(e);\n for (var t = this._groups, n = t.length, o = [], i = [], r = 0; r < n; ++r)\n for (var a = t[r], s = a.length, l, u = 0; u < s; ++u)\n (l = a[u]) && (o.push(e.call(l, l.__data__, u, a)), i.push(l));\n return new _e(o, i);\n}\nfunction Vi(e) {\n return function() {\n return this.matches(e);\n };\n}\nfunction Hi(e) {\n return function(t) {\n return t.matches(e);\n };\n}\nvar qa = Array.prototype.find;\nfunction ja(e) {\n return function() {\n return qa.call(this.children, e);\n };\n}\nfunction Qa() {\n return this.firstElementChild;\n}\nfunction Ja(e) {\n return this.select(e == null ? Qa : ja(typeof e == \"function\" ? e : Hi(e)));\n}\nvar es = Array.prototype.filter;\nfunction ts() {\n return Array.from(this.children);\n}\nfunction ns(e) {\n return function() {\n return es.call(this.children, e);\n };\n}\nfunction os(e) {\n return this.selectAll(e == null ? ts : ns(typeof e == \"function\" ? e : Hi(e)));\n}\nfunction is(e) {\n typeof e != \"function\" && (e = Vi(e));\n for (var t = this._groups, n = t.length, o = new Array(n), i = 0; i < n; ++i)\n for (var r = t[i], a = r.length, s = o[i] = [], l, u = 0; u < a; ++u)\n (l = r[u]) && e.call(l, l.__data__, u, r) && s.push(l);\n return new _e(o, this._parents);\n}\nfunction Li(e) {\n return new Array(e.length);\n}\nfunction rs() {\n return new _e(this._enter || this._groups.map(Li), this._parents);\n}\nfunction qt(e, t) {\n this.ownerDocument = e.ownerDocument, this.namespaceURI = e.namespaceURI, this._next = null, this._parent = e, this.__data__ = t;\n}\nqt.prototype = {\n constructor: qt,\n appendChild: function(e) {\n return this._parent.insertBefore(e, this._next);\n },\n insertBefore: function(e, t) {\n return this._parent.insertBefore(e, t);\n },\n querySelector: function(e) {\n return this._parent.querySelector(e);\n },\n querySelectorAll: function(e) {\n return this._parent.querySelectorAll(e);\n }\n};\nfunction as(e) {\n return function() {\n return e;\n };\n}\nfunction ss(e, t, n, o, i, r) {\n for (var a = 0, s, l = t.length, u = r.length; a < u; ++a)\n (s = t[a]) ? (s.__data__ = r[a], o[a] = s) : n[a] = new qt(e, r[a]);\n for (; a < l; ++a)\n (s = t[a]) && (i[a] = s);\n}\nfunction ls(e, t, n, o, i, r, a) {\n var s, l, u = /* @__PURE__ */ new Map(), c = t.length, v = r.length, g = new Array(c), x;\n for (s = 0; s < c; ++s)\n (l = t[s]) && (g[s] = x = a.call(l, l.__data__, s, t) + \"\", u.has(x) ? i[s] = l : u.set(x, l));\n for (s = 0; s < v; ++s)\n x = a.call(e, r[s], s, r) + \"\", (l = u.get(x)) ? (o[s] = l, l.__data__ = r[s], u.delete(x)) : n[s] = new qt(e, r[s]);\n for (s = 0; s < c; ++s)\n (l = t[s]) && u.get(g[s]) === l && (i[s] = l);\n}\nfunction us(e) {\n return e.__data__;\n}\nfunction cs(e, t) {\n if (!arguments.length)\n return Array.from(this, us);\n var n = t ? ls : ss, o = this._parents, i = this._groups;\n typeof e != \"function\" && (e = as(e));\n for (var r = i.length, a = new Array(r), s = new Array(r), l = new Array(r), u = 0; u < r; ++u) {\n var c = o[u], v = i[u], g = v.length, x = ds(e.call(c, c && c.__data__, u, o)), h = x.length, d = s[u] = new Array(h), w = a[u] = new Array(h), y = l[u] = new Array(g);\n n(c, v, d, w, y, x, t);\n for (var S = 0, V = 0, p, N; S < h; ++S)\n if (p = d[S]) {\n for (S >= V && (V = S + 1); !(N = w[V]) && ++V < h; )\n ;\n p._next = N || null;\n }\n }\n return a = new _e(a, o), a._enter = s, a._exit = l, a;\n}\nfunction ds(e) {\n return typeof e == \"object\" && \"length\" in e ? e : Array.from(e);\n}\nfunction fs() {\n return new _e(this._exit || this._groups.map(Li), this._parents);\n}\nfunction hs(e, t, n) {\n var o = this.enter(), i = this, r = this.exit();\n return typeof e == \"function\" ? (o = e(o), o && (o = o.selection())) : o = o.append(e + \"\"), t != null && (i = t(i), i && (i = i.selection())), n == null ? r.remove() : n(r), o && i ? o.merge(i).order() : i;\n}\nfunction gs(e) {\n for (var t = e.selection ? e.selection() : e, n = this._groups, o = t._groups, i = n.length, r = o.length, a = Math.min(i, r), s = new Array(i), l = 0; l < a; ++l)\n for (var u = n[l], c = o[l], v = u.length, g = s[l] = new Array(v), x, h = 0; h < v; ++h)\n (x = u[h] || c[h]) && (g[h] = x);\n for (; l < i; ++l)\n s[l] = n[l];\n return new _e(s, this._parents);\n}\nfunction vs() {\n for (var e = this._groups, t = -1, n = e.length; ++t < n; )\n for (var o = e[t], i = o.length - 1, r = o[i], a; --i >= 0; )\n (a = o[i]) && (r && a.compareDocumentPosition(r) ^ 4 && r.parentNode.insertBefore(a, r), r = a);\n return this;\n}\nfunction ms(e) {\n e || (e = ps);\n function t(v, g) {\n return v && g ? e(v.__data__, g.__data__) : !v - !g;\n }\n for (var n = this._groups, o = n.length, i = new Array(o), r = 0; r < o; ++r) {\n for (var a = n[r], s = a.length, l = i[r] = new Array(s), u, c = 0; c < s; ++c)\n (u = a[c]) && (l[c] = u);\n l.sort(t);\n }\n return new _e(i, this._parents).order();\n}\nfunction ps(e, t) {\n return e < t ? -1 : e > t ? 1 : e >= t ? 0 : NaN;\n}\nfunction ys() {\n var e = arguments[0];\n return arguments[0] = this, e.apply(null, arguments), this;\n}\nfunction xs() {\n return Array.from(this);\n}\nfunction _s() {\n for (var e = this._groups, t = 0, n = e.length; t < n; ++t)\n for (var o = e[t], i = 0, r = o.length; i < r; ++i) {\n var a = o[i];\n if (a)\n return a;\n }\n return null;\n}\nfunction ws() {\n let e = 0;\n for (const t of this)\n ++e;\n return e;\n}\nfunction bs() {\n return !this.node();\n}\nfunction Es(e) {\n for (var t = this._groups, n = 0, o = t.length; n < o; ++n)\n for (var i = t[n], r = 0, a = i.length, s; r < a; ++r)\n (s = i[r]) && e.call(s, s.__data__, r, i);\n return this;\n}\nfunction Ss(e) {\n return function() {\n this.removeAttribute(e);\n };\n}\nfunction Ns(e) {\n return function() {\n this.removeAttributeNS(e.space, e.local);\n };\n}\nfunction Cs(e, t) {\n return function() {\n this.setAttribute(e, t);\n };\n}\nfunction Ms(e, t) {\n return function() {\n this.setAttributeNS(e.space, e.local, t);\n };\n}\nfunction $s(e, t) {\n return function() {\n var n = t.apply(this, arguments);\n n == null ? this.removeAttribute(e) : this.setAttribute(e, n);\n };\n}\nfunction ks(e, t) {\n return function() {\n var n = t.apply(this, arguments);\n n == null ? this.removeAttributeNS(e.space, e.local) : this.setAttributeNS(e.space, e.local, n);\n };\n}\nfunction Os(e, t) {\n var n = hn(e);\n if (arguments.length < 2) {\n var o = this.node();\n return n.local ? o.getAttributeNS(n.space, n.local) : o.getAttribute(n);\n }\n return this.each((t == null ? n.local ? Ns : Ss : typeof t == \"function\" ? n.local ? ks : $s : n.local ? Ms : Cs)(n, t));\n}\nfunction Gi(e) {\n return e.ownerDocument && e.ownerDocument.defaultView || e.document && e || e.defaultView;\n}\nfunction Ts(e) {\n return function() {\n this.style.removeProperty(e);\n };\n}\nfunction Is(e, t, n) {\n return function() {\n this.style.setProperty(e, t, n);\n };\n}\nfunction Ps(e, t, n) {\n return function() {\n var o = t.apply(this, arguments);\n o == null ? this.style.removeProperty(e) : this.style.setProperty(e, o, n);\n };\n}\nfunction Ds(e, t, n) {\n return arguments.length > 1 ? this.each((t == null ? Ts : typeof t == \"function\" ? Ps : Is)(e, t, n ?? \"\")) : ft(this.node(), e);\n}\nfunction ft(e, t) {\n return e.style.getPropertyValue(t) || Gi(e).getComputedStyle(e, null).getPropertyValue(t);\n}\nfunction zs(e) {\n return function() {\n delete this[e];\n };\n}\nfunction As(e, t) {\n return function() {\n this[e] = t;\n };\n}\nfunction Bs(e, t) {\n return function() {\n var n = t.apply(this, arguments);\n n == null ? delete this[e] : this[e] = n;\n };\n}\nfunction Rs(e, t) {\n return arguments.length > 1 ? this.each((t == null ? zs : typeof t == \"function\" ? Bs : As)(e, t)) : this.node()[e];\n}\nfunction Fi(e) {\n return e.trim().split(/^|\\s+/);\n}\nfunction mo(e) {\n return e.classList || new Yi(e);\n}\nfunction Yi(e) {\n this._node = e, this._names = Fi(e.getAttribute(\"class\") || \"\");\n}\nYi.prototype = {\n add: function(e) {\n var t = this._names.indexOf(e);\n t < 0 && (this._names.push(e), this._node.setAttribute(\"class\", this._names.join(\" \")));\n },\n remove: function(e) {\n var t = this._names.indexOf(e);\n t >= 0 && (this._names.splice(t, 1), this._node.setAttribute(\"class\", this._names.join(\" \")));\n },\n contains: function(e) {\n return this._names.indexOf(e) >= 0;\n }\n};\nfunction Xi(e, t) {\n for (var n = mo(e), o = -1, i = t.length; ++o < i; )\n n.add(t[o]);\n}\nfunction Zi(e, t) {\n for (var n = mo(e), o = -1, i = t.length; ++o < i; )\n n.remove(t[o]);\n}\nfunction Vs(e) {\n return function() {\n Xi(this, e);\n };\n}\nfunction Hs(e) {\n return function() {\n Zi(this, e);\n };\n}\nfunction Ls(e, t) {\n return function() {\n (t.apply(this, arguments) ? Xi : Zi)(this, e);\n };\n}\nfunction Gs(e, t) {\n var n = Fi(e + \"\");\n if (arguments.length < 2) {\n for (var o = mo(this.node()), i = -1, r = n.length; ++i < r; )\n if (!o.contains(n[i]))\n return !1;\n return !0;\n }\n return this.each((typeof t == \"function\" ? Ls : t ? Vs : Hs)(n, t));\n}\nfunction Fs() {\n this.textContent = \"\";\n}\nfunction Ys(e) {\n return function() {\n this.textContent = e;\n };\n}\nfunction Xs(e) {\n return function() {\n var t = e.apply(this, arguments);\n this.textContent = t ?? \"\";\n };\n}\nfunction Zs(e) {\n return arguments.length ? this.each(e == null ? Fs : (typeof e == \"function\" ? Xs : Ys)(e)) : this.node().textContent;\n}\nfunction Us() {\n this.innerHTML = \"\";\n}\nfunction Ws(e) {\n return function() {\n this.innerHTML = e;\n };\n}\nfunction Ks(e) {\n return function() {\n var t = e.apply(this, arguments);\n this.innerHTML = t ?? \"\";\n };\n}\nfunction qs(e) {\n return arguments.length ? this.each(e == null ? Us : (typeof e == \"function\" ? Ks : Ws)(e)) : this.node().innerHTML;\n}\nfunction js() {\n this.nextSibling && this.parentNode.appendChild(this);\n}\nfunction Qs() {\n return this.each(js);\n}\nfunction Js() {\n this.previousSibling && this.parentNode.insertBefore(this, this.parentNode.firstChild);\n}\nfunction el() {\n return this.each(Js);\n}\nfunction tl(e) {\n var t = typeof e == \"function\" ? e : Bi(e);\n return this.select(function() {\n return this.appendChild(t.apply(this, arguments));\n });\n}\nfunction nl() {\n return null;\n}\nfunction ol(e, t) {\n var n = typeof e == \"function\" ? e : Bi(e), o = t == null ? nl : typeof t == \"function\" ? t : vo(t);\n return this.select(function() {\n return this.insertBefore(n.apply(this, arguments), o.apply(this, arguments) || null);\n });\n}\nfunction il() {\n var e = this.parentNode;\n e && e.removeChild(this);\n}\nfunction rl() {\n return this.each(il);\n}\nfunction al() {\n var e = this.cloneNode(!1), t = this.parentNode;\n return t ? t.insertBefore(e, this.nextSibling) : e;\n}\nfunction sl() {\n var e = this.cloneNode(!0), t = this.parentNode;\n return t ? t.insertBefore(e, this.nextSibling) : e;\n}\nfunction ll(e) {\n return this.select(e ? sl : al);\n}\nfunction ul(e) {\n return arguments.length ? this.property(\"__data__\", e) : this.node().__data__;\n}\nfunction cl(e) {\n return function(t) {\n e.call(this, t, this.__data__);\n };\n}\nfunction dl(e) {\n return e.trim().split(/^|\\s+/).map(function(t) {\n var n = \"\", o = t.indexOf(\".\");\n return o >= 0 && (n = t.slice(o + 1), t = t.slice(0, o)), { type: t, name: n };\n });\n}\nfunction fl(e) {\n return function() {\n var t = this.__on;\n if (t) {\n for (var n = 0, o = -1, i = t.length, r; n < i; ++n)\n r = t[n], (!e.type || r.type === e.type) && r.name === e.name ? this.removeEventListener(r.type, r.listener, r.options) : t[++o] = r;\n ++o ? t.length = o : delete this.__on;\n }\n };\n}\nfunction hl(e, t, n) {\n return function() {\n var o = this.__on, i, r = cl(t);\n if (o) {\n for (var a = 0, s = o.length; a < s; ++a)\n if ((i = o[a]).type === e.type && i.name === e.name) {\n this.removeEventListener(i.type, i.listener, i.options), this.addEventListener(i.type, i.listener = r, i.options = n), i.value = t;\n return;\n }\n }\n this.addEventListener(e.type, r, n), i = { type: e.type, name: e.name, value: t, listener: r, options: n }, o ? o.push(i) : this.__on = [i];\n };\n}\nfunction gl(e, t, n) {\n var o = dl(e + \"\"), i, r = o.length, a;\n if (arguments.length < 2) {\n var s = this.node().__on;\n if (s) {\n for (var l = 0, u = s.length, c; l < u; ++l)\n for (i = 0, c = s[l]; i < r; ++i)\n if ((a = o[i]).type === c.type && a.name === c.name)\n return c.value;\n }\n return;\n }\n for (s = t ? hl : fl, i = 0; i < r; ++i)\n this.each(s(o[i], t, n));\n return this;\n}\nfunction Ui(e, t, n) {\n var o = Gi(e), i = o.CustomEvent;\n typeof i == \"function\" ? i = new i(t, n) : (i = o.document.createEvent(\"Event\"), n ? (i.initEvent(t, n.bubbles, n.cancelable), i.detail = n.detail) : i.initEvent(t, !1, !1)), e.dispatchEvent(i);\n}\nfunction vl(e, t) {\n return function() {\n return Ui(this, e, t);\n };\n}\nfunction ml(e, t) {\n return function() {\n return Ui(this, e, t.apply(this, arguments));\n };\n}\nfunction pl(e, t) {\n return this.each((typeof t == \"function\" ? ml : vl)(e, t));\n}\nfunction* yl() {\n for (var e = this._groups, t = 0, n = e.length; t < n; ++t)\n for (var o = e[t], i = 0, r = o.length, a; i < r; ++i)\n (a = o[i]) && (yield a);\n}\nvar Wi = [null];\nfunction _e(e, t) {\n this._groups = e, this._parents = t;\n}\nfunction $t() {\n return new _e([[document.documentElement]], Wi);\n}\nfunction xl() {\n return this;\n}\n_e.prototype = $t.prototype = {\n constructor: _e,\n select: Xa,\n selectAll: Ka,\n selectChild: Ja,\n selectChildren: os,\n filter: is,\n data: cs,\n enter: rs,\n exit: fs,\n join: hs,\n merge: gs,\n selection: xl,\n order: vs,\n sort: ms,\n call: ys,\n nodes: xs,\n node: _s,\n size: ws,\n empty: bs,\n each: Es,\n attr: Os,\n style: Ds,\n property: Rs,\n classed: Gs,\n text: Zs,\n html: qs,\n raise: Qs,\n lower: el,\n append: tl,\n insert: ol,\n remove: rl,\n clone: ll,\n datum: ul,\n on: gl,\n dispatch: pl,\n [Symbol.iterator]: yl\n};\nfunction we(e) {\n return typeof e == \"string\" ? new _e([[document.querySelector(e)]], [document.documentElement]) : new _e([[e]], Wi);\n}\nfunction _l(e) {\n let t;\n for (; t = e.sourceEvent; )\n e = t;\n return e;\n}\nfunction Ne(e, t) {\n if (e = _l(e), t === void 0 && (t = e.currentTarget), t) {\n var n = t.ownerSVGElement || t;\n if (n.createSVGPoint) {\n var o = n.createSVGPoint();\n return o.x = e.clientX, o.y = e.clientY, o = o.matrixTransform(t.getScreenCTM().inverse()), [o.x, o.y];\n }\n if (t.getBoundingClientRect) {\n var i = t.getBoundingClientRect();\n return [e.clientX - i.left - t.clientLeft, e.clientY - i.top - t.clientTop];\n }\n }\n return [e.pageX, e.pageY];\n}\nconst wl = { passive: !1 }, bt = { capture: !0, passive: !1 };\nfunction $n(e) {\n e.stopImmediatePropagation();\n}\nfunction at(e) {\n e.preventDefault(), e.stopImmediatePropagation();\n}\nfunction Ki(e) {\n var t = e.document.documentElement, n = we(e).on(\"dragstart.drag\", at, bt);\n \"onselectstart\" in t ? n.on(\"selectstart.drag\", at, bt) : (t.__noselect = t.style.MozUserSelect, t.style.MozUserSelect = \"none\");\n}\nfunction qi(e, t) {\n var n = e.document.documentElement, o = we(e).on(\"dragstart.drag\", null);\n t && (o.on(\"click.drag\", at, bt), setTimeout(function() {\n o.on(\"click.drag\", null);\n }, 0)), \"onselectstart\" in n ? o.on(\"selectstart.drag\", null) : (n.style.MozUserSelect = n.__noselect, delete n.__noselect);\n}\nconst Pt = (e) => () => e;\nfunction Un(e, {\n sourceEvent: t,\n subject: n,\n target: o,\n identifier: i,\n active: r,\n x: a,\n y: s,\n dx: l,\n dy: u,\n dispatch: c\n}) {\n Object.defineProperties(this, {\n type: { value: e, enumerable: !0, configurable: !0 },\n sourceEvent: { value: t, enumerable: !0, configurable: !0 },\n subject: { value: n, enumerable: !0, configurable: !0 },\n target: { value: o, enumerable: !0, configurable: !0 },\n identifier: { value: i, enumerable: !0, configurable: !0 },\n active: { value: r, enumerable: !0, configurable: !0 },\n x: { value: a, enumerable: !0, configurable: !0 },\n y: { value: s, enumerable: !0, configurable: !0 },\n dx: { value: l, enumerable: !0, configurable: !0 },\n dy: { value: u, enumerable: !0, configurable: !0 },\n _: { value: c }\n });\n}\nUn.prototype.on = function() {\n var e = this._.on.apply(this._, arguments);\n return e === this._ ? this : e;\n};\nfunction bl(e) {\n return !e.ctrlKey && !e.button;\n}\nfunction El() {\n return this.parentNode;\n}\nfunction Sl(e, t) {\n return t ?? { x: e.x, y: e.y };\n}\nfunction Nl() {\n return navigator.maxTouchPoints || \"ontouchstart\" in this;\n}\nfunction Cl() {\n var e = bl, t = El, n = Sl, o = Nl, i = {}, r = fn(\"start\", \"drag\", \"end\"), a = 0, s, l, u, c, v = 0;\n function g(p) {\n p.on(\"mousedown.drag\", x).filter(o).on(\"touchstart.drag\", w).on(\"touchmove.drag\", y, wl).on(\"touchend.drag touchcancel.drag\", S).style(\"touch-action\", \"none\").style(\"-webkit-tap-highlight-color\", \"rgba(0,0,0,0)\");\n }\n function x(p, N) {\n if (!(c || !e.call(this, p, N))) {\n var T = V(this, t.call(this, p, N), p, N, \"mouse\");\n T && (we(p.view).on(\"mousemove.drag\", h, bt).on(\"mouseup.drag\", d, bt), Ki(p.view), $n(p), u = !1, s = p.clientX, l = p.clientY, T(\"start\", p));\n }\n }\n function h(p) {\n if (at(p), !u) {\n var N = p.clientX - s, T = p.clientY - l;\n u = N * N + T * T > v;\n }\n i.mouse(\"drag\", p);\n }\n function d(p) {\n we(p.view).on(\"mousemove.drag mouseup.drag\", null), qi(p.view, u), at(p), i.mouse(\"end\", p);\n }\n function w(p, N) {\n if (e.call(this, p, N)) {\n var T = p.changedTouches, _ = t.call(this, p, N), P = T.length, R, $;\n for (R = 0; R < P; ++R)\n ($ = V(this, _, p, N, T[R].identifier, T[R])) && ($n(p), $(\"start\", p, T[R]));\n }\n }\n function y(p) {\n var N = p.changedTouches, T = N.length, _, P;\n for (_ = 0; _ < T; ++_)\n (P = i[N[_].identifier]) && (at(p), P(\"drag\", p, N[_]));\n }\n function S(p) {\n var N = p.changedTouches, T = N.length, _, P;\n for (c && clearTimeout(c), c = setTimeout(function() {\n c = null;\n }, 500), _ = 0; _ < T; ++_)\n (P = i[N[_].identifier]) && ($n(p), P(\"end\", p, N[_]));\n }\n function V(p, N, T, _, P, R) {\n var $ = r.copy(), D = Ne(R || T, N), Q, ee, m;\n if ((m = n.call(p, new Un(\"beforestart\", {\n sourceEvent: T,\n target: g,\n identifier: P,\n active: a,\n x: D[0],\n y: D[1],\n dx: 0,\n dy: 0,\n dispatch: $\n }), _)) != null)\n return Q = m.x - D[0] || 0, ee = m.y - D[1] || 0, function A(E, G, Z) {\n var K = D, z;\n switch (E) {\n case \"start\":\n i[P] = A, z = a++;\n break;\n case \"end\":\n delete i[P], --a;\n case \"drag\":\n D = Ne(Z || G, N), z = a;\n break;\n }\n $.call(\n E,\n p,\n new Un(E, {\n sourceEvent: G,\n subject: m,\n target: g,\n identifier: P,\n active: z,\n x: D[0] + Q,\n y: D[1] + ee,\n dx: D[0] - K[0],\n dy: D[1] - K[1],\n dispatch: $\n }),\n _\n );\n };\n }\n return g.filter = function(p) {\n return arguments.length ? (e = typeof p == \"function\" ? p : Pt(!!p), g) : e;\n }, g.container = function(p) {\n return arguments.length ? (t = typeof p == \"function\" ? p : Pt(p), g) : t;\n }, g.subject = function(p) {\n return arguments.length ? (n = typeof p == \"function\" ? p : Pt(p), g) : n;\n }, g.touchable = function(p) {\n return arguments.length ? (o = typeof p == \"function\" ? p : Pt(!!p), g) : o;\n }, g.on = function() {\n var p = r.on.apply(r, arguments);\n return p === r ? g : p;\n }, g.clickDistance = function(p) {\n return arguments.length ? (v = (p = +p) * p, g) : Math.sqrt(v);\n }, g;\n}\nfunction ji(e) {\n const t = fe(), n = M(t, \"vueFlowRef\"), o = M(t, \"snapToGrid\"), i = M(t, \"snapGrid\"), r = M(t, \"noDragClassName\"), a = M(t, \"nodes\"), s = M(t, \"nodeExtent\"), l = M(t, \"viewport\"), u = M(t, \"autoPanOnNodeDrag\"), c = M(t, \"nodesDraggable\"), v = M(t, \"panBy\"), g = M(t, \"findNode\"), x = M(t, \"multiSelectionActive\"), h = M(t, \"nodesSelectionActive\"), d = M(t, \"selectNodesOnDrag\"), w = M(t, \"removeSelectedElements\"), y = M(t, \"addSelectedNodes\"), S = M(t, \"updateNodePositions\"), V = M(t, \"emits\"), { onStart: p, onDrag: N, onStop: T, el: _, disabled: P, id: R, selectable: $ } = e, D = ie(!1);\n let Q = ie([]), ee = ie(), m = ie(null), A = ie({ x: void 0, y: void 0 }), E = ie({ x: 0, y: 0 }), G = ie(null), Z = ie(0), K = ie(!1);\n const z = Ra(), W = ({ x: q, y: te }) => {\n A.value = { x: q, y: te };\n let re = !1;\n if (Q.value = Q.value.map((k) => {\n const H = { x: q - k.distance.x, y: te - k.distance.y };\n o.value && (H.x = i.value[0] * Math.round(H.x / i.value[0]), H.y = i.value[1] * Math.round(H.y / i.value[1]));\n const { computedPosition: f } = go(\n k,\n H,\n V.value.error,\n s.value,\n k.parentNode ? g.value(k.parentNode) : void 0\n );\n return re = re || k.position.x !== f.x || k.position.y !== f.y, k.position = f, k;\n }), !!re && (S.value(Q.value, !0, !0), D.value = !0, G.value)) {\n const [k, H] = Mn({\n id: R,\n dragItems: Q.value,\n findNode: g.value\n });\n N({ event: G.value, node: k, nodes: H });\n }\n }, B = () => {\n if (!m.value)\n return;\n const [q, te] = Pi(E.value, m.value);\n if (q !== 0 || te !== 0) {\n const re = {\n x: (A.value.x ?? 0) - q / l.value.zoom,\n y: (A.value.y ?? 0) - te / l.value.zoom\n };\n v.value({ x: q, y: te }) && W(re);\n }\n Z.value = requestAnimationFrame(B);\n };\n return de([() => le(P), _], ([q, te]) => {\n if (te) {\n const re = we(te);\n if (q)\n re.on(\".drag\", null);\n else {\n const k = g.value(R);\n ee.value = Cl().on(\"start\", (H) => {\n var b;\n !d.value && !x.value && k && (k.selected || w.value()), k && le($) && d.value && Xn(\n k,\n x.value,\n y.value,\n w.value,\n h,\n !1,\n te\n );\n const f = z(H);\n if (A.value = f, Q.value = Pa(a.value, c.value, f, g.value, R), Q.value.length) {\n const [L, I] = Mn({\n id: R,\n dragItems: Q.value,\n findNode: g.value\n });\n p({ event: H.sourceEvent, node: L, nodes: I });\n }\n m.value = ((b = n.value) == null ? void 0 : b.getBoundingClientRect()) || null, E.value = rt(H.sourceEvent, m.value);\n }).on(\"drag\", (H) => {\n const f = z(H);\n !K.value && u.value && (K.value = !0, B()), (A.value.x !== f.xSnapped || A.value.y !== f.ySnapped) && Q.value.length && (G.value = H.sourceEvent, E.value = rt(H.sourceEvent, m.value), W(f));\n }).on(\"end\", (H) => {\n if (D.value = !1, K.value = !1, cancelAnimationFrame(Z.value), Q.value.length) {\n S.value(Q.value, !1, !1);\n const [f, b] = Mn({\n id: R,\n dragItems: Q.value,\n findNode: g.value\n });\n T({ event: H.sourceEvent, node: f, nodes: b });\n }\n }).filter((H) => {\n const f = H.target;\n return !H.button && (!r.value || !Ho(f, `.${r.value}`, te) && (!(k != null && k.dragHandle) || Ho(f, k.dragHandle, te)));\n }), re.call(ee.value);\n }\n }\n }), D;\n}\nconst Qi = \"vue-flow__node-desc\", Ji = \"vue-flow__edge-desc\", Ml = \"vue-flow__aria-live\", er = [\"Enter\", \" \", \"Escape\"], st = {\n ArrowUp: { x: 0, y: -1 },\n ArrowDown: { x: 0, y: 1 },\n ArrowLeft: { x: -1, y: 0 },\n ArrowRight: { x: 1, y: 0 }\n};\nfunction Wn(e) {\n var i, r;\n const t = ((r = (i = e.composedPath) == null ? void 0 : i.call(e)) == null ? void 0 : r[0]) || e.target, n = Ae(t.hasAttribute) ? t.hasAttribute(\"contenteditable\") : !1, o = Ae(t.closest) ? t.closest(\".nokey\") : null;\n return [\"INPUT\", \"SELECT\", \"TEXTAREA\"].includes(t == null ? void 0 : t.nodeName) || n || !!o;\n}\nfunction $l(e) {\n return e.ctrlKey || e.metaKey || e.shiftKey;\n}\nfunction kl(e, t) {\n return (n) => e.some((o) => {\n const i = o.split(\"+\").map((r) => r.trim().toLowerCase());\n return i.length === 1 ? n.key === o : (t.add(n.key.toLowerCase()), i.every((r) => t.has(r)));\n });\n}\nconst _t = (e, t) => {\n const n = ao(), o = ie(le(e) === !0), i = ie(!1), r = ie(/* @__PURE__ */ new Set());\n return de(o, () => {\n t == null || t(o.value);\n }), de(\n () => le(e),\n (a) => {\n if (n && typeof n.addEventListener < \"u\" && ro(n, \"blur\", () => {\n o.value = !1;\n }), zr(a)) {\n o.value = a;\n return;\n }\n Array.isArray(a) && (a = kl(a, r.value)), a && (Mo(\n a,\n (s) => {\n i.value = $l(s), !(!i.value && Wn(s)) && (s.preventDefault(), o.value = !0);\n },\n { eventName: \"keydown\" }\n ), Mo(\n a,\n (s) => {\n if (o.value) {\n if (!i.value && Wn(s))\n return;\n i.value = !1, r.value.clear(), o.value = !1;\n }\n },\n { eventName: \"keyup\" }\n ));\n },\n {\n immediate: !0\n }\n ), o;\n}, Ol = ge({\n name: \"Node\",\n compatConfig: { MODE: 3 },\n props: [\"name\", \"type\", \"id\", \"draggable\", \"selectable\", \"focusable\", \"connectable\", \"node\", \"resizeObserver\"],\n setup(e) {\n ut($i, e.id);\n const t = fe(), n = M(t, \"id\"), o = M(t, \"edges\"), i = M(t, \"noPanClassName\"), r = M(t, \"selectNodesOnDrag\"), a = M(t, \"nodesSelectionActive\"), s = M(t, \"multiSelectionActive\"), l = M(t, \"emits\"), u = M(t, \"findNode\"), c = M(t, \"removeSelectedNodes\"), v = M(t, \"addSelectedNodes\"), g = M(t, \"updateNodeDimensions\"), x = M(t, \"onUpdateNodeInternals\"), h = M(t, \"getIntersectingNodes\"), d = M(t, \"getNodeTypes\"), w = M(t, \"nodeExtent\"), y = M(t, \"elevateNodesOnSelect\"), S = M(t, \"disableKeyboardA11y\"), V = M(t, \"ariaLiveMessage\"), p = M(t, \"snapToGrid\"), N = M(t, \"snapGrid\"), T = Ai(), _ = yt(e, \"node\"), P = J(() => u.value(_.value.parentNode)), R = J(() => sn([_.value], o.value)), $ = ie();\n ut(ki, $);\n const { emit: D, on: Q } = Ba(_.value, l.value), ee = ji({\n id: e.id,\n el: $,\n disabled: () => !e.draggable,\n selectable: () => e.selectable,\n onStart(k) {\n D.dragStart({ ...k, intersections: h.value(_.value) });\n },\n onDrag(k) {\n D.drag({ ...k, intersections: h.value(_.value) });\n },\n onStop(k) {\n D.dragStop({ ...k, intersections: h.value(_.value) });\n }\n }), m = J(() => _.value.class instanceof Function ? _.value.class(_.value) : _.value.class), A = J(() => {\n const k = (_.value.style instanceof Function ? _.value.style(_.value) : _.value.style) || {}, H = _.value.width instanceof Function ? _.value.width(_.value) : _.value.width, f = _.value.height instanceof Function ? _.value.height(_.value) : _.value.height;\n return H && (k.width = typeof H == \"string\" ? H : `${H}px`), f && (k.height = typeof f == \"string\" ? f : `${f}px`), k;\n }), E = () => Number(_.value.zIndex ?? A.value.zIndex ?? 0);\n return x.value((k) => {\n k.includes(e.id) && Z();\n }), Ve(() => {\n e.resizeObserver.observe($.value);\n }), gi(() => {\n e.resizeObserver.unobserve($.value);\n }), de(\n [() => _.value.type, () => _.value.sourcePosition, () => _.value.targetPosition],\n () => {\n g.value([{ id: e.id, nodeElement: $.value, forceUpdate: !0 }]);\n },\n { flush: \"pre\" }\n ), de(\n [\n () => _.value.position.x,\n () => _.value.position.y,\n () => {\n var k;\n return (k = P.value) == null ? void 0 : k.computedPosition.x;\n },\n () => {\n var k;\n return (k = P.value) == null ? void 0 : k.computedPosition.y;\n },\n () => {\n var k;\n return (k = P.value) == null ? void 0 : k.computedPosition.z;\n },\n () => E(),\n () => _.value.selected,\n () => _.value.dimensions.height,\n () => _.value.dimensions.width,\n () => {\n var k;\n return (k = P.value) == null ? void 0 : k.dimensions.height;\n },\n () => {\n var k;\n return (k = P.value) == null ? void 0 : k.dimensions.width;\n }\n ],\n ([k, H, f, b, L, I]) => {\n const F = {\n x: k,\n y: H,\n z: I + (y.value && _.value.selected ? 1e3 : 0)\n };\n Ie(f) && Ie(b) ? _.value.computedPosition = ma({ x: f, y: b, z: L }, F) : _.value.computedPosition = F;\n },\n { flush: \"pre\", immediate: !0 }\n ), de([() => _.value.extent, () => w.value], ([k, H], [f, b]) => {\n (k !== f || H !== b) && G();\n }), _.value.extent === \"parent\" || typeof _.value.extent == \"object\" && \"range\" in _.value.extent && _.value.extent.range === \"parent\" ? ye(() => _.value.initialized).toBe(!0).then(G) : G(), () => ue(\n \"div\",\n {\n ref: $,\n \"data-id\": _.value.id,\n class: [\n \"vue-flow__node\",\n `vue-flow__node-${e.type === !1 ? \"default\" : e.name}`,\n {\n [i.value]: e.draggable,\n dragging: ee == null ? void 0 : ee.value,\n selected: _.value.selected,\n selectable: e.selectable\n },\n m.value\n ],\n style: {\n zIndex: _.value.computedPosition.z ?? E(),\n transform: `translate(${_.value.computedPosition.x}px,${_.value.computedPosition.y}px)`,\n pointerEvents: e.selectable || e.draggable ? \"all\" : \"none\",\n visibility: _.value.initialized ? \"visible\" : \"hidden\",\n ...A.value\n },\n tabIndex: e.focusable ? 0 : void 0,\n role: e.focusable ? \"button\" : void 0,\n \"aria-describedby\": S.value ? void 0 : `${Qi}-${n.value}`,\n \"aria-label\": _.value.ariaLabel,\n onMouseenter: K,\n onMousemove: z,\n onMouseleave: W,\n onContextmenu: B,\n onClick: te,\n onDblclick: q,\n onKeydown: re\n },\n [\n ue(e.type === !1 ? d.value.default : e.type, {\n id: _.value.id,\n type: _.value.type,\n data: _.value.data,\n events: { ..._.value.events, ...Q },\n selected: !!_.value.selected,\n resizing: !!_.value.resizing,\n dragging: ee.value,\n connectable: e.connectable,\n position: _.value.position,\n dimensions: _.value.dimensions,\n isValidTargetPos: _.value.isValidTargetPos,\n isValidSourcePos: _.value.isValidSourcePos,\n parent: _.value.parentNode,\n zIndex: _.value.computedPosition.z,\n targetPosition: _.value.targetPosition,\n sourcePosition: _.value.sourcePosition,\n label: _.value.label,\n dragHandle: _.value.dragHandle,\n onUpdateNodeInternals: Z\n })\n ]\n );\n function G() {\n const k = _.value.computedPosition;\n p.value && (k.x = N.value[0] * Math.round(k.x / N.value[0]), k.y = N.value[1] * Math.round(k.y / N.value[1]));\n const { computedPosition: H, position: f } = go(_.value, k, l.value.error, w.value, P.value);\n (_.value.computedPosition.x !== H.x || _.value.computedPosition.y !== H.y) && (_.value.computedPosition = { ..._.value.computedPosition, ...H }), (_.value.position.x !== f.x || _.value.position.y !== f.y) && (_.value.position = f);\n }\n function Z() {\n $.value && g.value([{ id: e.id, nodeElement: $.value, forceUpdate: !0 }]);\n }\n function K(k) {\n ee != null && ee.value || D.mouseEnter({ event: k, node: _.value, connectedEdges: R.value });\n }\n function z(k) {\n ee != null && ee.value || D.mouseMove({ event: k, node: _.value, connectedEdges: R.value });\n }\n function W(k) {\n ee != null && ee.value || D.mouseLeave({ event: k, node: _.value, connectedEdges: R.value });\n }\n function B(k) {\n return D.contextMenu({ event: k, node: _.value, connectedEdges: R.value });\n }\n function q(k) {\n return D.doubleClick({ event: k, node: _.value, connectedEdges: R.value });\n }\n function te(k) {\n e.selectable && (!r.value || !e.draggable) && Xn(\n _.value,\n s.value,\n v.value,\n c.value,\n a,\n !1,\n $.value\n ), D.click({ event: k, node: _.value, connectedEdges: R.value });\n }\n function re(k) {\n var H;\n if (!Wn(k))\n if (er.includes(k.key) && e.selectable) {\n const f = k.key === \"Escape\";\n f && ((H = $.value) == null || H.blur()), Xn(\n _.value,\n s.value,\n v.value,\n c.value,\n a,\n f,\n $.value\n );\n } else\n !S.value && e.draggable && _.value.selected && st[k.key] && (V.value = `Moved selected node ${k.key.replace(\"Arrow\", \"\").toLowerCase()}. New position, x: ${~~_.value.position.x}, y: ${~~_.value.position.y}`, T(\n {\n x: st[k.key].x,\n y: st[k.key].y\n },\n k.shiftKey\n ));\n }\n }\n}), Tl = Ol, Il = [\"transform\"], Pl = [\"width\", \"height\", \"x\", \"y\", \"rx\", \"ry\"], Dl = [\"y\"], zl = {\n name: \"EdgeText\",\n compatConfig: { MODE: 3 }\n}, Al = /* @__PURE__ */ ge({\n ...zl,\n props: {\n x: null,\n y: null,\n label: null,\n labelStyle: { default: {} },\n labelShowBg: { type: Boolean, default: !0 },\n labelBgStyle: { default: {} },\n labelBgPadding: { default: [2, 4] },\n labelBgBorderRadius: { default: 2 }\n },\n setup(e) {\n let t = ie({ x: 0, y: 0, width: 0, height: 0 });\n const n = ie(null), o = J(() => `translate(${e.x - t.value.width / 2} ${e.y - t.value.height / 2})`);\n Ve(i), de([() => e.x, () => e.y, n, () => e.label], i);\n function i() {\n if (!n.value)\n return;\n const r = n.value.getBBox();\n (r.width !== t.value.width || r.height !== t.value.height) && (t.value = r);\n }\n return (r, a) => (oe(), se(\"g\", {\n transform: C(o),\n class: \"vue-flow__edge-textwrapper\"\n }, [\n e.labelShowBg ? (oe(), se(\"rect\", {\n key: 0,\n class: \"vue-flow__edge-textbg\",\n width: `${C(t).width + 2 * e.labelBgPadding[0]}px`,\n height: `${C(t).height + 2 * e.labelBgPadding[1]}px`,\n x: -e.labelBgPadding[0],\n y: -e.labelBgPadding[1],\n style: Le(e.labelBgStyle),\n rx: e.labelBgBorderRadius,\n ry: e.labelBgBorderRadius\n }, null, 12, Pl)) : Ee(\"\", !0),\n ct(\"text\", vi(r.$attrs, {\n ref_key: \"el\",\n ref: n,\n class: \"vue-flow__edge-text\",\n y: C(t).height / 2,\n dy: \"0.3em\",\n style: e.labelStyle\n }), [\n xe(r.$slots, \"default\", {}, () => [\n C(Pe)(e.label) ? (oe(), se(Ce, { key: 1 }, [\n Cr(Vn(e.label), 1)\n ], 64)) : (oe(), ze(mi(e.label), { key: 0 }))\n ])\n ], 16, Dl)\n ], 8, Il));\n }\n}), gn = function({\n path: e,\n label: t,\n labelX: n,\n labelY: o,\n labelBgBorderRadius: i,\n labelBgPadding: r,\n labelBgStyle: a,\n labelShowBg: s = !0,\n labelStyle: l,\n markerStart: u,\n markerEnd: c,\n interactionWidth: v = 20\n}, { attrs: g }) {\n return [\n ue(\"path\", {\n style: g.style,\n class: [\"vue-flow__edge-path\", g.class].join(\" \"),\n d: e,\n \"marker-end\": c,\n \"marker-start\": u\n }),\n v ? ue(\"path\", {\n d: e,\n fill: \"none\",\n \"stroke-opacity\": 0,\n \"stroke-width\": v\n }) : null,\n t && Ie(n) && Ie(o) ? ue(Al, {\n x: n,\n y: o,\n label: t,\n labelStyle: l,\n labelShowBg: s,\n labelBgStyle: a,\n labelBgPadding: r,\n labelBgBorderRadius: i\n }) : null\n ];\n};\ngn.props = [\n \"path\",\n \"labelX\",\n \"labelY\",\n \"label\",\n \"labelBgBorderRadius\",\n \"labelBgPadding\",\n \"labelBgStyle\",\n \"labelShowBg\",\n \"labelStyle\",\n \"markerStart\",\n \"markerEnd\",\n \"interactionWidth\"\n];\ngn.inheritAttrs = !1;\ngn.compatConfig = { MODE: 3 };\nconst vn = gn;\nfunction tr({\n sourceX: e,\n sourceY: t,\n targetX: n,\n targetY: o\n}) {\n const i = Math.abs(n - e) / 2, r = n < e ? n + i : n - i, a = Math.abs(o - t) / 2, s = o < t ? o + a : o - a;\n return [r, s, i, a];\n}\nfunction nr({\n sourceX: e,\n sourceY: t,\n targetX: n,\n targetY: o,\n sourceControlX: i,\n sourceControlY: r,\n targetControlX: a,\n targetControlY: s\n}) {\n const l = e * 0.125 + i * 0.375 + a * 0.375 + n * 0.125, u = t * 0.125 + r * 0.375 + s * 0.375 + o * 0.125, c = Math.abs(l - e), v = Math.abs(u - t);\n return [l, u, c, v];\n}\nfunction Dt(e, t) {\n return e >= 0 ? 0.5 * e : t * 25 * Math.sqrt(-e);\n}\nfunction Yo({ pos: e, x1: t, y1: n, x2: o, y2: i, c: r }) {\n let a, s;\n switch (e) {\n case j.Left:\n a = t - Dt(t - o, r), s = n;\n break;\n case j.Right:\n a = t + Dt(o - t, r), s = n;\n break;\n case j.Top:\n a = t, s = n - Dt(n - i, r);\n break;\n case j.Bottom:\n a = t, s = n + Dt(i - n, r);\n break;\n }\n return [a, s];\n}\nfunction Kn({\n sourceX: e,\n sourceY: t,\n sourcePosition: n = j.Bottom,\n targetX: o,\n targetY: i,\n targetPosition: r = j.Top,\n curvature: a = 0.25\n}) {\n const [s, l] = Yo({\n pos: n,\n x1: e,\n y1: t,\n x2: o,\n y2: i,\n c: a\n }), [u, c] = Yo({\n pos: r,\n x1: o,\n y1: i,\n x2: e,\n y2: t,\n c: a\n }), [v, g, x, h] = nr({\n sourceX: e,\n sourceY: t,\n targetX: o,\n targetY: i,\n sourceControlX: s,\n sourceControlY: l,\n targetControlX: u,\n targetControlY: c\n });\n return [\n `M${e},${t} C${s},${l} ${u},${c} ${o},${i}`,\n v,\n g,\n x,\n h\n ];\n}\nconst mn = function({ sourcePosition: e = j.Bottom, targetPosition: t = j.Top, ...n }, { attrs: o }) {\n const [i, r, a] = Kn({\n sourcePosition: e,\n targetPosition: t,\n ...n\n });\n return ue(vn, {\n path: i,\n labelX: r,\n labelY: a,\n ...n,\n ...o\n });\n};\nmn.props = [\n \"sourcePosition\",\n \"targetPosition\",\n \"label\",\n \"labelStyle\",\n \"labelShowBg\",\n \"labelBgStyle\",\n \"labelBgPadding\",\n \"labelBgBorderRadius\",\n \"sourceY\",\n \"sourceX\",\n \"targetX\",\n \"targetY\",\n \"curvature\",\n \"markerEnd\",\n \"markerStart\",\n \"interactionWidth\"\n];\nmn.inheritAttrs = !1;\nmn.compatConfig = { MODE: 3 };\nconst Bl = mn;\nfunction Xo({ pos: e, x1: t, y1: n, x2: o, y2: i }) {\n let r, a;\n switch (e) {\n case j.Left:\n case j.Right:\n r = 0.5 * (t + o), a = n;\n break;\n case j.Top:\n case j.Bottom:\n r = t, a = 0.5 * (n + i);\n break;\n }\n return [r, a];\n}\nfunction or({\n sourceX: e,\n sourceY: t,\n sourcePosition: n = j.Bottom,\n targetX: o,\n targetY: i,\n targetPosition: r = j.Top\n}) {\n const [a, s] = Xo({\n pos: n,\n x1: e,\n y1: t,\n x2: o,\n y2: i\n }), [l, u] = Xo({\n pos: r,\n x1: o,\n y1: i,\n x2: e,\n y2: t\n }), [c, v, g, x] = nr({\n sourceX: e,\n sourceY: t,\n targetX: o,\n targetY: i,\n sourceControlX: a,\n sourceControlY: s,\n targetControlX: l,\n targetControlY: u\n });\n return [\n `M${e},${t} C${a},${s} ${l},${u} ${o},${i}`,\n c,\n v,\n g,\n x\n ];\n}\nconst pn = function({ sourcePosition: e = j.Bottom, targetPosition: t = j.Top, ...n }, { attrs: o }) {\n const [i, r, a] = or({\n sourcePosition: e,\n targetPosition: t,\n ...n\n });\n return ue(vn, {\n path: i,\n labelX: r,\n labelY: a,\n ...n,\n ...o\n });\n};\npn.props = [\n \"sourcePosition\",\n \"targetPosition\",\n \"label\",\n \"labelStyle\",\n \"labelShowBg\",\n \"labelBgStyle\",\n \"labelBgPadding\",\n \"labelBgBorderRadius\",\n \"sourceY\",\n \"sourceX\",\n \"targetX\",\n \"targetY\",\n \"markerEnd\",\n \"markerStart\",\n \"interactionWidth\"\n];\npn.inheritAttrs = !1;\npn.compatConfig = { MODE: 3 };\nconst Rl = pn, Zo = {\n [j.Left]: { x: -1, y: 0 },\n [j.Right]: { x: 1, y: 0 },\n [j.Top]: { x: 0, y: -1 },\n [j.Bottom]: { x: 0, y: 1 }\n};\nfunction Vl({\n source: e,\n sourcePosition: t = j.Bottom,\n target: n\n}) {\n return t === j.Left || t === j.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 };\n}\nfunction Uo(e, t) {\n return Math.sqrt((t.x - e.x) ** 2 + (t.y - e.y) ** 2);\n}\nfunction Hl({\n source: e,\n sourcePosition: t = j.Bottom,\n target: n,\n targetPosition: o = j.Top,\n center: i,\n offset: r\n}) {\n const a = Zo[t], s = Zo[o], l = { x: e.x + a.x * r, y: e.y + a.y * r }, u = { x: n.x + s.x * r, y: n.y + s.y * r }, c = Vl({\n source: l,\n sourcePosition: t,\n target: u\n }), v = c.x !== 0 ? \"x\" : \"y\", g = c[v];\n let x, h, d;\n const [w, y, S, V] = tr({\n sourceX: e.x,\n sourceY: e.y,\n targetX: n.x,\n targetY: n.y\n });\n if (a[v] * s[v] === -1) {\n h = i.x || w, d = i.y || y;\n const N = [\n { x: h, y: l.y },\n { x: h, y: u.y }\n ], T = [\n { x: l.x, y: d },\n { x: u.x, y: d }\n ];\n a[v] === g ? x = v === \"x\" ? N : T : x = v === \"x\" ? T : N;\n } else {\n const N = [{ x: l.x, y: u.y }], T = [{ x: u.x, y: l.y }];\n if (v === \"x\" ? x = a.x === g ? T : N : x = a.y === g ? N : T, t !== o) {\n const _ = v === \"x\" ? \"y\" : \"x\", P = a[v] === s[_], R = l[_] > u[_], $ = l[_] < u[_];\n (a[v] === 1 && (!P && R || P && $) || a[v] !== 1 && (!P && $ || P && R)) && (x = v === \"x\" ? N : T);\n }\n h = x[0].x, d = x[0].y;\n }\n return [[e, l, ...x, u, n], h, d, S, V];\n}\nfunction Ll(e, t, n, o) {\n const i = Math.min(Uo(e, t) / 2, Uo(t, n) / 2, o), { x: r, y: a } = t;\n if (e.x === r && r === n.x || e.y === a && a === n.y)\n return `L${r} ${a}`;\n if (e.y === a) {\n const u = e.x < n.x ? -1 : 1, c = e.y < n.y ? 1 : -1;\n return `L ${r + i * u},${a}Q ${r},${a} ${r},${a + i * c}`;\n }\n const s = e.x < n.x ? 1 : -1, l = e.y < n.y ? -1 : 1;\n return `L ${r},${a + i * l}Q ${r},${a} ${r + i * s},${a}`;\n}\nfunction qn({\n sourceX: e,\n sourceY: t,\n sourcePosition: n = j.Bottom,\n targetX: o,\n targetY: i,\n targetPosition: r = j.Top,\n borderRadius: a = 5,\n centerX: s,\n centerY: l,\n offset: u = 20\n}) {\n const [c, v, g, x, h] = Hl({\n source: { x: e, y: t },\n sourcePosition: n,\n target: { x: o, y: i },\n targetPosition: r,\n center: { x: s, y: l },\n offset: u\n });\n return [c.reduce((w, y, S) => {\n let V;\n return S > 0 && S < c.length - 1 ? V = Ll(c[S - 1], y, c[S + 1], a) : V = `${S === 0 ? \"M\" : \"L\"}${y.x} ${y.y}`, w += V, w;\n }, \"\"), v, g, x, h];\n}\nconst yn = function({ sourcePosition: e = j.Bottom, targetPosition: t = j.Top, ...n }, { attrs: o }) {\n const [i, r, a] = qn({\n sourcePosition: e,\n targetPosition: t,\n ...n\n });\n return ue(vn, {\n path: i,\n labelX: r,\n labelY: a,\n ...n,\n ...o\n });\n};\nyn.props = [\n \"sourcePosition\",\n \"targetPosition\",\n \"label\",\n \"labelStyle\",\n \"labelShowBg\",\n \"labelBgStyle\",\n \"labelBgPadding\",\n \"labelBgBorderRadius\",\n \"sourceY\",\n \"sourceX\",\n \"targetX\",\n \"targetY\",\n \"borderRadius\",\n \"markerEnd\",\n \"markerStart\",\n \"interactionWidth\",\n \"offset\"\n];\nyn.inheritAttrs = !1;\nyn.compatConfig = { MODE: 3 };\nconst ir = yn, xn = function(e, { attrs: t }) {\n return ue(ir, { ...e, ...t, borderRadius: 0 });\n};\nxn.props = [\n \"sourcePosition\",\n \"targetPosition\",\n \"label\",\n \"labelStyle\",\n \"labelShowBg\",\n \"labelBgStyle\",\n \"labelBgPadding\",\n \"labelBgBorderRadius\",\n \"sourceY\",\n \"sourceX\",\n \"targetX\",\n \"targetY\",\n \"markerEnd\",\n \"markerStart\",\n \"interactionWidth\"\n];\nxn.inheritAttrs = !1;\nxn.compatConfig = { MODE: 3 };\nconst Gl = xn;\nfunction rr({\n sourceX: e,\n sourceY: t,\n targetX: n,\n targetY: o\n}) {\n const [i, r, a, s] = tr({\n sourceX: e,\n sourceY: t,\n targetX: n,\n targetY: o\n });\n return [`M ${e},${t}L ${n},${o}`, i, r, a, s];\n}\nconst _n = function(e, { attrs: t }) {\n const [n, o, i] = rr(e);\n return ue(vn, {\n path: n,\n labelX: o,\n labelY: i,\n ...e,\n ...t\n });\n};\n_n.props = [\n \"label\",\n \"labelStyle\",\n \"labelShowBg\",\n \"labelBgStyle\",\n \"labelBgPadding\",\n \"labelBgBorderRadius\",\n \"sourceY\",\n \"sourceX\",\n \"targetX\",\n \"targetY\",\n \"markerEnd\",\n \"markerStart\",\n \"interactionWidth\"\n];\n_n.inheritAttrs = !1;\n_n.compatConfig = { MODE: 3 };\nconst Fl = _n;\nfunction Yl(e, t, n) {\n return n === j.Left ? e - t : n === j.Right ? e + t : e;\n}\nfunction Xl(e, t, n) {\n return n === j.Top ? e - t : n === j.Bottom ? e + t : e;\n}\nconst po = function({\n radius: e = 10,\n centerX: t = 0,\n centerY: n = 0,\n position: o = j.Top,\n type: i\n}) {\n return ue(\"circle\", {\n class: `vue-flow__edgeupdater vue-flow__edgeupdater-${i}`,\n cx: Yl(t, e, o),\n cy: Xl(n, e, o),\n r: e,\n stroke: \"transparent\",\n fill: \"transparent\"\n });\n};\npo.props = [\"radius\", \"centerX\", \"centerY\", \"position\", \"type\"];\npo.compatConfig = { MODE: 3 };\nconst Wo = po;\nfunction Zl() {\n return {\n doubleClick: X(),\n click: X(),\n mouseEnter: X(),\n mouseMove: X(),\n mouseLeave: X(),\n contextMenu: X(),\n updateStart: X(),\n update: X(),\n updateEnd: X()\n };\n}\nfunction Ul(e, t) {\n const n = Zl();\n return n.doubleClick.on((o) => {\n var i, r;\n t.edgeDoubleClick(o), (r = (i = e.events) == null ? void 0 : i.doubleClick) == null || r.call(i, o);\n }), n.click.on((o) => {\n var i, r;\n t.edgeClick(o), (r = (i = e.events) == null ? void 0 : i.click) == null || r.call(i, o);\n }), n.mouseEnter.on((o) => {\n var i, r;\n t.edgeMouseEnter(o), (r = (i = e.events) == null ? void 0 : i.mouseEnter) == null || r.call(i, o);\n }), n.mouseMove.on((o) => {\n var i, r;\n t.edgeMouseMove(o), (r = (i = e.events) == null ? void 0 : i.mouseMove) == null || r.call(i, o);\n }), n.mouseLeave.on((o) => {\n var i, r;\n t.edgeMouseLeave(o), (r = (i = e.events) == null ? void 0 : i.mouseLeave) == null || r.call(i, o);\n }), n.contextMenu.on((o) => {\n var i, r;\n t.edgeContextMenu(o), (r = (i = e.events) == null ? void 0 : i.contextMenu) == null || r.call(i, o);\n }), n.updateStart.on((o) => {\n var i, r;\n t.edgeUpdateStart(o), (r = (i = e.events) == null ? void 0 : i.updateStart) == null || r.call(i, o);\n }), n.update.on((o) => {\n var i, r;\n t.edgeUpdate(o), (r = (i = e.events) == null ? void 0 : i.update) == null || r.call(i, o);\n }), n.updateEnd.on((o) => {\n var i, r;\n t.edgeUpdateEnd(o), (r = (i = e.events) == null ? void 0 : i.updateEnd) == null || r.call(i, o);\n }), Object.entries(n).reduce(\n (o, [i, r]) => (o.emit[i] = r.trigger, o.on[i] = r.on, o),\n { emit: {}, on: {} }\n );\n}\nconst Wl = ge({\n name: \"Edge\",\n compatConfig: { MODE: 3 },\n props: [\"name\", \"type\", \"id\", \"updatable\", \"selectable\", \"focusable\", \"edge\"],\n setup(e) {\n const {\n id: t,\n addSelectedEdges: n,\n connectionMode: o,\n edgeUpdaterRadius: i,\n emits: r,\n nodesSelectionActive: a,\n noPanClassName: s,\n getEdgeTypes: l,\n removeSelectedEdges: u,\n findEdge: c,\n findNode: v,\n isValidConnection: g\n } = fe(), x = Ul(e.edge, r), h = yt(e, \"edge\");\n let d = ie(!1), w = ie(!1);\n const y = ie(\"\"), S = ie(null), V = ie(\"source\"), p = ie();\n ut(Oi, e.id), ut(Ti, p);\n const N = J(() => h.value.class instanceof Function ? h.value.class(h.value) : h.value.class), T = J(() => h.value.style instanceof Function ? h.value.style(h.value) : h.value.style), { handlePointerDown: _ } = Di({\n nodeId: y,\n handleId: S,\n type: V,\n isValidConnection: g.value,\n edgeUpdaterType: V,\n onEdgeUpdate: $,\n onEdgeUpdateEnd: D\n });\n return () => {\n const B = v(h.value.source), q = v(h.value.target);\n if (!B || !q || !h.value)\n return null;\n let te;\n o.value === Qe.Strict ? te = B.handleBounds.source : te = [...B.handleBounds.source || [], ...B.handleBounds.target || []];\n const re = Ao(te, h.value.sourceHandle);\n let k;\n o.value === Qe.Strict ? k = q.handleBounds.target : k = [...q.handleBounds.target || [], ...q.handleBounds.source || []];\n const H = Ao(k, h.value.targetHandle), f = re ? re.position : j.Bottom, b = H ? H.position : j.Top, { sourceX: L, sourceY: I, targetY: F, targetX: U } = wa(\n B,\n re,\n f,\n q,\n H,\n b\n );\n return h.value.sourceX = L, h.value.sourceY = I, h.value.targetX = U, h.value.targetY = F, ue(\n \"g\",\n {\n ref: p,\n key: e.id,\n \"data-id\": e.id,\n class: [\n \"vue-flow__edge\",\n `vue-flow__edge-${e.type === !1 ? \"default\" : e.name}`,\n s.value,\n N.value,\n {\n updating: d.value,\n selected: h.value.selected,\n animated: h.value.animated,\n inactive: !e.selectable\n }\n ],\n onClick: ee,\n onContextmenu: m,\n onDblclick: A,\n onMouseenter: E,\n onMousemove: G,\n onMouseleave: Z,\n onKeyDown: e.focusable ? W : void 0,\n tabIndex: e.focusable ? 0 : void 0,\n \"aria-label\": h.value.ariaLabel === null ? void 0 : h.value.ariaLabel || `Edge from ${h.value.source} to ${h.value.target}`,\n \"aria-describedby\": e.focusable ? `${Ji}-${t}` : void 0,\n role: e.focusable ? \"button\" : void 0\n },\n [\n w.value ? null : ue(e.type === !1 ? l.value.default : e.type, {\n id: e.id,\n sourceNode: B,\n targetNode: q,\n source: h.value.source,\n target: h.value.target,\n type: h.value.type,\n updatable: e.updatable,\n selected: h.value.selected,\n animated: h.value.animated,\n label: h.value.label,\n labelStyle: h.value.labelStyle,\n labelShowBg: h.value.labelShowBg,\n labelBgStyle: h.value.labelBgStyle,\n labelBgPadding: h.value.labelBgPadding,\n labelBgBorderRadius: h.value.labelBgBorderRadius,\n data: h.value.data,\n events: { ...h.value.events, ...x.on },\n style: T.value,\n markerStart: `url(#${Xe(h.value.markerStart, t)})`,\n markerEnd: `url(#${Xe(h.value.markerEnd, t)})`,\n sourcePosition: f,\n targetPosition: b,\n sourceX: L,\n sourceY: I,\n targetX: U,\n targetY: F,\n sourceHandleId: h.value.sourceHandle,\n targetHandleId: h.value.targetHandle,\n interactionWidth: h.value.interactionWidth\n }),\n [\n e.updatable === \"source\" || e.updatable === !0 ? [\n ue(\n \"g\",\n {\n onMousedown: K,\n onMouseenter: P,\n onMouseout: R\n },\n ue(Wo, {\n position: f,\n centerX: L,\n centerY: I,\n radius: i.value,\n type: \"source\",\n \"data-type\": \"source\"\n })\n )\n ] : null,\n e.updatable === \"target\" || e.updatable === !0 ? [\n ue(\n \"g\",\n {\n onMousedown: z,\n onMouseenter: P,\n onMouseout: R\n },\n ue(Wo, {\n position: b,\n centerX: U,\n centerY: F,\n radius: i.value,\n type: \"target\",\n \"data-type\": \"target\"\n })\n )\n ] : null\n ]\n ]\n );\n };\n function P() {\n d.value = !0;\n }\n function R() {\n d.value = !1;\n }\n function $(B, q) {\n x.emit.update({ event: B, edge: h.value, connection: q });\n }\n function D(B) {\n x.emit.updateEnd({ event: B, edge: h.value }), w.value = !1;\n }\n function Q(B, q) {\n B.button === 0 && (w.value = !0, y.value = q ? h.value.target : h.value.source, S.value = (q ? h.value.targetHandle : h.value.sourceHandle) ?? \"\", V.value = q ? \"target\" : \"source\", x.emit.updateStart({ event: B, edge: h.value }), _(B));\n }\n function ee(B) {\n const q = { event: B, edge: h.value };\n e.selectable && (a.value = !1, n([h.value])), x.emit.click(q);\n }\n function m(B) {\n x.emit.contextMenu({ event: B, edge: h.value });\n }\n function A(B) {\n x.emit.doubleClick({ event: B, edge: h.value });\n }\n function E(B) {\n x.emit.mouseEnter({ event: B, edge: h.value });\n }\n function G(B) {\n x.emit.mouseMove({ event: B, edge: h.value });\n }\n function Z(B) {\n x.emit.mouseLeave({ event: B, edge: h.value });\n }\n function K(B) {\n Q(B, !0);\n }\n function z(B) {\n Q(B, !1);\n }\n function W(B) {\n var q;\n er.includes(B.key) && e.selectable && (B.key === \"Escape\" ? ((q = p.value) == null || q.blur(), u([c(e.id)])) : n([c(e.id)]));\n }\n }\n}), Kl = Wl, ql = {\n height: \"0\",\n width: \"0\"\n}, jl = {\n name: \"EdgeLabelRenderer\",\n compatConfig: { MODE: 3 }\n}, Rd = /* @__PURE__ */ ge({\n ...jl,\n setup(e) {\n const { viewportRef: t } = fe(), n = J(() => {\n var o;\n return (o = t.value) == null ? void 0 : o.getElementsByClassName(\"vue-flow__edge-labels\")[0];\n });\n return (o, i) => (oe(), se(\"svg\", null, [\n (oe(), se(\"foreignObject\", ql, [\n (oe(), ze(Mr, {\n to: C(n),\n disabled: !C(n)\n }, [\n xe(o.$slots, \"default\")\n ], 8, [\"to\", \"disabled\"]))\n ]))\n ]));\n }\n}), Ql = { class: \"vue-flow__connection\" }, Jl = [\"d\", \"marker-end\", \"marker-start\"], eu = {\n name: \"ConnectionLine\",\n compatConfig: { MODE: 3 }\n}, tu = /* @__PURE__ */ ge({\n ...eu,\n props: {\n sourceNode: null\n },\n setup(e) {\n var R;\n const t = fe(), n = M(t, \"connectionMode\"), o = M(t, \"connectionStartHandle\"), i = M(t, \"connectionEndHandle\"), r = M(t, \"connectionPosition\"), a = M(t, \"connectionLineType\"), s = M(t, \"connectionLineStyle\"), l = M(t, \"connectionLineOptions\"), u = M(t, \"connectionStatus\"), c = M(t, \"viewport\"), v = M(t, \"findNode\"), g = {\n [j.Left]: j.Right,\n [j.Right]: j.Left,\n [j.Top]: j.Bottom,\n [j.Bottom]: j.Top\n }, x = (R = He(ln)) == null ? void 0 : R[\"connection-line\"], h = J(() => o.value.handleId), d = J(() => o.value.type), w = J(() => {\n var $;\n return (($ = i.value) == null ? void 0 : $.handleId) && v.value(i.value.nodeId) || null;\n }), y = J(\n () => {\n var $, D;\n return (n.value === Qe.Strict ? ($ = e.sourceNode.handleBounds[d.value]) == null ? void 0 : $.find((Q) => Q.id === h.value) : [...e.sourceNode.handleBounds.source || [], ...e.sourceNode.handleBounds.target || []].find((Q) => Q.id === h.value)) || ((D = e.sourceNode.handleBounds[d.value ?? \"source\"]) == null ? void 0 : D[0]);\n }\n ), S = J(() => {\n var $, D, Q;\n return w.value && (($ = i.value) == null ? void 0 : $.handleId) && ((n.value === Qe.Strict ? (D = w.value.handleBounds[d.value === \"source\" ? \"target\" : \"source\"]) == null ? void 0 : D.find(\n (ee) => {\n var m;\n return ee.id === ((m = i.value) == null ? void 0 : m.handleId);\n }\n ) : [...w.value.handleBounds.source || [], ...w.value.handleBounds.target || []].find(\n (ee) => {\n var m;\n return ee.id === ((m = i.value) == null ? void 0 : m.handleId);\n }\n )) || ((Q = w.value.handleBounds[d.value ?? \"target\"]) == null ? void 0 : Q[0])) || null;\n }), V = J(() => {\n var $;\n return ($ = y.value) == null ? void 0 : $.position;\n }), p = J(() => y.value ? Wt(\n V.value || j.Top,\n { ...e.sourceNode.dimensions, ...e.sourceNode.computedPosition },\n y.value\n ) : {\n x: e.sourceNode.dimensions.width / 2,\n y: e.sourceNode.dimensions.height / 2\n }), N = J(() => V.value ? g[V.value] : void 0), T = J(() => (r.value.x - c.value.x) / c.value.zoom), _ = J(() => (r.value.y - c.value.y) / c.value.zoom), P = J(() => {\n let $;\n const D = {\n sourceX: p.value.x,\n sourceY: p.value.y,\n sourcePosition: V.value,\n targetX: T.value,\n targetY: _.value,\n targetPosition: N.value\n };\n switch (a.value ?? l.value.type) {\n case Ye.Bezier:\n [$] = Kn(D);\n break;\n case Ye.Step:\n [$] = qn({\n ...D,\n borderRadius: 0\n });\n break;\n case Ye.SmoothStep:\n [$] = qn(D);\n break;\n case Ye.SimpleBezier:\n [$] = or(D);\n break;\n case Ye.Straight:\n [$] = rr(D);\n break;\n default:\n [$] = Kn(D);\n break;\n }\n return $;\n });\n return ($, D) => {\n var Q;\n return oe(), se(\"g\", Ql, [\n C(x) ? (oe(), ze(mi(C(x)), $r(vi({ key: 0 }, {\n sourceX: C(p).x,\n sourceY: C(p).y,\n sourcePosition: (Q = C(y)) == null ? void 0 : Q.position,\n targetX: C(T),\n targetY: C(_),\n targetPosition: C(N),\n sourceNode: e.sourceNode,\n sourceHandle: C(y),\n targetNode: C(w),\n targetHandle: C(S),\n markerEnd: `url(#${C(Xe)(C(l).markerEnd)})`,\n markerStart: `url(#${C(Xe)(C(l).markerStart)})`,\n connectionStatus: C(u)\n })), null, 16)) : (oe(), se(\"path\", {\n key: 1,\n d: C(P),\n class: Ke([\"vue-flow__connection-path\", [C(l).class, C(u)]]),\n style: Le(C(s) || C(l).style || {}),\n \"marker-end\": `url(#${C(Xe)(C(l).markerEnd)})`,\n \"marker-start\": `url(#${C(Xe)(C(l).markerStart)})`\n }, null, 14, Jl))\n ]);\n };\n }\n}), nu = [\"tabIndex\"], ou = {\n name: \"NodesSelection\",\n compatConfig: { MODE: 3 }\n}, iu = /* @__PURE__ */ ge({\n ...ou,\n setup(e) {\n const t = fe(), n = M(t, \"emits\"), o = M(t, \"viewport\"), i = M(t, \"getSelectedNodes\"), r = M(t, \"noPanClassName\"), a = M(t, \"disableKeyboardA11y\"), s = M(t, \"userSelectionActive\"), l = Ai(), u = ie(), c = ji({\n el: u,\n onStart(d) {\n n.value.selectionDragStart(d);\n },\n onDrag(d) {\n n.value.selectionDrag(d);\n },\n onStop(d) {\n n.value.selectionDragStop(d);\n }\n });\n Ve(() => {\n var d;\n a.value || (d = u.value) == null || d.focus({ preventScroll: !0 });\n });\n const v = J(() => co(i.value)), g = J(() => ({\n width: `${v.value.width}px`,\n height: `${v.value.height}px`,\n top: `${v.value.y}px`,\n left: `${v.value.x}px`\n }));\n function x(d) {\n n.value.selectionContextMenu({ event: d, nodes: i.value });\n }\n function h(d) {\n a.value || st[d.key] && l(\n {\n x: st[d.key].x,\n y: st[d.key].y\n },\n d.shiftKey\n );\n }\n return (d, w) => !C(s) && C(v).width && C(v).height ? (oe(), se(\"div\", {\n key: 0,\n class: Ke([\"vue-flow__nodesselection vue-flow__container\", C(r)]),\n style: Le({ transform: `translate(${C(o).x}px,${C(o).y}px) scale(${C(o).zoom})` })\n }, [\n ct(\"div\", {\n ref_key: \"el\",\n ref: u,\n class: Ke([{ dragging: C(c) }, \"vue-flow__nodesselection-rect\"]),\n style: Le(C(g)),\n tabIndex: C(a) ? void 0 : -1,\n onContextmenu: x,\n onKeydown: h\n }, null, 46, nu)\n ], 6)) : Ee(\"\", !0);\n }\n}), ru = {\n name: \"UserSelection\",\n compatConfig: { MODE: 3 }\n}, au = /* @__PURE__ */ ge({\n ...ru,\n setup(e) {\n const { userSelectionRect: t } = fe();\n return (n, o) => {\n var i, r, a, s;\n return oe(), se(\"div\", {\n class: \"vue-flow__selection vue-flow__container\",\n style: Le({\n width: `${(i = C(t)) == null ? void 0 : i.width}px`,\n height: `${(r = C(t)) == null ? void 0 : r.height}px`,\n transform: `translate(${(a = C(t)) == null ? void 0 : a.x}px, ${(s = C(t)) == null ? void 0 : s.y}px)`\n })\n }, null, 4);\n };\n }\n}), su = {\n input: Ta,\n default: Oa,\n output: Ia\n}, lu = {\n default: Bl,\n straight: Fl,\n step: Gl,\n smoothstep: ir,\n simplebezier: Rl\n};\nfunction uu() {\n return {\n vueFlowRef: null,\n viewportRef: null,\n nodes: [],\n edges: [],\n nodeTypes: {},\n edgeTypes: {},\n initialized: !1,\n dimensions: {\n width: 0,\n height: 0\n },\n viewport: { x: 0, y: 0, zoom: 1 },\n d3Zoom: null,\n d3Selection: null,\n d3ZoomHandler: null,\n minZoom: 0.5,\n maxZoom: 2,\n translateExtent: [\n [Number.NEGATIVE_INFINITY, Number.NEGATIVE_INFINITY],\n [Number.POSITIVE_INFINITY, Number.POSITIVE_INFINITY]\n ],\n nodeExtent: [\n [Number.NEGATIVE_INFINITY, Number.NEGATIVE_INFINITY],\n [Number.POSITIVE_INFINITY, Number.POSITIVE_INFINITY]\n ],\n selectionMode: fo.Full,\n paneDragging: !1,\n preventScrolling: !0,\n zoomOnScroll: !0,\n zoomOnPinch: !0,\n zoomOnDoubleClick: !0,\n panOnScroll: !1,\n panOnScrollSpeed: 0.5,\n panOnScrollMode: Ut.Free,\n panOnDrag: !0,\n edgeUpdaterRadius: 10,\n onlyRenderVisibleElements: !1,\n defaultViewport: { x: 0, y: 0, zoom: 1 },\n nodesSelectionActive: !1,\n userSelectionActive: !1,\n userSelectionRect: null,\n defaultMarkerColor: \"#b1b1b7\",\n connectionLineStyle: {},\n connectionLineType: null,\n connectionLineOptions: {\n type: Ye.Bezier,\n style: {}\n },\n connectionMode: Qe.Loose,\n connectionStartHandle: null,\n connectionEndHandle: null,\n connectionClickStartHandle: null,\n connectionPosition: { x: NaN, y: NaN },\n connectionRadius: 20,\n connectOnClick: !0,\n connectionStatus: null,\n isValidConnection: null,\n snapGrid: [15, 15],\n snapToGrid: !1,\n edgesUpdatable: !1,\n edgesFocusable: !0,\n nodesFocusable: !0,\n nodesConnectable: !0,\n nodesDraggable: !0,\n elementsSelectable: !0,\n selectNodesOnDrag: !0,\n multiSelectionActive: !1,\n selectionKeyCode: \"Shift\",\n multiSelectionKeyCode: \"Meta\",\n zoomActivationKeyCode: \"Meta\",\n deleteKeyCode: \"Backspace\",\n panActivationKeyCode: \"Space\",\n hooks: ca(),\n applyDefault: !0,\n autoConnect: !1,\n fitViewOnInit: !1,\n noDragClassName: \"nodrag\",\n noWheelClassName: \"nowheel\",\n noPanClassName: \"nopan\",\n defaultEdgeOptions: void 0,\n elevateEdgesOnSelect: !1,\n elevateNodesOnSelect: !0,\n autoPanOnNodeDrag: !0,\n autoPanOnConnect: !0,\n disableKeyboardA11y: !1,\n ariaLiveMessage: \"\",\n __experimentalFeatures: {\n nestedFlow: !1\n }\n };\n}\nfunction ar(e) {\n const t = uu();\n return e && Object.keys(e).forEach((n) => {\n const o = e[n];\n ce(o) && (t[n] = o);\n }), t;\n}\nfunction cu(e, t, n) {\n const o = J(() => (d) => e.nodes && !t.value.length ? e.nodes.find((w) => w.id === d) : e.nodes[t.value.indexOf(d)]), i = J(() => (d) => e.edges && !n.value.length ? e.edges.find((w) => w.id === d) : e.edges[n.value.indexOf(d)]), r = J(() => {\n var y;\n const d = {\n ...lu,\n ...e.edgeTypes\n }, w = Object.keys(d);\n return (y = e.edges) == null || y.forEach((S) => S.type && !w.includes(S.type) && (d[S.type] = S.type)), d;\n }), a = J(() => {\n var y;\n const d = {\n ...su,\n ...e.nodeTypes\n }, w = Object.keys(d);\n return (y = e.nodes) == null || y.forEach((S) => S.type && !w.includes(S.type) && (d[S.type] = S.type)), d;\n }), s = J(() => {\n const d = e.nodes.filter((w) => !w.hidden);\n return e.onlyRenderVisibleElements ? d && Ci(\n d,\n {\n x: 0,\n y: 0,\n width: e.dimensions.width,\n height: e.dimensions.height\n },\n e.viewport,\n !0\n ) : d ?? [];\n }), l = (d, w, y) => {\n if (w = w ?? o.value(d.source), y = y ?? o.value(d.target), !w || !y) {\n e.hooks.error.trigger(new ve(he.EDGE_ORPHANED, d.id));\n return;\n }\n return !d.hidden && !y.hidden && !w.hidden;\n }, u = J(() => e.onlyRenderVisibleElements ? e.edges.filter((d) => {\n const w = o.value(d.source), y = o.value(d.target);\n return l(d, w, y) && ba({\n sourcePos: w.computedPosition || { x: 0, y: 0 },\n targetPos: y.computedPosition || { x: 0, y: 0 },\n sourceWidth: w.dimensions.width,\n sourceHeight: w.dimensions.height,\n targetWidth: y.dimensions.width,\n targetHeight: y.dimensions.height,\n width: e.dimensions.width,\n height: e.dimensions.height,\n viewport: e.viewport\n });\n }) : e.edges.filter((d) => l(d))), c = J(() => [...s.value, ...u.value]), v = J(() => e.nodes.filter((d) => d.selected)), g = J(() => e.edges.filter((d) => d.selected)), x = J(() => [\n ...v.value ?? [],\n ...g.value ?? []\n ]), h = J(\n () => s.value.filter((d) => d.initialized && d.handleBounds !== void 0)\n );\n return {\n getNode: o,\n getEdge: i,\n getElements: c,\n getEdgeTypes: r,\n getNodeTypes: a,\n getEdges: u,\n getNodes: s,\n getSelectedElements: x,\n getSelectedNodes: v,\n getSelectedEdges: g,\n getNodesInitialized: h\n };\n}\nfunction yo(e, t, n) {\n e.prototype = t.prototype = n, n.constructor = e;\n}\nfunction sr(e, t) {\n var n = Object.create(e.prototype);\n for (var o in t)\n n[o] = t[o];\n return n;\n}\nfunction kt() {\n}\nvar Et = 0.7, jt = 1 / Et, lt = \"\\\\s*([+-]?\\\\d+)\\\\s*\", St = \"\\\\s*([+-]?(?:\\\\d*\\\\.)?\\\\d+(?:[eE][+-]?\\\\d+)?)\\\\s*\", Me = \"\\\\s*([+-]?(?:\\\\d*\\\\.)?\\\\d+(?:[eE][+-]?\\\\d+)?)%\\\\s*\", du = /^#([0-9a-f]{3,8})$/, fu = new RegExp(`^rgb\\\\(${lt},${lt},${lt}\\\\)$`), hu = new RegExp(`^rgb\\\\(${Me},${Me},${Me}\\\\)$`), gu = new RegExp(`^rgba\\\\(${lt},${lt},${lt},${St}\\\\)$`), vu = new RegExp(`^rgba\\\\(${Me},${Me},${Me},${St}\\\\)$`), mu = new RegExp(`^hsl\\\\(${St},${Me},${Me}\\\\)$`), pu = new RegExp(`^hsla\\\\(${St},${Me},${Me},${St}\\\\)$`), Ko = {\n aliceblue: 15792383,\n antiquewhite: 16444375,\n aqua: 65535,\n aquamarine: 8388564,\n azure: 15794175,\n beige: 16119260,\n bisque: 16770244,\n black: 0,\n blanchedalmond: 16772045,\n blue: 255,\n blueviolet: 9055202,\n brown: 10824234,\n burlywood: 14596231,\n cadetblue: 6266528,\n chartreuse: 8388352,\n chocolate: 13789470,\n coral: 16744272,\n cornflowerblue: 6591981,\n cornsilk: 16775388,\n crimson: 14423100,\n cyan: 65535,\n darkblue: 139,\n darkcyan: 35723,\n darkgoldenrod: 12092939,\n darkgray: 11119017,\n darkgreen: 25600,\n darkgrey: 11119017,\n darkkhaki: 12433259,\n darkmagenta: 9109643,\n darkolivegreen: 5597999,\n darkorange: 16747520,\n darkorchid: 10040012,\n darkred: 9109504,\n darksalmon: 15308410,\n darkseagreen: 9419919,\n darkslateblue: 4734347,\n darkslategray: 3100495,\n darkslategrey: 3100495,\n darkturquoise: 52945,\n darkviolet: 9699539,\n deeppink: 16716947,\n deepskyblue: 49151,\n dimgray: 6908265,\n dimgrey: 6908265,\n dodgerblue: 2003199,\n firebrick: 11674146,\n floralwhite: 16775920,\n forestgreen: 2263842,\n fuchsia: 16711935,\n gainsboro: 14474460,\n ghostwhite: 16316671,\n gold: 16766720,\n goldenrod: 14329120,\n gray: 8421504,\n green: 32768,\n greenyellow: 11403055,\n grey: 8421504,\n honeydew: 15794160,\n hotpink: 16738740,\n indianred: 13458524,\n indigo: 4915330,\n ivory: 16777200,\n khaki: 15787660,\n lavender: 15132410,\n lavenderblush: 16773365,\n lawngreen: 8190976,\n lemonchiffon: 16775885,\n lightblue: 11393254,\n lightcoral: 15761536,\n lightcyan: 14745599,\n lightgoldenrodyellow: 16448210,\n lightgray: 13882323,\n lightgreen: 9498256,\n lightgrey: 13882323,\n lightpink: 16758465,\n lightsalmon: 16752762,\n lightseagreen: 2142890,\n lightskyblue: 8900346,\n lightslategray: 7833753,\n lightslategrey: 7833753,\n lightsteelblue: 11584734,\n lightyellow: 16777184,\n lime: 65280,\n limegreen: 3329330,\n linen: 16445670,\n magenta: 16711935,\n maroon: 8388608,\n mediumaquamarine: 6737322,\n mediumblue: 205,\n mediumorchid: 12211667,\n mediumpurple: 9662683,\n mediumseagreen: 3978097,\n mediumslateblue: 8087790,\n mediumspringgreen: 64154,\n mediumturquoise: 4772300,\n mediumvioletred: 13047173,\n midnightblue: 1644912,\n mintcream: 16121850,\n mistyrose: 16770273,\n moccasin: 16770229,\n navajowhite: 16768685,\n navy: 128,\n oldlace: 16643558,\n olive: 8421376,\n olivedrab: 7048739,\n orange: 16753920,\n orangered: 16729344,\n orchid: 14315734,\n palegoldenrod: 15657130,\n palegreen: 10025880,\n paleturquoise: 11529966,\n palevioletred: 14381203,\n papayawhip: 16773077,\n peachpuff: 16767673,\n peru: 13468991,\n pink: 16761035,\n plum: 14524637,\n powderblue: 11591910,\n purple: 8388736,\n rebeccapurple: 6697881,\n red: 16711680,\n rosybrown: 12357519,\n royalblue: 4286945,\n saddlebrown: 9127187,\n salmon: 16416882,\n sandybrown: 16032864,\n seagreen: 3050327,\n seashell: 16774638,\n sienna: 10506797,\n silver: 12632256,\n skyblue: 8900331,\n slateblue: 6970061,\n slategray: 7372944,\n slategrey: 7372944,\n snow: 16775930,\n springgreen: 65407,\n steelblue: 4620980,\n tan: 13808780,\n teal: 32896,\n thistle: 14204888,\n tomato: 16737095,\n turquoise: 4251856,\n violet: 15631086,\n wheat: 16113331,\n white: 16777215,\n whitesmoke: 16119285,\n yellow: 16776960,\n yellowgreen: 10145074\n};\nyo(kt, Nt, {\n copy(e) {\n return Object.assign(new this.constructor(), this, e);\n },\n displayable() {\n return this.rgb().displayable();\n },\n hex: qo,\n // Deprecated! Use color.formatHex.\n formatHex: qo,\n formatHex8: yu,\n formatHsl: xu,\n formatRgb: jo,\n toString: jo\n});\nfunction qo() {\n return this.rgb().formatHex();\n}\nfunction yu() {\n return this.rgb().formatHex8();\n}\nfunction xu() {\n return lr(this).formatHsl();\n}\nfunction jo() {\n return this.rgb().formatRgb();\n}\nfunction Nt(e) {\n var t, n;\n return e = (e + \"\").trim().toLowerCase(), (t = du.exec(e)) ? (n = t[1].length, t = parseInt(t[1], 16), n === 6 ? Qo(t) : n === 3 ? new pe(t >> 8 & 15 | t >> 4 & 240, t >> 4 & 15 | t & 240, (t & 15) << 4 | t & 15, 1) : n === 8 ? zt(t >> 24 & 255, t >> 16 & 255, t >> 8 & 255, (t & 255) / 255) : n === 4 ? zt(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 = fu.exec(e)) ? new pe(t[1], t[2], t[3], 1) : (t = hu.exec(e)) ? new pe(t[1] * 255 / 100, t[2] * 255 / 100, t[3] * 255 / 100, 1) : (t = gu.exec(e)) ? zt(t[1], t[2], t[3], t[4]) : (t = vu.exec(e)) ? zt(t[1] * 255 / 100, t[2] * 255 / 100, t[3] * 255 / 100, t[4]) : (t = mu.exec(e)) ? ti(t[1], t[2] / 100, t[3] / 100, 1) : (t = pu.exec(e)) ? ti(t[1], t[2] / 100, t[3] / 100, t[4]) : Ko.hasOwnProperty(e) ? Qo(Ko[e]) : e === \"transparent\" ? new pe(NaN, NaN, NaN, 0) : null;\n}\nfunction Qo(e) {\n return new pe(e >> 16 & 255, e >> 8 & 255, e & 255, 1);\n}\nfunction zt(e, t, n, o) {\n return o <= 0 && (e = t = n = NaN), new pe(e, t, n, o);\n}\nfunction _u(e) {\n return e instanceof kt || (e = Nt(e)), e ? (e = e.rgb(), new pe(e.r, e.g, e.b, e.opacity)) : new pe();\n}\nfunction jn(e, t, n, o) {\n return arguments.length === 1 ? _u(e) : new pe(e, t, n, o ?? 1);\n}\nfunction pe(e, t, n, o) {\n this.r = +e, this.g = +t, this.b = +n, this.opacity = +o;\n}\nyo(pe, jn, sr(kt, {\n brighter(e) {\n return e = e == null ? jt : Math.pow(jt, e), new pe(this.r * e, this.g * e, this.b * e, this.opacity);\n },\n darker(e) {\n return e = e == null ? Et : Math.pow(Et, e), new pe(this.r * e, this.g * e, this.b * e, this.opacity);\n },\n rgb() {\n return this;\n },\n clamp() {\n return new pe(We(this.r), We(this.g), We(this.b), Qt(this.opacity));\n },\n displayable() {\n return -0.5 <= this.r && this.r < 255.5 && -0.5 <= this.g && this.g < 255.5 && -0.5 <= this.b && this.b < 255.5 && 0 <= this.opacity && this.opacity <= 1;\n },\n hex: Jo,\n // Deprecated! Use color.formatHex.\n formatHex: Jo,\n formatHex8: wu,\n formatRgb: ei,\n toString: ei\n}));\nfunction Jo() {\n return `#${Ze(this.r)}${Ze(this.g)}${Ze(this.b)}`;\n}\nfunction wu() {\n return `#${Ze(this.r)}${Ze(this.g)}${Ze(this.b)}${Ze((isNaN(this.opacity) ? 1 : this.opacity) * 255)}`;\n}\nfunction ei() {\n const e = Qt(this.opacity);\n return `${e === 1 ? \"rgb(\" : \"rgba(\"}${We(this.r)}, ${We(this.g)}, ${We(this.b)}${e === 1 ? \")\" : `, ${e})`}`;\n}\nfunction Qt(e) {\n return isNaN(e) ? 1 : Math.max(0, Math.min(1, e));\n}\nfunction We(e) {\n return Math.max(0, Math.min(255, Math.round(e) || 0));\n}\nfunction Ze(e) {\n return e = We(e), (e < 16 ? \"0\" : \"\") + e.toString(16);\n}\nfunction ti(e, t, n, o) {\n return o <= 0 ? e = t = n = NaN : n <= 0 || n >= 1 ? e = t = NaN : t <= 0 && (e = NaN), new be(e, t, n, o);\n}\nfunction lr(e) {\n if (e instanceof be)\n return new be(e.h, e.s, e.l, e.opacity);\n if (e instanceof kt || (e = Nt(e)), !e)\n return new be();\n if (e instanceof be)\n return e;\n e = e.rgb();\n var t = e.r / 255, n = e.g / 255, o = e.b / 255, i = Math.min(t, n, o), r = Math.max(t, n, o), a = NaN, s = r - i, l = (r + i) / 2;\n return s ? (t === r ? a = (n - o) / s + (n < o) * 6 : n === r ? a = (o - t) / s + 2 : a = (t - n) / s + 4, s /= l < 0.5 ? r + i : 2 - r - i, a *= 60) : s = l > 0 && l < 1 ? 0 : a, new be(a, s, l, e.opacity);\n}\nfunction bu(e, t, n, o) {\n return arguments.length === 1 ? lr(e) : new be(e, t, n, o ?? 1);\n}\nfunction be(e, t, n, o) {\n this.h = +e, this.s = +t, this.l = +n, this.opacity = +o;\n}\nyo(be, bu, sr(kt, {\n brighter(e) {\n return e = e == null ? jt : Math.pow(jt, e), new be(this.h, this.s, this.l * e, this.opacity);\n },\n darker(e) {\n return e = e == null ? Et : Math.pow(Et, e), new be(this.h, this.s, this.l * e, this.opacity);\n },\n rgb() {\n var e = this.h % 360 + (this.h < 0) * 360, t = isNaN(e) || isNaN(this.s) ? 0 : this.s, n = this.l, o = n + (n < 0.5 ? n : 1 - n) * t, i = 2 * n - o;\n return new pe(\n kn(e >= 240 ? e - 240 : e + 120, i, o),\n kn(e, i, o),\n kn(e < 120 ? e + 240 : e - 120, i, o),\n this.opacity\n );\n },\n clamp() {\n return new be(ni(this.h), At(this.s), At(this.l), Qt(this.opacity));\n },\n displayable() {\n return (0 <= this.s && this.s <= 1 || isNaN(this.s)) && 0 <= this.l && this.l <= 1 && 0 <= this.opacity && this.opacity <= 1;\n },\n formatHsl() {\n const e = Qt(this.opacity);\n return `${e === 1 ? \"hsl(\" : \"hsla(\"}${ni(this.h)}, ${At(this.s) * 100}%, ${At(this.l) * 100}%${e === 1 ? \")\" : `, ${e})`}`;\n }\n}));\nfunction ni(e) {\n return e = (e || 0) % 360, e < 0 ? e + 360 : e;\n}\nfunction At(e) {\n return Math.max(0, Math.min(1, e || 0));\n}\nfunction kn(e, t, n) {\n return (e < 60 ? t + (n - t) * e / 60 : e < 180 ? n : e < 240 ? t + (n - t) * (240 - e) / 60 : t) * 255;\n}\nconst ur = (e) => () => e;\nfunction Eu(e, t) {\n return function(n) {\n return e + n * t;\n };\n}\nfunction Su(e, t, n) {\n return e = Math.pow(e, n), t = Math.pow(t, n) - e, n = 1 / n, function(o) {\n return Math.pow(e + o * t, n);\n };\n}\nfunction Nu(e) {\n return (e = +e) == 1 ? cr : function(t, n) {\n return n - t ? Su(t, n, e) : ur(isNaN(t) ? n : t);\n };\n}\nfunction cr(e, t) {\n var n = t - e;\n return n ? Eu(e, n) : ur(isNaN(e) ? t : e);\n}\nconst oi = function e(t) {\n var n = Nu(t);\n function o(i, r) {\n var a = n((i = jn(i)).r, (r = jn(r)).r), s = n(i.g, r.g), l = n(i.b, r.b), u = cr(i.opacity, r.opacity);\n return function(c) {\n return i.r = a(c), i.g = s(c), i.b = l(c), i.opacity = u(c), i + \"\";\n };\n }\n return o.gamma = e, o;\n}(1);\nfunction Re(e, t) {\n return e = +e, t = +t, function(n) {\n return e * (1 - n) + t * n;\n };\n}\nvar Qn = /[-+]?(?:\\d+\\.?\\d*|\\.?\\d+)(?:[eE][-+]?\\d+)?/g, On = new RegExp(Qn.source, \"g\");\nfunction Cu(e) {\n return function() {\n return e;\n };\n}\nfunction Mu(e) {\n return function(t) {\n return e(t) + \"\";\n };\n}\nfunction $u(e, t) {\n var n = Qn.lastIndex = On.lastIndex = 0, o, i, r, a = -1, s = [], l = [];\n for (e = e + \"\", t = t + \"\"; (o = Qn.exec(e)) && (i = On.exec(t)); )\n (r = i.index) > n && (r = t.slice(n, r), s[a] ? s[a] += r : s[++a] = r), (o = o[0]) === (i = i[0]) ? s[a] ? s[a] += i : s[++a] = i : (s[++a] = null, l.push({ i: a, x: Re(o, i) })), n = On.lastIndex;\n return n < t.length && (r = t.slice(n), s[a] ? s[a] += r : s[++a] = r), s.length < 2 ? l[0] ? Mu(l[0].x) : Cu(t) : (t = l.length, function(u) {\n for (var c = 0, v; c < t; ++c)\n s[(v = l[c]).i] = v.x(u);\n return s.join(\"\");\n });\n}\nvar ii = 180 / Math.PI, Jn = {\n translateX: 0,\n translateY: 0,\n rotate: 0,\n skewX: 0,\n scaleX: 1,\n scaleY: 1\n};\nfunction dr(e, t, n, o, i, r) {\n var a, s, l;\n return (a = Math.sqrt(e * e + t * t)) && (e /= a, t /= a), (l = e * n + t * o) && (n -= e * l, o -= t * l), (s = Math.sqrt(n * n + o * o)) && (n /= s, o /= s, l /= s), e * o < t * n && (e = -e, t = -t, l = -l, a = -a), {\n translateX: i,\n translateY: r,\n rotate: Math.atan2(t, e) * ii,\n skewX: Math.atan(l) * ii,\n scaleX: a,\n scaleY: s\n };\n}\nvar Bt;\nfunction ku(e) {\n const t = new (typeof DOMMatrix == \"function\" ? DOMMatrix : WebKitCSSMatrix)(e + \"\");\n return t.isIdentity ? Jn : dr(t.a, t.b, t.c, t.d, t.e, t.f);\n}\nfunction Ou(e) {\n return e == null || (Bt || (Bt = document.createElementNS(\"http://www.w3.org/2000/svg\", \"g\")), Bt.setAttribute(\"transform\", e), !(e = Bt.transform.baseVal.consolidate())) ? Jn : (e = e.matrix, dr(e.a, e.b, e.c, e.d, e.e, e.f));\n}\nfunction fr(e, t, n, o) {\n function i(u) {\n return u.length ? u.pop() + \" \" : \"\";\n }\n function r(u, c, v, g, x, h) {\n if (u !== v || c !== g) {\n var d = x.push(\"translate(\", null, t, null, n);\n h.push({ i: d - 4, x: Re(u, v) }, { i: d - 2, x: Re(c, g) });\n } else\n (v || g) && x.push(\"translate(\" + v + t + g + n);\n }\n function a(u, c, v, g) {\n u !== c ? (u - c > 180 ? c += 360 : c - u > 180 && (u += 360), g.push({ i: v.push(i(v) + \"rotate(\", null, o) - 2, x: Re(u, c) })) : c && v.push(i(v) + \"rotate(\" + c + o);\n }\n function s(u, c, v, g) {\n u !== c ? g.push({ i: v.push(i(v) + \"skewX(\", null, o) - 2, x: Re(u, c) }) : c && v.push(i(v) + \"skewX(\" + c + o);\n }\n function l(u, c, v, g, x, h) {\n if (u !== v || c !== g) {\n var d = x.push(i(x) + \"scale(\", null, \",\", null, \")\");\n h.push({ i: d - 4, x: Re(u, v) }, { i: d - 2, x: Re(c, g) });\n } else\n (v !== 1 || g !== 1) && x.push(i(x) + \"scale(\" + v + \",\" + g + \")\");\n }\n return function(u, c) {\n var v = [], g = [];\n return u = e(u), c = e(c), r(u.translateX, u.translateY, c.translateX, c.translateY, v, g), a(u.rotate, c.rotate, v, g), s(u.skewX, c.skewX, v, g), l(u.scaleX, u.scaleY, c.scaleX, c.scaleY, v, g), u = c = null, function(x) {\n for (var h = -1, d = g.length, w; ++h < d; )\n v[(w = g[h]).i] = w.x(x);\n return v.join(\"\");\n };\n };\n}\nvar Tu = fr(ku, \"px, \", \"px)\", \"deg)\"), Iu = fr(Ou, \", \", \")\", \")\"), Pu = 1e-12;\nfunction ri(e) {\n return ((e = Math.exp(e)) + 1 / e) / 2;\n}\nfunction Du(e) {\n return ((e = Math.exp(e)) - 1 / e) / 2;\n}\nfunction zu(e) {\n return ((e = Math.exp(2 * e)) - 1) / (e + 1);\n}\nconst Au = function e(t, n, o) {\n function i(r, a) {\n var s = r[0], l = r[1], u = r[2], c = a[0], v = a[1], g = a[2], x = c - s, h = v - l, d = x * x + h * h, w, y;\n if (d < Pu)\n y = Math.log(g / u) / t, w = function(_) {\n return [\n s + _ * x,\n l + _ * h,\n u * Math.exp(t * _ * y)\n ];\n };\n else {\n var S = Math.sqrt(d), V = (g * g - u * u + o * d) / (2 * u * n * S), p = (g * g - u * u - o * d) / (2 * g * n * S), N = Math.log(Math.sqrt(V * V + 1) - V), T = Math.log(Math.sqrt(p * p + 1) - p);\n y = (T - N) / t, w = function(_) {\n var P = _ * y, R = ri(N), $ = u / (n * S) * (R * zu(t * P + N) - Du(N));\n return [\n s + $ * x,\n l + $ * h,\n u * R / ri(t * P + N)\n ];\n };\n }\n return w.duration = y * 1e3 * t / Math.SQRT2, w;\n }\n return i.rho = function(r) {\n var a = Math.max(1e-3, +r), s = a * a, l = s * s;\n return e(a, s, l);\n }, i;\n}(Math.SQRT2, 2, 4);\nvar ht = 0, mt = 0, gt = 0, hr = 1e3, Jt, pt, en = 0, Je = 0, wn = 0, Ct = typeof performance == \"object\" && performance.now ? performance : Date, gr = typeof window == \"object\" && window.requestAnimationFrame ? window.requestAnimationFrame.bind(window) : function(e) {\n setTimeout(e, 17);\n};\nfunction xo() {\n return Je || (gr(Bu), Je = Ct.now() + wn);\n}\nfunction Bu() {\n Je = 0;\n}\nfunction tn() {\n this._call = this._time = this._next = null;\n}\ntn.prototype = vr.prototype = {\n constructor: tn,\n restart: function(e, t, n) {\n if (typeof e != \"function\")\n throw new TypeError(\"callback is not a function\");\n n = (n == null ? xo() : +n) + (t == null ? 0 : +t), !this._next && pt !== this && (pt ? pt._next = this : Jt = this, pt = this), this._call = e, this._time = n, eo();\n },\n stop: function() {\n this._call && (this._call = null, this._time = 1 / 0, eo());\n }\n};\nfunction vr(e, t, n) {\n var o = new tn();\n return o.restart(e, t, n), o;\n}\nfunction Ru() {\n xo(), ++ht;\n for (var e = Jt, t; e; )\n (t = Je - e._time) >= 0 && e._call.call(void 0, t), e = e._next;\n --ht;\n}\nfunction ai() {\n Je = (en = Ct.now()) + wn, ht = mt = 0;\n try {\n Ru();\n } finally {\n ht = 0, Hu(), Je = 0;\n }\n}\nfunction Vu() {\n var e = Ct.now(), t = e - en;\n t > hr && (wn -= t, en = e);\n}\nfunction Hu() {\n for (var e, t = Jt, n, o = 1 / 0; t; )\n 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);\n pt = e, eo(o);\n}\nfunction eo(e) {\n if (!ht) {\n mt && (mt = clearTimeout(mt));\n var t = e - Je;\n t > 24 ? (e < 1 / 0 && (mt = setTimeout(ai, e - Ct.now() - wn)), gt && (gt = clearInterval(gt))) : (gt || (en = Ct.now(), gt = setInterval(Vu, hr)), ht = 1, gr(ai));\n }\n}\nfunction si(e, t, n) {\n var o = new tn();\n return t = t == null ? 0 : +t, o.restart((i) => {\n o.stop(), e(i + t);\n }, t, n), o;\n}\nvar Lu = fn(\"start\", \"end\", \"cancel\", \"interrupt\"), Gu = [], mr = 0, li = 1, to = 2, Lt = 3, ui = 4, no = 5, Gt = 6;\nfunction bn(e, t, n, o, i, r) {\n var a = e.__transition;\n if (!a)\n e.__transition = {};\n else if (n in a)\n return;\n Fu(e, n, {\n name: t,\n index: o,\n // For context during callback.\n group: i,\n // For context during callback.\n on: Lu,\n tween: Gu,\n time: r.time,\n delay: r.delay,\n duration: r.duration,\n ease: r.ease,\n timer: null,\n state: mr\n });\n}\nfunction _o(e, t) {\n var n = Se(e, t);\n if (n.state > mr)\n throw new Error(\"too late; already scheduled\");\n return n;\n}\nfunction ke(e, t) {\n var n = Se(e, t);\n if (n.state > Lt)\n throw new Error(\"too late; already running\");\n return n;\n}\nfunction Se(e, t) {\n var n = e.__transition;\n if (!n || !(n = n[t]))\n throw new Error(\"transition not found\");\n return n;\n}\nfunction Fu(e, t, n) {\n var o = e.__transition, i;\n o[t] = n, n.timer = vr(r, 0, n.time);\n function r(u) {\n n.state = li, n.timer.restart(a, n.delay, n.time), n.delay <= u && a(u - n.delay);\n }\n function a(u) {\n var c, v, g, x;\n if (n.state !== li)\n return l();\n for (c in o)\n if (x = o[c], x.name === n.name) {\n if (x.state === Lt)\n return si(a);\n x.state === ui ? (x.state = Gt, x.timer.stop(), x.on.call(\"interrupt\", e, e.__data__, x.index, x.group), delete o[c]) : +c < t && (x.state = Gt, x.timer.stop(), x.on.call(\"cancel\", e, e.__data__, x.index, x.group), delete o[c]);\n }\n if (si(function() {\n n.state === Lt && (n.state = ui, n.timer.restart(s, n.delay, n.time), s(u));\n }), n.state = to, n.on.call(\"start\", e, e.__data__, n.index, n.group), n.state === to) {\n for (n.state = Lt, i = new Array(g = n.tween.length), c = 0, v = -1; c < g; ++c)\n (x = n.tween[c].value.call(e, e.__data__, n.index, n.group)) && (i[++v] = x);\n i.length = v + 1;\n }\n }\n function s(u) {\n for (var c = u < n.duration ? n.ease.call(null, u / n.duration) : (n.timer.restart(l), n.state = no, 1), v = -1, g = i.length; ++v < g; )\n i[v].call(e, c);\n n.state === no && (n.on.call(\"end\", e, e.__data__, n.index, n.group), l());\n }\n function l() {\n n.state = Gt, n.timer.stop(), delete o[t];\n for (var u in o)\n return;\n delete e.__transition;\n }\n}\nfunction Ft(e, t) {\n var n = e.__transition, o, i, r = !0, a;\n if (n) {\n t = t == null ? null : t + \"\";\n for (a in n) {\n if ((o = n[a]).name !== t) {\n r = !1;\n continue;\n }\n i = o.state > to && o.state < no, o.state = Gt, o.timer.stop(), o.on.call(i ? \"interrupt\" : \"cancel\", e, e.__data__, o.index, o.group), delete n[a];\n }\n r && delete e.__transition;\n }\n}\nfunction Yu(e) {\n return this.each(function() {\n Ft(this, e);\n });\n}\nfunction Xu(e, t) {\n var n, o;\n return function() {\n var i = ke(this, e), r = i.tween;\n if (r !== n) {\n o = n = r;\n for (var a = 0, s = o.length; a < s; ++a)\n if (o[a].name === t) {\n o = o.slice(), o.splice(a, 1);\n break;\n }\n }\n i.tween = o;\n };\n}\nfunction Zu(e, t, n) {\n var o, i;\n if (typeof n != \"function\")\n throw new Error();\n return function() {\n var r = ke(this, e), a = r.tween;\n if (a !== o) {\n i = (o = a).slice();\n for (var s = { name: t, value: n }, l = 0, u = i.length; l < u; ++l)\n if (i[l].name === t) {\n i[l] = s;\n break;\n }\n l === u && i.push(s);\n }\n r.tween = i;\n };\n}\nfunction Uu(e, t) {\n var n = this._id;\n if (e += \"\", arguments.length < 2) {\n for (var o = Se(this.node(), n).tween, i = 0, r = o.length, a; i < r; ++i)\n if ((a = o[i]).name === e)\n return a.value;\n return null;\n }\n return this.each((t == null ? Xu : Zu)(n, e, t));\n}\nfunction wo(e, t, n) {\n var o = e._id;\n return e.each(function() {\n var i = ke(this, o);\n (i.value || (i.value = {}))[t] = n.apply(this, arguments);\n }), function(i) {\n return Se(i, o).value[t];\n };\n}\nfunction pr(e, t) {\n var n;\n return (typeof t == \"number\" ? Re : t instanceof Nt ? oi : (n = Nt(t)) ? (t = n, oi) : $u)(e, t);\n}\nfunction Wu(e) {\n return function() {\n this.removeAttribute(e);\n };\n}\nfunction Ku(e) {\n return function() {\n this.removeAttributeNS(e.space, e.local);\n };\n}\nfunction qu(e, t, n) {\n var o, i = n + \"\", r;\n return function() {\n var a = this.getAttribute(e);\n return a === i ? null : a === o ? r : r = t(o = a, n);\n };\n}\nfunction ju(e, t, n) {\n var o, i = n + \"\", r;\n return function() {\n var a = this.getAttributeNS(e.space, e.local);\n return a === i ? null : a === o ? r : r = t(o = a, n);\n };\n}\nfunction Qu(e, t, n) {\n var o, i, r;\n return function() {\n var a, s = n(this), l;\n return s == null ? void this.removeAttribute(e) : (a = this.getAttribute(e), l = s + \"\", a === l ? null : a === o && l === i ? r : (i = l, r = t(o = a, s)));\n };\n}\nfunction Ju(e, t, n) {\n var o, i, r;\n return function() {\n var a, s = n(this), l;\n return s == null ? void this.removeAttributeNS(e.space, e.local) : (a = this.getAttributeNS(e.space, e.local), l = s + \"\", a === l ? null : a === o && l === i ? r : (i = l, r = t(o = a, s)));\n };\n}\nfunction ec(e, t) {\n var n = hn(e), o = n === \"transform\" ? Iu : pr;\n return this.attrTween(e, typeof t == \"function\" ? (n.local ? Ju : Qu)(n, o, wo(this, \"attr.\" + e, t)) : t == null ? (n.local ? Ku : Wu)(n) : (n.local ? ju : qu)(n, o, t));\n}\nfunction tc(e, t) {\n return function(n) {\n this.setAttribute(e, t.call(this, n));\n };\n}\nfunction nc(e, t) {\n return function(n) {\n this.setAttributeNS(e.space, e.local, t.call(this, n));\n };\n}\nfunction oc(e, t) {\n var n, o;\n function i() {\n var r = t.apply(this, arguments);\n return r !== o && (n = (o = r) && nc(e, r)), n;\n }\n return i._value = t, i;\n}\nfunction ic(e, t) {\n var n, o;\n function i() {\n var r = t.apply(this, arguments);\n return r !== o && (n = (o = r) && tc(e, r)), n;\n }\n return i._value = t, i;\n}\nfunction rc(e, t) {\n var n = \"attr.\" + e;\n if (arguments.length < 2)\n return (n = this.tween(n)) && n._value;\n if (t == null)\n return this.tween(n, null);\n if (typeof t != \"function\")\n throw new Error();\n var o = hn(e);\n return this.tween(n, (o.local ? oc : ic)(o, t));\n}\nfunction ac(e, t) {\n return function() {\n _o(this, e).delay = +t.apply(this, arguments);\n };\n}\nfunction sc(e, t) {\n return t = +t, function() {\n _o(this, e).delay = t;\n };\n}\nfunction lc(e) {\n var t = this._id;\n return arguments.length ? this.each((typeof e == \"function\" ? ac : sc)(t, e)) : Se(this.node(), t).delay;\n}\nfunction uc(e, t) {\n return function() {\n ke(this, e).duration = +t.apply(this, arguments);\n };\n}\nfunction cc(e, t) {\n return t = +t, function() {\n ke(this, e).duration = t;\n };\n}\nfunction dc(e) {\n var t = this._id;\n return arguments.length ? this.each((typeof e == \"function\" ? uc : cc)(t, e)) : Se(this.node(), t).duration;\n}\nfunction fc(e, t) {\n if (typeof t != \"function\")\n throw new Error();\n return function() {\n ke(this, e).ease = t;\n };\n}\nfunction hc(e) {\n var t = this._id;\n return arguments.length ? this.each(fc(t, e)) : Se(this.node(), t).ease;\n}\nfunction gc(e, t) {\n return function() {\n var n = t.apply(this, arguments);\n if (typeof n != \"function\")\n throw new Error();\n ke(this, e).ease = n;\n };\n}\nfunction vc(e) {\n if (typeof e != \"function\")\n throw new Error();\n return this.each(gc(this._id, e));\n}\nfunction mc(e) {\n typeof e != \"function\" && (e = Vi(e));\n for (var t = this._groups, n = t.length, o = new Array(n), i = 0; i < n; ++i)\n for (var r = t[i], a = r.length, s = o[i] = [], l, u = 0; u < a; ++u)\n (l = r[u]) && e.call(l, l.__data__, u, r) && s.push(l);\n return new Be(o, this._parents, this._name, this._id);\n}\nfunction pc(e) {\n if (e._id !== this._id)\n throw new Error();\n for (var t = this._groups, n = e._groups, o = t.length, i = n.length, r = Math.min(o, i), a = new Array(o), s = 0; s < r; ++s)\n for (var l = t[s], u = n[s], c = l.length, v = a[s] = new Array(c), g, x = 0; x < c; ++x)\n (g = l[x] || u[x]) && (v[x] = g);\n for (; s < o; ++s)\n a[s] = t[s];\n return new Be(a, this._parents, this._name, this._id);\n}\nfunction yc(e) {\n return (e + \"\").trim().split(/^|\\s+/).every(function(t) {\n var n = t.indexOf(\".\");\n return n >= 0 && (t = t.slice(0, n)), !t || t === \"start\";\n });\n}\nfunction xc(e, t, n) {\n var o, i, r = yc(t) ? _o : ke;\n return function() {\n var a = r(this, e), s = a.on;\n s !== o && (i = (o = s).copy()).on(t, n), a.on = i;\n };\n}\nfunction _c(e, t) {\n var n = this._id;\n return arguments.length < 2 ? Se(this.node(), n).on.on(e) : this.each(xc(n, e, t));\n}\nfunction wc(e) {\n return function() {\n var t = this.parentNode;\n for (var n in this.__transition)\n if (+n !== e)\n return;\n t && t.removeChild(this);\n };\n}\nfunction bc() {\n return this.on(\"end.remove\", wc(this._id));\n}\nfunction Ec(e) {\n var t = this._name, n = this._id;\n typeof e != \"function\" && (e = vo(e));\n for (var o = this._groups, i = o.length, r = new Array(i), a = 0; a < i; ++a)\n for (var s = o[a], l = s.length, u = r[a] = new Array(l), c, v, g = 0; g < l; ++g)\n (c = s[g]) && (v = e.call(c, c.__data__, g, s)) && (\"__data__\" in c && (v.__data__ = c.__data__), u[g] = v, bn(u[g], t, n, g, u, Se(c, n)));\n return new Be(r, this._parents, t, n);\n}\nfunction Sc(e) {\n var t = this._name, n = this._id;\n typeof e != \"function\" && (e = Ri(e));\n for (var o = this._groups, i = o.length, r = [], a = [], s = 0; s < i; ++s)\n for (var l = o[s], u = l.length, c, v = 0; v < u; ++v)\n if (c = l[v]) {\n for (var g = e.call(c, c.__data__, v, l), x, h = Se(c, n), d = 0, w = g.length; d < w; ++d)\n (x = g[d]) && bn(x, t, n, d, g, h);\n r.push(g), a.push(c);\n }\n return new Be(r, a, t, n);\n}\nvar Nc = $t.prototype.constructor;\nfunction Cc() {\n return new Nc(this._groups, this._parents);\n}\nfunction Mc(e, t) {\n var n, o, i;\n return function() {\n var r = ft(this, e), a = (this.style.removeProperty(e), ft(this, e));\n return r === a ? null : r === n && a === o ? i : i = t(n = r, o = a);\n };\n}\nfunction yr(e) {\n return function() {\n this.style.removeProperty(e);\n };\n}\nfunction $c(e, t, n) {\n var o, i = n + \"\", r;\n return function() {\n var a = ft(this, e);\n return a === i ? null : a === o ? r : r = t(o = a, n);\n };\n}\nfunction kc(e, t, n) {\n var o, i, r;\n return function() {\n var a = ft(this, e), s = n(this), l = s + \"\";\n return s == null && (l = s = (this.style.removeProperty(e), ft(this, e))), a === l ? null : a === o && l === i ? r : (i = l, r = t(o = a, s));\n };\n}\nfunction Oc(e, t) {\n var n, o, i, r = \"style.\" + t, a = \"end.\" + r, s;\n return function() {\n var l = ke(this, e), u = l.on, c = l.value[r] == null ? s || (s = yr(t)) : void 0;\n (u !== n || i !== c) && (o = (n = u).copy()).on(a, i = c), l.on = o;\n };\n}\nfunction Tc(e, t, n) {\n var o = (e += \"\") == \"transform\" ? Tu : pr;\n return t == null ? this.styleTween(e, Mc(e, o)).on(\"end.style.\" + e, yr(e)) : typeof t == \"function\" ? this.styleTween(e, kc(e, o, wo(this, \"style.\" + e, t))).each(Oc(this._id, e)) : this.styleTween(e, $c(e, o, t), n).on(\"end.style.\" + e, null);\n}\nfunction Ic(e, t, n) {\n return function(o) {\n this.style.setProperty(e, t.call(this, o), n);\n };\n}\nfunction Pc(e, t, n) {\n var o, i;\n function r() {\n var a = t.apply(this, arguments);\n return a !== i && (o = (i = a) && Ic(e, a, n)), o;\n }\n return r._value = t, r;\n}\nfunction Dc(e, t, n) {\n var o = \"style.\" + (e += \"\");\n if (arguments.length < 2)\n return (o = this.tween(o)) && o._value;\n if (t == null)\n return this.tween(o, null);\n if (typeof t != \"function\")\n throw new Error();\n return this.tween(o, Pc(e, t, n ?? \"\"));\n}\nfunction zc(e) {\n return function() {\n this.textContent = e;\n };\n}\nfunction Ac(e) {\n return function() {\n var t = e(this);\n this.textContent = t ?? \"\";\n };\n}\nfunction Bc(e) {\n return this.tween(\"text\", typeof e == \"function\" ? Ac(wo(this, \"text\", e)) : zc(e == null ? \"\" : e + \"\"));\n}\nfunction Rc(e) {\n return function(t) {\n this.textContent = e.call(this, t);\n };\n}\nfunction Vc(e) {\n var t, n;\n function o() {\n var i = e.apply(this, arguments);\n return i !== n && (t = (n = i) && Rc(i)), t;\n }\n return o._value = e, o;\n}\nfunction Hc(e) {\n var t = \"text\";\n if (arguments.length < 1)\n return (t = this.tween(t)) && t._value;\n if (e == null)\n return this.tween(t, null);\n if (typeof e != \"function\")\n throw new Error();\n return this.tween(t, Vc(e));\n}\nfunction Lc() {\n for (var e = this._name, t = this._id, n = xr(), o = this._groups, i = o.length, r = 0; r < i; ++r)\n for (var a = o[r], s = a.length, l, u = 0; u < s; ++u)\n if (l = a[u]) {\n var c = Se(l, t);\n bn(l, e, n, u, a, {\n time: c.time + c.delay + c.duration,\n delay: 0,\n duration: c.duration,\n ease: c.ease\n });\n }\n return new Be(o, this._parents, e, n);\n}\nfunction Gc() {\n var e, t, n = this, o = n._id, i = n.size();\n return new Promise(function(r, a) {\n var s = { value: a }, l = { value: function() {\n --i === 0 && r();\n } };\n n.each(function() {\n var u = ke(this, o), c = u.on;\n c !== e && (t = (e = c).copy(), t._.cancel.push(s), t._.interrupt.push(s), t._.end.push(l)), u.on = t;\n }), i === 0 && r();\n });\n}\nvar Fc = 0;\nfunction Be(e, t, n, o) {\n this._groups = e, this._parents = t, this._name = n, this._id = o;\n}\nfunction xr() {\n return ++Fc;\n}\nvar Oe = $t.prototype;\nBe.prototype = {\n constructor: Be,\n select: Ec,\n selectAll: Sc,\n selectChild: Oe.selectChild,\n selectChildren: Oe.selectChildren,\n filter: mc,\n merge: pc,\n selection: Cc,\n transition: Lc,\n call: Oe.call,\n nodes: Oe.nodes,\n node: Oe.node,\n size: Oe.size,\n empty: Oe.empty,\n each: Oe.each,\n on: _c,\n attr: ec,\n attrTween: rc,\n style: Tc,\n styleTween: Dc,\n text: Bc,\n textTween: Hc,\n remove: bc,\n tween: Uu,\n delay: lc,\n duration: dc,\n ease: hc,\n easeVarying: vc,\n end: Gc,\n [Symbol.iterator]: Oe[Symbol.iterator]\n};\nfunction Yc(e) {\n return ((e *= 2) <= 1 ? e * e * e : (e -= 2) * e * e + 2) / 2;\n}\nvar Xc = {\n time: null,\n // Set on use.\n delay: 0,\n duration: 250,\n ease: Yc\n};\nfunction Zc(e, t) {\n for (var n; !(n = e.__transition) || !(n = n[t]); )\n if (!(e = e.parentNode))\n throw new Error(`transition ${t} not found`);\n return n;\n}\nfunction Uc(e) {\n var t, n;\n e instanceof Be ? (t = e._id, e = e._name) : (t = xr(), (n = Xc).time = xo(), e = e == null ? null : e + \"\");\n for (var o = this._groups, i = o.length, r = 0; r < i; ++r)\n for (var a = o[r], s = a.length, l, u = 0; u < s; ++u)\n (l = a[u]) && bn(l, e, t, u, a, n || Zc(l, t));\n return new Be(o, this._parents, e, t);\n}\n$t.prototype.interrupt = Yu;\n$t.prototype.transition = Uc;\nconst Rt = (e) => () => e;\nfunction Wc(e, {\n sourceEvent: t,\n target: n,\n transform: o,\n dispatch: i\n}) {\n Object.defineProperties(this, {\n type: { value: e, enumerable: !0, configurable: !0 },\n sourceEvent: { value: t, enumerable: !0, configurable: !0 },\n target: { value: n, enumerable: !0, configurable: !0 },\n transform: { value: o, enumerable: !0, configurable: !0 },\n _: { value: i }\n });\n}\nfunction De(e, t, n) {\n this.k = e, this.x = t, this.y = n;\n}\nDe.prototype = {\n constructor: De,\n scale: function(e) {\n return e === 1 ? this : new De(this.k * e, this.x, this.y);\n },\n translate: function(e, t) {\n return e === 0 & t === 0 ? this : new De(this.k, this.x + this.k * e, this.y + this.k * t);\n },\n apply: function(e) {\n return [e[0] * this.k + this.x, e[1] * this.k + this.y];\n },\n applyX: function(e) {\n return e * this.k + this.x;\n },\n applyY: function(e) {\n return e * this.k + this.y;\n },\n invert: function(e) {\n return [(e[0] - this.x) / this.k, (e[1] - this.y) / this.k];\n },\n invertX: function(e) {\n return (e - this.x) / this.k;\n },\n invertY: function(e) {\n return (e - this.y) / this.k;\n },\n rescaleX: function(e) {\n return e.copy().domain(e.range().map(this.invertX, this).map(e.invert, e));\n },\n rescaleY: function(e) {\n return e.copy().domain(e.range().map(this.invertY, this).map(e.invert, e));\n },\n toString: function() {\n return \"translate(\" + this.x + \",\" + this.y + \") scale(\" + this.k + \")\";\n }\n};\nvar et = new De(1, 0, 0);\nDe.prototype;\nfunction Tn(e) {\n e.stopImmediatePropagation();\n}\nfunction vt(e) {\n e.preventDefault(), e.stopImmediatePropagation();\n}\nfunction Kc(e) {\n return (!e.ctrlKey || e.type === \"wheel\") && !e.button;\n}\nfunction qc() {\n var e = this;\n 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]];\n}\nfunction ci() {\n return this.__zoom || et;\n}\nfunction jc(e) {\n return -e.deltaY * (e.deltaMode === 1 ? 0.05 : e.deltaMode ? 1 : 2e-3) * (e.ctrlKey ? 10 : 1);\n}\nfunction Qc() {\n return navigator.maxTouchPoints || \"ontouchstart\" in this;\n}\nfunction Jc(e, t, n) {\n var o = e.invertX(t[0][0]) - n[0][0], i = e.invertX(t[1][0]) - n[1][0], r = e.invertY(t[0][1]) - n[0][1], a = e.invertY(t[1][1]) - n[1][1];\n return e.translate(\n i > o ? (o + i) / 2 : Math.min(0, o) || Math.max(0, i),\n a > r ? (r + a) / 2 : Math.min(0, r) || Math.max(0, a)\n );\n}\nfunction ed() {\n var e = Kc, t = qc, n = Jc, o = jc, i = Qc, r = [0, 1 / 0], a = [[-1 / 0, -1 / 0], [1 / 0, 1 / 0]], s = 250, l = Au, u = fn(\"start\", \"zoom\", \"end\"), c, v, g, x = 500, h = 150, d = 0, w = 10;\n function y(m) {\n m.property(\"__zoom\", ci).on(\"wheel.zoom\", P, { passive: !1 }).on(\"mousedown.zoom\", R).on(\"dblclick.zoom\", $).filter(i).on(\"touchstart.zoom\", D).on(\"touchmove.zoom\", Q).on(\"touchend.zoom touchcancel.zoom\", ee).style(\"-webkit-tap-highlight-color\", \"rgba(0,0,0,0)\");\n }\n y.transform = function(m, A, E, G) {\n var Z = m.selection ? m.selection() : m;\n Z.property(\"__zoom\", ci), m !== Z ? N(m, A, E, G) : Z.interrupt().each(function() {\n T(this, arguments).event(G).start().zoom(null, typeof A == \"function\" ? A.apply(this, arguments) : A).end();\n });\n }, y.scaleBy = function(m, A, E, G) {\n y.scaleTo(m, function() {\n var Z = this.__zoom.k, K = typeof A == \"function\" ? A.apply(this, arguments) : A;\n return Z * K;\n }, E, G);\n }, y.scaleTo = function(m, A, E, G) {\n y.transform(m, function() {\n var Z = t.apply(this, arguments), K = this.__zoom, z = E == null ? p(Z) : typeof E == \"function\" ? E.apply(this, arguments) : E, W = K.invert(z), B = typeof A == \"function\" ? A.apply(this, arguments) : A;\n return n(V(S(K, B), z, W), Z, a);\n }, E, G);\n }, y.translateBy = function(m, A, E, G) {\n y.transform(m, function() {\n return n(this.__zoom.translate(\n typeof A == \"function\" ? A.apply(this, arguments) : A,\n typeof E == \"function\" ? E.apply(this, arguments) : E\n ), t.apply(this, arguments), a);\n }, null, G);\n }, y.translateTo = function(m, A, E, G, Z) {\n y.transform(m, function() {\n var K = t.apply(this, arguments), z = this.__zoom, W = G == null ? p(K) : typeof G == \"function\" ? G.apply(this, arguments) : G;\n return n(et.translate(W[0], W[1]).scale(z.k).translate(\n typeof A == \"function\" ? -A.apply(this, arguments) : -A,\n typeof E == \"function\" ? -E.apply(this, arguments) : -E\n ), K, a);\n }, G, Z);\n };\n function S(m, A) {\n return A = Math.max(r[0], Math.min(r[1], A)), A === m.k ? m : new De(A, m.x, m.y);\n }\n function V(m, A, E) {\n var G = A[0] - E[0] * m.k, Z = A[1] - E[1] * m.k;\n return G === m.x && Z === m.y ? m : new De(m.k, G, Z);\n }\n function p(m) {\n return [(+m[0][0] + +m[1][0]) / 2, (+m[0][1] + +m[1][1]) / 2];\n }\n function N(m, A, E, G) {\n m.on(\"start.zoom\", function() {\n T(this, arguments).event(G).start();\n }).on(\"interrupt.zoom end.zoom\", function() {\n T(this, arguments).event(G).end();\n }).tween(\"zoom\", function() {\n var Z = this, K = arguments, z = T(Z, K).event(G), W = t.apply(Z, K), B = E == null ? p(W) : typeof E == \"function\" ? E.apply(Z, K) : E, q = Math.max(W[1][0] - W[0][0], W[1][1] - W[0][1]), te = Z.__zoom, re = typeof A == \"function\" ? A.apply(Z, K) : A, k = l(te.invert(B).concat(q / te.k), re.invert(B).concat(q / re.k));\n return function(H) {\n if (H === 1)\n H = re;\n else {\n var f = k(H), b = q / f[2];\n H = new De(b, B[0] - f[0] * b, B[1] - f[1] * b);\n }\n z.zoom(null, H);\n };\n });\n }\n function T(m, A, E) {\n return !E && m.__zooming || new _(m, A);\n }\n function _(m, A) {\n this.that = m, this.args = A, this.active = 0, this.sourceEvent = null, this.extent = t.apply(m, A), this.taps = 0;\n }\n _.prototype = {\n event: function(m) {\n return m && (this.sourceEvent = m), this;\n },\n start: function() {\n return ++this.active === 1 && (this.that.__zooming = this, this.emit(\"start\")), this;\n },\n zoom: function(m, A) {\n return this.mouse && m !== \"mouse\" && (this.mouse[1] = A.invert(this.mouse[0])), this.touch0 && m !== \"touch\" && (this.touch0[1] = A.invert(this.touch0[0])), this.touch1 && m !== \"touch\" && (this.touch1[1] = A.invert(this.touch1[0])), this.that.__zoom = A, this.emit(\"zoom\"), this;\n },\n end: function() {\n return --this.active === 0 && (delete this.that.__zooming, this.emit(\"end\")), this;\n },\n emit: function(m) {\n var A = we(this.that).datum();\n u.call(\n m,\n this.that,\n new Wc(m, {\n sourceEvent: this.sourceEvent,\n target: y,\n type: m,\n transform: this.that.__zoom,\n dispatch: u\n }),\n A\n );\n }\n };\n function P(m, ...A) {\n if (!e.apply(this, arguments))\n return;\n var E = T(this, A).event(m), G = this.__zoom, Z = Math.max(r[0], Math.min(r[1], G.k * Math.pow(2, o.apply(this, arguments)))), K = Ne(m);\n if (E.wheel)\n (E.mouse[0][0] !== K[0] || E.mouse[0][1] !== K[1]) && (E.mouse[1] = G.invert(E.mouse[0] = K)), clearTimeout(E.wheel);\n else {\n if (G.k === Z)\n return;\n E.mouse = [K, G.invert(K)], Ft(this), E.start();\n }\n vt(m), E.wheel = setTimeout(z, h), E.zoom(\"mouse\", n(V(S(G, Z), E.mouse[0], E.mouse[1]), E.extent, a));\n function z() {\n E.wheel = null, E.end();\n }\n }\n function R(m, ...A) {\n if (g || !e.apply(this, arguments))\n return;\n var E = m.currentTarget, G = T(this, A, !0).event(m), Z = we(m.view).on(\"mousemove.zoom\", B, !0).on(\"mouseup.zoom\", q, !0), K = Ne(m, E), z = m.clientX, W = m.clientY;\n Ki(m.view), Tn(m), G.mouse = [K, this.__zoom.invert(K)], Ft(this), G.start();\n function B(te) {\n if (vt(te), !G.moved) {\n var re = te.clientX - z, k = te.clientY - W;\n G.moved = re * re + k * k > d;\n }\n G.event(te).zoom(\"mouse\", n(V(G.that.__zoom, G.mouse[0] = Ne(te, E), G.mouse[1]), G.extent, a));\n }\n function q(te) {\n Z.on(\"mousemove.zoom mouseup.zoom\", null), qi(te.view, G.moved), vt(te), G.event(te).end();\n }\n }\n function $(m, ...A) {\n if (e.apply(this, arguments)) {\n var E = this.__zoom, G = Ne(m.changedTouches ? m.changedTouches[0] : m, this), Z = E.invert(G), K = E.k * (m.shiftKey ? 0.5 : 2), z = n(V(S(E, K), G, Z), t.apply(this, A), a);\n vt(m), s > 0 ? we(this).transition().duration(s).call(N, z, G, m) : we(this).call(y.transform, z, G, m);\n }\n }\n function D(m, ...A) {\n if (e.apply(this, arguments)) {\n var E = m.touches, G = E.length, Z = T(this, A, m.changedTouches.length === G).event(m), K, z, W, B;\n for (Tn(m), z = 0; z < G; ++z)\n W = E[z], B = Ne(W, this), B = [B, this.__zoom.invert(B), W.identifier], Z.touch0 ? !Z.touch1 && Z.touch0[2] !== B[2] && (Z.touch1 = B, Z.taps = 0) : (Z.touch0 = B, K = !0, Z.taps = 1 + !!c);\n c && (c = clearTimeout(c)), K && (Z.taps < 2 && (v = B[0], c = setTimeout(function() {\n c = null;\n }, x)), Ft(this), Z.start());\n }\n }\n function Q(m, ...A) {\n if (this.__zooming) {\n var E = T(this, A).event(m), G = m.changedTouches, Z = G.length, K, z, W, B;\n for (vt(m), K = 0; K < Z; ++K)\n z = G[K], W = Ne(z, this), E.touch0 && E.touch0[2] === z.identifier ? E.touch0[0] = W : E.touch1 && E.touch1[2] === z.identifier && (E.touch1[0] = W);\n if (z = E.that.__zoom, E.touch1) {\n var q = E.touch0[0], te = E.touch0[1], re = E.touch1[0], k = E.touch1[1], H = (H = re[0] - q[0]) * H + (H = re[1] - q[1]) * H, f = (f = k[0] - te[0]) * f + (f = k[1] - te[1]) * f;\n z = S(z, Math.sqrt(H / f)), W = [(q[0] + re[0]) / 2, (q[1] + re[1]) / 2], B = [(te[0] + k[0]) / 2, (te[1] + k[1]) / 2];\n } else if (E.touch0)\n W = E.touch0[0], B = E.touch0[1];\n else\n return;\n E.zoom(\"touch\", n(V(z, W, B), E.extent, a));\n }\n }\n function ee(m, ...A) {\n if (this.__zooming) {\n var E = T(this, A).event(m), G = m.changedTouches, Z = G.length, K, z;\n for (Tn(m), g && clearTimeout(g), g = setTimeout(function() {\n g = null;\n }, x), K = 0; K < Z; ++K)\n z = G[K], E.touch0 && E.touch0[2] === z.identifier ? delete E.touch0 : E.touch1 && E.touch1[2] === z.identifier && delete E.touch1;\n if (E.touch1 && !E.touch0 && (E.touch0 = E.touch1, delete E.touch1), E.touch0)\n E.touch0[1] = this.__zoom.invert(E.touch0[0]);\n else if (E.end(), E.taps === 2 && (z = Ne(z, this), Math.hypot(v[0] - z[0], v[1] - z[1]) < w)) {\n var W = we(this).on(\"dblclick.zoom\");\n W && W.apply(this, arguments);\n }\n }\n }\n return y.wheelDelta = function(m) {\n return arguments.length ? (o = typeof m == \"function\" ? m : Rt(+m), y) : o;\n }, y.filter = function(m) {\n return arguments.length ? (e = typeof m == \"function\" ? m : Rt(!!m), y) : e;\n }, y.touchable = function(m) {\n return arguments.length ? (i = typeof m == \"function\" ? m : Rt(!!m), y) : i;\n }, y.extent = function(m) {\n return arguments.length ? (t = typeof m == \"function\" ? m : Rt([[+m[0][0], +m[0][1]], [+m[1][0], +m[1][1]]]), y) : t;\n }, y.scaleExtent = function(m) {\n return arguments.length ? (r[0] = +m[0], r[1] = +m[1], y) : [r[0], r[1]];\n }, y.translateExtent = function(m) {\n return arguments.length ? (a[0][0] = +m[0][0], a[1][0] = +m[1][0], a[0][1] = +m[0][1], a[1][1] = +m[1][1], y) : [[a[0][0], a[0][1]], [a[1][0], a[1][1]]];\n }, y.constrain = function(m) {\n return arguments.length ? (n = m, y) : n;\n }, y.duration = function(m) {\n return arguments.length ? (s = +m, y) : s;\n }, y.interpolate = function(m) {\n return arguments.length ? (l = m, y) : l;\n }, y.on = function() {\n var m = u.on.apply(u, arguments);\n return m === u ? y : m;\n }, y.clickDistance = function(m) {\n return arguments.length ? (d = (m = +m) * m, y) : Math.sqrt(d);\n }, y.tapDistance = function(m) {\n return arguments.length ? (w = +m, y) : w;\n }, y;\n}\nconst In = 0.1;\nfunction Ge() {\n}\nconst td = {\n zoomIn: Ge,\n zoomOut: Ge,\n zoomTo: Ge,\n fitView: Ge,\n setCenter: Ge,\n fitBounds: Ge,\n project: (e) => e,\n setTransform: Ge,\n getTransform: () => ({ x: 0, y: 0, zoom: 1 }),\n initialized: !1\n}, nd = (e, t) => {\n const n = e, o = M(n, \"nodes\"), i = M(n, \"d3Zoom\"), r = M(n, \"d3Selection\"), a = M(n, \"dimensions\"), s = M(n, \"translateExtent\"), l = M(n, \"minZoom\"), u = M(n, \"maxZoom\"), c = M(n, \"viewport\"), v = M(n, \"snapToGrid\"), g = M(n, \"snapGrid\"), x = M(n, \"hooks\"), h = t, d = M(h, \"getNodes\"), w = ie(!1);\n x.value.nodesInitialized.on(() => {\n w.value = !0;\n });\n const y = J(() => !!i.value && !!r.value && !!a.value.width && !!a.value.height && w.value);\n function S(p, N) {\n r.value && i.value && i.value.scaleBy(Pn(r.value, N), p);\n }\n function V(p, N, T, _) {\n const { x: P, y: R } = so({ x: -p, y: -N }, s.value), $ = et.translate(-P, -R).scale(T);\n r.value && i.value && i.value.transform(Pn(r.value, _), $);\n }\n return J(() => y.value ? {\n initialized: !0,\n zoomIn: (p) => {\n S(1.2, p == null ? void 0 : p.duration);\n },\n zoomOut: (p) => {\n S(1 / 1.2, p == null ? void 0 : p.duration);\n },\n zoomTo: (p, N) => {\n r.value && i.value && i.value.scaleTo(Pn(r.value, N == null ? void 0 : N.duration), p);\n },\n setTransform: (p, N) => {\n V(p.x, p.y, p.zoom, N == null ? void 0 : N.duration);\n },\n getTransform: () => ({\n x: c.value.x,\n y: c.value.y,\n zoom: c.value.zoom\n }),\n fitView: (p = {\n padding: In,\n includeHiddenNodes: !1,\n duration: 0\n }) => {\n if (!o.value.length)\n return;\n const N = (p.includeHiddenNodes ? o.value : d.value).filter(($) => {\n var ee;\n const D = $.initialized && $.dimensions.width && $.dimensions.height;\n let Q = !0;\n return (ee = p.nodes) != null && ee.length && (Q = p.nodes.includes($.id)), D && Q;\n }), T = co(N), { x: _, y: P, zoom: R } = Zt(\n T,\n a.value.width,\n a.value.height,\n p.minZoom ?? l.value,\n p.maxZoom ?? u.value,\n p.padding ?? In,\n p.offset\n );\n V(_, P, R, p == null ? void 0 : p.duration);\n },\n setCenter: (p, N, T) => {\n const _ = typeof (T == null ? void 0 : T.zoom) < \"u\" ? T.zoom : u.value, P = a.value.width / 2 - p * _, R = a.value.height / 2 - N * _;\n V(P, R, _, T == null ? void 0 : T.duration);\n },\n fitBounds: (p, N = { padding: In }) => {\n const { x: T, y: _, zoom: P } = Zt(\n p,\n a.value.width,\n a.value.height,\n l.value,\n u.value,\n N.padding\n );\n V(T, _, P, N == null ? void 0 : N.duration);\n },\n project: (p) => uo(p, c.value, v.value, g.value)\n } : td);\n};\nfunction Pn(e, t = 0) {\n return e.transition().duration(t);\n}\nfunction Dn(e, t) {\n if (t) {\n const n = e.position.x + e.dimensions.width - t.dimensions.width, o = e.position.y + e.dimensions.height - t.dimensions.height;\n if (n > 0 || o > 0 || e.position.x < 0 || e.position.y < 0) {\n let i = {};\n if (Ae(t.style) ? i = { ...t.style(t) } : t.style && (i = { ...t.style }), i.width = i.width ?? `${t.dimensions.width}px`, i.height = i.height ?? `${t.dimensions.height}px`, n > 0)\n if (Pe(i.width)) {\n const r = Number(i.width.replace(\"px\", \"\"));\n i.width = `${r + n}px`;\n } else\n i.width += n;\n if (o > 0)\n if (Pe(i.height)) {\n const r = Number(i.height.replace(\"px\", \"\"));\n i.height = `${r + o}px`;\n } else\n i.height += o;\n if (e.position.x < 0) {\n const r = Math.abs(e.position.x);\n if (t.position.x = t.position.x - r, Pe(i.width)) {\n const a = Number(i.width.replace(\"px\", \"\"));\n i.width = `${a + r}px`;\n } else\n i.width += r;\n e.position.x = 0;\n }\n if (e.position.y < 0) {\n const r = Math.abs(e.position.y);\n if (t.position.y = t.position.y - r, Pe(i.height)) {\n const a = Number(i.height.replace(\"px\", \"\"));\n i.height = `${a + r}px`;\n } else\n i.height += r;\n e.position.y = 0;\n }\n t.dimensions.width = Number(i.width.toString().replace(\"px\", \"\")), t.dimensions.height = Number(i.height.toString().replace(\"px\", \"\")), Ae(t.style) ? t.style = (r) => {\n const a = t.style;\n return {\n ...a(r),\n ...i\n };\n } : t.style = {\n ...t.style,\n ...i\n };\n }\n }\n}\nfunction nn(e, t) {\n e.filter((i) => i.type === \"add\" || i.type === \"remove\").forEach((i) => {\n if (i.type === \"add\")\n t.findIndex((a) => a.id === i.item.id) === -1 && t.push(i.item);\n else if (i.type === \"remove\") {\n const r = t.findIndex((a) => a.id === i.id);\n r !== -1 && t.splice(r, 1);\n }\n });\n const o = t.map((i) => i.id);\n return t.forEach((i) => {\n var a, s;\n const r = e.filter((l) => l.id === i.id);\n for (const l of r)\n switch (l.type) {\n case \"select\":\n i.selected = l.selected;\n break;\n case \"position\":\n if (nt(i) && (typeof l.position < \"u\" && (i.position = l.position), typeof l.dragging < \"u\" && (i.dragging = l.dragging), i.expandParent && i.parentNode)) {\n const u = t[o.indexOf(i.parentNode)];\n u && nt(u) && Dn(i, u);\n }\n break;\n case \"dimensions\":\n if (nt(i)) {\n if (typeof l.dimensions < \"u\" && (i.dimensions = l.dimensions), typeof l.updateStyle < \"u\" && (i.style = {\n ...i.style || {},\n width: `${(a = l.dimensions) == null ? void 0 : a.width}px`,\n height: `${(s = l.dimensions) == null ? void 0 : s.height}px`\n }), typeof l.resizing < \"u\" && (i.resizing = l.resizing), i.expandParent && i.parentNode) {\n const u = t[o.indexOf(i.parentNode)];\n u && nt(u) && (u.initialized ? Dn(i, u) : Ue(() => {\n Dn(i, u);\n }));\n }\n i.initialized || (i.initialized = !0);\n }\n break;\n }\n }), t;\n}\nfunction Vd(e, t) {\n return nn(e, t);\n}\nfunction Hd(e, t) {\n return nn(e, t);\n}\nfunction Te(e, t) {\n return {\n id: e,\n type: \"select\",\n selected: t\n };\n}\nfunction di(e) {\n return {\n item: e,\n type: \"add\"\n };\n}\nfunction zn(e) {\n return {\n id: e,\n type: \"remove\"\n };\n}\nfunction An(e, t) {\n return e.reduce(\n (n, o) => {\n let i = t.includes(o.id);\n ce(o.selectable) && !o.selectable && (i = !1);\n const r = nt(o) ? \"changedNodes\" : \"changedEdges\";\n return !o.selected && i ? n[r].push(Te(o.id, !0)) : o.selected && !i && n[r].push(Te(o.id, !1)), n;\n },\n { changedNodes: [], changedEdges: [] }\n );\n}\nfunction od(e, t, n, o) {\n let i = !1;\n const r = nd(e, t), a = (f) => {\n const b = f ?? n.value ?? [];\n e.hooks.updateNodeInternals.trigger(b);\n }, s = (f) => {\n if (f)\n return e.nodes && !n.value.length ? e.nodes.find((b) => b.id === f) : e.nodes[n.value.indexOf(f)];\n }, l = (f) => {\n if (f)\n return e.edges && !o.value.length ? e.edges.find((b) => b.id === f) : e.edges[o.value.indexOf(f)];\n }, u = (f, b, L) => {\n const I = [];\n f.forEach((F) => {\n var Y, ne;\n const U = {\n id: F.id,\n type: \"position\",\n dragging: L,\n from: F.from\n };\n if (b && (U.position = F.position, F.parentNode)) {\n const O = s(F.parentNode);\n U.position = {\n x: U.position.x - (((Y = O == null ? void 0 : O.computedPosition) == null ? void 0 : Y.x) ?? 0),\n y: U.position.y - (((ne = O == null ? void 0 : O.computedPosition) == null ? void 0 : ne.y) ?? 0)\n };\n }\n I.push(U);\n }), I != null && I.length && e.hooks.nodesChange.trigger(I);\n }, c = (f) => {\n var F;\n if (!e.vueFlowRef)\n return;\n const b = e.vueFlowRef.querySelector(\".vue-flow__transformationpane\");\n if (!b)\n return;\n let L;\n if ((F = e.__experimentalFeatures) != null && F.nestedFlow) {\n let U = [b], Y = b, ne;\n for (; !ne && Y; )\n Y = Y.parentElement, ne = Y == null ? void 0 : Y.classList.contains(\"vue-flow__transformationpane\"), ne && (U = [Y, ...U]);\n U.forEach((O) => {\n const ae = window.getComputedStyle(O), { m22: me } = new window.DOMMatrixReadOnly(ae.transform);\n L ? L *= me : L = me;\n });\n } else {\n const U = window.getComputedStyle(b), { m22: Y } = new window.DOMMatrixReadOnly(U.transform);\n L = Y;\n }\n const I = f.reduce((U, Y) => {\n const ne = s(Y.id);\n if (ne) {\n const O = rn(Y.nodeElement);\n !!(O.width && O.height && (ne.dimensions.width !== O.width || ne.dimensions.height !== O.height || Y.forceUpdate)) && (ne.handleBounds.source = Lo(\".source\", Y.nodeElement, L), ne.handleBounds.target = Lo(\".target\", Y.nodeElement, L), ne.dimensions = O, ne.initialized = !0, U.push({\n id: ne.id,\n type: \"dimensions\",\n dimensions: O\n }));\n }\n return U;\n }, []);\n e.fitViewOnInit && !i && (ye(() => r.value.initialized).toBe(!0).then(() => {\n r.value.fitView();\n }), i = !0), I.length && e.hooks.nodesChange.trigger(I);\n }, v = (f, b) => {\n const L = f.map((U) => U.id);\n let I, F = [];\n if (e.multiSelectionActive)\n I = L.map((U) => Te(U, b));\n else {\n const U = An([...e.nodes, ...e.edges], L);\n I = U.changedNodes, F = U.changedEdges;\n }\n I.length && e.hooks.nodesChange.trigger(I), F.length && e.hooks.edgesChange.trigger(F);\n }, g = (f, b) => {\n const L = f.map((U) => U.id);\n let I = [], F;\n if (e.multiSelectionActive)\n F = L.map((U) => Te(U, b));\n else {\n const U = An([...e.nodes, ...e.edges], L);\n I = U.changedNodes, F = U.changedEdges;\n }\n I.length && e.hooks.nodesChange.trigger(I), F.length && e.hooks.edgesChange.trigger(F);\n }, x = (f, b) => {\n const L = f.filter(xt).map((Y) => Y.id), I = f.filter($e).map((Y) => Y.id);\n let { changedNodes: F, changedEdges: U } = An([...e.nodes, ...e.edges], [...L, ...I]);\n e.multiSelectionActive && (F = L.map((Y) => Te(Y, b)), U = I.map((Y) => Te(Y, b))), F.length && e.hooks.nodesChange.trigger(F), U.length && e.hooks.edgesChange.trigger(U);\n }, h = (f) => {\n v(f, !0);\n }, d = (f) => {\n g(f, !0);\n }, w = (f) => {\n x(f, !0);\n }, y = (f) => {\n if (!f.length)\n return v(f, !1);\n const L = f.map((I) => I.id).map((I) => Te(I, !1));\n L.length && e.hooks.nodesChange.trigger(L);\n }, S = (f) => {\n if (!f.length)\n return g(f, !1);\n const L = f.map((I) => I.id).map((I) => Te(I, !1));\n L.length && e.hooks.edgesChange.trigger(L);\n }, V = (f) => {\n if (!f || !f.length)\n return x([], !1);\n const { changedNodes: b, changedEdges: L } = f.reduce(\n (I, F) => {\n const U = Te(F.id, !1);\n return xt(F) ? I.changedNodes.push(U) : I.changedEdges.push(U), I;\n },\n { changedNodes: [], changedEdges: [] }\n );\n b.length && e.hooks.nodesChange.trigger(b), L.length && e.hooks.edgesChange.trigger(L);\n }, p = (f) => {\n var b;\n (b = e.d3Zoom) == null || b.scaleExtent([f, e.maxZoom]), e.minZoom = f;\n }, N = (f) => {\n var b;\n (b = e.d3Zoom) == null || b.scaleExtent([e.minZoom, f]), e.maxZoom = f;\n }, T = (f) => {\n var b;\n (b = e.d3Zoom) == null || b.translateExtent(f), e.translateExtent = f;\n }, _ = (f) => {\n e.nodeExtent = f, a(n.value);\n }, P = (f) => {\n e.nodesDraggable = f, e.nodesConnectable = f, e.elementsSelectable = f;\n }, R = (f) => {\n const b = f instanceof Function ? f(e.nodes) : f;\n !e.initialized && !b.length || (e.nodes = Do(b, e.nodes, s, e.hooks.error.trigger));\n }, $ = (f) => {\n const b = f instanceof Function ? f(e.edges) : f;\n if (!e.initialized && !b.length)\n return;\n const L = e.isValidConnection ? b.filter(\n (I) => e.isValidConnection(I, {\n edges: e.edges,\n sourceNode: s(I.source),\n targetNode: s(I.target)\n })\n ) : b;\n e.edges = L.reduce((I, F) => {\n const U = s(F.source), Y = s(F.target), ne = !U || typeof U > \"u\", O = !Y || typeof Y > \"u\";\n if (ne && O ? e.hooks.error.trigger(new ve(he.EDGE_SOURCE_TARGET_MISSING, F.id, F.source, F.target)) : (ne && e.hooks.error.trigger(new ve(he.EDGE_SOURCE_MISSING, F.id, F.source)), O && e.hooks.error.trigger(new ve(he.EDGE_TARGET_MISSING, F.id, F.target))), ne || O)\n return I;\n const ae = l(F.id);\n return I.push({\n ...lo(F, Object.assign({}, ae, e.defaultEdgeOptions)),\n sourceNode: U,\n targetNode: Y\n }), I;\n }, []);\n }, D = (f) => {\n const b = f instanceof Function ? f([...e.nodes, ...e.edges]) : f;\n !e.initialized && !b.length || (R(b.filter(xt)), $(b.filter($e)));\n }, Q = (f) => {\n const b = f instanceof Function ? f(e.nodes) : f, I = Do(b, e.nodes, s, e.hooks.error.trigger).map(di);\n I.length && e.hooks.nodesChange.trigger(I);\n }, ee = (f) => {\n const b = f instanceof Function ? f(e.edges) : f, I = (e.isValidConnection ? b.filter(\n (F) => e.isValidConnection(F, {\n edges: e.edges,\n sourceNode: s(F.source),\n targetNode: s(F.target)\n })\n ) : b).reduce((F, U) => {\n const Y = pa(\n {\n ...U,\n ...e.defaultEdgeOptions\n },\n e.edges,\n e.hooks.error.trigger\n );\n if (Y) {\n const ne = s(Y.source), O = s(Y.target), ae = !ne || typeof ne > \"u\", me = !O || typeof O > \"u\";\n if (ae && me ? e.hooks.error.trigger(new ve(he.EDGE_SOURCE_TARGET_MISSING, Y.id, Y.source, Y.target)) : (ae && e.hooks.error.trigger(new ve(he.EDGE_SOURCE_MISSING, Y.id, Y.source)), me && e.hooks.error.trigger(new ve(he.EDGE_TARGET_MISSING, Y.id, Y.target))), ae || me)\n return F;\n F.push(\n di({\n ...Y,\n sourceNode: ne,\n targetNode: O\n })\n );\n }\n return F;\n }, []);\n I.length && e.hooks.edgesChange.trigger(I);\n }, m = (f, b = !0) => {\n const L = f instanceof Function ? f(e.nodes) : f, I = [], F = [];\n L.forEach((U) => {\n const Y = typeof U == \"string\" ? s(U) : U;\n if (!(ce(Y.deletable) && !Y.deletable) && (I.push(zn(Y.id)), b)) {\n const ne = sn([Y], e.edges).filter((O) => ce(O.deletable) ? O.deletable : !0);\n F.push(...ne.map((O) => zn(O.id)));\n }\n }), F.length && e.hooks.edgesChange.trigger(F), I.length && e.hooks.nodesChange.trigger(I);\n }, A = (f) => {\n const b = f instanceof Function ? f(e.edges) : f, L = [];\n b.forEach((I) => {\n const F = typeof I == \"string\" ? l(I) : I;\n ce(F.deletable) && !F.deletable || L.push(zn(typeof I == \"string\" ? I : I.id));\n }), e.hooks.edgesChange.trigger(L);\n }, E = (f, b, L = !0) => ya(f, b, e.edges, l, L, e.hooks.error.trigger), G = (f) => nn(f, e.nodes), Z = (f) => nn(f, e.edges), K = (f, b, L, I = !1) => {\n I ? e.connectionClickStartHandle = f : e.connectionStartHandle = f, e.connectionEndHandle = null, e.connectionStatus = null, b && (e.connectionPosition = b);\n }, z = (f, b = null, L = null) => {\n e.connectionStartHandle && (e.connectionPosition = f, e.connectionEndHandle = b, e.connectionStatus = L);\n }, W = (f, b) => {\n e.connectionPosition = { x: NaN, y: NaN }, e.connectionStatus = null, b ? e.connectionClickStartHandle = null : e.connectionStartHandle = null;\n }, B = (f) => {\n const b = ha(f), L = b ? null : s(f.id);\n return !b && !L ? [null, null, b] : [b ? f : Io(L), L, b];\n }, q = (f, b = !0, L) => {\n const [I, F, U] = B(f);\n return I ? (L || e.nodes).filter((Y) => {\n if (!U && (Y.id === F.id || !Y.computedPosition))\n return !1;\n const ne = Io(Y), O = Fn(ne, I);\n return b && O > 0 || O >= Number(f.width) * Number(f.height);\n }) : [];\n }, te = (f, b, L = !0) => {\n const [I] = B(f);\n if (!I)\n return !1;\n const F = Fn(I, b);\n return L && F > 0 || F >= Number(f.width) * Number(f.height);\n }, re = (f) => {\n const { viewport: b, dimensions: L, d3Zoom: I, d3Selection: F, translateExtent: U } = e;\n if (!I || !F || !f.x && !f.y)\n return !1;\n const Y = et.translate(b.x + f.x, b.y + f.y).scale(b.zoom), ne = [\n [0, 0],\n [L.width, L.height]\n ], O = I.constrain()(Y, ne, U), ae = e.viewport.x !== O.x || e.viewport.y !== O.y || e.viewport.zoom !== O.k;\n return I.transform(F, O), ae;\n }, k = (f) => {\n const b = f instanceof Function ? f(e) : f, L = [\n \"modelValue\",\n \"nodes\",\n \"edges\",\n \"maxZoom\",\n \"minZoom\",\n \"translateExtent\",\n \"nodeExtent\",\n \"hooks\",\n \"defaultEdgeOptions\"\n ], I = [\n \"d3Zoom\",\n \"d3Selection\",\n \"d3ZoomHandler\",\n \"viewportRef\",\n \"vueFlowRef\",\n \"dimensions\",\n \"hooks\"\n ];\n ce(b.defaultEdgeOptions) && (e.defaultEdgeOptions = b.defaultEdgeOptions);\n const F = b.modelValue || b.nodes || b.edges ? [] : void 0;\n F && (b.modelValue && F.push(...b.modelValue), b.nodes && F.push(...b.nodes), b.edges && F.push(...b.edges), D(F));\n const U = () => {\n ce(b.maxZoom) && N(b.maxZoom), ce(b.minZoom) && p(b.minZoom), ce(b.translateExtent) && T(b.translateExtent), ce(b.nodeExtent) && _(b.nodeExtent);\n };\n Object.keys(b).forEach((Y) => {\n const ne = Y, O = b[ne];\n ![...L, ...I].includes(ne) && ce(O) && (e[ne] = O);\n }), e.d3Zoom ? U() : ye(() => e.d3Zoom).not.toBeUndefined().then(U), e.initialized || (e.initialized = !0);\n };\n return {\n updateNodePositions: u,\n updateNodeDimensions: c,\n setElements: D,\n setNodes: R,\n setEdges: $,\n addNodes: Q,\n addEdges: ee,\n removeNodes: m,\n removeEdges: A,\n findNode: s,\n findEdge: l,\n updateEdge: E,\n applyEdgeChanges: Z,\n applyNodeChanges: G,\n addSelectedElements: w,\n addSelectedNodes: h,\n addSelectedEdges: d,\n setMinZoom: p,\n setMaxZoom: N,\n setTranslateExtent: T,\n setNodeExtent: _,\n removeSelectedElements: V,\n removeSelectedNodes: y,\n removeSelectedEdges: S,\n startConnection: K,\n updateConnection: z,\n endConnection: W,\n setInteractive: P,\n setState: k,\n getIntersectingNodes: q,\n isNodeIntersecting: te,\n panBy: re,\n fitView: async (f = { padding: 0.1 }) => {\n await ye(() => r.value.initialized).toBe(!0), r.value.fitView(f);\n },\n zoomIn: async (f) => {\n await ye(() => r.value.initialized).toBe(!0), r.value.zoomIn(f);\n },\n zoomOut: async (f) => {\n await ye(() => r.value.initialized).toBe(!0), r.value.zoomOut(f);\n },\n zoomTo: async (f, b) => {\n await ye(() => r.value.initialized).toBe(!0), r.value.zoomTo(f, b);\n },\n setTransform: async (f, b) => {\n await ye(() => r.value.initialized).toBe(!0), r.value.setTransform(f, b);\n },\n getTransform: () => r.value.getTransform(),\n setCenter: async (f, b, L) => {\n await ye(() => r.value.initialized).toBe(!0), r.value.setCenter(f, b, L);\n },\n fitBounds: async (f, b) => {\n await ye(() => r.value.initialized).toBe(!0), r.value.fitBounds(f, b);\n },\n project: (f) => r.value.project(f),\n toObject: () => JSON.parse(\n JSON.stringify({\n nodes: e.nodes.map((f) => {\n const {\n computedPosition: b,\n handleBounds: L,\n selected: I,\n dimensions: F,\n isParent: U,\n resizing: Y,\n dragging: ne,\n initialized: O,\n ...ae\n } = f;\n return ae;\n }),\n edges: e.edges.map((f) => {\n const { selected: b, sourceNode: L, targetNode: I, ...F } = f;\n return F;\n }),\n position: [e.viewport.x, e.viewport.y],\n zoom: e.viewport.zoom\n })\n ),\n updateNodeInternals: a,\n $reset: () => {\n const f = ar();\n if (e.edges = [], e.nodes = [], e.d3Zoom && e.d3Selection) {\n const b = et.translate(f.defaultViewport.x ?? 0, f.defaultViewport.y ?? 0).scale(je(f.defaultViewport.zoom ?? 1, f.minZoom, f.maxZoom)), L = e.viewportRef.getBoundingClientRect(), I = [\n [0, 0],\n [L.width, L.height]\n ], F = e.d3Zoom.constrain()(b, I, f.translateExtent);\n e.d3Zoom.transform(e.d3Selection, F);\n }\n k(f);\n },\n $destroy: () => {\n }\n };\n}\nclass ot {\n constructor() {\n this.currentId = 0, this.flows = /* @__PURE__ */ new Map();\n }\n static getInstance() {\n return ot.instance || (ot.instance = new ot()), ot.instance;\n }\n set(t, n) {\n return this.flows.set(t, n);\n }\n get(t) {\n return this.flows.get(t);\n }\n remove(t) {\n return this.flows.delete(t);\n }\n create(t, n) {\n const o = ar(n), i = kr(o), r = J(() => i.nodes.map((g) => g.id)), a = J(() => i.edges.map((g) => g.id)), s = cu(i, r, a), l = od(i, s, r, a), u = {};\n Object.entries(i.hooks).forEach(([g, x]) => {\n const h = `on${g.charAt(0).toUpperCase() + g.slice(1)}`;\n u[h] = x.on;\n });\n const c = {};\n Object.entries(i.hooks).forEach(([g, x]) => {\n c[g] = x.trigger;\n }), l.setState(i);\n const v = {\n ...u,\n ...s,\n ...l,\n ...Or(i),\n emits: c,\n id: t,\n vueFlowVersion: \"1.19.4\",\n $destroy: () => {\n this.remove(t);\n }\n };\n return this.set(t, v), v;\n }\n getId() {\n return `vue-flow-${this.currentId++}`;\n }\n}\nconst fe = (e) => {\n const t = ot.getInstance(), n = hi(), o = e == null ? void 0 : e.id, i = (n == null ? void 0 : n.vueFlowId) || o;\n let r, a = !1;\n if (n) {\n const s = He(zo, null);\n typeof s < \"u\" && s !== null && (r = s);\n }\n if (r || i && (r = t.get(i)), !r || r && o && o !== r.id) {\n const s = o ?? t.getId();\n r = t.create(s, e), n && (a = !0);\n } else\n e && r.setState(e);\n return n && (ut(zo, r), n.vueFlowId = r.id, a && Mt(() => {\n if (r) {\n const s = t.get(r.id);\n s ? s.$destroy() : wt(`No store instance found for id ${r.id} in storage.`);\n }\n })), r;\n};\nfunction id(e, t, n) {\n const o = Tr();\n return o.run(() => {\n [\n () => {\n o.run(() => {\n let h, d, w = !!(n.nodes.value.length || n.edges.value.length);\n h = tt([e.modelValue, () => {\n var y, S;\n return (S = (y = e.modelValue) == null ? void 0 : y.value) == null ? void 0 : S.length;\n }], ([y]) => {\n y && Array.isArray(y) && (d == null || d.pause(), n.setElements(y), !d && !w && y.length ? w = !0 : d == null || d.resume());\n }), d = tt(\n [n.nodes, n.edges, () => n.edges.value.length, () => n.nodes.value.length],\n ([y, S]) => {\n var V;\n (V = e.modelValue) != null && V.value && Array.isArray(e.modelValue.value) && (h == null || h.pause(), e.modelValue.value = [...y, ...S], Ue(() => {\n h == null || h.resume();\n }));\n },\n { immediate: w }\n ), Vt(() => {\n h == null || h.stop(), d == null || d.stop();\n });\n });\n },\n () => {\n o.run(() => {\n let h, d, w = !!n.nodes.value.length;\n h = tt([e.nodes, () => {\n var y, S;\n return (S = (y = e.nodes) == null ? void 0 : y.value) == null ? void 0 : S.length;\n }], ([y]) => {\n y && Array.isArray(y) && (d == null || d.pause(), n.setNodes(y), !d && !w && y.length ? w = !0 : d == null || d.resume());\n }), d = tt(\n [n.nodes, () => n.nodes.value.length],\n ([y]) => {\n var S;\n (S = e.nodes) != null && S.value && Array.isArray(e.nodes.value) && (h == null || h.pause(), e.nodes.value = [...y], Ue(() => {\n h == null || h.resume();\n }));\n },\n { immediate: w }\n ), Vt(() => {\n h == null || h.stop(), d == null || d.stop();\n });\n });\n },\n () => {\n o.run(() => {\n let h, d, w = !!n.edges.value.length;\n h = tt([e.edges, () => {\n var y, S;\n return (S = (y = e.edges) == null ? void 0 : y.value) == null ? void 0 : S.length;\n }], ([y]) => {\n y && Array.isArray(y) && (d == null || d.pause(), n.setEdges(y), !d && !w && y.length ? w = !0 : d == null || d.resume());\n }), d = tt(\n [n.edges, () => n.edges.value.length],\n ([y]) => {\n var S;\n (S = e.edges) != null && S.value && Array.isArray(e.edges.value) && (h == null || h.pause(), e.edges.value = [...y], Ue(() => {\n h == null || h.resume();\n }));\n },\n { immediate: w }\n ), Vt(() => {\n h == null || h.stop(), d == null || d.stop();\n });\n });\n },\n () => {\n o.run(() => {\n de(\n () => t.minZoom,\n () => {\n t.minZoom && ce(t.minZoom) && n.setMinZoom(t.minZoom);\n }\n );\n });\n },\n () => {\n o.run(() => {\n de(\n () => t.maxZoom,\n () => {\n t.maxZoom && ce(t.maxZoom) && n.setMaxZoom(t.maxZoom);\n }\n );\n });\n },\n () => {\n o.run(() => {\n de(\n () => t.translateExtent,\n () => {\n t.translateExtent && ce(t.translateExtent) && n.setTranslateExtent(t.translateExtent);\n }\n );\n });\n },\n () => {\n o.run(() => {\n de(\n () => t.nodeExtent,\n () => {\n t.nodeExtent && ce(t.nodeExtent) && n.setNodeExtent(t.nodeExtent);\n }\n );\n });\n },\n () => {\n o.run(() => {\n de(\n () => t.applyDefault,\n () => {\n ce(t.applyDefault) && (n.applyDefault.value = t.applyDefault);\n }\n ), de(\n n.applyDefault,\n (h, d, w) => {\n n.applyDefault.value ? (n.onNodesChange(n.applyNodeChanges), n.onEdgesChange(n.applyEdgeChanges)) : (n.hooks.value.nodesChange.off(n.applyNodeChanges), n.hooks.value.edgesChange.off(n.applyEdgeChanges)), w(() => {\n n.hooks.value.nodesChange.off(n.applyNodeChanges), n.hooks.value.edgesChange.off(n.applyEdgeChanges);\n });\n },\n { immediate: !0 }\n );\n });\n },\n () => {\n o.run(() => {\n const h = async (d) => {\n let w = d;\n Ae(t.autoConnect) && (w = await t.autoConnect(d)), w !== !1 && n.addEdges([w]);\n };\n de(\n () => t.autoConnect,\n () => {\n ce(t.autoConnect) && (n.autoConnect.value = t.autoConnect);\n }\n ), de(\n n.autoConnect,\n (d, w, y) => {\n d ? n.onConnect(h) : n.hooks.value.connect.off(h), y(() => {\n n.hooks.value.connect.off(h);\n });\n },\n { immediate: !0 }\n );\n });\n },\n () => {\n const h = [\n \"id\",\n \"modelValue\",\n \"translateExtent\",\n \"nodeExtent\",\n \"edges\",\n \"nodes\",\n \"maxZoom\",\n \"minZoom\",\n \"applyDefault\",\n \"autoConnect\"\n ];\n Object.keys(t).forEach((d) => {\n if (!h.includes(d)) {\n const w = M(t, d), y = n[d];\n o.run(() => {\n de(\n w,\n (S) => {\n ce(S) && (y.value = S);\n },\n { flush: \"pre\" }\n );\n });\n }\n });\n }\n ].forEach((h) => h());\n }), () => o.stop();\n}\nfunction fi(e, t) {\n return {\n x: e.clientX - t.left,\n y: e.clientY - t.top\n };\n}\nconst rd = {\n name: \"Pane\",\n compatConfig: { MODE: 3 }\n}, ad = /* @__PURE__ */ ge({\n ...rd,\n props: {\n isSelecting: { type: Boolean }\n },\n setup(e) {\n const {\n id: t,\n vueFlowRef: n,\n getNodes: o,\n getEdges: i,\n viewport: r,\n emits: a,\n userSelectionActive: s,\n removeSelectedElements: l,\n panOnDrag: u,\n userSelectionRect: c,\n elementsSelectable: v,\n nodesSelectionActive: g,\n addSelectedElements: x,\n getSelectedEdges: h,\n getSelectedNodes: d,\n removeNodes: w,\n removeEdges: y,\n selectionMode: S,\n deleteKeyCode: V,\n multiSelectionKeyCode: p,\n multiSelectionActive: N\n } = fe(), T = ie(null), _ = ie(0), P = ie(0), R = ie(), $ = J(() => v.value && (e.isSelecting || s.value));\n _t(V, (z) => {\n if (!z)\n return;\n const W = o.value.reduce((B, q) => ((!q.selected && q.parentNode && B.find((te) => te.id === q.parentNode) || q.selected) && B.push(q), B), []);\n (W || h.value) && (h.value.length > 0 && y(h.value), W.length > 0 && w(W), g.value = !1, l());\n }), _t(p, (z) => {\n N.value = z;\n });\n function D() {\n s.value = !1, c.value = null, _.value = 0, P.value = 0;\n }\n function Q(z) {\n z.target !== T.value || $.value || (a.paneClick(z), l(), g.value = !1);\n }\n function ee(z) {\n var W;\n if (z.target === T.value) {\n if (Array.isArray(u.value) && ((W = u.value) != null && W.includes(2))) {\n z.preventDefault();\n return;\n }\n a.paneContextMenu(z);\n }\n }\n function m(z) {\n z.target === T.value && a.paneScroll(z);\n }\n function A(z) {\n if (R.value = n.value.getBoundingClientRect(), !$.value || !v || !e.isSelecting || z.button !== 0 || z.target !== T.value || !R.value)\n return;\n const { x: W, y: B } = fi(z, R.value);\n l(), c.value = {\n width: 0,\n height: 0,\n startX: W,\n startY: B,\n x: W,\n y: B\n }, s.value = !0, a.selectionStart(z);\n }\n function E(z) {\n if (!$.value)\n return a.paneMouseMove(z);\n if (!e.isSelecting || !R.value || !c.value)\n return;\n s.value || (s.value = !0), g.value && (g.value = !1);\n const W = fi(z, R.value), B = c.value.startX ?? 0, q = c.value.startY ?? 0, te = {\n ...c.value,\n x: W.x < B ? W.x : B,\n y: W.y < q ? W.y : q,\n width: Math.abs(W.x - B),\n height: Math.abs(W.y - q)\n }, re = Ci(\n o.value,\n c.value,\n r.value,\n S.value === fo.Partial\n ), k = sn(re, i.value);\n _.value = re.length, P.value = k.length, c.value = te, x([...re, ...k]);\n }\n function G(z) {\n $.value && z.button === 0 && (!s.value && c.value && z.target === T.value && Q(z), g.value = _.value > 0, D(), a.selectionEnd(z));\n }\n function Z(z) {\n var W;\n if (!$.value)\n return a.paneMouseLeave(z);\n s.value && (g.value = _.value > 0, (W = a.selectionEnd) == null || W.call(a, z)), D();\n }\n function K(z) {\n $.value || a.paneMouseEnter(z);\n }\n return (z, W) => (oe(), se(\"div\", {\n ref_key: \"container\",\n ref: T,\n key: `pane-${C(t)}`,\n class: Ke([\"vue-flow__pane vue-flow__container\", { selection: e.isSelecting }]),\n onClick: Q,\n onContextmenu: ee,\n onWheelPassive: m,\n onMouseenter: K,\n onMousedown: A,\n onMousemove: E,\n onMouseup: G,\n onMouseleave: Z\n }, [\n xe(z.$slots, \"default\"),\n C(s) && C(c) ? (oe(), ze(au, { key: 0 })) : Ee(\"\", !0),\n C(g) && C(d).length ? (oe(), ze(iu, { key: 1 })) : Ee(\"\", !0)\n ], 34));\n }\n}), sd = { class: \"vue-flow__nodes vue-flow__container\" }, ld = {\n name: \"Nodes\",\n compatConfig: { MODE: 3 }\n}, ud = /* @__PURE__ */ ge({\n ...ld,\n setup(e) {\n const t = He(ln), n = fe(), o = M(n, \"nodesDraggable\"), i = M(n, \"nodesFocusable\"), r = M(n, \"elementsSelectable\"), a = M(n, \"nodesConnectable\"), s = M(n, \"getNodes\"), l = M(n, \"getNodesInitialized\"), u = M(n, \"getNodeTypes\"), c = M(n, \"updateNodeDimensions\"), v = M(n, \"emits\");\n let g = ie();\n ye(() => s.value.length > 0 && l.value.length === s.value.length).toBe(!0).then(() => {\n Ue(() => {\n v.value.nodesInitialized(l.value);\n });\n }), Ve(() => {\n g.value = new ResizeObserver((S) => {\n const V = S.map((p) => ({\n id: p.target.getAttribute(\"data-id\"),\n nodeElement: p.target,\n forceUpdate: !0\n }));\n c.value(V);\n });\n }), gi(() => {\n var S;\n return (S = g.value) == null ? void 0 : S.disconnect();\n });\n function x(S) {\n return typeof S > \"u\" ? o.value : S;\n }\n function h(S) {\n return typeof S > \"u\" ? r.value : S;\n }\n function d(S) {\n return typeof S > \"u\" ? a.value : S;\n }\n function w(S) {\n return typeof S > \"u\" ? i.value : S;\n }\n function y(S, V) {\n const p = S || \"default\";\n let N = V ?? u.value[p];\n const T = on();\n if (typeof N == \"string\" && T) {\n const P = Object.keys(T.appContext.components);\n P && P.includes(p) && (N = pi(p, !1));\n }\n if (typeof N != \"string\")\n return N;\n const _ = t == null ? void 0 : t[`node-${p}`];\n return _ || (v.value.error(new ve(he.NODE_TYPE_MISSING, N)), !1);\n }\n return (S, V) => (oe(), se(\"div\", sd, [\n C(g) ? (oe(!0), se(Ce, { key: 0 }, dt(C(s), (p) => (oe(), ze(C(Tl), {\n id: p.id,\n key: p.id,\n \"resize-observer\": C(g),\n type: y(p.type, p.template),\n name: p.type || \"default\",\n draggable: x(p.draggable),\n selectable: h(p.selectable),\n connectable: d(p.connectable),\n focusable: w(p.focusable),\n node: p\n }, null, 8, [\"id\", \"resize-observer\", \"type\", \"name\", \"draggable\", \"selectable\", \"connectable\", \"focusable\", \"node\"]))), 128)) : Ee(\"\", !0)\n ]));\n }\n}), cd = [\"id\", \"markerWidth\", \"markerHeight\", \"markerUnits\", \"orient\"], dd = [\"stroke\", \"stroke-width\", \"fill\"], fd = [\"stroke\", \"stroke-width\"], hd = {\n name: \"MarkerType\",\n compatConfig: { MODE: 3 }\n}, gd = /* @__PURE__ */ ge({\n ...hd,\n props: {\n id: null,\n type: null,\n color: { default: \"none\" },\n width: { default: 12.5 },\n height: { default: 12.5 },\n markerUnits: { default: \"strokeWidth\" },\n orient: { default: \"auto-start-reverse\" },\n strokeWidth: { default: 1 }\n },\n setup(e) {\n return (t, n) => (oe(), se(\"marker\", {\n id: e.id,\n class: \"vue-flow__arrowhead\",\n viewBox: \"-10 -10 20 20\",\n refX: \"0\",\n refY: \"0\",\n markerWidth: `${e.width}`,\n markerHeight: `${e.height}`,\n markerUnits: e.markerUnits,\n orient: e.orient\n }, [\n e.type === C(Yn).ArrowClosed ? (oe(), se(\"polyline\", {\n key: 0,\n stroke: e.color,\n \"stroke-linecap\": \"round\",\n \"stroke-linejoin\": \"round\",\n \"stroke-width\": e.strokeWidth,\n fill: e.color,\n points: \"-5,-4 0,0 -5,4 -5,-4\"\n }, null, 8, dd)) : Ee(\"\", !0),\n e.type === C(Yn).Arrow ? (oe(), se(\"polyline\", {\n key: 1,\n stroke: e.color,\n \"stroke-linecap\": \"round\",\n \"stroke-linejoin\": \"round\",\n \"stroke-width\": e.strokeWidth,\n fill: \"none\",\n points: \"-5,-4 0,0 -5,4\"\n }, null, 8, fd)) : Ee(\"\", !0)\n ], 8, cd));\n }\n}), vd = {\n name: \"MarkerDefinitions\",\n compatConfig: { MODE: 3 }\n}, md = /* @__PURE__ */ ge({\n ...vd,\n setup(e) {\n const t = fe(), n = M(t, \"id\"), o = M(t, \"edges\"), i = M(t, \"connectionLineOptions\"), r = M(t, \"defaultMarkerColor\"), a = J(() => {\n const s = [], l = [], u = (c) => {\n if (c) {\n const v = Xe(c, n.value);\n s.includes(v) || (typeof c == \"object\" ? l.push({ ...c, id: v, color: c.color || r.value }) : l.push({ id: v, color: r.value, type: c }), s.push(v));\n }\n };\n return [i.value.markerEnd, i.value.markerStart].forEach(u), o.value.reduce((c, v) => ([v.markerStart, v.markerEnd].forEach(u), c.sort((g, x) => g.id.localeCompare(x.id))), l), l;\n });\n return (s, l) => (oe(), se(\"defs\", null, [\n (oe(!0), se(Ce, null, dt(C(a), (u) => (oe(), ze(gd, {\n id: u.id,\n key: u.id,\n type: u.type,\n color: u.color,\n width: u.width,\n height: u.height,\n markerUnits: u.markerUnits,\n \"stroke-width\": u.strokeWidth,\n orient: u.orient\n }, null, 8, [\"id\", \"type\", \"color\", \"width\", \"height\", \"markerUnits\", \"stroke-width\", \"orient\"]))), 128))\n ]));\n }\n}), pd = {\n key: 0,\n class: \"vue-flow__edges vue-flow__connectionline vue-flow__container\"\n}, yd = {\n name: \"Edges\",\n compatConfig: { MODE: 3 }\n}, xd = /* @__PURE__ */ ge({\n ...yd,\n setup(e) {\n const t = He(ln), n = fe(), o = M(n, \"connectionStartHandle\"), i = M(n, \"nodesConnectable\"), r = M(n, \"edgesUpdatable\"), a = M(n, \"edgesFocusable\"), s = M(n, \"elementsSelectable\"), l = M(n, \"getSelectedNodes\"), u = M(n, \"findNode\"), c = M(n, \"edges\"), v = M(n, \"getEdges\"), g = M(n, \"getNodesInitialized\"), x = M(n, \"getEdgeTypes\"), h = M(n, \"elevateEdgesOnSelect\"), d = M(n, \"dimensions\"), w = M(n, \"emits\"), y = Sn(\n () => {\n var P;\n return (P = o.value) == null ? void 0 : P.nodeId;\n },\n () => {\n var P;\n return (P = o.value) != null && P.nodeId ? u.value(o.value.nodeId) : !1;\n }\n ), S = Sn(\n () => {\n var P;\n return (P = o.value) == null ? void 0 : P.nodeId;\n },\n () => {\n var P, R;\n return !!(y.value && (typeof y.value.connectable > \"u\" ? i.value : y.value.connectable) && ((P = o.value) != null && P.nodeId) && ((R = o.value) != null && R.type));\n }\n ), V = Sn(\n [\n () => c.value.map((P) => P.zIndex),\n () => h.value ? [l.value.length] : [0],\n () => h.value ? g.value.map((P) => P.computedPosition.z) : []\n ],\n () => Ea(v.value, u.value, h.value)\n );\n function p(P) {\n return typeof P > \"u\" ? s.value : P;\n }\n function N(P) {\n return typeof P > \"u\" ? r.value : P;\n }\n function T(P) {\n return typeof P > \"u\" ? a.value : P;\n }\n function _(P, R) {\n const $ = P || \"default\";\n let D = R ?? x.value[$];\n const Q = on();\n if (typeof D == \"string\" && Q) {\n const m = Object.keys(Q.appContext.components);\n m && m.includes($) && (D = pi($, !1));\n }\n if (D && typeof D != \"string\")\n return D;\n const ee = t == null ? void 0 : t[`edge-${$}`];\n return ee || (w.value.error(new ve(he.EDGE_TYPE_MISSING, D)), !1);\n }\n return (P, R) => C(d).width && C(d).height ? (oe(), se(Ce, { key: 0 }, [\n (oe(!0), se(Ce, null, dt(C(V), ($) => (oe(), se(\"svg\", {\n key: $.level,\n class: \"vue-flow__edges vue-flow__container\",\n style: Le(`z-index: ${$.level}`)\n }, [\n $.isMaxLevel ? (oe(), ze(md, { key: 0 })) : Ee(\"\", !0),\n ct(\"g\", null, [\n (oe(!0), se(Ce, null, dt($.edges, (D) => (oe(), ze(C(Kl), {\n id: D.id,\n key: D.id,\n edge: D,\n type: _(D.type, D.template),\n name: D.type || \"default\",\n selectable: p(D.selectable),\n updatable: N(D.updatable),\n focusable: T(D.focusable)\n }, null, 8, [\"id\", \"edge\", \"type\", \"name\", \"selectable\", \"updatable\", \"focusable\"]))), 128))\n ])\n ], 4))), 128)),\n C(S) && C(y) ? (oe(), se(\"svg\", pd, [\n qe(tu, { \"source-node\": C(y) }, null, 8, [\"source-node\"])\n ])) : Ee(\"\", !0)\n ], 64)) : Ee(\"\", !0);\n }\n}), _d = /* @__PURE__ */ ct(\"div\", { class: \"vue-flow__edge-labels\" }, null, -1), wd = {\n name: \"Transform\",\n compatConfig: { MODE: 3 }\n}, bd = /* @__PURE__ */ ge({\n ...wd,\n setup(e) {\n const { id: t, viewport: n, emits: o, d3Zoom: i, d3Selection: r, dimensions: a, ...s } = fe(), l = ie(!oo);\n return ye(() => i.value && r.value && a.value.width > 0 && a.value.height > 0).toBeTruthy().then(() => {\n o.paneReady({\n id: t,\n viewport: n,\n emits: o,\n d3Zoom: i,\n d3Selection: r,\n dimensions: a,\n ...s\n }), setTimeout(() => {\n l.value = !0;\n }, 0);\n }), (u, c) => (oe(), se(\"div\", {\n key: `transform-${C(t)}`,\n class: \"vue-flow__transformationpane vue-flow__container\",\n style: Le({\n transform: `translate(${C(n).x}px,${C(n).y}px) scale(${C(n).zoom})`,\n opacity: C(l) ? void 0 : 0\n })\n }, [\n qe(xd),\n _d,\n qe(ud),\n xe(u.$slots, \"default\")\n ], 4));\n }\n}), Ed = {\n name: \"Viewport\",\n compatConfig: { MODE: 3 }\n}, Sd = /* @__PURE__ */ ge({\n ...Ed,\n setup(e) {\n const {\n id: t,\n minZoom: n,\n maxZoom: o,\n defaultViewport: i,\n translateExtent: r,\n dimensions: a,\n zoomActivationKeyCode: s,\n selectionKeyCode: l,\n panActivationKeyCode: u,\n panOnScroll: c,\n panOnScrollMode: v,\n panOnScrollSpeed: g,\n panOnDrag: x,\n zoomOnDoubleClick: h,\n zoomOnPinch: d,\n zoomOnScroll: w,\n preventScrolling: y,\n noWheelClassName: S,\n noPanClassName: V,\n emits: p,\n connectionStartHandle: N,\n userSelectionActive: T,\n paneDragging: _,\n d3Zoom: P,\n d3Selection: R,\n d3ZoomHandler: $,\n viewport: D,\n viewportRef: Q\n } = fe(), ee = ie(), m = ie(!1), A = ie(!1);\n let E = !1, G = 0, Z = {\n x: 0,\n y: 0,\n zoom: 0\n };\n const K = _t(u), z = J(() => !m.value && x.value && K.value), W = J(\n () => l.value !== !0 && m.value || l.value === !0 && !z.value\n );\n Ve(() => {\n oa(ee, re);\n const H = ao();\n ro(H, \"resize\", re);\n }), Ve(() => {\n const H = ee.value, f = H.getBoundingClientRect(), b = ed().scaleExtent([n.value, o.value]).translateExtent(r.value), L = we(H).call(b), I = L.on(\"wheel.zoom\"), F = et.translate(i.value.x ?? 0, i.value.y ?? 0).scale(je(i.value.zoom ?? 1, n.value, o.value)), U = [\n [0, 0],\n [f.width, f.height]\n ], Y = b.constrain()(F, U, r.value);\n b.transform(L, Y), P.value = b, R.value = L, $.value = I, D.value = { x: Y.x, y: Y.y, zoom: Y.k }, Q.value = H, _t(l, (O) => {\n m.value = O;\n });\n const ne = _t(s);\n bo(() => {\n m.value && T.value && !A.value ? b.on(\"zoom\", null) : !m.value && !T.value && b.on(\"zoom\", (O) => {\n D.value = { x: O.transform.x, y: O.transform.y, zoom: O.transform.k };\n const ae = te(O.transform);\n E = B(x.value, G ?? 0), p.viewportChange(ae), p.move({ event: O, flowTransform: ae });\n });\n }), b.on(\"start\", (O) => {\n var me;\n if (!O.sourceEvent)\n return null;\n G = O.sourceEvent.button, A.value = !0;\n const ae = te(O.transform);\n ((me = O.sourceEvent) == null ? void 0 : me.type) === \"mousedown\" && (_.value = !0), Z = ae, p.viewportChangeStart(ae), p.moveStart({ event: O, flowTransform: ae });\n }), b.on(\"end\", (O) => {\n if (!O.sourceEvent)\n return null;\n if (A.value = !1, _.value = !1, B(x.value, G ?? 0) && !E && p.paneContextMenu(O.sourceEvent), E = !1, q(Z, O.transform)) {\n const ae = te(O.transform);\n Z = ae, p.viewportChangeEnd(ae), p.moveEnd({ event: O, flowTransform: ae });\n }\n }), bo(() => {\n c.value && !ne.value && !T.value ? L.on(\n \"wheel.zoom\",\n (O) => {\n if (k(O, S.value))\n return !1;\n O.preventDefault(), O.stopImmediatePropagation();\n const ae = L.property(\"__zoom\").k || 1;\n if (O.ctrlKey && d.value) {\n const Tt = Ne(O), _r = -O.deltaY * (O.deltaMode === 1 ? 0.05 : O.deltaMode ? 1 : 2e-3) * 10, wr = ae * 2 ** _r;\n b.scaleTo(L, wr, Tt);\n return;\n }\n const me = O.deltaMode === 1 ? 20 : 1, En = v.value === Ut.Vertical ? 0 : O.deltaX * me, Ot = v.value === Ut.Horizontal ? 0 : O.deltaY * me;\n b.translateBy(\n L,\n -(En / ae) * g.value,\n -(Ot / ae) * g.value\n );\n },\n { passive: !1 }\n ) : typeof I < \"u\" && L.on(\n \"wheel.zoom\",\n function(O, ae) {\n if (!y.value || k(O, S.value))\n return null;\n O.preventDefault(), I.call(this, O, ae);\n },\n { passive: !1 }\n );\n }), b.filter((O) => {\n var Ot, Tt;\n const ae = ne.value || w.value, me = d.value && O.ctrlKey;\n if (O.button === 1 && O.type === \"mousedown\" && ((Ot = O.target) != null && Ot.closest(\".vue-flow__node\") || (Tt = O.target) != null && Tt.closest(\".vue-flow__edge\")))\n return !0;\n if (!x.value && !ae && !c.value && !h.value && !d.value || T.value || !h.value && O.type === \"dblclick\" || k(O, S.value) && O.type === \"wheel\" || k(O, V.value) && O.type !== \"wheel\" || !d.value && O.ctrlKey && O.type === \"wheel\" || !ae && !c.value && !me && O.type === \"wheel\" || !x.value && (O.type === \"mousedown\" || O.type === \"touchstart\") || Array.isArray(x.value) && !x.value.includes(O.button) && (O.type === \"mousedown\" || O.type === \"touchstart\"))\n return !1;\n const En = Array.isArray(x.value) && x.value.includes(O.button) || !O.button || O.button <= 1;\n return (!O.ctrlKey || O.type === \"wheel\") && En;\n });\n });\n function B(H, f) {\n return f === 2 && Array.isArray(H) && H.includes(2);\n }\n function q(H, f) {\n return H.x !== f.x && !isNaN(f.x) || H.y !== f.y && !isNaN(f.y) || H.zoom !== f.k && !isNaN(f.k);\n }\n function te(H) {\n return {\n x: H.x,\n y: H.y,\n zoom: H.k\n };\n }\n function re() {\n if (!ee.value)\n return;\n const { width: H, height: f } = rn(ee.value);\n (H === 0 || f === 0) && p.error(new ve(he.MISSING_VIEWPORT_DIMENSIONS)), a.value.width = H || 500, a.value.height = f || 500;\n }\n function k(H, f) {\n return H.target.closest(`.${f}`);\n }\n return (H, f) => (oe(), se(Ce, null, [\n (oe(), se(\"div\", {\n ref_key: \"viewportEl\",\n ref: ee,\n key: `viewport-${C(t)}`,\n class: \"vue-flow__viewport vue-flow__container\"\n }, [\n qe(ad, {\n \"is-selecting\": C(W),\n class: Ke({ connecting: !!C(N), dragging: C(_), draggable: !!C(x) })\n }, {\n default: Fe(() => [\n qe(bd, null, {\n default: Fe(() => [\n xe(H.$slots, \"zoom-pane\")\n ]),\n _: 3\n })\n ]),\n _: 3\n }, 8, [\"is-selecting\", \"class\"])\n ])),\n xe(H.$slots, \"default\")\n ], 64));\n }\n}), Nd = [\"id\"], Cd = [\"id\"], Md = [\"id\"], $d = {\n name: \"A11yDescriptions\",\n compatConfig: { MODE: 3 }\n}, kd = /* @__PURE__ */ ge({\n ...$d,\n setup(e) {\n const { id: t, disableKeyboardA11y: n, ariaLiveMessage: o } = fe(), i = {\n position: \"absolute\",\n width: 1,\n height: 1,\n margin: -1,\n border: 0,\n padding: 0,\n overflow: \"hidden\",\n clip: \"rect(0px, 0px, 0px, 0px)\",\n clipPath: \"inset(100%)\"\n };\n return (r, a) => (oe(), se(Ce, null, [\n ct(\"div\", {\n id: `${C(Qi)}-${C(t)}`,\n style: { display: \"none\" }\n }, \" Press enter or space to select a node. \" + Vn(C(n) ? \"\" : \"You can then use the arrow keys to move the node around.\") + \" You can then use the arrow keys to move the node around, press delete to remove it and press escape to cancel. \", 9, Nd),\n ct(\"div\", {\n id: `${C(Ji)}-${C(t)}`,\n style: { display: \"none\" }\n }, \" Press enter or space to select an edge. You can then press delete to remove it or press escape to cancel. \", 8, Cd),\n C(n) ? Ee(\"\", !0) : (oe(), se(\"div\", {\n key: 0,\n id: `${C(Ml)}-${C(t)}`,\n \"aria-live\": \"assertive\",\n \"aria-atomic\": \"true\",\n style: i\n }, Vn(C(o)), 9, Md))\n ], 64));\n }\n}), Od = {\n name: \"VueFlow\",\n compatConfig: { MODE: 3 }\n}, Ld = /* @__PURE__ */ ge({\n ...Od,\n props: {\n id: null,\n modelValue: null,\n nodes: null,\n edges: null,\n edgeTypes: null,\n nodeTypes: null,\n connectionMode: null,\n connectionLineType: null,\n connectionLineStyle: { default: void 0 },\n connectionLineOptions: { default: void 0 },\n connectionRadius: null,\n isValidConnection: { type: [Function, null], default: void 0 },\n deleteKeyCode: null,\n selectionKeyCode: null,\n multiSelectionKeyCode: null,\n zoomActivationKeyCode: null,\n panActivationKeyCode: null,\n snapToGrid: { type: Boolean, default: void 0 },\n snapGrid: null,\n onlyRenderVisibleElements: { type: Boolean, default: void 0 },\n edgesUpdatable: { type: [Boolean, String], default: void 0 },\n nodesDraggable: { type: Boolean, default: void 0 },\n nodesConnectable: { type: Boolean, default: void 0 },\n elementsSelectable: { type: Boolean, default: void 0 },\n selectNodesOnDrag: { type: Boolean, default: void 0 },\n panOnDrag: { type: [Boolean, Array], default: void 0 },\n minZoom: null,\n maxZoom: null,\n defaultViewport: null,\n translateExtent: null,\n nodeExtent: null,\n defaultMarkerColor: null,\n zoomOnScroll: { type: Boolean, default: void 0 },\n zoomOnPinch: { type: Boolean, default: void 0 },\n panOnScroll: { type: Boolean, default: void 0 },\n panOnScrollSpeed: null,\n panOnScrollMode: null,\n zoomOnDoubleClick: { type: Boolean, default: void 0 },\n preventScrolling: { type: Boolean, default: void 0 },\n selectionMode: null,\n edgeUpdaterRadius: null,\n fitViewOnInit: { type: Boolean, default: void 0 },\n connectOnClick: { type: Boolean, default: void 0 },\n applyDefault: { type: Boolean, default: void 0 },\n autoConnect: { type: [Boolean, Function], default: void 0 },\n noDragClassName: null,\n noWheelClassName: null,\n noPanClassName: null,\n defaultEdgeOptions: null,\n elevateEdgesOnSelect: { type: Boolean, default: void 0 },\n elevateNodesOnSelect: { type: Boolean, default: void 0 },\n disableKeyboardA11y: { type: Boolean, default: void 0 },\n edgesFocusable: { type: Boolean, default: void 0 },\n nodesFocusable: { type: Boolean, default: void 0 },\n autoPanOnConnect: { type: Boolean, default: void 0 },\n autoPanOnNodeDrag: { type: Boolean, default: void 0 },\n __experimentalFeatures: null\n },\n emits: [\"nodesChange\", \"edgesChange\", \"nodeDoubleClick\", \"nodeClick\", \"nodeMouseEnter\", \"nodeMouseMove\", \"nodeMouseLeave\", \"nodeContextMenu\", \"nodeDragStart\", \"nodeDrag\", \"nodeDragStop\", \"nodesInitialized\", \"miniMapNodeClick\", \"miniMapNodeDoubleClick\", \"miniMapNodeMouseEnter\", \"miniMapNodeMouseMove\", \"miniMapNodeMouseLeave\", \"connect\", \"connectStart\", \"connectEnd\", \"clickConnectStart\", \"clickConnectEnd\", \"moveStart\", \"move\", \"moveEnd\", \"selectionDragStart\", \"selectionDrag\", \"selectionDragStop\", \"selectionContextMenu\", \"selectionStart\", \"selectionEnd\", \"viewportChangeStart\", \"viewportChange\", \"viewportChangeEnd\", \"paneReady\", \"paneScroll\", \"paneClick\", \"paneContextMenu\", \"paneMouseEnter\", \"paneMouseMove\", \"paneMouseLeave\", \"edgeContextMenu\", \"edgeMouseEnter\", \"edgeMouseMove\", \"edgeMouseLeave\", \"edgeDoubleClick\", \"edgeClick\", \"edgeUpdateStart\", \"edgeUpdate\", \"edgeUpdateEnd\", \"updateNodeInternals\", \"error\", \"update:modelValue\", \"update:nodes\", \"update:edges\"],\n setup(e, { expose: t, emit: n }) {\n const o = e, i = yt(o, \"modelValue\", n), r = yt(o, \"nodes\", n), a = yt(o, \"edges\", n), { vueFlowRef: s, hooks: l, getNodeTypes: u, getEdgeTypes: c, ...v } = fe(o), g = id({ modelValue: i, nodes: r, edges: a }, o, {\n vueFlowRef: s,\n hooks: l,\n getNodeTypes: u,\n getEdgeTypes: c,\n ...v\n });\n da(n, l);\n const x = ie();\n return ut(ln, Ir()), Pr(() => {\n g();\n }), Ve(() => {\n s.value = x.value;\n }), t({\n vueFlowRef: s,\n hooks: l,\n getNodeTypes: u,\n getEdgeTypes: c,\n ...v\n }), (h, d) => (oe(), se(\"div\", {\n ref_key: \"el\",\n ref: x,\n class: \"vue-flow\"\n }, [\n qe(Sd, null, {\n nodes: Fe(() => [\n (oe(!0), se(Ce, null, dt(Object.keys(C(u)), (w) => xe(h.$slots, `node-${w}`)), 256))\n ]),\n edges: Fe(() => [\n (oe(!0), se(Ce, null, dt(Object.keys(C(c)), (w) => xe(h.$slots, `edge-${w}`)), 256))\n ]),\n \"connection-name\": Fe(() => [\n xe(h.$slots, \"connection-line\")\n ]),\n \"zoom-pane\": Fe(() => [\n xe(h.$slots, \"zoom-pane\")\n ]),\n default: Fe(() => [\n xe(h.$slots, \"default\")\n ]),\n _: 3\n }),\n qe(kd)\n ], 512));\n }\n}), Td = {\n name: \"Panel\",\n compatConfig: { MODE: 3 }\n}, Gd = /* @__PURE__ */ ge({\n ...Td,\n props: {\n position: null\n },\n setup(e) {\n const t = e, { userSelectionActive: n } = fe(), o = J(() => `${t.position}`.split(\"-\"));\n return (i, r) => (oe(), se(\"div\", {\n class: Ke([\"vue-flow__panel\", C(o)]),\n style: Le({ pointerEvents: C(n) ? \"none\" : \"all\" })\n }, [\n xe(i.$slots, \"default\")\n ], 6));\n }\n}), Bn = 0.1, Fd = (e) => {\n const t = fe({ id: e }), n = M(t, \"nodes\"), o = M(t, \"d3Zoom\"), i = M(t, \"d3Selection\"), r = M(t, \"dimensions\"), a = M(t, \"translateExtent\"), s = M(t, \"minZoom\"), l = M(t, \"maxZoom\"), u = M(t, \"viewport\"), c = M(t, \"snapToGrid\"), v = M(t, \"snapGrid\"), g = M(t, \"getNodes\");\n return {\n zoomIn: (d) => {\n x(1.2, d == null ? void 0 : d.duration);\n },\n zoomOut: (d) => {\n x(1 / 1.2, d == null ? void 0 : d.duration);\n },\n zoomTo: (d, w) => {\n i.value && o.value && o.value.scaleTo(Rn(i.value, w == null ? void 0 : w.duration), d);\n },\n setTransform: (d, w) => {\n h(d.x, d.y, d.zoom, w == null ? void 0 : w.duration);\n },\n getTransform: () => ({\n x: u.value.x,\n y: u.value.y,\n zoom: u.value.zoom\n }),\n fitView: (d = {\n padding: Bn,\n includeHiddenNodes: !1,\n duration: 0\n }) => {\n if (!n.value.length)\n return;\n const w = (d.includeHiddenNodes ? n.value : g.value).filter((N) => {\n var P;\n const T = N.initialized && N.dimensions.width && N.dimensions.height;\n let _ = !0;\n return (P = d.nodes) != null && P.length && (_ = d.nodes.includes(N.id)), T && _;\n }), y = co(w), { x: S, y: V, zoom: p } = Zt(\n y,\n r.value.width,\n r.value.height,\n d.minZoom ?? s.value,\n d.maxZoom ?? l.value,\n d.padding ?? Bn,\n d.offset\n );\n h(S, V, p, d == null ? void 0 : d.duration);\n },\n setCenter: (d, w, y) => {\n const S = typeof (y == null ? void 0 : y.zoom) < \"u\" ? y.zoom : l.value, V = r.value.width / 2 - d * S, p = r.value.height / 2 - w * S;\n h(V, p, S, y == null ? void 0 : y.duration);\n },\n fitBounds: (d, w = { padding: Bn }) => {\n const { x: y, y: S, zoom: V } = Zt(d, r.value.width, r.value.height, s.value, l.value, w.padding);\n h(y, S, V, w == null ? void 0 : w.duration);\n },\n project: (d) => uo(d, u.value, c.value, v.value)\n };\n function x(d, w) {\n i.value && o.value && o.value.scaleBy(Rn(i.value, w), d);\n }\n function h(d, w, y, S) {\n const { x: V, y: p } = so({ x: -d, y: -w }, a.value), N = et.translate(-V, -p).scale(y);\n i.value && o.value && o.value.transform(Rn(i.value, S), N);\n }\n};\nfunction Rn(e, t = 0) {\n return e.transition().duration(t);\n}\nfunction Yd(e) {\n const t = e ?? He(Oi, \"\"), n = He(Ti, null), { findEdge: o, emits: i } = fe(), r = o(t);\n return r || i.error(new ve(he.EDGE_NOT_FOUND, t)), {\n id: t,\n edge: r,\n edgeEl: n\n };\n}\nexport {\n vn as BaseEdge,\n Bl as BezierEdge,\n Ye as ConnectionLineType,\n Qe as ConnectionMode,\n Rd as EdgeLabelRenderer,\n Al as EdgeText,\n he as ErrorCode,\n ot as GlobalVueFlowStorage,\n Kt as Handle,\n Yn as MarkerType,\n $i as NodeIdInjection,\n Ut as PanOnScrollMode,\n Gd as Panel,\n xa as PanelPosition,\n j as Position,\n fo as SelectionMode,\n Rl as SimpleBezierEdge,\n ir as SmoothStepEdge,\n Gl as StepEdge,\n Fl as StraightEdge,\n Ld as VueFlow,\n ve as VueFlowError,\n zo as VueFlowInjection,\n zd as addEdge,\n nn as applyChanges,\n Vd as applyEdgeChanges,\n Hd as applyNodeChanges,\n je as clamp,\n Ei as connectionExists,\n lu as defaultEdgeTypes,\n su as defaultNodeTypes,\n nr as getBezierEdgeCenter,\n Kn as getBezierPath,\n Bd as getBoundsofRects,\n sn as getConnectedEdges,\n Dd as getIncomers,\n Xe as getMarkerId,\n Ci as getNodesInside,\n Pd as getOutgoers,\n co as getRectOfNodes,\n or as getSimpleBezierPath,\n tr as getSimpleEdgeCenter,\n qn as getSmoothStepPath,\n rr as getStraightPath,\n Zt as getTransformForBounds,\n va as graphPosToZoomedPos,\n $e as isEdge,\n fa as isGraphEdge,\n nt as isGraphNode,\n xt as isNode,\n uo as pointToRendererPoint,\n va as rendererPointToPoint,\n Ad as updateEdge,\n Yd as useEdge,\n Ra as useGetPointerPosition,\n Di as useHandle,\n _a as useNode,\n fe as useVueFlow,\n Fd as useZoomPanHelper\n};\n","<script lang=\"ts\" setup>\nimport { NodeProps, Handle, Position, NodeEventsOn } from '@vue-flow/core'\nimport { computed, ref, nextTick } from 'vue'\n\ninterface EditableNodeProps extends NodeProps {\n\tid: string\n\tlabel: string\n\tsourcePosition: Position\n\ttargetPosition: Position\n\tdata: any\n}\n\nconst props = defineProps<EditableNodeProps>()\n\nconst emit = defineEmits(['change'])\n\nconst positionMap = {\n\ttop: Position.Top,\n\tright: Position.Right,\n\tbottom: Position.Bottom,\n\tleft: Position.Left,\n}\n\nconst sourcePosition = computed(() => positionMap[props.sourcePosition])\nconst targetPosition = computed(() => positionMap[props.targetPosition])\n\nconst labelInput = ref()\nconst newLabel = ref('')\nconst showInput = ref(false)\nlet lastClick = 0\n\nconst nodeOnClick = () => {\n\tlet now = Date.now()\n\tif (now - lastClick < 500 && !showInput.value) {\n\t\tshowLabelInput()\n\t}\n\tlastClick = now\n}\n\nconst showLabelInput = async () => {\n\tnewLabel.value = props.label\n\tshowInput.value = true\n\tawait nextTick()\n\tlabelInput.value.focus()\n}\n\nconst submitNewLabel = () => {\n\tshowInput.value = false\n\temit('change', newLabel.value)\n}\n</script>\n\n<template>\n\t<div @click=\"nodeOnClick()\">\n\t\t<div>{{ props.label }}</div>\n\t\t<div v-if=\"showInput\" class=\"label-input-wrapper\">\n\t\t\t<input\n\t\t\t\tref=\"labelInput\"\n\t\t\t\tclass=\"label-input\"\n\t\t\t\tv-model=\"newLabel\"\n\t\t\t\t@blur=\"showInput = false\"\n\t\t\t\t@keypress.enter=\"submitNewLabel\" />\n\t\t</div>\n\t\t<Handle v-if=\"props.data.hasInput\" id=\"a\" type=\"target\" :position=\"targetPosition\" />\n\t\t<Handle v-if=\"props.data.hasOutput\" id=\"b\" type=\"source\" :position=\"sourcePosition\" />\n\t</div>\n</template>\n\n<style>\n.label-input-wrapper {\n\tposition: absolute;\n\ttop: 0;\n\tleft: 0;\n\tright: 0;\n\tbottom: 0;\n\tdisplay: flex;\n\talign-items: center;\n\tjustify-content: center;\n}\n.label-input {\n\ttext-align: center;\n}\n</style>\n","<script lang=\"ts\" setup>\nimport type { EdgeProps, Position } from '@vue-flow/core'\nimport { EdgeLabelRenderer, getBezierPath, useVueFlow } from '@vue-flow/core'\nimport type { CSSProperties } from 'vue'\nimport { computed, ref, nextTick } from 'vue'\n\ninterface EditableEdgeProps<T = any> extends EdgeProps<T> {\n\tid: string\n\tsourceX: number\n\tsourceY: number\n\ttargetX: number\n\ttargetY: number\n\tsourcePosition: Position\n\ttargetPosition: Position\n\tdata: T\n\tmarkerEnd: string\n\tstyle: CSSProperties\n\tlabel: string\n}\n\nconst props = defineProps<EditableEdgeProps>()\n\nconst { removeEdges } = useVueFlow()\n\nconst emit = defineEmits(['change'])\n\nconst labelInput = ref()\nconst newLabel = ref('')\nconst showInput = ref(false)\nlet lastClick = 0\n\nconst labelOnClick = () => {\n\tlet now = Date.now()\n\tif (now - lastClick < 500 && !showInput.value) {\n\t\tshowLabelInput()\n\t}\n\tlastClick = now\n}\n\nconst showLabelInput = async () => {\n\tnewLabel.value = props.label\n\tshowInput.value = true\n\tawait nextTick()\n\tlabelInput.value.focus()\n}\n\nconst submitNewLabel = () => {\n\tshowInput.value = false\n\temit('change', newLabel.value)\n}\n\nconst path = computed(() => getBezierPath(props))\n</script>\n\n<script lang=\"ts\">\nexport default {\n\tinheritAttrs: false,\n}\n</script>\n\n<template>\n\t<path :id=\"id\" :style=\"style\" class=\"vue-flow__edge-path\" :d=\"path[0]\" :marker-end=\"markerEnd\" />\n\n\t<EdgeLabelRenderer>\n\t\t<div\n\t\t\t:style=\"{\n\t\t\t\tpointerEvents: 'all',\n\t\t\t\tposition: 'absolute',\n\t\t\t\ttransform: `translate(-50%, -50%) translate(${path[1]}px,${path[2]}px)`,\n\t\t\t}\"\n\t\t\tclass=\"nodrag nopan editable-edge-label\"\n\t\t\t@click=\"labelOnClick()\">\n\t\t\t<div class=\"vue-flow__edge-label\">{{ props.label }}</div>\n\t\t\t<div v-if=\"showInput\" class=\"label-input-wrapper\">\n\t\t\t\t<input\n\t\t\t\t\tref=\"labelInput\"\n\t\t\t\t\tclass=\"label-input\"\n\t\t\t\t\tv-model=\"newLabel\"\n\t\t\t\t\t@blur=\"showInput = false\"\n\t\t\t\t\t@keypress.enter=\"submitNewLabel\" />\n\t\t\t</div>\n\t\t</div>\n\t</EdgeLabelRenderer>\n</template>\n\n<style>\n.editable-edge-label {\n\tbackground-color: white;\n\tposition: relative;\n\tfont-size: 12px;\n}\n.label-input-wrapper {\n\tposition: absolute;\n\ttop: 0;\n\tleft: 0;\n\tright: 0;\n\tbottom: 0;\n\tdisplay: flex;\n\talign-items: center;\n\tjustify-content: center;\n}\n.label-input {\n\ttext-align: center;\n}\n</style>\n","<template>\n\t<div class=\"node-editor-wrapper\" :class=\"containerClass\" @mouseover=\"hover = true\" @mouseleave=\"hover = false\">\n\t\t<div class=\"chart-controls\">\n\t\t\t<div class=\"chart-controls-left\">\n\t\t\t\t<div><b>Selected Node:</b> {{ activeElementKey ? activeElementKey : 'none' }}</div>\n\t\t\t</div>\n\t\t\t<div class=\"chart-controls-right\">\n\t\t\t\t<div>\n\t\t\t\t\t<button class=\"button-default\" @click=\"addNode()\">Add Node</button>\n\t\t\t\t</div>\n\t\t\t\t<div>\n\t\t\t\t\t<button class=\"button-default\" @click=\"fitView()\">Center</button>\n\t\t\t\t</div>\n\t\t\t\t<div v-if=\"activeElementIndex > -1\">\n\t\t\t\t\t<button class=\"button-default\" @click=\"shiftInput()\">Shift Input Position</button>\n\t\t\t\t</div>\n\t\t\t\t<div v-if=\"activeElementIndex > -1\">\n\t\t\t\t\t<button class=\"button-default\" @click=\"shiftOutput()\">Shift Output Position</button>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</div>\n\n\t\t<VueFlow\n\t\t\t@wheel.prevent=\"onWheel($event)\"\n\t\t\tclass=\"nowheel\"\n\t\t\t:prevent-scrolling=\"true\"\n\t\t\t:zoom-on-scroll=\"false\"\n\t\t\t:fit-view-on-init=\"true\"\n\t\t\tv-if=\"vueFlowElements && vueFlowElements.length\"\n\t\t\tv-model=\"vueFlowElements\"\n\t\t\t@connect=\"onConnect($event)\"\n\t\t\t@edge-double-click=\"onEdgeDoubleClick($event)\">\n\t\t\t<template #node-editable=\"props\">\n\t\t\t\t<EditableNode v-bind=\"props\" @change=\"labelChanged($event, props.id)\" />\n\t\t\t</template>\n\t\t\t<template #edge-editable=\"props\">\n\t\t\t\t<EditableEdge v-bind=\"props\" @change=\"labelChanged($event, props.id)\" />\n\t\t\t</template>\n\t\t</VueFlow>\n\t</div>\n</template>\n<script lang=\"ts\" setup>\nimport { VueFlow, useVueFlow } from '@vue-flow/core'\nimport '@vue-flow/core/dist/style.css'\nimport '@vue-flow/core/dist/theme-default.css'\nimport EditableNode from './EditableNode.vue'\nimport EditableEdge from './EditableEdge.vue'\nimport { ref, computed, defineEmits, onBeforeUnmount, onMounted, watch, reactive } from 'vue'\n\n// Props\n\nconst props = defineProps<{\n\tmodelValue: any\n\tnodeContainerClass: string\n}>()\n\n// Emits\n\nconst emit = defineEmits(['update:modelValue'])\n\n// Data\n\nconst containerClass = ref('')\nconst vueFlowInstance = ref({})\nconst hover = ref(false)\nconst labelEditor = ref({\n\tx: 0,\n\ty: 0,\n})\n\nconst activeElementKey = ref('')\n\nconst vueFlowElements = ref([])\n\n// Computed variables\n\nconst activeElementIndex = computed(() => {\n\tfor (let j = 0; j < vueFlowElements.value.length; j++) {\n\t\tif (vueFlowElements.value[j].id == activeElementKey.value) return j\n\t}\n\treturn -1\n})\n\nconst elements = computed({\n\tget: () => {\n\t\tlet _elements = props.modelValue\n\t\tif (props.nodeContainerClass) {\n\t\t\tcontainerClass.value = props.nodeContainerClass\n\t\t} else {\n\t\t\tcontainerClass.value = 'defaultContainerClass'\n\t\t}\n\n\t\tfor (let j = 0; j < _elements.length; j++) {\n\t\t\t_elements[j].data = {}\n\t\t\tif (_elements[j].type == 'input') {\n\t\t\t\t_elements[j].data.hasInput = false\n\t\t\t\t_elements[j].data.hasOutput = true\n\t\t\t} else if (_elements[j].type == 'output') {\n\t\t\t\t_elements[j].data.hasInput = true\n\t\t\t\t_elements[j].data.hasOutput = false\n\t\t\t} else {\n\t\t\t\t_elements[j].data.hasInput = true\n\t\t\t\t_elements[j].data.hasOutput = true\n\t\t\t}\n\t\t\t_elements[j].class = 'vue-flow__node-default'\n\t\t\t_elements[j].type = 'editable'\n\t\t}\n\n\t\tfor (let j = 0; j < _elements.length; j++) {\n\t\t\tlet key = _elements[j].id\n\t\t\tlet el = _elements[j]\n\t\t\t_elements[j].events = {\n\t\t\t\tclick: () => {\n\t\t\t\t\tactiveElementKey.value = key\n\t\t\t\t},\n\t\t\t}\n\t\t}\n\n\t\treturn _elements\n\t},\n\tset: newValue => {\n\t\temit('update:modelValue', JSON.parse(JSON.stringify(newValue)))\n\t},\n})\n\n//VueFlow\n\nconst { getNodes, onPaneReady } = useVueFlow({})\n\nonPaneReady(i => {\n\tvueFlowInstance.value = i\n})\n\n// Setup\n\nvueFlowElements.value = elements.value\n\n// Lifecycle Hooks\n\nonMounted(() => {\n\tdocument.removeEventListener('keypress', handleKeypress)\n\tdocument.addEventListener('keypress', handleKeypress)\n})\n\nonBeforeUnmount(() => {\n\tdocument.removeEventListener('keypress', handleKeypress)\n})\n\n// Methods\n\nconst shiftTerminal = currentTerminal => {\n\treturn {\n\t\ttop: 'right',\n\t\tright: 'bottom',\n\t\tbottom: 'left',\n\t\tleft: 'top',\n\t}[currentTerminal]\n}\n\nconst shiftOutput = () => {\n\tif (activeElementIndex.value > -1) {\n\t\tvueFlowElements.value[activeElementIndex.value].sourcePosition = shiftTerminal(\n\t\t\tvueFlowElements.value[activeElementIndex.value].sourcePosition\n\t\t)\n\t}\n}\n\nconst shiftInput = () => {\n\tif (activeElementIndex.value > -1) {\n\t\tvueFlowElements.value[activeElementIndex.value].targetPosition = shiftTerminal(\n\t\t\tvueFlowElements.value[activeElementIndex.value].targetPosition\n\t\t)\n\t}\n}\n\nconst onWheel = $event => {\n\twindow.scrollBy(0, $event.deltaY)\n}\n\nconst handleKeypress = e => {\n\tif (hover.value && e.ctrlKey == true) {\n\t\tif (e.key == '+' || e.key == '=') {\n\t\t\tvueFlowInstance.value.zoomIn()\n\t\t}\n\t\tif (e.key == '-') {\n\t\t\tvueFlowInstance.value.zoomOut()\n\t\t}\n\t}\n}\n\nconst fitView = () => {\n\tvueFlowInstance.value.fitView()\n}\n\nconst addNode = () => {\n\tlet newNodePosition = { x: Math.random() * 200, y: Math.random() * 200 }\n\tlet makeEdge = false\n\tif (activeElementIndex.value > -1) {\n\t\tconst activeNode = vueFlowElements.value[activeElementIndex.value]\n\t\tif (activeNode.data.hasOutput) {\n\t\t\tnewNodePosition = { x: activeNode.position.x + 200, y: activeNode.position.y + 50 }\n\t\t\tmakeEdge = true\n\t\t}\n\t}\n\n\tlet id = vueFlowElements.value.length\n\tlet nodeId = `node-${id}`\n\tvueFlowElements.value.push({\n\t\tid: nodeId,\n\t\tlabel: 'Node ' + id,\n\t\tsourcePosition: 'right',\n\t\ttargetPosition: 'left',\n\t\tclass: 'vue-flow__node-default',\n\t\ttype: 'editable',\n\t\tdata: {\n\t\t\thasInput: true,\n\t\t\thasOutput: true,\n\t\t},\n\t\tevents: {\n\t\t\tclick: () => {\n\t\t\t\tactiveElementKey.value = nodeId\n\t\t\t},\n\t\t},\n\t\t// position: { x: Math.random() * vueFlowInstance.value.dimensions.width, y: Math.random() * vueFlowInstance.value.dimensions.height }\n\t\tposition: newNodePosition,\n\t})\n\n\tif (makeEdge) {\n\t\tlet edgeId = `edge-${id + 1}`\n\t\tvueFlowElements.value.push({\n\t\t\tid: edgeId,\n\t\t\tsource: activeElementKey.value,\n\t\t\ttarget: nodeId,\n\t\t\ttype: 'editable',\n\t\t\tlabel: `EDGE ${id + 1}`,\n\t\t\tanimated: true,\n\t\t\tevents: {\n\t\t\t\tclick: () => {\n\t\t\t\t\tactiveElementKey.value = edgeId\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t}\n}\n\nconst onConnect = e => {\n\tconsole.log('edge connect', e)\n}\n\nconst onEdgeDoubleClick = e => {\n\tconsole.log('edge double click', e)\n}\n\nconst labelChanged = (e, id) => {\n\tfor (let j = 0; j < vueFlowElements.value.length; j++) {\n\t\tif (vueFlowElements.value[j].id == id) {\n\t\t\tvueFlowElements.value[j].label = e\n\t\t\tbreak\n\t\t}\n\t}\n}\n</script>\n<style>\n@import '@vue-flow/core/dist/style.css';\n@import '@vue-flow/core/dist/theme-default.css';\n\n.chart-controls-left,\n.chart-controls-right {\n\theight: 1.8em;\n\tdisplay: flex;\n\tflex-direction: row;\n\talign-items: center;\n\tpadding-top: 0.2em;\n}\n.chart-controls-right div {\n\tmargin-left: 5px;\n}\n.chart-controls {\n\tpadding-left: 20px;\n\tpadding-right: 20px;\n\theight: 1.8em;\n\tborder-bottom: 1px solid #ccc;\n\tdisplay: flex;\n\tflex-direction: row;\n\tjustify-content: space-between;\n}\n.chart-controls div {\n\tmargin-bottom: 5px;\n}\n.defaultContainerClass {\n\theight: 90vh;\n\twidth: 100%;\n\tborder: 1px solid #ccc;\n}\n.default-input-node.vue-flow__node-input,\n.default-output-node.vue-flow__node-output {\n\tborder-color: #000;\n}\n.default-input-node.vue-flow__node-input .vue-flow__handle,\n.default-output-node.vue-flow__node-output .vue-flow__handle {\n\tbackground-color: #000;\n}\n.default-input-node.vue-flow__node-input.selected,\n.default-output-node.vue-flow__node-output.selected {\n\tbox-shadow: 0 0 0 0.5px #000;\n}\nbutton.button-default {\n\tbackground-color: #ffffff;\n\tpadding: 1px 12px;\n\tborder-radius: 3px;\n\tborder: 1px solid #ccc;\n\tcursor: pointer;\n\twhite-space: nowrap;\n}\n\nbutton.button-default:hover {\n\tbackground-color: #f2f2f2;\n}\n.vue-flow {\n\tbackground-size: 40px 40px;\n\tbackground-image: linear-gradient(to right, #ccc 1px, transparent 1px),\n\t\tlinear-gradient(to bottom, #ccc 1px, transparent 1px);\n}\ninput.label-editor {\n\tposition: absolute;\n}\n.node-editor-wrapper {\n\tposition: relative;\n}\n</style>\n","<template>\n\t<div>\n\t\t<NodeEditor v-model=\"elements\" :node-container-class=\"nodeContainerClass\" />\n\t</div>\n</template>\n<script lang=\"ts\" setup>\nimport { VueFlow } from '@vue-flow/core'\nimport '@vue-flow/core/dist/style.css'\nimport '@vue-flow/core/dist/theme-default.css'\nimport NodeEditor from './NodeEditor.vue'\nimport { ref, computed } from 'vue'\n\n// Props\n\nconst props = defineProps(['layout', 'nodeContainerClass', 'modelValue'])\n\n// Emits\n\nconst emit = defineEmits(['update:modelValue'])\n\n// Computed variables\n\nconst elements = computed({\n\tget: () => {\n\t\tlet states = props.modelValue\n\t\tlet stateHash = {}\n\t\tlet hasInputs = {}\n\t\tlet j = 0\n\t\tlet stateElements = []\n\t\tfor (let key in states) {\n\t\t\tlet idx = stateElements.length\n\t\t\tlet el = {\n\t\t\t\tid: key,\n\t\t\t\tlabel: key,\n\t\t\t\tposition: props.layout[key] && props.layout[key].position ? props.layout[key].position : { x: 200 * j, y: 100 },\n\t\t\t\ttargetPosition:\n\t\t\t\t\tprops.layout[key] && props.layout[key].targetPosition ? props.layout[key].targetPosition : 'left',\n\t\t\t\tsourcePosition:\n\t\t\t\t\tprops.layout[key] && props.layout[key].sourcePosition ? props.layout[key].sourcePosition : 'right',\n\t\t\t}\n\t\t\tif (states[key].type && states[key].type == 'final') {\n\t\t\t\tel.type = 'output'\n\t\t\t\tel.class = 'default-output-node'\n\t\t\t}\n\t\t\tstateHash[key] = el\n\t\t\tlet edges = states[key].on\n\t\t\tfor (let edgeKey in states[key].on) {\n\t\t\t\tlet target = edges[edgeKey]\n\t\t\t\tif (typeof target === 'object' && target.constructor === Object) {\n\t\t\t\t\ttarget = target.target\n\t\t\t\t}\n\t\t\t\tstateElements.push({\n\t\t\t\t\tid: `${key}-${edges[edgeKey]}-${edgeKey}`,\n\t\t\t\t\ttarget: target,\n\t\t\t\t\tsource: key,\n\t\t\t\t\tlabel: edgeKey,\n\t\t\t\t\tanimated: true,\n\t\t\t\t})\n\t\t\t\thasInputs[target] = true\n\t\t\t}\n\t\t\tj++\n\t\t}\n\t\tfor (let key in stateHash) {\n\t\t\tif (!hasInputs[key]) {\n\t\t\t\tstateHash[key]['type'] = 'input'\n\t\t\t\tstateHash[key]['class'] = 'default-input-node'\n\t\t\t}\n\t\t\tstateElements.push(stateHash[key])\n\t\t}\n\t\treturn stateElements\n\t},\n\tset: newValue => {\n\t\t// update modelValue when elements change\n\t\tonElementsChange(newValue)\n\t\t// emit('update:modelValue', props.modelValue)\n\t},\n})\n\n// Methods\n\nconst onElementsChange = elements => {\n\tlet states = {}\n\tlet edges = {}\n\tlet idToLabel = {}\n\tfor (let i = 0; i < elements.length; i++) {\n\t\tlet el = elements[i]\n\t\tif (el.type == 'input') {\n\t\t\t// it's an input node\n\t\t\tstates[el.label] = {\n\t\t\t\ton: {},\n\t\t\t}\n\t\t} else if (el.type == 'output') {\n\t\t\t// it's an output node\n\t\t\tstates[el.label] = {\n\t\t\t\ttype: 'final',\n\t\t\t}\n\t\t} else if (el.source && el.target) {\n\t\t\t// it's an edge\n\t\t\tedges[el.source] = edges[el.source] || {}\n\t\t\tedges[el.source][el.label] = {\n\t\t\t\ttarget: el.target,\n\t\t\t}\n\t\t} else {\n\t\t\t// it's a state\n\t\t\tstates[el.label] = {\n\t\t\t\ton: {},\n\t\t\t}\n\t\t}\n\t\tidToLabel[el.id] = el.label\n\t}\n\n\tfor (let key in edges) {\n\t\t// add edges to states\n\t\tlet label = idToLabel[key]\n\t\tfor (let edgeKey in edges[key]) {\n\t\t\tstates[label].on[edgeKey] = edges[key][edgeKey]\n\t\t}\n\t}\n\temit('update:modelValue', states)\n}\n</script>\n<style scoped></style>\n","import { App } from 'vue'\n\nimport NodeEditor from '@/components/NodeEditor.vue'\nimport StateEditor from '@/components/StateEditor.vue'\n\nfunction install(app: App /* options */) {\n\tapp.component('NodeEditor', NodeEditor)\n\tapp.component('StateEditor', StateEditor)\n}\n\nexport { install, NodeEditor, StateEditor }\n"],"names":["Eo","oo","Dr","zr","Ae","Ie","Pe","Ar","C","Br","i","r","yi","Rr","ie","Er","So","Vr","Sn","a","de","s","l","u","br","v","g","Mt","hi","Vt","Hr","on","Ve","Ue","Hn","x","h","d","w","S","V","p","Sr","y","N","T","ye","No","Lr","Gr","Fr","Yr","Xr","Zr","Ur","Yt","xi","_i","Co","Wr","Kr","qr","tt","wi","io","ro","jr","Mo","Qr","Jr","Ln","Gn","$o","ea","ta","na","oa","ko","ia","Oo","ra","aa","To","sa","la","yt","J","X","ua","wt","ca","da","Nr","he","Nn","ve","ao","Io","Fn","rn","je","so","Po","$e","fa","xt","nt","ha","ga","it","ce","lo","an","Ei","va","uo","Si","Xt","Ni","co","Ci","sn","Zt","ma","Mi","Xe","o","pa","ya","Do","j","fo","Ye","Qe","Yn","zo","$i","ki","Oi","Ti","ln","_a","He","fe","ho","rt","n","Wt","Ao","wa","ba","Ea","Cn","Bo","Sa","Ro","Ii","Na","Ca","Vo","Pi","It","Di","_","P","R","$","D","Q","m","G","A","E","Z","Y","L","f","B","F","I","U","ne","W","b","K","q","z","te","k","H","ee","Ma","$a","ka","Kt","ge","M","oe","se","Ke","xe","un","ue","Oa","cn","Ta","dn","Ia","Ho","Pa","Mn","zi","Da","za","go","Ai","Aa","Ba","Ra","Lo","Xn","Va","fn","Ht","Ha","La","Go","Zn","Fo","hn","Ga","Fa","Bi","Ya","vo","Xa","_e","Za","Ua","Ri","Wa","Ka","Vi","Hi","qa","ja","Qa","Ja","es","ts","ns","os","is","Li","rs","qt","as","ss","ls","us","cs","ds","fs","hs","gs","vs","ms","ps","ys","xs","_s","ws","bs","Es","Ss","Ns","Cs","Ms","$s","ks","Os","Gi","Ts","Is","Ps","Ds","ft","zs","As","Bs","Rs","Fi","mo","Yi","Xi","Zi","Vs","Hs","Ls","Gs","Fs","Ys","Xs","Zs","Us","Ws","Ks","qs","js","Qs","Js","el","tl","nl","ol","il","rl","al","sl","ll","ul","cl","dl","fl","hl","gl","Ui","vl","ml","pl","yl","Wi","$t","xl","we","_l","Ne","wl","bt","$n","Ki","qi","Pt","Un","bl","El","Sl","Nl","Cl","ji","Qi","Ji","Ml","er","st","Wn","t","$l","kl","_t","Ol","ut","gi","Tl","Il","Pl","Dl","zl","Al","Le","Ee","ct","vi","Ce","Cr","Vn","ze","mi","gn","tr","nr","Dt","Yo","Kn","mn","Bl","Xo","or","pn","Rl","Zo","Vl","Uo","Hl","Ll","qn","yn","ir","xn","Gl","rr","_n","Fl","Yl","Xl","po","Wo","Zl","Ul","Wl","Kl","ql","jl","Rd","Mr","Ql","Jl","eu","tu","c","$r","nu","ou","iu","ru","au","su","lu","uu","ar","cu","yo","sr","kt","jt","lt","Me","du","fu","hu","gu","vu","mu","pu","Ko","qo","yu","xu","jo","lr","Qo","pe","zt","ti","_u","jn","We","Qt","Jo","wu","ei","Ze","be","bu","ni","At","ur","Eu","Su","Nu","cr","oi","Re","Qn","On","Cu","Mu","$u","ii","Jn","dr","Bt","ku","Ou","fr","Tu","Iu","Pu","ri","Du","zu","Au","ht","mt","gt","hr","Jt","pt","en","Je","wn","Ct","gr","xo","Bu","tn","vr","eo","Ru","ai","Hu","Vu","si","Lu","Gu","mr","li","to","Lt","ui","no","Gt","Fu","_o","Se","ke","Ft","Yu","Xu","Zu","Uu","wo","pr","Wu","Ku","qu","ju","Qu","Ju","ec","tc","nc","oc","ic","rc","ac","lc","uc","cc","dc","hc","gc","vc","mc","Be","pc","yc","wc","bc","Ec","Sc","Nc","Cc","Mc","yr","$c","kc","Oc","Tc","Ic","Pc","Dc","Ac","Bc","Rc","Vc","Hc","Lc","xr","Gc","Yc","Xc","Uc","Rt","De","et","Tn","vt","Kc","qc","ci","jc","Qc","Jc","ed","In","Ge","td","nd","Pn","Dn","nn","Te","di","zn","An","od","O","ae","me","ot","kr","Or","id","Tr","fi","rd","ad","ld","ud","pi","dt","cd","dd","hd","gd","vd","md","pd","yd","qe","wd","bd","Ed","Sd","bo","Tt","_r","wr","En","Ot","Fe","Nd","Cd","Md","$d","kd","Od","Ld","Ir","Pr","props","__props","emit","__emit","positionMap","Position","sourcePosition","computed","targetPosition","labelInput","ref","newLabel","showInput","lastClick","nodeOnClick","now","showLabelInput","nextTick","submitNewLabel","__default__","useVueFlow","labelOnClick","path","getBezierPath","containerClass","vueFlowInstance","hover","activeElementKey","vueFlowElements","activeElementIndex","elements","_elements","key","newValue","getNodes","onPaneReady","onMounted","handleKeypress","onBeforeUnmount","shiftTerminal","currentTerminal","shiftOutput","shiftInput","onWheel","$event","e","fitView","addNode","newNodePosition","makeEdge","activeNode","nodeId","edgeId","onConnect","onEdgeDoubleClick","labelChanged","states","stateHash","hasInputs","stateElements","edges","edgeKey","target","onElementsChange","idToLabel","label","install","app","NodeEditor","StateEditor"],"mappings":"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","x_google_ignoreList":[0]}
1
+ {"version":3,"file":"node-editor.js","sources":["../../common/temp/node_modules/.pnpm/@vue-flow+core@1.37.1_vue@3.4.31/node_modules/@vue-flow/core/dist/vue-flow-core.mjs","../src/components/EditableEdge.vue","../src/components/EditableNode.vue","../src/components/NodeEditor.vue","../src/components/StateEditor.vue","../src/index.ts"],"sourcesContent":["import { getCurrentScope, onScopeDispose, isRef, reactive, unref, toRefs as toRefs$1, customRef, watch, ref, readonly, getCurrentInstance, nextTick, computed, toValue as toValue$1, inject, effectScope, toRef, markRaw, onBeforeMount, defineComponent, createPropsRestProxy, onUnmounted, openBlock, createElementBlock, normalizeClass, renderSlot, h, onMounted, normalizeStyle, createCommentVNode, createElementVNode, mergeProps, createBlock, resolveDynamicComponent, Fragment, createTextVNode, toDisplayString, useAttrs, provide, onBeforeUnmount, createVNode, withCtx, resolveComponent, renderList, isMemoSame, Teleport, useSlots } from \"vue\";\nfunction tryOnScopeDispose(fn) {\n if (getCurrentScope()) {\n onScopeDispose(fn);\n return true;\n }\n return false;\n}\nfunction toValue(r) {\n return typeof r === \"function\" ? r() : unref(r);\n}\nfunction toReactive(objectRef) {\n if (!isRef(objectRef))\n return reactive(objectRef);\n const proxy = new Proxy({}, {\n get(_, p, receiver) {\n return unref(Reflect.get(objectRef.value, p, receiver));\n },\n set(_, p, value) {\n if (isRef(objectRef.value[p]) && !isRef(value))\n objectRef.value[p].value = value;\n else\n objectRef.value[p] = value;\n return true;\n },\n deleteProperty(_, p) {\n return Reflect.deleteProperty(objectRef.value, p);\n },\n has(_, p) {\n return Reflect.has(objectRef.value, p);\n },\n ownKeys() {\n return Object.keys(objectRef.value);\n },\n getOwnPropertyDescriptor() {\n return {\n enumerable: true,\n configurable: true\n };\n }\n });\n return reactive(proxy);\n}\nconst isClient = typeof window !== \"undefined\" && typeof document !== \"undefined\";\nconst isDef$1 = (val) => typeof val !== \"undefined\";\nconst toString = Object.prototype.toString;\nconst isObject = (val) => toString.call(val) === \"[object Object]\";\nconst noop$2 = () => {\n};\nfunction createFilterWrapper(filter2, fn) {\n function wrapper(...args) {\n return new Promise((resolve, reject) => {\n Promise.resolve(filter2(() => fn.apply(this, args), { fn, thisArg: this, args })).then(resolve).catch(reject);\n });\n }\n return wrapper;\n}\nconst bypassFilter = (invoke) => {\n return invoke();\n};\nfunction pausableFilter(extendFilter = bypassFilter) {\n const isActive = ref(true);\n function pause() {\n isActive.value = false;\n }\n function resume() {\n isActive.value = true;\n }\n const eventFilter = (...args) => {\n if (isActive.value)\n extendFilter(...args);\n };\n return { isActive: readonly(isActive), pause, resume, eventFilter };\n}\nfunction promiseTimeout(ms, throwOnTimeout = false, reason = \"Timeout\") {\n return new Promise((resolve, reject) => {\n if (throwOnTimeout)\n setTimeout(() => reject(reason), ms);\n else\n setTimeout(resolve, ms);\n });\n}\nfunction watchWithFilter(source, cb, options = {}) {\n const {\n eventFilter = bypassFilter,\n ...watchOptions\n } = options;\n return watch(\n source,\n createFilterWrapper(\n eventFilter,\n cb\n ),\n watchOptions\n );\n}\nfunction watchPausable(source, cb, options = {}) {\n const {\n eventFilter: filter2,\n ...watchOptions\n } = options;\n const { eventFilter, pause, resume, isActive } = pausableFilter(filter2);\n const stop = watchWithFilter(\n source,\n cb,\n {\n ...watchOptions,\n eventFilter\n }\n );\n return { stop, pause, resume, isActive };\n}\nfunction toRefs(objectRef, options = {}) {\n if (!isRef(objectRef))\n return toRefs$1(objectRef);\n const result = Array.isArray(objectRef.value) ? Array.from({ length: objectRef.value.length }) : {};\n for (const key in objectRef.value) {\n result[key] = customRef(() => ({\n get() {\n return objectRef.value[key];\n },\n set(v) {\n var _a;\n const replaceRef = (_a = toValue(options.replaceRef)) != null ? _a : true;\n if (replaceRef) {\n if (Array.isArray(objectRef.value)) {\n const copy = [...objectRef.value];\n copy[key] = v;\n objectRef.value = copy;\n } else {\n const newObject = { ...objectRef.value, [key]: v };\n Object.setPrototypeOf(newObject, Object.getPrototypeOf(objectRef.value));\n objectRef.value = newObject;\n }\n } else {\n objectRef.value[key] = v;\n }\n }\n }));\n }\n return result;\n}\nfunction createUntil(r, isNot = false) {\n function toMatch(condition, { flush = \"sync\", deep = false, timeout: timeout2, throwOnTimeout } = {}) {\n let stop = null;\n const watcher = new Promise((resolve) => {\n stop = watch(\n r,\n (v) => {\n if (condition(v) !== isNot) {\n stop == null ? void 0 : stop();\n resolve(v);\n }\n },\n {\n flush,\n deep,\n immediate: true\n }\n );\n });\n const promises = [watcher];\n if (timeout2 != null) {\n promises.push(\n promiseTimeout(timeout2, throwOnTimeout).then(() => toValue(r)).finally(() => stop == null ? void 0 : stop())\n );\n }\n return Promise.race(promises);\n }\n function toBe(value, options) {\n if (!isRef(value))\n return toMatch((v) => v === value, options);\n const { flush = \"sync\", deep = false, timeout: timeout2, throwOnTimeout } = options != null ? options : {};\n let stop = null;\n const watcher = new Promise((resolve) => {\n stop = watch(\n [r, value],\n ([v1, v2]) => {\n if (isNot !== (v1 === v2)) {\n stop == null ? void 0 : stop();\n resolve(v1);\n }\n },\n {\n flush,\n deep,\n immediate: true\n }\n );\n });\n const promises = [watcher];\n if (timeout2 != null) {\n promises.push(\n promiseTimeout(timeout2, throwOnTimeout).then(() => toValue(r)).finally(() => {\n stop == null ? void 0 : stop();\n return toValue(r);\n })\n );\n }\n return Promise.race(promises);\n }\n function toBeTruthy(options) {\n return toMatch((v) => Boolean(v), options);\n }\n function toBeNull(options) {\n return toBe(null, options);\n }\n function toBeUndefined(options) {\n return toBe(void 0, options);\n }\n function toBeNaN(options) {\n return toMatch(Number.isNaN, options);\n }\n function toContains(value, options) {\n return toMatch((v) => {\n const array2 = Array.from(v);\n return array2.includes(value) || array2.includes(toValue(value));\n }, options);\n }\n function changed(options) {\n return changedTimes(1, options);\n }\n function changedTimes(n = 1, options) {\n let count = -1;\n return toMatch(() => {\n count += 1;\n return count >= n;\n }, options);\n }\n if (Array.isArray(toValue(r))) {\n const instance = {\n toMatch,\n toContains,\n changed,\n changedTimes,\n get not() {\n return createUntil(r, !isNot);\n }\n };\n return instance;\n } else {\n const instance = {\n toMatch,\n toBe,\n toBeTruthy,\n toBeNull,\n toBeNaN,\n toBeUndefined,\n changed,\n changedTimes,\n get not() {\n return createUntil(r, !isNot);\n }\n };\n return instance;\n }\n}\nfunction until(r) {\n return createUntil(r);\n}\nfunction unrefElement(elRef) {\n var _a;\n const plain = toValue(elRef);\n return (_a = plain == null ? void 0 : plain.$el) != null ? _a : plain;\n}\nconst defaultWindow = isClient ? window : void 0;\nfunction useEventListener(...args) {\n let target;\n let events;\n let listeners;\n let options;\n if (typeof args[0] === \"string\" || Array.isArray(args[0])) {\n [events, listeners, options] = args;\n target = defaultWindow;\n } else {\n [target, events, listeners, options] = args;\n }\n if (!target)\n return noop$2;\n if (!Array.isArray(events))\n events = [events];\n if (!Array.isArray(listeners))\n listeners = [listeners];\n const cleanups = [];\n const cleanup = () => {\n cleanups.forEach((fn) => fn());\n cleanups.length = 0;\n };\n const register = (el, event, listener, options2) => {\n el.addEventListener(event, listener, options2);\n return () => el.removeEventListener(event, listener, options2);\n };\n const stopWatch = watch(\n () => [unrefElement(target), toValue(options)],\n ([el, options2]) => {\n cleanup();\n if (!el)\n return;\n const optionsClone = isObject(options2) ? { ...options2 } : options2;\n cleanups.push(\n ...events.flatMap((event) => {\n return listeners.map((listener) => register(el, event, listener, optionsClone));\n })\n );\n },\n { immediate: true, flush: \"post\" }\n );\n const stop = () => {\n stopWatch();\n cleanup();\n };\n tryOnScopeDispose(stop);\n return stop;\n}\nfunction createKeyPredicate$1(keyFilter) {\n if (typeof keyFilter === \"function\")\n return keyFilter;\n else if (typeof keyFilter === \"string\")\n return (event) => event.key === keyFilter;\n else if (Array.isArray(keyFilter))\n return (event) => keyFilter.includes(event.key);\n return () => true;\n}\nfunction onKeyStroke(...args) {\n let key;\n let handler;\n let options = {};\n if (args.length === 3) {\n key = args[0];\n handler = args[1];\n options = args[2];\n } else if (args.length === 2) {\n if (typeof args[1] === \"object\") {\n key = true;\n handler = args[0];\n options = args[1];\n } else {\n key = args[0];\n handler = args[1];\n }\n } else {\n key = true;\n handler = args[0];\n }\n const {\n target = defaultWindow,\n eventName = \"keydown\",\n passive = false,\n dedupe = false\n } = options;\n const predicate = createKeyPredicate$1(key);\n const listener = (e) => {\n if (e.repeat && toValue(dedupe))\n return;\n if (predicate(e))\n handler(e);\n };\n return useEventListener(target, eventName, listener, passive);\n}\nfunction cloneFnJSON(source) {\n return JSON.parse(JSON.stringify(source));\n}\nfunction useVModel(props, key, emit, options = {}) {\n var _a, _b, _c;\n const {\n clone = false,\n passive = false,\n eventName,\n deep = false,\n defaultValue,\n shouldEmit\n } = options;\n const vm = getCurrentInstance();\n const _emit = emit || (vm == null ? void 0 : vm.emit) || ((_a = vm == null ? void 0 : vm.$emit) == null ? void 0 : _a.bind(vm)) || ((_c = (_b = vm == null ? void 0 : vm.proxy) == null ? void 0 : _b.$emit) == null ? void 0 : _c.bind(vm == null ? void 0 : vm.proxy));\n let event = eventName;\n if (!key) {\n {\n key = \"modelValue\";\n }\n }\n event = event || `update:${key.toString()}`;\n const cloneFn = (val) => !clone ? val : typeof clone === \"function\" ? clone(val) : cloneFnJSON(val);\n const getValue = () => isDef$1(props[key]) ? cloneFn(props[key]) : defaultValue;\n const triggerEmit = (value) => {\n if (shouldEmit) {\n if (shouldEmit(value))\n _emit(event, value);\n } else {\n _emit(event, value);\n }\n };\n if (passive) {\n const initialValue = getValue();\n const proxy = ref(initialValue);\n let isUpdating = false;\n watch(\n () => props[key],\n (v) => {\n if (!isUpdating) {\n isUpdating = true;\n proxy.value = cloneFn(v);\n nextTick(() => isUpdating = false);\n }\n }\n );\n watch(\n proxy,\n (v) => {\n if (!isUpdating && (v !== props[key] || deep))\n triggerEmit(v);\n },\n { deep }\n );\n return proxy;\n } else {\n return computed({\n get() {\n return getValue();\n },\n set(value) {\n triggerEmit(value);\n }\n });\n }\n}\nvar noop$1 = { value: () => {\n} };\nfunction dispatch() {\n for (var i = 0, n = arguments.length, _ = {}, t; i < n; ++i) {\n if (!(t = arguments[i] + \"\") || t in _ || /[\\s.]/.test(t))\n throw new Error(\"illegal type: \" + t);\n _[t] = [];\n }\n return new Dispatch(_);\n}\nfunction Dispatch(_) {\n this._ = _;\n}\nfunction parseTypenames$1(typenames, types) {\n return typenames.trim().split(/^|\\s+/).map(function(t) {\n var name = \"\", i = t.indexOf(\".\");\n if (i >= 0)\n name = t.slice(i + 1), t = t.slice(0, i);\n if (t && !types.hasOwnProperty(t))\n throw new Error(\"unknown type: \" + t);\n return { type: t, name };\n });\n}\nDispatch.prototype = dispatch.prototype = {\n constructor: Dispatch,\n on: function(typename, callback) {\n var _ = this._, T = parseTypenames$1(typename + \"\", _), t, i = -1, n = T.length;\n if (arguments.length < 2) {\n while (++i < n)\n if ((t = (typename = T[i]).type) && (t = get$1(_[t], typename.name)))\n return t;\n return;\n }\n if (callback != null && typeof callback !== \"function\")\n throw new Error(\"invalid callback: \" + callback);\n while (++i < n) {\n if (t = (typename = T[i]).type)\n _[t] = set$1(_[t], typename.name, callback);\n else if (callback == null)\n for (t in _)\n _[t] = set$1(_[t], typename.name, null);\n }\n return this;\n },\n copy: function() {\n var copy = {}, _ = this._;\n for (var t in _)\n copy[t] = _[t].slice();\n return new Dispatch(copy);\n },\n call: function(type, that) {\n if ((n = arguments.length - 2) > 0)\n for (var args = new Array(n), i = 0, n, t; i < n; ++i)\n args[i] = arguments[i + 2];\n if (!this._.hasOwnProperty(type))\n throw new Error(\"unknown type: \" + type);\n for (t = this._[type], i = 0, n = t.length; i < n; ++i)\n t[i].value.apply(that, args);\n },\n apply: function(type, that, args) {\n if (!this._.hasOwnProperty(type))\n throw new Error(\"unknown type: \" + type);\n for (var t = this._[type], i = 0, n = t.length; i < n; ++i)\n t[i].value.apply(that, args);\n }\n};\nfunction get$1(type, name) {\n for (var i = 0, n = type.length, c; i < n; ++i) {\n if ((c = type[i]).name === name) {\n return c.value;\n }\n }\n}\nfunction set$1(type, name, callback) {\n for (var i = 0, n = type.length; i < n; ++i) {\n if (type[i].name === name) {\n type[i] = noop$1, type = type.slice(0, i).concat(type.slice(i + 1));\n break;\n }\n }\n if (callback != null)\n type.push({ name, value: callback });\n return type;\n}\nvar xhtml = \"http://www.w3.org/1999/xhtml\";\nconst namespaces = {\n svg: \"http://www.w3.org/2000/svg\",\n xhtml,\n xlink: \"http://www.w3.org/1999/xlink\",\n xml: \"http://www.w3.org/XML/1998/namespace\",\n xmlns: \"http://www.w3.org/2000/xmlns/\"\n};\nfunction namespace(name) {\n var prefix = name += \"\", i = prefix.indexOf(\":\");\n if (i >= 0 && (prefix = name.slice(0, i)) !== \"xmlns\")\n name = name.slice(i + 1);\n return namespaces.hasOwnProperty(prefix) ? { space: namespaces[prefix], local: name } : name;\n}\nfunction creatorInherit(name) {\n return function() {\n var document2 = this.ownerDocument, uri = this.namespaceURI;\n return uri === xhtml && document2.documentElement.namespaceURI === xhtml ? document2.createElement(name) : document2.createElementNS(uri, name);\n };\n}\nfunction creatorFixed(fullname) {\n return function() {\n return this.ownerDocument.createElementNS(fullname.space, fullname.local);\n };\n}\nfunction creator(name) {\n var fullname = namespace(name);\n return (fullname.local ? creatorFixed : creatorInherit)(fullname);\n}\nfunction none() {\n}\nfunction selector(selector2) {\n return selector2 == null ? none : function() {\n return this.querySelector(selector2);\n };\n}\nfunction selection_select(select2) {\n if (typeof select2 !== \"function\")\n select2 = selector(select2);\n for (var groups = this._groups, m = groups.length, subgroups = new Array(m), j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, subgroup = subgroups[j] = new Array(n), node, subnode, i = 0; i < n; ++i) {\n if ((node = group[i]) && (subnode = select2.call(node, node.__data__, i, group))) {\n if (\"__data__\" in node)\n subnode.__data__ = node.__data__;\n subgroup[i] = subnode;\n }\n }\n }\n return new Selection$1(subgroups, this._parents);\n}\nfunction array(x) {\n return x == null ? [] : Array.isArray(x) ? x : Array.from(x);\n}\nfunction empty() {\n return [];\n}\nfunction selectorAll(selector2) {\n return selector2 == null ? empty : function() {\n return this.querySelectorAll(selector2);\n };\n}\nfunction arrayAll(select2) {\n return function() {\n return array(select2.apply(this, arguments));\n };\n}\nfunction selection_selectAll(select2) {\n if (typeof select2 === \"function\")\n select2 = arrayAll(select2);\n else\n select2 = selectorAll(select2);\n for (var groups = this._groups, m = groups.length, subgroups = [], parents = [], j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, node, i = 0; i < n; ++i) {\n if (node = group[i]) {\n subgroups.push(select2.call(node, node.__data__, i, group));\n parents.push(node);\n }\n }\n }\n return new Selection$1(subgroups, parents);\n}\nfunction matcher(selector2) {\n return function() {\n return this.matches(selector2);\n };\n}\nfunction childMatcher(selector2) {\n return function(node) {\n return node.matches(selector2);\n };\n}\nvar find = Array.prototype.find;\nfunction childFind(match) {\n return function() {\n return find.call(this.children, match);\n };\n}\nfunction childFirst() {\n return this.firstElementChild;\n}\nfunction selection_selectChild(match) {\n return this.select(match == null ? childFirst : childFind(typeof match === \"function\" ? match : childMatcher(match)));\n}\nvar filter = Array.prototype.filter;\nfunction children() {\n return Array.from(this.children);\n}\nfunction childrenFilter(match) {\n return function() {\n return filter.call(this.children, match);\n };\n}\nfunction selection_selectChildren(match) {\n return this.selectAll(match == null ? children : childrenFilter(typeof match === \"function\" ? match : childMatcher(match)));\n}\nfunction selection_filter(match) {\n if (typeof match !== \"function\")\n match = matcher(match);\n for (var groups = this._groups, m = groups.length, subgroups = new Array(m), j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, subgroup = subgroups[j] = [], node, i = 0; i < n; ++i) {\n if ((node = group[i]) && match.call(node, node.__data__, i, group)) {\n subgroup.push(node);\n }\n }\n }\n return new Selection$1(subgroups, this._parents);\n}\nfunction sparse(update) {\n return new Array(update.length);\n}\nfunction selection_enter() {\n return new Selection$1(this._enter || this._groups.map(sparse), this._parents);\n}\nfunction EnterNode(parent, datum2) {\n this.ownerDocument = parent.ownerDocument;\n this.namespaceURI = parent.namespaceURI;\n this._next = null;\n this._parent = parent;\n this.__data__ = datum2;\n}\nEnterNode.prototype = {\n constructor: EnterNode,\n appendChild: function(child) {\n return this._parent.insertBefore(child, this._next);\n },\n insertBefore: function(child, next) {\n return this._parent.insertBefore(child, next);\n },\n querySelector: function(selector2) {\n return this._parent.querySelector(selector2);\n },\n querySelectorAll: function(selector2) {\n return this._parent.querySelectorAll(selector2);\n }\n};\nfunction constant$3(x) {\n return function() {\n return x;\n };\n}\nfunction bindIndex(parent, group, enter, update, exit, data) {\n var i = 0, node, groupLength = group.length, dataLength = data.length;\n for (; i < dataLength; ++i) {\n if (node = group[i]) {\n node.__data__ = data[i];\n update[i] = node;\n } else {\n enter[i] = new EnterNode(parent, data[i]);\n }\n }\n for (; i < groupLength; ++i) {\n if (node = group[i]) {\n exit[i] = node;\n }\n }\n}\nfunction bindKey(parent, group, enter, update, exit, data, key) {\n var i, node, nodeByKeyValue = /* @__PURE__ */ new Map(), groupLength = group.length, dataLength = data.length, keyValues = new Array(groupLength), keyValue;\n for (i = 0; i < groupLength; ++i) {\n if (node = group[i]) {\n keyValues[i] = keyValue = key.call(node, node.__data__, i, group) + \"\";\n if (nodeByKeyValue.has(keyValue)) {\n exit[i] = node;\n } else {\n nodeByKeyValue.set(keyValue, node);\n }\n }\n }\n for (i = 0; i < dataLength; ++i) {\n keyValue = key.call(parent, data[i], i, data) + \"\";\n if (node = nodeByKeyValue.get(keyValue)) {\n update[i] = node;\n node.__data__ = data[i];\n nodeByKeyValue.delete(keyValue);\n } else {\n enter[i] = new EnterNode(parent, data[i]);\n }\n }\n for (i = 0; i < groupLength; ++i) {\n if ((node = group[i]) && nodeByKeyValue.get(keyValues[i]) === node) {\n exit[i] = node;\n }\n }\n}\nfunction datum(node) {\n return node.__data__;\n}\nfunction selection_data(value, key) {\n if (!arguments.length)\n return Array.from(this, datum);\n var bind = key ? bindKey : bindIndex, parents = this._parents, groups = this._groups;\n if (typeof value !== \"function\")\n value = constant$3(value);\n for (var m = groups.length, update = new Array(m), enter = new Array(m), exit = new Array(m), j = 0; j < m; ++j) {\n var parent = parents[j], group = groups[j], groupLength = group.length, data = arraylike(value.call(parent, parent && parent.__data__, j, parents)), dataLength = data.length, enterGroup = enter[j] = new Array(dataLength), updateGroup = update[j] = new Array(dataLength), exitGroup = exit[j] = new Array(groupLength);\n bind(parent, group, enterGroup, updateGroup, exitGroup, data, key);\n for (var i0 = 0, i1 = 0, previous, next; i0 < dataLength; ++i0) {\n if (previous = enterGroup[i0]) {\n if (i0 >= i1)\n i1 = i0 + 1;\n while (!(next = updateGroup[i1]) && ++i1 < dataLength)\n ;\n previous._next = next || null;\n }\n }\n }\n update = new Selection$1(update, parents);\n update._enter = enter;\n update._exit = exit;\n return update;\n}\nfunction arraylike(data) {\n return typeof data === \"object\" && \"length\" in data ? data : Array.from(data);\n}\nfunction selection_exit() {\n return new Selection$1(this._exit || this._groups.map(sparse), this._parents);\n}\nfunction selection_join(onenter, onupdate, onexit) {\n var enter = this.enter(), update = this, exit = this.exit();\n if (typeof onenter === \"function\") {\n enter = onenter(enter);\n if (enter)\n enter = enter.selection();\n } else {\n enter = enter.append(onenter + \"\");\n }\n if (onupdate != null) {\n update = onupdate(update);\n if (update)\n update = update.selection();\n }\n if (onexit == null)\n exit.remove();\n else\n onexit(exit);\n return enter && update ? enter.merge(update).order() : update;\n}\nfunction selection_merge(context) {\n var selection2 = context.selection ? context.selection() : context;\n for (var groups0 = this._groups, groups1 = selection2._groups, m0 = groups0.length, m1 = groups1.length, m = Math.min(m0, m1), merges = new Array(m0), j = 0; j < m; ++j) {\n for (var group0 = groups0[j], group1 = groups1[j], n = group0.length, merge = merges[j] = new Array(n), node, i = 0; i < n; ++i) {\n if (node = group0[i] || group1[i]) {\n merge[i] = node;\n }\n }\n }\n for (; j < m0; ++j) {\n merges[j] = groups0[j];\n }\n return new Selection$1(merges, this._parents);\n}\nfunction selection_order() {\n for (var groups = this._groups, j = -1, m = groups.length; ++j < m; ) {\n for (var group = groups[j], i = group.length - 1, next = group[i], node; --i >= 0; ) {\n if (node = group[i]) {\n if (next && node.compareDocumentPosition(next) ^ 4)\n next.parentNode.insertBefore(node, next);\n next = node;\n }\n }\n }\n return this;\n}\nfunction selection_sort(compare) {\n if (!compare)\n compare = ascending;\n function compareNode(a, b) {\n return a && b ? compare(a.__data__, b.__data__) : !a - !b;\n }\n for (var groups = this._groups, m = groups.length, sortgroups = new Array(m), j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, sortgroup = sortgroups[j] = new Array(n), node, i = 0; i < n; ++i) {\n if (node = group[i]) {\n sortgroup[i] = node;\n }\n }\n sortgroup.sort(compareNode);\n }\n return new Selection$1(sortgroups, this._parents).order();\n}\nfunction ascending(a, b) {\n return a < b ? -1 : a > b ? 1 : a >= b ? 0 : NaN;\n}\nfunction selection_call() {\n var callback = arguments[0];\n arguments[0] = this;\n callback.apply(null, arguments);\n return this;\n}\nfunction selection_nodes() {\n return Array.from(this);\n}\nfunction selection_node() {\n for (var groups = this._groups, j = 0, m = groups.length; j < m; ++j) {\n for (var group = groups[j], i = 0, n = group.length; i < n; ++i) {\n var node = group[i];\n if (node)\n return node;\n }\n }\n return null;\n}\nfunction selection_size() {\n let size = 0;\n for (const node of this)\n ++size;\n return size;\n}\nfunction selection_empty() {\n return !this.node();\n}\nfunction selection_each(callback) {\n for (var groups = this._groups, j = 0, m = groups.length; j < m; ++j) {\n for (var group = groups[j], i = 0, n = group.length, node; i < n; ++i) {\n if (node = group[i])\n callback.call(node, node.__data__, i, group);\n }\n }\n return this;\n}\nfunction attrRemove$1(name) {\n return function() {\n this.removeAttribute(name);\n };\n}\nfunction attrRemoveNS$1(fullname) {\n return function() {\n this.removeAttributeNS(fullname.space, fullname.local);\n };\n}\nfunction attrConstant$1(name, value) {\n return function() {\n this.setAttribute(name, value);\n };\n}\nfunction attrConstantNS$1(fullname, value) {\n return function() {\n this.setAttributeNS(fullname.space, fullname.local, value);\n };\n}\nfunction attrFunction$1(name, value) {\n return function() {\n var v = value.apply(this, arguments);\n if (v == null)\n this.removeAttribute(name);\n else\n this.setAttribute(name, v);\n };\n}\nfunction attrFunctionNS$1(fullname, value) {\n return function() {\n var v = value.apply(this, arguments);\n if (v == null)\n this.removeAttributeNS(fullname.space, fullname.local);\n else\n this.setAttributeNS(fullname.space, fullname.local, v);\n };\n}\nfunction selection_attr(name, value) {\n var fullname = namespace(name);\n if (arguments.length < 2) {\n var node = this.node();\n return fullname.local ? node.getAttributeNS(fullname.space, fullname.local) : node.getAttribute(fullname);\n }\n return this.each((value == null ? fullname.local ? attrRemoveNS$1 : attrRemove$1 : typeof value === \"function\" ? fullname.local ? attrFunctionNS$1 : attrFunction$1 : fullname.local ? attrConstantNS$1 : attrConstant$1)(fullname, value));\n}\nfunction defaultView(node) {\n return node.ownerDocument && node.ownerDocument.defaultView || node.document && node || node.defaultView;\n}\nfunction styleRemove$1(name) {\n return function() {\n this.style.removeProperty(name);\n };\n}\nfunction styleConstant$1(name, value, priority) {\n return function() {\n this.style.setProperty(name, value, priority);\n };\n}\nfunction styleFunction$1(name, value, priority) {\n return function() {\n var v = value.apply(this, arguments);\n if (v == null)\n this.style.removeProperty(name);\n else\n this.style.setProperty(name, v, priority);\n };\n}\nfunction selection_style(name, value, priority) {\n return arguments.length > 1 ? this.each((value == null ? styleRemove$1 : typeof value === \"function\" ? styleFunction$1 : styleConstant$1)(name, value, priority == null ? \"\" : priority)) : styleValue(this.node(), name);\n}\nfunction styleValue(node, name) {\n return node.style.getPropertyValue(name) || defaultView(node).getComputedStyle(node, null).getPropertyValue(name);\n}\nfunction propertyRemove(name) {\n return function() {\n delete this[name];\n };\n}\nfunction propertyConstant(name, value) {\n return function() {\n this[name] = value;\n };\n}\nfunction propertyFunction(name, value) {\n return function() {\n var v = value.apply(this, arguments);\n if (v == null)\n delete this[name];\n else\n this[name] = v;\n };\n}\nfunction selection_property(name, value) {\n return arguments.length > 1 ? this.each((value == null ? propertyRemove : typeof value === \"function\" ? propertyFunction : propertyConstant)(name, value)) : this.node()[name];\n}\nfunction classArray(string) {\n return string.trim().split(/^|\\s+/);\n}\nfunction classList(node) {\n return node.classList || new ClassList(node);\n}\nfunction ClassList(node) {\n this._node = node;\n this._names = classArray(node.getAttribute(\"class\") || \"\");\n}\nClassList.prototype = {\n add: function(name) {\n var i = this._names.indexOf(name);\n if (i < 0) {\n this._names.push(name);\n this._node.setAttribute(\"class\", this._names.join(\" \"));\n }\n },\n remove: function(name) {\n var i = this._names.indexOf(name);\n if (i >= 0) {\n this._names.splice(i, 1);\n this._node.setAttribute(\"class\", this._names.join(\" \"));\n }\n },\n contains: function(name) {\n return this._names.indexOf(name) >= 0;\n }\n};\nfunction classedAdd(node, names) {\n var list = classList(node), i = -1, n = names.length;\n while (++i < n)\n list.add(names[i]);\n}\nfunction classedRemove(node, names) {\n var list = classList(node), i = -1, n = names.length;\n while (++i < n)\n list.remove(names[i]);\n}\nfunction classedTrue(names) {\n return function() {\n classedAdd(this, names);\n };\n}\nfunction classedFalse(names) {\n return function() {\n classedRemove(this, names);\n };\n}\nfunction classedFunction(names, value) {\n return function() {\n (value.apply(this, arguments) ? classedAdd : classedRemove)(this, names);\n };\n}\nfunction selection_classed(name, value) {\n var names = classArray(name + \"\");\n if (arguments.length < 2) {\n var list = classList(this.node()), i = -1, n = names.length;\n while (++i < n)\n if (!list.contains(names[i]))\n return false;\n return true;\n }\n return this.each((typeof value === \"function\" ? classedFunction : value ? classedTrue : classedFalse)(names, value));\n}\nfunction textRemove() {\n this.textContent = \"\";\n}\nfunction textConstant$1(value) {\n return function() {\n this.textContent = value;\n };\n}\nfunction textFunction$1(value) {\n return function() {\n var v = value.apply(this, arguments);\n this.textContent = v == null ? \"\" : v;\n };\n}\nfunction selection_text(value) {\n return arguments.length ? this.each(value == null ? textRemove : (typeof value === \"function\" ? textFunction$1 : textConstant$1)(value)) : this.node().textContent;\n}\nfunction htmlRemove() {\n this.innerHTML = \"\";\n}\nfunction htmlConstant(value) {\n return function() {\n this.innerHTML = value;\n };\n}\nfunction htmlFunction(value) {\n return function() {\n var v = value.apply(this, arguments);\n this.innerHTML = v == null ? \"\" : v;\n };\n}\nfunction selection_html(value) {\n return arguments.length ? this.each(value == null ? htmlRemove : (typeof value === \"function\" ? htmlFunction : htmlConstant)(value)) : this.node().innerHTML;\n}\nfunction raise() {\n if (this.nextSibling)\n this.parentNode.appendChild(this);\n}\nfunction selection_raise() {\n return this.each(raise);\n}\nfunction lower() {\n if (this.previousSibling)\n this.parentNode.insertBefore(this, this.parentNode.firstChild);\n}\nfunction selection_lower() {\n return this.each(lower);\n}\nfunction selection_append(name) {\n var create2 = typeof name === \"function\" ? name : creator(name);\n return this.select(function() {\n return this.appendChild(create2.apply(this, arguments));\n });\n}\nfunction constantNull() {\n return null;\n}\nfunction selection_insert(name, before) {\n var create2 = typeof name === \"function\" ? name : creator(name), select2 = before == null ? constantNull : typeof before === \"function\" ? before : selector(before);\n return this.select(function() {\n return this.insertBefore(create2.apply(this, arguments), select2.apply(this, arguments) || null);\n });\n}\nfunction remove() {\n var parent = this.parentNode;\n if (parent)\n parent.removeChild(this);\n}\nfunction selection_remove() {\n return this.each(remove);\n}\nfunction selection_cloneShallow() {\n var clone = this.cloneNode(false), parent = this.parentNode;\n return parent ? parent.insertBefore(clone, this.nextSibling) : clone;\n}\nfunction selection_cloneDeep() {\n var clone = this.cloneNode(true), parent = this.parentNode;\n return parent ? parent.insertBefore(clone, this.nextSibling) : clone;\n}\nfunction selection_clone(deep) {\n return this.select(deep ? selection_cloneDeep : selection_cloneShallow);\n}\nfunction selection_datum(value) {\n return arguments.length ? this.property(\"__data__\", value) : this.node().__data__;\n}\nfunction contextListener(listener) {\n return function(event) {\n listener.call(this, event, this.__data__);\n };\n}\nfunction parseTypenames(typenames) {\n return typenames.trim().split(/^|\\s+/).map(function(t) {\n var name = \"\", i = t.indexOf(\".\");\n if (i >= 0)\n name = t.slice(i + 1), t = t.slice(0, i);\n return { type: t, name };\n });\n}\nfunction onRemove(typename) {\n return function() {\n var on = this.__on;\n if (!on)\n return;\n for (var j = 0, i = -1, m = on.length, o; j < m; ++j) {\n if (o = on[j], (!typename.type || o.type === typename.type) && o.name === typename.name) {\n this.removeEventListener(o.type, o.listener, o.options);\n } else {\n on[++i] = o;\n }\n }\n if (++i)\n on.length = i;\n else\n delete this.__on;\n };\n}\nfunction onAdd(typename, value, options) {\n return function() {\n var on = this.__on, o, listener = contextListener(value);\n if (on)\n for (var j = 0, m = on.length; j < m; ++j) {\n if ((o = on[j]).type === typename.type && o.name === typename.name) {\n this.removeEventListener(o.type, o.listener, o.options);\n this.addEventListener(o.type, o.listener = listener, o.options = options);\n o.value = value;\n return;\n }\n }\n this.addEventListener(typename.type, listener, options);\n o = { type: typename.type, name: typename.name, value, listener, options };\n if (!on)\n this.__on = [o];\n else\n on.push(o);\n };\n}\nfunction selection_on(typename, value, options) {\n var typenames = parseTypenames(typename + \"\"), i, n = typenames.length, t;\n if (arguments.length < 2) {\n var on = this.node().__on;\n if (on)\n for (var j = 0, m = on.length, o; j < m; ++j) {\n for (i = 0, o = on[j]; i < n; ++i) {\n if ((t = typenames[i]).type === o.type && t.name === o.name) {\n return o.value;\n }\n }\n }\n return;\n }\n on = value ? onAdd : onRemove;\n for (i = 0; i < n; ++i)\n this.each(on(typenames[i], value, options));\n return this;\n}\nfunction dispatchEvent(node, type, params) {\n var window2 = defaultView(node), event = window2.CustomEvent;\n if (typeof event === \"function\") {\n event = new event(type, params);\n } else {\n event = window2.document.createEvent(\"Event\");\n if (params)\n event.initEvent(type, params.bubbles, params.cancelable), event.detail = params.detail;\n else\n event.initEvent(type, false, false);\n }\n node.dispatchEvent(event);\n}\nfunction dispatchConstant(type, params) {\n return function() {\n return dispatchEvent(this, type, params);\n };\n}\nfunction dispatchFunction(type, params) {\n return function() {\n return dispatchEvent(this, type, params.apply(this, arguments));\n };\n}\nfunction selection_dispatch(type, params) {\n return this.each((typeof params === \"function\" ? dispatchFunction : dispatchConstant)(type, params));\n}\nfunction* selection_iterator() {\n for (var groups = this._groups, j = 0, m = groups.length; j < m; ++j) {\n for (var group = groups[j], i = 0, n = group.length, node; i < n; ++i) {\n if (node = group[i])\n yield node;\n }\n }\n}\nvar root = [null];\nfunction Selection$1(groups, parents) {\n this._groups = groups;\n this._parents = parents;\n}\nfunction selection() {\n return new Selection$1([[document.documentElement]], root);\n}\nfunction selection_selection() {\n return this;\n}\nSelection$1.prototype = selection.prototype = {\n constructor: Selection$1,\n select: selection_select,\n selectAll: selection_selectAll,\n selectChild: selection_selectChild,\n selectChildren: selection_selectChildren,\n filter: selection_filter,\n data: selection_data,\n enter: selection_enter,\n exit: selection_exit,\n join: selection_join,\n merge: selection_merge,\n selection: selection_selection,\n order: selection_order,\n sort: selection_sort,\n call: selection_call,\n nodes: selection_nodes,\n node: selection_node,\n size: selection_size,\n empty: selection_empty,\n each: selection_each,\n attr: selection_attr,\n style: selection_style,\n property: selection_property,\n classed: selection_classed,\n text: selection_text,\n html: selection_html,\n raise: selection_raise,\n lower: selection_lower,\n append: selection_append,\n insert: selection_insert,\n remove: selection_remove,\n clone: selection_clone,\n datum: selection_datum,\n on: selection_on,\n dispatch: selection_dispatch,\n [Symbol.iterator]: selection_iterator\n};\nfunction select(selector2) {\n return typeof selector2 === \"string\" ? new Selection$1([[document.querySelector(selector2)]], [document.documentElement]) : new Selection$1([[selector2]], root);\n}\nfunction sourceEvent(event) {\n let sourceEvent2;\n while (sourceEvent2 = event.sourceEvent)\n event = sourceEvent2;\n return event;\n}\nfunction pointer(event, node) {\n event = sourceEvent(event);\n if (node === void 0)\n node = event.currentTarget;\n if (node) {\n var svg = node.ownerSVGElement || node;\n if (svg.createSVGPoint) {\n var point = svg.createSVGPoint();\n point.x = event.clientX, point.y = event.clientY;\n point = point.matrixTransform(node.getScreenCTM().inverse());\n return [point.x, point.y];\n }\n if (node.getBoundingClientRect) {\n var rect = node.getBoundingClientRect();\n return [event.clientX - rect.left - node.clientLeft, event.clientY - rect.top - node.clientTop];\n }\n }\n return [event.pageX, event.pageY];\n}\nconst nonpassive = { passive: false };\nconst nonpassivecapture = { capture: true, passive: false };\nfunction nopropagation$1(event) {\n event.stopImmediatePropagation();\n}\nfunction noevent$1(event) {\n event.preventDefault();\n event.stopImmediatePropagation();\n}\nfunction dragDisable(view) {\n var root2 = view.document.documentElement, selection2 = select(view).on(\"dragstart.drag\", noevent$1, nonpassivecapture);\n if (\"onselectstart\" in root2) {\n selection2.on(\"selectstart.drag\", noevent$1, nonpassivecapture);\n } else {\n root2.__noselect = root2.style.MozUserSelect;\n root2.style.MozUserSelect = \"none\";\n }\n}\nfunction yesdrag(view, noclick) {\n var root2 = view.document.documentElement, selection2 = select(view).on(\"dragstart.drag\", null);\n if (noclick) {\n selection2.on(\"click.drag\", noevent$1, nonpassivecapture);\n setTimeout(function() {\n selection2.on(\"click.drag\", null);\n }, 0);\n }\n if (\"onselectstart\" in root2) {\n selection2.on(\"selectstart.drag\", null);\n } else {\n root2.style.MozUserSelect = root2.__noselect;\n delete root2.__noselect;\n }\n}\nconst constant$2 = (x) => () => x;\nfunction DragEvent(type, {\n sourceEvent: sourceEvent2,\n subject,\n target,\n identifier,\n active,\n x,\n y,\n dx,\n dy,\n dispatch: dispatch2\n}) {\n Object.defineProperties(this, {\n type: { value: type, enumerable: true, configurable: true },\n sourceEvent: { value: sourceEvent2, enumerable: true, configurable: true },\n subject: { value: subject, enumerable: true, configurable: true },\n target: { value: target, enumerable: true, configurable: true },\n identifier: { value: identifier, enumerable: true, configurable: true },\n active: { value: active, enumerable: true, configurable: true },\n x: { value: x, enumerable: true, configurable: true },\n y: { value: y, enumerable: true, configurable: true },\n dx: { value: dx, enumerable: true, configurable: true },\n dy: { value: dy, enumerable: true, configurable: true },\n _: { value: dispatch2 }\n });\n}\nDragEvent.prototype.on = function() {\n var value = this._.on.apply(this._, arguments);\n return value === this._ ? this : value;\n};\nfunction defaultFilter$1(event) {\n return !event.ctrlKey && !event.button;\n}\nfunction defaultContainer() {\n return this.parentNode;\n}\nfunction defaultSubject(event, d) {\n return d == null ? { x: event.x, y: event.y } : d;\n}\nfunction defaultTouchable$1() {\n return navigator.maxTouchPoints || \"ontouchstart\" in this;\n}\nfunction drag() {\n var filter2 = defaultFilter$1, container = defaultContainer, subject = defaultSubject, touchable = defaultTouchable$1, gestures = {}, listeners = dispatch(\"start\", \"drag\", \"end\"), active = 0, mousedownx, mousedowny, mousemoving, touchending, clickDistance2 = 0;\n function drag2(selection2) {\n selection2.on(\"mousedown.drag\", mousedowned).filter(touchable).on(\"touchstart.drag\", touchstarted).on(\"touchmove.drag\", touchmoved, nonpassive).on(\"touchend.drag touchcancel.drag\", touchended).style(\"touch-action\", \"none\").style(\"-webkit-tap-highlight-color\", \"rgba(0,0,0,0)\");\n }\n function mousedowned(event, d) {\n if (touchending || !filter2.call(this, event, d))\n return;\n var gesture = beforestart(this, container.call(this, event, d), event, d, \"mouse\");\n if (!gesture)\n return;\n select(event.view).on(\"mousemove.drag\", mousemoved, nonpassivecapture).on(\"mouseup.drag\", mouseupped, nonpassivecapture);\n dragDisable(event.view);\n nopropagation$1(event);\n mousemoving = false;\n mousedownx = event.clientX;\n mousedowny = event.clientY;\n gesture(\"start\", event);\n }\n function mousemoved(event) {\n noevent$1(event);\n if (!mousemoving) {\n var dx = event.clientX - mousedownx, dy = event.clientY - mousedowny;\n mousemoving = dx * dx + dy * dy > clickDistance2;\n }\n gestures.mouse(\"drag\", event);\n }\n function mouseupped(event) {\n select(event.view).on(\"mousemove.drag mouseup.drag\", null);\n yesdrag(event.view, mousemoving);\n noevent$1(event);\n gestures.mouse(\"end\", event);\n }\n function touchstarted(event, d) {\n if (!filter2.call(this, event, d))\n return;\n var touches = event.changedTouches, c = container.call(this, event, d), n = touches.length, i, gesture;\n for (i = 0; i < n; ++i) {\n if (gesture = beforestart(this, c, event, d, touches[i].identifier, touches[i])) {\n nopropagation$1(event);\n gesture(\"start\", event, touches[i]);\n }\n }\n }\n function touchmoved(event) {\n var touches = event.changedTouches, n = touches.length, i, gesture;\n for (i = 0; i < n; ++i) {\n if (gesture = gestures[touches[i].identifier]) {\n noevent$1(event);\n gesture(\"drag\", event, touches[i]);\n }\n }\n }\n function touchended(event) {\n var touches = event.changedTouches, n = touches.length, i, gesture;\n if (touchending)\n clearTimeout(touchending);\n touchending = setTimeout(function() {\n touchending = null;\n }, 500);\n for (i = 0; i < n; ++i) {\n if (gesture = gestures[touches[i].identifier]) {\n nopropagation$1(event);\n gesture(\"end\", event, touches[i]);\n }\n }\n }\n function beforestart(that, container2, event, d, identifier, touch) {\n var dispatch2 = listeners.copy(), p = pointer(touch || event, container2), dx, dy, s;\n if ((s = subject.call(that, new DragEvent(\"beforestart\", {\n sourceEvent: event,\n target: drag2,\n identifier,\n active,\n x: p[0],\n y: p[1],\n dx: 0,\n dy: 0,\n dispatch: dispatch2\n }), d)) == null)\n return;\n dx = s.x - p[0] || 0;\n dy = s.y - p[1] || 0;\n return function gesture(type, event2, touch2) {\n var p0 = p, n;\n switch (type) {\n case \"start\":\n gestures[identifier] = gesture, n = active++;\n break;\n case \"end\":\n delete gestures[identifier], --active;\n case \"drag\":\n p = pointer(touch2 || event2, container2), n = active;\n break;\n }\n dispatch2.call(\n type,\n that,\n new DragEvent(type, {\n sourceEvent: event2,\n subject: s,\n target: drag2,\n identifier,\n active: n,\n x: p[0] + dx,\n y: p[1] + dy,\n dx: p[0] - p0[0],\n dy: p[1] - p0[1],\n dispatch: dispatch2\n }),\n d\n );\n };\n }\n drag2.filter = function(_) {\n return arguments.length ? (filter2 = typeof _ === \"function\" ? _ : constant$2(!!_), drag2) : filter2;\n };\n drag2.container = function(_) {\n return arguments.length ? (container = typeof _ === \"function\" ? _ : constant$2(_), drag2) : container;\n };\n drag2.subject = function(_) {\n return arguments.length ? (subject = typeof _ === \"function\" ? _ : constant$2(_), drag2) : subject;\n };\n drag2.touchable = function(_) {\n return arguments.length ? (touchable = typeof _ === \"function\" ? _ : constant$2(!!_), drag2) : touchable;\n };\n drag2.on = function() {\n var value = listeners.on.apply(listeners, arguments);\n return value === listeners ? drag2 : value;\n };\n drag2.clickDistance = function(_) {\n return arguments.length ? (clickDistance2 = (_ = +_) * _, drag2) : Math.sqrt(clickDistance2);\n };\n return drag2;\n}\nfunction define(constructor, factory, prototype) {\n constructor.prototype = factory.prototype = prototype;\n prototype.constructor = constructor;\n}\nfunction extend(parent, definition) {\n var prototype = Object.create(parent.prototype);\n for (var key in definition)\n prototype[key] = definition[key];\n return prototype;\n}\nfunction Color() {\n}\nvar darker = 0.7;\nvar brighter = 1 / darker;\nvar reI = \"\\\\s*([+-]?\\\\d+)\\\\s*\", reN = \"\\\\s*([+-]?(?:\\\\d*\\\\.)?\\\\d+(?:[eE][+-]?\\\\d+)?)\\\\s*\", reP = \"\\\\s*([+-]?(?:\\\\d*\\\\.)?\\\\d+(?:[eE][+-]?\\\\d+)?)%\\\\s*\", reHex = /^#([0-9a-f]{3,8})$/, reRgbInteger = new RegExp(`^rgb\\\\(${reI},${reI},${reI}\\\\)$`), reRgbPercent = new RegExp(`^rgb\\\\(${reP},${reP},${reP}\\\\)$`), reRgbaInteger = new RegExp(`^rgba\\\\(${reI},${reI},${reI},${reN}\\\\)$`), reRgbaPercent = new RegExp(`^rgba\\\\(${reP},${reP},${reP},${reN}\\\\)$`), reHslPercent = new RegExp(`^hsl\\\\(${reN},${reP},${reP}\\\\)$`), reHslaPercent = new RegExp(`^hsla\\\\(${reN},${reP},${reP},${reN}\\\\)$`);\nvar named = {\n aliceblue: 15792383,\n antiquewhite: 16444375,\n aqua: 65535,\n aquamarine: 8388564,\n azure: 15794175,\n beige: 16119260,\n bisque: 16770244,\n black: 0,\n blanchedalmond: 16772045,\n blue: 255,\n blueviolet: 9055202,\n brown: 10824234,\n burlywood: 14596231,\n cadetblue: 6266528,\n chartreuse: 8388352,\n chocolate: 13789470,\n coral: 16744272,\n cornflowerblue: 6591981,\n cornsilk: 16775388,\n crimson: 14423100,\n cyan: 65535,\n darkblue: 139,\n darkcyan: 35723,\n darkgoldenrod: 12092939,\n darkgray: 11119017,\n darkgreen: 25600,\n darkgrey: 11119017,\n darkkhaki: 12433259,\n darkmagenta: 9109643,\n darkolivegreen: 5597999,\n darkorange: 16747520,\n darkorchid: 10040012,\n darkred: 9109504,\n darksalmon: 15308410,\n darkseagreen: 9419919,\n darkslateblue: 4734347,\n darkslategray: 3100495,\n darkslategrey: 3100495,\n darkturquoise: 52945,\n darkviolet: 9699539,\n deeppink: 16716947,\n deepskyblue: 49151,\n dimgray: 6908265,\n dimgrey: 6908265,\n dodgerblue: 2003199,\n firebrick: 11674146,\n floralwhite: 16775920,\n forestgreen: 2263842,\n fuchsia: 16711935,\n gainsboro: 14474460,\n ghostwhite: 16316671,\n gold: 16766720,\n goldenrod: 14329120,\n gray: 8421504,\n green: 32768,\n greenyellow: 11403055,\n grey: 8421504,\n honeydew: 15794160,\n hotpink: 16738740,\n indianred: 13458524,\n indigo: 4915330,\n ivory: 16777200,\n khaki: 15787660,\n lavender: 15132410,\n lavenderblush: 16773365,\n lawngreen: 8190976,\n lemonchiffon: 16775885,\n lightblue: 11393254,\n lightcoral: 15761536,\n lightcyan: 14745599,\n lightgoldenrodyellow: 16448210,\n lightgray: 13882323,\n lightgreen: 9498256,\n lightgrey: 13882323,\n lightpink: 16758465,\n lightsalmon: 16752762,\n lightseagreen: 2142890,\n lightskyblue: 8900346,\n lightslategray: 7833753,\n lightslategrey: 7833753,\n lightsteelblue: 11584734,\n lightyellow: 16777184,\n lime: 65280,\n limegreen: 3329330,\n linen: 16445670,\n magenta: 16711935,\n maroon: 8388608,\n mediumaquamarine: 6737322,\n mediumblue: 205,\n mediumorchid: 12211667,\n mediumpurple: 9662683,\n mediumseagreen: 3978097,\n mediumslateblue: 8087790,\n mediumspringgreen: 64154,\n mediumturquoise: 4772300,\n mediumvioletred: 13047173,\n midnightblue: 1644912,\n mintcream: 16121850,\n mistyrose: 16770273,\n moccasin: 16770229,\n navajowhite: 16768685,\n navy: 128,\n oldlace: 16643558,\n olive: 8421376,\n olivedrab: 7048739,\n orange: 16753920,\n orangered: 16729344,\n orchid: 14315734,\n palegoldenrod: 15657130,\n palegreen: 10025880,\n paleturquoise: 11529966,\n palevioletred: 14381203,\n papayawhip: 16773077,\n peachpuff: 16767673,\n peru: 13468991,\n pink: 16761035,\n plum: 14524637,\n powderblue: 11591910,\n purple: 8388736,\n rebeccapurple: 6697881,\n red: 16711680,\n rosybrown: 12357519,\n royalblue: 4286945,\n saddlebrown: 9127187,\n salmon: 16416882,\n sandybrown: 16032864,\n seagreen: 3050327,\n seashell: 16774638,\n sienna: 10506797,\n silver: 12632256,\n skyblue: 8900331,\n slateblue: 6970061,\n slategray: 7372944,\n slategrey: 7372944,\n snow: 16775930,\n springgreen: 65407,\n steelblue: 4620980,\n tan: 13808780,\n teal: 32896,\n thistle: 14204888,\n tomato: 16737095,\n turquoise: 4251856,\n violet: 15631086,\n wheat: 16113331,\n white: 16777215,\n whitesmoke: 16119285,\n yellow: 16776960,\n yellowgreen: 10145074\n};\ndefine(Color, color, {\n copy(channels) {\n return Object.assign(new this.constructor(), this, channels);\n },\n displayable() {\n return this.rgb().displayable();\n },\n hex: color_formatHex,\n // Deprecated! Use color.formatHex.\n formatHex: color_formatHex,\n formatHex8: color_formatHex8,\n formatHsl: color_formatHsl,\n formatRgb: color_formatRgb,\n toString: color_formatRgb\n});\nfunction color_formatHex() {\n return this.rgb().formatHex();\n}\nfunction color_formatHex8() {\n return this.rgb().formatHex8();\n}\nfunction color_formatHsl() {\n return hslConvert(this).formatHsl();\n}\nfunction color_formatRgb() {\n return this.rgb().formatRgb();\n}\nfunction color(format) {\n var m, l;\n format = (format + \"\").trim().toLowerCase();\n return (m = reHex.exec(format)) ? (l = m[1].length, m = parseInt(m[1], 16), l === 6 ? rgbn(m) : l === 3 ? new Rgb(m >> 8 & 15 | m >> 4 & 240, m >> 4 & 15 | m & 240, (m & 15) << 4 | m & 15, 1) : l === 8 ? rgba(m >> 24 & 255, m >> 16 & 255, m >> 8 & 255, (m & 255) / 255) : l === 4 ? rgba(m >> 12 & 15 | m >> 8 & 240, m >> 8 & 15 | m >> 4 & 240, m >> 4 & 15 | m & 240, ((m & 15) << 4 | m & 15) / 255) : null) : (m = reRgbInteger.exec(format)) ? new Rgb(m[1], m[2], m[3], 1) : (m = reRgbPercent.exec(format)) ? new Rgb(m[1] * 255 / 100, m[2] * 255 / 100, m[3] * 255 / 100, 1) : (m = reRgbaInteger.exec(format)) ? rgba(m[1], m[2], m[3], m[4]) : (m = reRgbaPercent.exec(format)) ? rgba(m[1] * 255 / 100, m[2] * 255 / 100, m[3] * 255 / 100, m[4]) : (m = reHslPercent.exec(format)) ? hsla(m[1], m[2] / 100, m[3] / 100, 1) : (m = reHslaPercent.exec(format)) ? hsla(m[1], m[2] / 100, m[3] / 100, m[4]) : named.hasOwnProperty(format) ? rgbn(named[format]) : format === \"transparent\" ? new Rgb(NaN, NaN, NaN, 0) : null;\n}\nfunction rgbn(n) {\n return new Rgb(n >> 16 & 255, n >> 8 & 255, n & 255, 1);\n}\nfunction rgba(r, g, b, a) {\n if (a <= 0)\n r = g = b = NaN;\n return new Rgb(r, g, b, a);\n}\nfunction rgbConvert(o) {\n if (!(o instanceof Color))\n o = color(o);\n if (!o)\n return new Rgb();\n o = o.rgb();\n return new Rgb(o.r, o.g, o.b, o.opacity);\n}\nfunction rgb(r, g, b, opacity) {\n return arguments.length === 1 ? rgbConvert(r) : new Rgb(r, g, b, opacity == null ? 1 : opacity);\n}\nfunction Rgb(r, g, b, opacity) {\n this.r = +r;\n this.g = +g;\n this.b = +b;\n this.opacity = +opacity;\n}\ndefine(Rgb, rgb, extend(Color, {\n brighter(k) {\n k = k == null ? brighter : Math.pow(brighter, k);\n return new Rgb(this.r * k, this.g * k, this.b * k, this.opacity);\n },\n darker(k) {\n k = k == null ? darker : Math.pow(darker, k);\n return new Rgb(this.r * k, this.g * k, this.b * k, this.opacity);\n },\n rgb() {\n return this;\n },\n clamp() {\n return new Rgb(clampi(this.r), clampi(this.g), clampi(this.b), clampa(this.opacity));\n },\n displayable() {\n return -0.5 <= this.r && this.r < 255.5 && (-0.5 <= this.g && this.g < 255.5) && (-0.5 <= this.b && this.b < 255.5) && (0 <= this.opacity && this.opacity <= 1);\n },\n hex: rgb_formatHex,\n // Deprecated! Use color.formatHex.\n formatHex: rgb_formatHex,\n formatHex8: rgb_formatHex8,\n formatRgb: rgb_formatRgb,\n toString: rgb_formatRgb\n}));\nfunction rgb_formatHex() {\n return `#${hex(this.r)}${hex(this.g)}${hex(this.b)}`;\n}\nfunction rgb_formatHex8() {\n return `#${hex(this.r)}${hex(this.g)}${hex(this.b)}${hex((isNaN(this.opacity) ? 1 : this.opacity) * 255)}`;\n}\nfunction rgb_formatRgb() {\n const a = clampa(this.opacity);\n return `${a === 1 ? \"rgb(\" : \"rgba(\"}${clampi(this.r)}, ${clampi(this.g)}, ${clampi(this.b)}${a === 1 ? \")\" : `, ${a})`}`;\n}\nfunction clampa(opacity) {\n return isNaN(opacity) ? 1 : Math.max(0, Math.min(1, opacity));\n}\nfunction clampi(value) {\n return Math.max(0, Math.min(255, Math.round(value) || 0));\n}\nfunction hex(value) {\n value = clampi(value);\n return (value < 16 ? \"0\" : \"\") + value.toString(16);\n}\nfunction hsla(h2, s, l, a) {\n if (a <= 0)\n h2 = s = l = NaN;\n else if (l <= 0 || l >= 1)\n h2 = s = NaN;\n else if (s <= 0)\n h2 = NaN;\n return new Hsl(h2, s, l, a);\n}\nfunction hslConvert(o) {\n if (o instanceof Hsl)\n return new Hsl(o.h, o.s, o.l, o.opacity);\n if (!(o instanceof Color))\n o = color(o);\n if (!o)\n return new Hsl();\n if (o instanceof Hsl)\n return o;\n o = o.rgb();\n var r = o.r / 255, g = o.g / 255, b = o.b / 255, min = Math.min(r, g, b), max = Math.max(r, g, b), h2 = NaN, s = max - min, l = (max + min) / 2;\n if (s) {\n if (r === max)\n h2 = (g - b) / s + (g < b) * 6;\n else if (g === max)\n h2 = (b - r) / s + 2;\n else\n h2 = (r - g) / s + 4;\n s /= l < 0.5 ? max + min : 2 - max - min;\n h2 *= 60;\n } else {\n s = l > 0 && l < 1 ? 0 : h2;\n }\n return new Hsl(h2, s, l, o.opacity);\n}\nfunction hsl(h2, s, l, opacity) {\n return arguments.length === 1 ? hslConvert(h2) : new Hsl(h2, s, l, opacity == null ? 1 : opacity);\n}\nfunction Hsl(h2, s, l, opacity) {\n this.h = +h2;\n this.s = +s;\n this.l = +l;\n this.opacity = +opacity;\n}\ndefine(Hsl, hsl, extend(Color, {\n brighter(k) {\n k = k == null ? brighter : Math.pow(brighter, k);\n return new Hsl(this.h, this.s, this.l * k, this.opacity);\n },\n darker(k) {\n k = k == null ? darker : Math.pow(darker, k);\n return new Hsl(this.h, this.s, this.l * k, this.opacity);\n },\n rgb() {\n var h2 = this.h % 360 + (this.h < 0) * 360, s = isNaN(h2) || isNaN(this.s) ? 0 : this.s, l = this.l, m2 = l + (l < 0.5 ? l : 1 - l) * s, m1 = 2 * l - m2;\n return new Rgb(\n hsl2rgb(h2 >= 240 ? h2 - 240 : h2 + 120, m1, m2),\n hsl2rgb(h2, m1, m2),\n hsl2rgb(h2 < 120 ? h2 + 240 : h2 - 120, m1, m2),\n this.opacity\n );\n },\n clamp() {\n return new Hsl(clamph(this.h), clampt(this.s), clampt(this.l), clampa(this.opacity));\n },\n displayable() {\n return (0 <= this.s && this.s <= 1 || isNaN(this.s)) && (0 <= this.l && this.l <= 1) && (0 <= this.opacity && this.opacity <= 1);\n },\n formatHsl() {\n const a = clampa(this.opacity);\n return `${a === 1 ? \"hsl(\" : \"hsla(\"}${clamph(this.h)}, ${clampt(this.s) * 100}%, ${clampt(this.l) * 100}%${a === 1 ? \")\" : `, ${a})`}`;\n }\n}));\nfunction clamph(value) {\n value = (value || 0) % 360;\n return value < 0 ? value + 360 : value;\n}\nfunction clampt(value) {\n return Math.max(0, Math.min(1, value || 0));\n}\nfunction hsl2rgb(h2, m1, m2) {\n return (h2 < 60 ? m1 + (m2 - m1) * h2 / 60 : h2 < 180 ? m2 : h2 < 240 ? m1 + (m2 - m1) * (240 - h2) / 60 : m1) * 255;\n}\nconst constant$1 = (x) => () => x;\nfunction linear(a, d) {\n return function(t) {\n return a + t * d;\n };\n}\nfunction exponential(a, b, y) {\n return a = Math.pow(a, y), b = Math.pow(b, y) - a, y = 1 / y, function(t) {\n return Math.pow(a + t * b, y);\n };\n}\nfunction gamma(y) {\n return (y = +y) === 1 ? nogamma : function(a, b) {\n return b - a ? exponential(a, b, y) : constant$1(isNaN(a) ? b : a);\n };\n}\nfunction nogamma(a, b) {\n var d = b - a;\n return d ? linear(a, d) : constant$1(isNaN(a) ? b : a);\n}\nconst interpolateRgb = function rgbGamma(y) {\n var color2 = gamma(y);\n function rgb$1(start2, end) {\n var r = color2((start2 = rgb(start2)).r, (end = rgb(end)).r), g = color2(start2.g, end.g), b = color2(start2.b, end.b), opacity = nogamma(start2.opacity, end.opacity);\n return function(t) {\n start2.r = r(t);\n start2.g = g(t);\n start2.b = b(t);\n start2.opacity = opacity(t);\n return start2 + \"\";\n };\n }\n rgb$1.gamma = rgbGamma;\n return rgb$1;\n}(1);\nfunction interpolateNumber(a, b) {\n return a = +a, b = +b, function(t) {\n return a * (1 - t) + b * t;\n };\n}\nvar reA = /[-+]?(?:\\d+\\.?\\d*|\\.?\\d+)(?:[eE][-+]?\\d+)?/g, reB = new RegExp(reA.source, \"g\");\nfunction zero(b) {\n return function() {\n return b;\n };\n}\nfunction one(b) {\n return function(t) {\n return b(t) + \"\";\n };\n}\nfunction interpolateString(a, b) {\n var bi = reA.lastIndex = reB.lastIndex = 0, am, bm, bs, i = -1, s = [], q = [];\n a = a + \"\", b = b + \"\";\n while ((am = reA.exec(a)) && (bm = reB.exec(b))) {\n if ((bs = bm.index) > bi) {\n bs = b.slice(bi, bs);\n if (s[i])\n s[i] += bs;\n else\n s[++i] = bs;\n }\n if ((am = am[0]) === (bm = bm[0])) {\n if (s[i])\n s[i] += bm;\n else\n s[++i] = bm;\n } else {\n s[++i] = null;\n q.push({ i, x: interpolateNumber(am, bm) });\n }\n bi = reB.lastIndex;\n }\n if (bi < b.length) {\n bs = b.slice(bi);\n if (s[i])\n s[i] += bs;\n else\n s[++i] = bs;\n }\n return s.length < 2 ? q[0] ? one(q[0].x) : zero(b) : (b = q.length, function(t) {\n for (var i2 = 0, o; i2 < b; ++i2)\n s[(o = q[i2]).i] = o.x(t);\n return s.join(\"\");\n });\n}\nvar degrees = 180 / Math.PI;\nvar identity$1 = {\n translateX: 0,\n translateY: 0,\n rotate: 0,\n skewX: 0,\n scaleX: 1,\n scaleY: 1\n};\nfunction decompose(a, b, c, d, e, f) {\n var scaleX, scaleY, skewX;\n if (scaleX = Math.sqrt(a * a + b * b))\n a /= scaleX, b /= scaleX;\n if (skewX = a * c + b * d)\n c -= a * skewX, d -= b * skewX;\n if (scaleY = Math.sqrt(c * c + d * d))\n c /= scaleY, d /= scaleY, skewX /= scaleY;\n if (a * d < b * c)\n a = -a, b = -b, skewX = -skewX, scaleX = -scaleX;\n return {\n translateX: e,\n translateY: f,\n rotate: Math.atan2(b, a) * degrees,\n skewX: Math.atan(skewX) * degrees,\n scaleX,\n scaleY\n };\n}\nvar svgNode;\nfunction parseCss(value) {\n const m = new (typeof DOMMatrix === \"function\" ? DOMMatrix : WebKitCSSMatrix)(value + \"\");\n return m.isIdentity ? identity$1 : decompose(m.a, m.b, m.c, m.d, m.e, m.f);\n}\nfunction parseSvg(value) {\n if (value == null)\n return identity$1;\n if (!svgNode)\n svgNode = document.createElementNS(\"http://www.w3.org/2000/svg\", \"g\");\n svgNode.setAttribute(\"transform\", value);\n if (!(value = svgNode.transform.baseVal.consolidate()))\n return identity$1;\n value = value.matrix;\n return decompose(value.a, value.b, value.c, value.d, value.e, value.f);\n}\nfunction interpolateTransform(parse, pxComma, pxParen, degParen) {\n function pop(s) {\n return s.length ? s.pop() + \" \" : \"\";\n }\n function translate(xa, ya, xb, yb, s, q) {\n if (xa !== xb || ya !== yb) {\n var i = s.push(\"translate(\", null, pxComma, null, pxParen);\n q.push({ i: i - 4, x: interpolateNumber(xa, xb) }, { i: i - 2, x: interpolateNumber(ya, yb) });\n } else if (xb || yb) {\n s.push(\"translate(\" + xb + pxComma + yb + pxParen);\n }\n }\n function rotate(a, b, s, q) {\n if (a !== b) {\n if (a - b > 180)\n b += 360;\n else if (b - a > 180)\n a += 360;\n q.push({ i: s.push(pop(s) + \"rotate(\", null, degParen) - 2, x: interpolateNumber(a, b) });\n } else if (b) {\n s.push(pop(s) + \"rotate(\" + b + degParen);\n }\n }\n function skewX(a, b, s, q) {\n if (a !== b) {\n q.push({ i: s.push(pop(s) + \"skewX(\", null, degParen) - 2, x: interpolateNumber(a, b) });\n } else if (b) {\n s.push(pop(s) + \"skewX(\" + b + degParen);\n }\n }\n function scale(xa, ya, xb, yb, s, q) {\n if (xa !== xb || ya !== yb) {\n var i = s.push(pop(s) + \"scale(\", null, \",\", null, \")\");\n q.push({ i: i - 4, x: interpolateNumber(xa, xb) }, { i: i - 2, x: interpolateNumber(ya, yb) });\n } else if (xb !== 1 || yb !== 1) {\n s.push(pop(s) + \"scale(\" + xb + \",\" + yb + \")\");\n }\n }\n return function(a, b) {\n var s = [], q = [];\n a = parse(a), b = parse(b);\n translate(a.translateX, a.translateY, b.translateX, b.translateY, s, q);\n rotate(a.rotate, b.rotate, s, q);\n skewX(a.skewX, b.skewX, s, q);\n scale(a.scaleX, a.scaleY, b.scaleX, b.scaleY, s, q);\n a = b = null;\n return function(t) {\n var i = -1, n = q.length, o;\n while (++i < n)\n s[(o = q[i]).i] = o.x(t);\n return s.join(\"\");\n };\n };\n}\nvar interpolateTransformCss = interpolateTransform(parseCss, \"px, \", \"px)\", \"deg)\");\nvar interpolateTransformSvg = interpolateTransform(parseSvg, \", \", \")\", \")\");\nvar epsilon2 = 1e-12;\nfunction cosh(x) {\n return ((x = Math.exp(x)) + 1 / x) / 2;\n}\nfunction sinh(x) {\n return ((x = Math.exp(x)) - 1 / x) / 2;\n}\nfunction tanh(x) {\n return ((x = Math.exp(2 * x)) - 1) / (x + 1);\n}\nconst interpolateZoom = function zoomRho(rho, rho2, rho4) {\n function zoom2(p0, p1) {\n var ux0 = p0[0], uy0 = p0[1], w0 = p0[2], ux1 = p1[0], uy1 = p1[1], w1 = p1[2], dx = ux1 - ux0, dy = uy1 - uy0, d2 = dx * dx + dy * dy, i, S;\n if (d2 < epsilon2) {\n S = Math.log(w1 / w0) / rho;\n i = function(t) {\n return [\n ux0 + t * dx,\n uy0 + t * dy,\n w0 * Math.exp(rho * t * S)\n ];\n };\n } else {\n var d1 = Math.sqrt(d2), b0 = (w1 * w1 - w0 * w0 + rho4 * d2) / (2 * w0 * rho2 * d1), b1 = (w1 * w1 - w0 * w0 - rho4 * d2) / (2 * w1 * rho2 * d1), r0 = Math.log(Math.sqrt(b0 * b0 + 1) - b0), r1 = Math.log(Math.sqrt(b1 * b1 + 1) - b1);\n S = (r1 - r0) / rho;\n i = function(t) {\n var s = t * S, coshr0 = cosh(r0), u = w0 / (rho2 * d1) * (coshr0 * tanh(rho * s + r0) - sinh(r0));\n return [\n ux0 + u * dx,\n uy0 + u * dy,\n w0 * coshr0 / cosh(rho * s + r0)\n ];\n };\n }\n i.duration = S * 1e3 * rho / Math.SQRT2;\n return i;\n }\n zoom2.rho = function(_) {\n var _1 = Math.max(1e-3, +_), _2 = _1 * _1, _4 = _2 * _2;\n return zoomRho(_1, _2, _4);\n };\n return zoom2;\n}(Math.SQRT2, 2, 4);\nvar frame = 0, timeout$1 = 0, interval = 0, pokeDelay = 1e3, taskHead, taskTail, clockLast = 0, clockNow = 0, clockSkew = 0, clock = typeof performance === \"object\" && performance.now ? performance : Date, setFrame = typeof window === \"object\" && window.requestAnimationFrame ? window.requestAnimationFrame.bind(window) : function(f) {\n setTimeout(f, 17);\n};\nfunction now() {\n return clockNow || (setFrame(clearNow), clockNow = clock.now() + clockSkew);\n}\nfunction clearNow() {\n clockNow = 0;\n}\nfunction Timer() {\n this._call = this._time = this._next = null;\n}\nTimer.prototype = timer.prototype = {\n constructor: Timer,\n restart: function(callback, delay, time) {\n if (typeof callback !== \"function\")\n throw new TypeError(\"callback is not a function\");\n time = (time == null ? now() : +time) + (delay == null ? 0 : +delay);\n if (!this._next && taskTail !== this) {\n if (taskTail)\n taskTail._next = this;\n else\n taskHead = this;\n taskTail = this;\n }\n this._call = callback;\n this._time = time;\n sleep();\n },\n stop: function() {\n if (this._call) {\n this._call = null;\n this._time = Infinity;\n sleep();\n }\n }\n};\nfunction timer(callback, delay, time) {\n var t = new Timer();\n t.restart(callback, delay, time);\n return t;\n}\nfunction timerFlush() {\n now();\n ++frame;\n var t = taskHead, e;\n while (t) {\n if ((e = clockNow - t._time) >= 0)\n t._call.call(void 0, e);\n t = t._next;\n }\n --frame;\n}\nfunction wake() {\n clockNow = (clockLast = clock.now()) + clockSkew;\n frame = timeout$1 = 0;\n try {\n timerFlush();\n } finally {\n frame = 0;\n nap();\n clockNow = 0;\n }\n}\nfunction poke() {\n var now2 = clock.now(), delay = now2 - clockLast;\n if (delay > pokeDelay)\n clockSkew -= delay, clockLast = now2;\n}\nfunction nap() {\n var t0, t1 = taskHead, t2, time = Infinity;\n while (t1) {\n if (t1._call) {\n if (time > t1._time)\n time = t1._time;\n t0 = t1, t1 = t1._next;\n } else {\n t2 = t1._next, t1._next = null;\n t1 = t0 ? t0._next = t2 : taskHead = t2;\n }\n }\n taskTail = t0;\n sleep(time);\n}\nfunction sleep(time) {\n if (frame)\n return;\n if (timeout$1)\n timeout$1 = clearTimeout(timeout$1);\n var delay = time - clockNow;\n if (delay > 24) {\n if (time < Infinity)\n timeout$1 = setTimeout(wake, time - clock.now() - clockSkew);\n if (interval)\n interval = clearInterval(interval);\n } else {\n if (!interval)\n clockLast = clock.now(), interval = setInterval(poke, pokeDelay);\n frame = 1, setFrame(wake);\n }\n}\nfunction timeout(callback, delay, time) {\n var t = new Timer();\n delay = delay == null ? 0 : +delay;\n t.restart((elapsed) => {\n t.stop();\n callback(elapsed + delay);\n }, delay, time);\n return t;\n}\nvar emptyOn = dispatch(\"start\", \"end\", \"cancel\", \"interrupt\");\nvar emptyTween = [];\nvar CREATED = 0;\nvar SCHEDULED = 1;\nvar STARTING = 2;\nvar STARTED = 3;\nvar RUNNING = 4;\nvar ENDING = 5;\nvar ENDED = 6;\nfunction schedule(node, name, id2, index, group, timing) {\n var schedules = node.__transition;\n if (!schedules)\n node.__transition = {};\n else if (id2 in schedules)\n return;\n create(node, id2, {\n name,\n index,\n // For context during callback.\n group,\n // For context during callback.\n on: emptyOn,\n tween: emptyTween,\n time: timing.time,\n delay: timing.delay,\n duration: timing.duration,\n ease: timing.ease,\n timer: null,\n state: CREATED\n });\n}\nfunction init(node, id2) {\n var schedule2 = get(node, id2);\n if (schedule2.state > CREATED)\n throw new Error(\"too late; already scheduled\");\n return schedule2;\n}\nfunction set(node, id2) {\n var schedule2 = get(node, id2);\n if (schedule2.state > STARTED)\n throw new Error(\"too late; already running\");\n return schedule2;\n}\nfunction get(node, id2) {\n var schedule2 = node.__transition;\n if (!schedule2 || !(schedule2 = schedule2[id2]))\n throw new Error(\"transition not found\");\n return schedule2;\n}\nfunction create(node, id2, self) {\n var schedules = node.__transition, tween;\n schedules[id2] = self;\n self.timer = timer(schedule2, 0, self.time);\n function schedule2(elapsed) {\n self.state = SCHEDULED;\n self.timer.restart(start2, self.delay, self.time);\n if (self.delay <= elapsed)\n start2(elapsed - self.delay);\n }\n function start2(elapsed) {\n var i, j, n, o;\n if (self.state !== SCHEDULED)\n return stop();\n for (i in schedules) {\n o = schedules[i];\n if (o.name !== self.name)\n continue;\n if (o.state === STARTED)\n return timeout(start2);\n if (o.state === RUNNING) {\n o.state = ENDED;\n o.timer.stop();\n o.on.call(\"interrupt\", node, node.__data__, o.index, o.group);\n delete schedules[i];\n } else if (+i < id2) {\n o.state = ENDED;\n o.timer.stop();\n o.on.call(\"cancel\", node, node.__data__, o.index, o.group);\n delete schedules[i];\n }\n }\n timeout(function() {\n if (self.state === STARTED) {\n self.state = RUNNING;\n self.timer.restart(tick, self.delay, self.time);\n tick(elapsed);\n }\n });\n self.state = STARTING;\n self.on.call(\"start\", node, node.__data__, self.index, self.group);\n if (self.state !== STARTING)\n return;\n self.state = STARTED;\n tween = new Array(n = self.tween.length);\n for (i = 0, j = -1; i < n; ++i) {\n if (o = self.tween[i].value.call(node, node.__data__, self.index, self.group)) {\n tween[++j] = o;\n }\n }\n tween.length = j + 1;\n }\n function tick(elapsed) {\n var t = elapsed < self.duration ? self.ease.call(null, elapsed / self.duration) : (self.timer.restart(stop), self.state = ENDING, 1), i = -1, n = tween.length;\n while (++i < n) {\n tween[i].call(node, t);\n }\n if (self.state === ENDING) {\n self.on.call(\"end\", node, node.__data__, self.index, self.group);\n stop();\n }\n }\n function stop() {\n self.state = ENDED;\n self.timer.stop();\n delete schedules[id2];\n for (var i in schedules)\n return;\n delete node.__transition;\n }\n}\nfunction interrupt(node, name) {\n var schedules = node.__transition, schedule2, active, empty2 = true, i;\n if (!schedules)\n return;\n name = name == null ? null : name + \"\";\n for (i in schedules) {\n if ((schedule2 = schedules[i]).name !== name) {\n empty2 = false;\n continue;\n }\n active = schedule2.state > STARTING && schedule2.state < ENDING;\n schedule2.state = ENDED;\n schedule2.timer.stop();\n schedule2.on.call(active ? \"interrupt\" : \"cancel\", node, node.__data__, schedule2.index, schedule2.group);\n delete schedules[i];\n }\n if (empty2)\n delete node.__transition;\n}\nfunction selection_interrupt(name) {\n return this.each(function() {\n interrupt(this, name);\n });\n}\nfunction tweenRemove(id2, name) {\n var tween0, tween1;\n return function() {\n var schedule2 = set(this, id2), tween = schedule2.tween;\n if (tween !== tween0) {\n tween1 = tween0 = tween;\n for (var i = 0, n = tween1.length; i < n; ++i) {\n if (tween1[i].name === name) {\n tween1 = tween1.slice();\n tween1.splice(i, 1);\n break;\n }\n }\n }\n schedule2.tween = tween1;\n };\n}\nfunction tweenFunction(id2, name, value) {\n var tween0, tween1;\n if (typeof value !== \"function\")\n throw new Error();\n return function() {\n var schedule2 = set(this, id2), tween = schedule2.tween;\n if (tween !== tween0) {\n tween1 = (tween0 = tween).slice();\n for (var t = { name, value }, i = 0, n = tween1.length; i < n; ++i) {\n if (tween1[i].name === name) {\n tween1[i] = t;\n break;\n }\n }\n if (i === n)\n tween1.push(t);\n }\n schedule2.tween = tween1;\n };\n}\nfunction transition_tween(name, value) {\n var id2 = this._id;\n name += \"\";\n if (arguments.length < 2) {\n var tween = get(this.node(), id2).tween;\n for (var i = 0, n = tween.length, t; i < n; ++i) {\n if ((t = tween[i]).name === name) {\n return t.value;\n }\n }\n return null;\n }\n return this.each((value == null ? tweenRemove : tweenFunction)(id2, name, value));\n}\nfunction tweenValue(transition2, name, value) {\n var id2 = transition2._id;\n transition2.each(function() {\n var schedule2 = set(this, id2);\n (schedule2.value || (schedule2.value = {}))[name] = value.apply(this, arguments);\n });\n return function(node) {\n return get(node, id2).value[name];\n };\n}\nfunction interpolate(a, b) {\n var c;\n return (typeof b === \"number\" ? interpolateNumber : b instanceof color ? interpolateRgb : (c = color(b)) ? (b = c, interpolateRgb) : interpolateString)(a, b);\n}\nfunction attrRemove(name) {\n return function() {\n this.removeAttribute(name);\n };\n}\nfunction attrRemoveNS(fullname) {\n return function() {\n this.removeAttributeNS(fullname.space, fullname.local);\n };\n}\nfunction attrConstant(name, interpolate2, value1) {\n var string00, string1 = value1 + \"\", interpolate0;\n return function() {\n var string0 = this.getAttribute(name);\n return string0 === string1 ? null : string0 === string00 ? interpolate0 : interpolate0 = interpolate2(string00 = string0, value1);\n };\n}\nfunction attrConstantNS(fullname, interpolate2, value1) {\n var string00, string1 = value1 + \"\", interpolate0;\n return function() {\n var string0 = this.getAttributeNS(fullname.space, fullname.local);\n return string0 === string1 ? null : string0 === string00 ? interpolate0 : interpolate0 = interpolate2(string00 = string0, value1);\n };\n}\nfunction attrFunction(name, interpolate2, value) {\n var string00, string10, interpolate0;\n return function() {\n var string0, value1 = value(this), string1;\n if (value1 == null)\n return void this.removeAttribute(name);\n string0 = this.getAttribute(name);\n string1 = value1 + \"\";\n return string0 === string1 ? null : string0 === string00 && string1 === string10 ? interpolate0 : (string10 = string1, interpolate0 = interpolate2(string00 = string0, value1));\n };\n}\nfunction attrFunctionNS(fullname, interpolate2, value) {\n var string00, string10, interpolate0;\n return function() {\n var string0, value1 = value(this), string1;\n if (value1 == null)\n return void this.removeAttributeNS(fullname.space, fullname.local);\n string0 = this.getAttributeNS(fullname.space, fullname.local);\n string1 = value1 + \"\";\n return string0 === string1 ? null : string0 === string00 && string1 === string10 ? interpolate0 : (string10 = string1, interpolate0 = interpolate2(string00 = string0, value1));\n };\n}\nfunction transition_attr(name, value) {\n var fullname = namespace(name), i = fullname === \"transform\" ? interpolateTransformSvg : interpolate;\n return this.attrTween(name, typeof value === \"function\" ? (fullname.local ? attrFunctionNS : attrFunction)(fullname, i, tweenValue(this, \"attr.\" + name, value)) : value == null ? (fullname.local ? attrRemoveNS : attrRemove)(fullname) : (fullname.local ? attrConstantNS : attrConstant)(fullname, i, value));\n}\nfunction attrInterpolate(name, i) {\n return function(t) {\n this.setAttribute(name, i.call(this, t));\n };\n}\nfunction attrInterpolateNS(fullname, i) {\n return function(t) {\n this.setAttributeNS(fullname.space, fullname.local, i.call(this, t));\n };\n}\nfunction attrTweenNS(fullname, value) {\n var t0, i0;\n function tween() {\n var i = value.apply(this, arguments);\n if (i !== i0)\n t0 = (i0 = i) && attrInterpolateNS(fullname, i);\n return t0;\n }\n tween._value = value;\n return tween;\n}\nfunction attrTween(name, value) {\n var t0, i0;\n function tween() {\n var i = value.apply(this, arguments);\n if (i !== i0)\n t0 = (i0 = i) && attrInterpolate(name, i);\n return t0;\n }\n tween._value = value;\n return tween;\n}\nfunction transition_attrTween(name, value) {\n var key = \"attr.\" + name;\n if (arguments.length < 2)\n return (key = this.tween(key)) && key._value;\n if (value == null)\n return this.tween(key, null);\n if (typeof value !== \"function\")\n throw new Error();\n var fullname = namespace(name);\n return this.tween(key, (fullname.local ? attrTweenNS : attrTween)(fullname, value));\n}\nfunction delayFunction(id2, value) {\n return function() {\n init(this, id2).delay = +value.apply(this, arguments);\n };\n}\nfunction delayConstant(id2, value) {\n return value = +value, function() {\n init(this, id2).delay = value;\n };\n}\nfunction transition_delay(value) {\n var id2 = this._id;\n return arguments.length ? this.each((typeof value === \"function\" ? delayFunction : delayConstant)(id2, value)) : get(this.node(), id2).delay;\n}\nfunction durationFunction(id2, value) {\n return function() {\n set(this, id2).duration = +value.apply(this, arguments);\n };\n}\nfunction durationConstant(id2, value) {\n return value = +value, function() {\n set(this, id2).duration = value;\n };\n}\nfunction transition_duration(value) {\n var id2 = this._id;\n return arguments.length ? this.each((typeof value === \"function\" ? durationFunction : durationConstant)(id2, value)) : get(this.node(), id2).duration;\n}\nfunction easeConstant(id2, value) {\n if (typeof value !== \"function\")\n throw new Error();\n return function() {\n set(this, id2).ease = value;\n };\n}\nfunction transition_ease(value) {\n var id2 = this._id;\n return arguments.length ? this.each(easeConstant(id2, value)) : get(this.node(), id2).ease;\n}\nfunction easeVarying(id2, value) {\n return function() {\n var v = value.apply(this, arguments);\n if (typeof v !== \"function\")\n throw new Error();\n set(this, id2).ease = v;\n };\n}\nfunction transition_easeVarying(value) {\n if (typeof value !== \"function\")\n throw new Error();\n return this.each(easeVarying(this._id, value));\n}\nfunction transition_filter(match) {\n if (typeof match !== \"function\")\n match = matcher(match);\n for (var groups = this._groups, m = groups.length, subgroups = new Array(m), j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, subgroup = subgroups[j] = [], node, i = 0; i < n; ++i) {\n if ((node = group[i]) && match.call(node, node.__data__, i, group)) {\n subgroup.push(node);\n }\n }\n }\n return new Transition(subgroups, this._parents, this._name, this._id);\n}\nfunction transition_merge(transition2) {\n if (transition2._id !== this._id)\n throw new Error();\n for (var groups0 = this._groups, groups1 = transition2._groups, m0 = groups0.length, m1 = groups1.length, m = Math.min(m0, m1), merges = new Array(m0), j = 0; j < m; ++j) {\n for (var group0 = groups0[j], group1 = groups1[j], n = group0.length, merge = merges[j] = new Array(n), node, i = 0; i < n; ++i) {\n if (node = group0[i] || group1[i]) {\n merge[i] = node;\n }\n }\n }\n for (; j < m0; ++j) {\n merges[j] = groups0[j];\n }\n return new Transition(merges, this._parents, this._name, this._id);\n}\nfunction start(name) {\n return (name + \"\").trim().split(/^|\\s+/).every(function(t) {\n var i = t.indexOf(\".\");\n if (i >= 0)\n t = t.slice(0, i);\n return !t || t === \"start\";\n });\n}\nfunction onFunction(id2, name, listener) {\n var on0, on1, sit = start(name) ? init : set;\n return function() {\n var schedule2 = sit(this, id2), on = schedule2.on;\n if (on !== on0)\n (on1 = (on0 = on).copy()).on(name, listener);\n schedule2.on = on1;\n };\n}\nfunction transition_on(name, listener) {\n var id2 = this._id;\n return arguments.length < 2 ? get(this.node(), id2).on.on(name) : this.each(onFunction(id2, name, listener));\n}\nfunction removeFunction(id2) {\n return function() {\n var parent = this.parentNode;\n for (var i in this.__transition)\n if (+i !== id2)\n return;\n if (parent)\n parent.removeChild(this);\n };\n}\nfunction transition_remove() {\n return this.on(\"end.remove\", removeFunction(this._id));\n}\nfunction transition_select(select2) {\n var name = this._name, id2 = this._id;\n if (typeof select2 !== \"function\")\n select2 = selector(select2);\n for (var groups = this._groups, m = groups.length, subgroups = new Array(m), j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, subgroup = subgroups[j] = new Array(n), node, subnode, i = 0; i < n; ++i) {\n if ((node = group[i]) && (subnode = select2.call(node, node.__data__, i, group))) {\n if (\"__data__\" in node)\n subnode.__data__ = node.__data__;\n subgroup[i] = subnode;\n schedule(subgroup[i], name, id2, i, subgroup, get(node, id2));\n }\n }\n }\n return new Transition(subgroups, this._parents, name, id2);\n}\nfunction transition_selectAll(select2) {\n var name = this._name, id2 = this._id;\n if (typeof select2 !== \"function\")\n select2 = selectorAll(select2);\n for (var groups = this._groups, m = groups.length, subgroups = [], parents = [], j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, node, i = 0; i < n; ++i) {\n if (node = group[i]) {\n for (var children2 = select2.call(node, node.__data__, i, group), child, inherit2 = get(node, id2), k = 0, l = children2.length; k < l; ++k) {\n if (child = children2[k]) {\n schedule(child, name, id2, k, children2, inherit2);\n }\n }\n subgroups.push(children2);\n parents.push(node);\n }\n }\n }\n return new Transition(subgroups, parents, name, id2);\n}\nvar Selection = selection.prototype.constructor;\nfunction transition_selection() {\n return new Selection(this._groups, this._parents);\n}\nfunction styleNull(name, interpolate2) {\n var string00, string10, interpolate0;\n return function() {\n var string0 = styleValue(this, name), string1 = (this.style.removeProperty(name), styleValue(this, name));\n return string0 === string1 ? null : string0 === string00 && string1 === string10 ? interpolate0 : interpolate0 = interpolate2(string00 = string0, string10 = string1);\n };\n}\nfunction styleRemove(name) {\n return function() {\n this.style.removeProperty(name);\n };\n}\nfunction styleConstant(name, interpolate2, value1) {\n var string00, string1 = value1 + \"\", interpolate0;\n return function() {\n var string0 = styleValue(this, name);\n return string0 === string1 ? null : string0 === string00 ? interpolate0 : interpolate0 = interpolate2(string00 = string0, value1);\n };\n}\nfunction styleFunction(name, interpolate2, value) {\n var string00, string10, interpolate0;\n return function() {\n var string0 = styleValue(this, name), value1 = value(this), string1 = value1 + \"\";\n if (value1 == null)\n string1 = value1 = (this.style.removeProperty(name), styleValue(this, name));\n return string0 === string1 ? null : string0 === string00 && string1 === string10 ? interpolate0 : (string10 = string1, interpolate0 = interpolate2(string00 = string0, value1));\n };\n}\nfunction styleMaybeRemove(id2, name) {\n var on0, on1, listener0, key = \"style.\" + name, event = \"end.\" + key, remove2;\n return function() {\n var schedule2 = set(this, id2), on = schedule2.on, listener = schedule2.value[key] == null ? remove2 || (remove2 = styleRemove(name)) : void 0;\n if (on !== on0 || listener0 !== listener)\n (on1 = (on0 = on).copy()).on(event, listener0 = listener);\n schedule2.on = on1;\n };\n}\nfunction transition_style(name, value, priority) {\n var i = (name += \"\") === \"transform\" ? interpolateTransformCss : interpolate;\n return value == null ? this.styleTween(name, styleNull(name, i)).on(\"end.style.\" + name, styleRemove(name)) : typeof value === \"function\" ? this.styleTween(name, styleFunction(name, i, tweenValue(this, \"style.\" + name, value))).each(styleMaybeRemove(this._id, name)) : this.styleTween(name, styleConstant(name, i, value), priority).on(\"end.style.\" + name, null);\n}\nfunction styleInterpolate(name, i, priority) {\n return function(t) {\n this.style.setProperty(name, i.call(this, t), priority);\n };\n}\nfunction styleTween(name, value, priority) {\n var t, i0;\n function tween() {\n var i = value.apply(this, arguments);\n if (i !== i0)\n t = (i0 = i) && styleInterpolate(name, i, priority);\n return t;\n }\n tween._value = value;\n return tween;\n}\nfunction transition_styleTween(name, value, priority) {\n var key = \"style.\" + (name += \"\");\n if (arguments.length < 2)\n return (key = this.tween(key)) && key._value;\n if (value == null)\n return this.tween(key, null);\n if (typeof value !== \"function\")\n throw new Error();\n return this.tween(key, styleTween(name, value, priority == null ? \"\" : priority));\n}\nfunction textConstant(value) {\n return function() {\n this.textContent = value;\n };\n}\nfunction textFunction(value) {\n return function() {\n var value1 = value(this);\n this.textContent = value1 == null ? \"\" : value1;\n };\n}\nfunction transition_text(value) {\n return this.tween(\"text\", typeof value === \"function\" ? textFunction(tweenValue(this, \"text\", value)) : textConstant(value == null ? \"\" : value + \"\"));\n}\nfunction textInterpolate(i) {\n return function(t) {\n this.textContent = i.call(this, t);\n };\n}\nfunction textTween(value) {\n var t0, i0;\n function tween() {\n var i = value.apply(this, arguments);\n if (i !== i0)\n t0 = (i0 = i) && textInterpolate(i);\n return t0;\n }\n tween._value = value;\n return tween;\n}\nfunction transition_textTween(value) {\n var key = \"text\";\n if (arguments.length < 1)\n return (key = this.tween(key)) && key._value;\n if (value == null)\n return this.tween(key, null);\n if (typeof value !== \"function\")\n throw new Error();\n return this.tween(key, textTween(value));\n}\nfunction transition_transition() {\n var name = this._name, id0 = this._id, id1 = newId();\n for (var groups = this._groups, m = groups.length, j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, node, i = 0; i < n; ++i) {\n if (node = group[i]) {\n var inherit2 = get(node, id0);\n schedule(node, name, id1, i, group, {\n time: inherit2.time + inherit2.delay + inherit2.duration,\n delay: 0,\n duration: inherit2.duration,\n ease: inherit2.ease\n });\n }\n }\n }\n return new Transition(groups, this._parents, name, id1);\n}\nfunction transition_end() {\n var on0, on1, that = this, id2 = that._id, size = that.size();\n return new Promise(function(resolve, reject) {\n var cancel = { value: reject }, end = { value: function() {\n if (--size === 0)\n resolve();\n } };\n that.each(function() {\n var schedule2 = set(this, id2), on = schedule2.on;\n if (on !== on0) {\n on1 = (on0 = on).copy();\n on1._.cancel.push(cancel);\n on1._.interrupt.push(cancel);\n on1._.end.push(end);\n }\n schedule2.on = on1;\n });\n if (size === 0)\n resolve();\n });\n}\nvar id = 0;\nfunction Transition(groups, parents, name, id2) {\n this._groups = groups;\n this._parents = parents;\n this._name = name;\n this._id = id2;\n}\nfunction newId() {\n return ++id;\n}\nvar selection_prototype = selection.prototype;\nTransition.prototype = {\n constructor: Transition,\n select: transition_select,\n selectAll: transition_selectAll,\n selectChild: selection_prototype.selectChild,\n selectChildren: selection_prototype.selectChildren,\n filter: transition_filter,\n merge: transition_merge,\n selection: transition_selection,\n transition: transition_transition,\n call: selection_prototype.call,\n nodes: selection_prototype.nodes,\n node: selection_prototype.node,\n size: selection_prototype.size,\n empty: selection_prototype.empty,\n each: selection_prototype.each,\n on: transition_on,\n attr: transition_attr,\n attrTween: transition_attrTween,\n style: transition_style,\n styleTween: transition_styleTween,\n text: transition_text,\n textTween: transition_textTween,\n remove: transition_remove,\n tween: transition_tween,\n delay: transition_delay,\n duration: transition_duration,\n ease: transition_ease,\n easeVarying: transition_easeVarying,\n end: transition_end,\n [Symbol.iterator]: selection_prototype[Symbol.iterator]\n};\nfunction cubicInOut(t) {\n return ((t *= 2) <= 1 ? t * t * t : (t -= 2) * t * t + 2) / 2;\n}\nvar defaultTiming = {\n time: null,\n // Set on use.\n delay: 0,\n duration: 250,\n ease: cubicInOut\n};\nfunction inherit(node, id2) {\n var timing;\n while (!(timing = node.__transition) || !(timing = timing[id2])) {\n if (!(node = node.parentNode)) {\n throw new Error(`transition ${id2} not found`);\n }\n }\n return timing;\n}\nfunction selection_transition(name) {\n var id2, timing;\n if (name instanceof Transition) {\n id2 = name._id, name = name._name;\n } else {\n id2 = newId(), (timing = defaultTiming).time = now(), name = name == null ? null : name + \"\";\n }\n for (var groups = this._groups, m = groups.length, j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, node, i = 0; i < n; ++i) {\n if (node = group[i]) {\n schedule(node, name, id2, i, group, timing || inherit(node, id2));\n }\n }\n }\n return new Transition(groups, this._parents, name, id2);\n}\nselection.prototype.interrupt = selection_interrupt;\nselection.prototype.transition = selection_transition;\nconst constant = (x) => () => x;\nfunction ZoomEvent(type, {\n sourceEvent: sourceEvent2,\n target,\n transform,\n dispatch: dispatch2\n}) {\n Object.defineProperties(this, {\n type: { value: type, enumerable: true, configurable: true },\n sourceEvent: { value: sourceEvent2, enumerable: true, configurable: true },\n target: { value: target, enumerable: true, configurable: true },\n transform: { value: transform, enumerable: true, configurable: true },\n _: { value: dispatch2 }\n });\n}\nfunction Transform(k, x, y) {\n this.k = k;\n this.x = x;\n this.y = y;\n}\nTransform.prototype = {\n constructor: Transform,\n scale: function(k) {\n return k === 1 ? this : new Transform(this.k * k, this.x, this.y);\n },\n translate: function(x, y) {\n return x === 0 & y === 0 ? this : new Transform(this.k, this.x + this.k * x, this.y + this.k * y);\n },\n apply: function(point) {\n return [point[0] * this.k + this.x, point[1] * this.k + this.y];\n },\n applyX: function(x) {\n return x * this.k + this.x;\n },\n applyY: function(y) {\n return y * this.k + this.y;\n },\n invert: function(location) {\n return [(location[0] - this.x) / this.k, (location[1] - this.y) / this.k];\n },\n invertX: function(x) {\n return (x - this.x) / this.k;\n },\n invertY: function(y) {\n return (y - this.y) / this.k;\n },\n rescaleX: function(x) {\n return x.copy().domain(x.range().map(this.invertX, this).map(x.invert, x));\n },\n rescaleY: function(y) {\n return y.copy().domain(y.range().map(this.invertY, this).map(y.invert, y));\n },\n toString: function() {\n return \"translate(\" + this.x + \",\" + this.y + \") scale(\" + this.k + \")\";\n }\n};\nvar identity = new Transform(1, 0, 0);\nTransform.prototype;\nfunction nopropagation(event) {\n event.stopImmediatePropagation();\n}\nfunction noevent(event) {\n event.preventDefault();\n event.stopImmediatePropagation();\n}\nfunction defaultFilter(event) {\n return (!event.ctrlKey || event.type === \"wheel\") && !event.button;\n}\nfunction defaultExtent() {\n var e = this;\n if (e instanceof SVGElement) {\n e = e.ownerSVGElement || e;\n if (e.hasAttribute(\"viewBox\")) {\n e = e.viewBox.baseVal;\n return [[e.x, e.y], [e.x + e.width, e.y + e.height]];\n }\n return [[0, 0], [e.width.baseVal.value, e.height.baseVal.value]];\n }\n return [[0, 0], [e.clientWidth, e.clientHeight]];\n}\nfunction defaultTransform() {\n return this.__zoom || identity;\n}\nfunction defaultWheelDelta(event) {\n return -event.deltaY * (event.deltaMode === 1 ? 0.05 : event.deltaMode ? 1 : 2e-3) * (event.ctrlKey ? 10 : 1);\n}\nfunction defaultTouchable() {\n return navigator.maxTouchPoints || \"ontouchstart\" in this;\n}\nfunction defaultConstrain(transform, extent, translateExtent) {\n var dx0 = transform.invertX(extent[0][0]) - translateExtent[0][0], dx1 = transform.invertX(extent[1][0]) - translateExtent[1][0], dy0 = transform.invertY(extent[0][1]) - translateExtent[0][1], dy1 = transform.invertY(extent[1][1]) - translateExtent[1][1];\n return transform.translate(\n dx1 > dx0 ? (dx0 + dx1) / 2 : Math.min(0, dx0) || Math.max(0, dx1),\n dy1 > dy0 ? (dy0 + dy1) / 2 : Math.min(0, dy0) || Math.max(0, dy1)\n );\n}\nfunction zoom() {\n var filter2 = defaultFilter, extent = defaultExtent, constrain = defaultConstrain, wheelDelta = defaultWheelDelta, touchable = defaultTouchable, scaleExtent = [0, Infinity], translateExtent = [[-Infinity, -Infinity], [Infinity, Infinity]], duration = 250, interpolate2 = interpolateZoom, listeners = dispatch(\"start\", \"zoom\", \"end\"), touchstarting, touchfirst, touchending, touchDelay = 500, wheelDelay = 150, clickDistance2 = 0, tapDistance = 10;\n function zoom2(selection2) {\n selection2.property(\"__zoom\", defaultTransform).on(\"wheel.zoom\", wheeled, { passive: false }).on(\"mousedown.zoom\", mousedowned).on(\"dblclick.zoom\", dblclicked).filter(touchable).on(\"touchstart.zoom\", touchstarted).on(\"touchmove.zoom\", touchmoved).on(\"touchend.zoom touchcancel.zoom\", touchended).style(\"-webkit-tap-highlight-color\", \"rgba(0,0,0,0)\");\n }\n zoom2.transform = function(collection, transform, point, event) {\n var selection2 = collection.selection ? collection.selection() : collection;\n selection2.property(\"__zoom\", defaultTransform);\n if (collection !== selection2) {\n schedule2(collection, transform, point, event);\n } else {\n selection2.interrupt().each(function() {\n gesture(this, arguments).event(event).start().zoom(null, typeof transform === \"function\" ? transform.apply(this, arguments) : transform).end();\n });\n }\n };\n zoom2.scaleBy = function(selection2, k, p, event) {\n zoom2.scaleTo(selection2, function() {\n var k0 = this.__zoom.k, k1 = typeof k === \"function\" ? k.apply(this, arguments) : k;\n return k0 * k1;\n }, p, event);\n };\n zoom2.scaleTo = function(selection2, k, p, event) {\n zoom2.transform(selection2, function() {\n var e = extent.apply(this, arguments), t0 = this.__zoom, p0 = p == null ? centroid(e) : typeof p === \"function\" ? p.apply(this, arguments) : p, p1 = t0.invert(p0), k1 = typeof k === \"function\" ? k.apply(this, arguments) : k;\n return constrain(translate(scale(t0, k1), p0, p1), e, translateExtent);\n }, p, event);\n };\n zoom2.translateBy = function(selection2, x, y, event) {\n zoom2.transform(selection2, function() {\n return constrain(this.__zoom.translate(\n typeof x === \"function\" ? x.apply(this, arguments) : x,\n typeof y === \"function\" ? y.apply(this, arguments) : y\n ), extent.apply(this, arguments), translateExtent);\n }, null, event);\n };\n zoom2.translateTo = function(selection2, x, y, p, event) {\n zoom2.transform(selection2, function() {\n var e = extent.apply(this, arguments), t = this.__zoom, p0 = p == null ? centroid(e) : typeof p === \"function\" ? p.apply(this, arguments) : p;\n return constrain(identity.translate(p0[0], p0[1]).scale(t.k).translate(\n typeof x === \"function\" ? -x.apply(this, arguments) : -x,\n typeof y === \"function\" ? -y.apply(this, arguments) : -y\n ), e, translateExtent);\n }, p, event);\n };\n function scale(transform, k) {\n k = Math.max(scaleExtent[0], Math.min(scaleExtent[1], k));\n return k === transform.k ? transform : new Transform(k, transform.x, transform.y);\n }\n function translate(transform, p0, p1) {\n var x = p0[0] - p1[0] * transform.k, y = p0[1] - p1[1] * transform.k;\n return x === transform.x && y === transform.y ? transform : new Transform(transform.k, x, y);\n }\n function centroid(extent2) {\n return [(+extent2[0][0] + +extent2[1][0]) / 2, (+extent2[0][1] + +extent2[1][1]) / 2];\n }\n function schedule2(transition2, transform, point, event) {\n transition2.on(\"start.zoom\", function() {\n gesture(this, arguments).event(event).start();\n }).on(\"interrupt.zoom end.zoom\", function() {\n gesture(this, arguments).event(event).end();\n }).tween(\"zoom\", function() {\n var that = this, args = arguments, g = gesture(that, args).event(event), e = extent.apply(that, args), p = point == null ? centroid(e) : typeof point === \"function\" ? point.apply(that, args) : point, w = Math.max(e[1][0] - e[0][0], e[1][1] - e[0][1]), a = that.__zoom, b = typeof transform === \"function\" ? transform.apply(that, args) : transform, i = interpolate2(a.invert(p).concat(w / a.k), b.invert(p).concat(w / b.k));\n return function(t) {\n if (t === 1)\n t = b;\n else {\n var l = i(t), k = w / l[2];\n t = new Transform(k, p[0] - l[0] * k, p[1] - l[1] * k);\n }\n g.zoom(null, t);\n };\n });\n }\n function gesture(that, args, clean) {\n return !clean && that.__zooming || new Gesture(that, args);\n }\n function Gesture(that, args) {\n this.that = that;\n this.args = args;\n this.active = 0;\n this.sourceEvent = null;\n this.extent = extent.apply(that, args);\n this.taps = 0;\n }\n Gesture.prototype = {\n event: function(event) {\n if (event)\n this.sourceEvent = event;\n return this;\n },\n start: function() {\n if (++this.active === 1) {\n this.that.__zooming = this;\n this.emit(\"start\");\n }\n return this;\n },\n zoom: function(key, transform) {\n if (this.mouse && key !== \"mouse\")\n this.mouse[1] = transform.invert(this.mouse[0]);\n if (this.touch0 && key !== \"touch\")\n this.touch0[1] = transform.invert(this.touch0[0]);\n if (this.touch1 && key !== \"touch\")\n this.touch1[1] = transform.invert(this.touch1[0]);\n this.that.__zoom = transform;\n this.emit(\"zoom\");\n return this;\n },\n end: function() {\n if (--this.active === 0) {\n delete this.that.__zooming;\n this.emit(\"end\");\n }\n return this;\n },\n emit: function(type) {\n var d = select(this.that).datum();\n listeners.call(\n type,\n this.that,\n new ZoomEvent(type, {\n sourceEvent: this.sourceEvent,\n target: zoom2,\n type,\n transform: this.that.__zoom,\n dispatch: listeners\n }),\n d\n );\n }\n };\n function wheeled(event, ...args) {\n if (!filter2.apply(this, arguments))\n return;\n var g = gesture(this, args).event(event), t = this.__zoom, k = Math.max(scaleExtent[0], Math.min(scaleExtent[1], t.k * Math.pow(2, wheelDelta.apply(this, arguments)))), p = pointer(event);\n if (g.wheel) {\n if (g.mouse[0][0] !== p[0] || g.mouse[0][1] !== p[1]) {\n g.mouse[1] = t.invert(g.mouse[0] = p);\n }\n clearTimeout(g.wheel);\n } else if (t.k === k)\n return;\n else {\n g.mouse = [p, t.invert(p)];\n interrupt(this);\n g.start();\n }\n noevent(event);\n g.wheel = setTimeout(wheelidled, wheelDelay);\n g.zoom(\"mouse\", constrain(translate(scale(t, k), g.mouse[0], g.mouse[1]), g.extent, translateExtent));\n function wheelidled() {\n g.wheel = null;\n g.end();\n }\n }\n function mousedowned(event, ...args) {\n if (touchending || !filter2.apply(this, arguments))\n return;\n var currentTarget = event.currentTarget, g = gesture(this, args, true).event(event), v = select(event.view).on(\"mousemove.zoom\", mousemoved, true).on(\"mouseup.zoom\", mouseupped, true), p = pointer(event, currentTarget), x0 = event.clientX, y0 = event.clientY;\n dragDisable(event.view);\n nopropagation(event);\n g.mouse = [p, this.__zoom.invert(p)];\n interrupt(this);\n g.start();\n function mousemoved(event2) {\n noevent(event2);\n if (!g.moved) {\n var dx = event2.clientX - x0, dy = event2.clientY - y0;\n g.moved = dx * dx + dy * dy > clickDistance2;\n }\n g.event(event2).zoom(\"mouse\", constrain(translate(g.that.__zoom, g.mouse[0] = pointer(event2, currentTarget), g.mouse[1]), g.extent, translateExtent));\n }\n function mouseupped(event2) {\n v.on(\"mousemove.zoom mouseup.zoom\", null);\n yesdrag(event2.view, g.moved);\n noevent(event2);\n g.event(event2).end();\n }\n }\n function dblclicked(event, ...args) {\n if (!filter2.apply(this, arguments))\n return;\n var t0 = this.__zoom, p0 = pointer(event.changedTouches ? event.changedTouches[0] : event, this), p1 = t0.invert(p0), k1 = t0.k * (event.shiftKey ? 0.5 : 2), t1 = constrain(translate(scale(t0, k1), p0, p1), extent.apply(this, args), translateExtent);\n noevent(event);\n if (duration > 0)\n select(this).transition().duration(duration).call(schedule2, t1, p0, event);\n else\n select(this).call(zoom2.transform, t1, p0, event);\n }\n function touchstarted(event, ...args) {\n if (!filter2.apply(this, arguments))\n return;\n var touches = event.touches, n = touches.length, g = gesture(this, args, event.changedTouches.length === n).event(event), started, i, t, p;\n nopropagation(event);\n for (i = 0; i < n; ++i) {\n t = touches[i], p = pointer(t, this);\n p = [p, this.__zoom.invert(p), t.identifier];\n if (!g.touch0)\n g.touch0 = p, started = true, g.taps = 1 + !!touchstarting;\n else if (!g.touch1 && g.touch0[2] !== p[2])\n g.touch1 = p, g.taps = 0;\n }\n if (touchstarting)\n touchstarting = clearTimeout(touchstarting);\n if (started) {\n if (g.taps < 2)\n touchfirst = p[0], touchstarting = setTimeout(function() {\n touchstarting = null;\n }, touchDelay);\n interrupt(this);\n g.start();\n }\n }\n function touchmoved(event, ...args) {\n if (!this.__zooming)\n return;\n var g = gesture(this, args).event(event), touches = event.changedTouches, n = touches.length, i, t, p, l;\n noevent(event);\n for (i = 0; i < n; ++i) {\n t = touches[i], p = pointer(t, this);\n if (g.touch0 && g.touch0[2] === t.identifier)\n g.touch0[0] = p;\n else if (g.touch1 && g.touch1[2] === t.identifier)\n g.touch1[0] = p;\n }\n t = g.that.__zoom;\n if (g.touch1) {\n var p0 = g.touch0[0], l0 = g.touch0[1], p1 = g.touch1[0], l1 = g.touch1[1], dp = (dp = p1[0] - p0[0]) * dp + (dp = p1[1] - p0[1]) * dp, dl = (dl = l1[0] - l0[0]) * dl + (dl = l1[1] - l0[1]) * dl;\n t = scale(t, Math.sqrt(dp / dl));\n p = [(p0[0] + p1[0]) / 2, (p0[1] + p1[1]) / 2];\n l = [(l0[0] + l1[0]) / 2, (l0[1] + l1[1]) / 2];\n } else if (g.touch0)\n p = g.touch0[0], l = g.touch0[1];\n else\n return;\n g.zoom(\"touch\", constrain(translate(t, p, l), g.extent, translateExtent));\n }\n function touchended(event, ...args) {\n if (!this.__zooming)\n return;\n var g = gesture(this, args).event(event), touches = event.changedTouches, n = touches.length, i, t;\n nopropagation(event);\n if (touchending)\n clearTimeout(touchending);\n touchending = setTimeout(function() {\n touchending = null;\n }, touchDelay);\n for (i = 0; i < n; ++i) {\n t = touches[i];\n if (g.touch0 && g.touch0[2] === t.identifier)\n delete g.touch0;\n else if (g.touch1 && g.touch1[2] === t.identifier)\n delete g.touch1;\n }\n if (g.touch1 && !g.touch0)\n g.touch0 = g.touch1, delete g.touch1;\n if (g.touch0)\n g.touch0[1] = this.__zoom.invert(g.touch0[0]);\n else {\n g.end();\n if (g.taps === 2) {\n t = pointer(t, this);\n if (Math.hypot(touchfirst[0] - t[0], touchfirst[1] - t[1]) < tapDistance) {\n var p = select(this).on(\"dblclick.zoom\");\n if (p)\n p.apply(this, arguments);\n }\n }\n }\n }\n zoom2.wheelDelta = function(_) {\n return arguments.length ? (wheelDelta = typeof _ === \"function\" ? _ : constant(+_), zoom2) : wheelDelta;\n };\n zoom2.filter = function(_) {\n return arguments.length ? (filter2 = typeof _ === \"function\" ? _ : constant(!!_), zoom2) : filter2;\n };\n zoom2.touchable = function(_) {\n return arguments.length ? (touchable = typeof _ === \"function\" ? _ : constant(!!_), zoom2) : touchable;\n };\n zoom2.extent = function(_) {\n return arguments.length ? (extent = typeof _ === \"function\" ? _ : constant([[+_[0][0], +_[0][1]], [+_[1][0], +_[1][1]]]), zoom2) : extent;\n };\n zoom2.scaleExtent = function(_) {\n return arguments.length ? (scaleExtent[0] = +_[0], scaleExtent[1] = +_[1], zoom2) : [scaleExtent[0], scaleExtent[1]];\n };\n zoom2.translateExtent = function(_) {\n return arguments.length ? (translateExtent[0][0] = +_[0][0], translateExtent[1][0] = +_[1][0], translateExtent[0][1] = +_[0][1], translateExtent[1][1] = +_[1][1], zoom2) : [[translateExtent[0][0], translateExtent[0][1]], [translateExtent[1][0], translateExtent[1][1]]];\n };\n zoom2.constrain = function(_) {\n return arguments.length ? (constrain = _, zoom2) : constrain;\n };\n zoom2.duration = function(_) {\n return arguments.length ? (duration = +_, zoom2) : duration;\n };\n zoom2.interpolate = function(_) {\n return arguments.length ? (interpolate2 = _, zoom2) : interpolate2;\n };\n zoom2.on = function() {\n var value = listeners.on.apply(listeners, arguments);\n return value === listeners ? zoom2 : value;\n };\n zoom2.clickDistance = function(_) {\n return arguments.length ? (clickDistance2 = (_ = +_) * _, zoom2) : Math.sqrt(clickDistance2);\n };\n zoom2.tapDistance = function(_) {\n return arguments.length ? (tapDistance = +_, zoom2) : tapDistance;\n };\n return zoom2;\n}\nvar Position = /* @__PURE__ */ ((Position2) => {\n Position2[\"Left\"] = \"left\";\n Position2[\"Top\"] = \"top\";\n Position2[\"Right\"] = \"right\";\n Position2[\"Bottom\"] = \"bottom\";\n return Position2;\n})(Position || {});\nvar SelectionMode = /* @__PURE__ */ ((SelectionMode2) => {\n SelectionMode2[\"Partial\"] = \"partial\";\n SelectionMode2[\"Full\"] = \"full\";\n return SelectionMode2;\n})(SelectionMode || {});\nvar ConnectionLineType = /* @__PURE__ */ ((ConnectionLineType2) => {\n ConnectionLineType2[\"Bezier\"] = \"default\";\n ConnectionLineType2[\"SimpleBezier\"] = \"simple-bezier\";\n ConnectionLineType2[\"Straight\"] = \"straight\";\n ConnectionLineType2[\"Step\"] = \"step\";\n ConnectionLineType2[\"SmoothStep\"] = \"smoothstep\";\n return ConnectionLineType2;\n})(ConnectionLineType || {});\nvar ConnectionMode = /* @__PURE__ */ ((ConnectionMode2) => {\n ConnectionMode2[\"Strict\"] = \"strict\";\n ConnectionMode2[\"Loose\"] = \"loose\";\n return ConnectionMode2;\n})(ConnectionMode || {});\nvar MarkerType = /* @__PURE__ */ ((MarkerType2) => {\n MarkerType2[\"Arrow\"] = \"arrow\";\n MarkerType2[\"ArrowClosed\"] = \"arrowclosed\";\n return MarkerType2;\n})(MarkerType || {});\nvar PanOnScrollMode = /* @__PURE__ */ ((PanOnScrollMode2) => {\n PanOnScrollMode2[\"Free\"] = \"free\";\n PanOnScrollMode2[\"Vertical\"] = \"vertical\";\n PanOnScrollMode2[\"Horizontal\"] = \"horizontal\";\n return PanOnScrollMode2;\n})(PanOnScrollMode || {});\nvar PanelPosition = /* @__PURE__ */ ((PanelPosition2) => {\n PanelPosition2[\"TopLeft\"] = \"top-left\";\n PanelPosition2[\"TopCenter\"] = \"top-center\";\n PanelPosition2[\"TopRight\"] = \"top-right\";\n PanelPosition2[\"BottomLeft\"] = \"bottom-left\";\n PanelPosition2[\"BottomCenter\"] = \"bottom-center\";\n PanelPosition2[\"BottomRight\"] = \"bottom-right\";\n return PanelPosition2;\n})(PanelPosition || {});\nfunction useWindow() {\n if (typeof window !== \"undefined\") {\n return window;\n } else {\n return {\n chrome: false,\n addEventListener(..._) {\n }\n };\n }\n}\nfunction isInputDOMNode(event) {\n var _a, _b;\n const target = ((_b = (_a = event.composedPath) == null ? void 0 : _a.call(event)) == null ? void 0 : _b[0]) || event.target;\n const hasAttribute = typeof (target == null ? void 0 : target.hasAttribute) === \"function\" ? target.hasAttribute(\"contenteditable\") : false;\n const closest = typeof (target == null ? void 0 : target.closest) === \"function\" ? target.closest(\".nokey\") : null;\n return [\"INPUT\", \"SELECT\", \"TEXTAREA\"].includes(target == null ? void 0 : target.nodeName) || hasAttribute || !!closest;\n}\nfunction wasModifierPressed(event) {\n return event.ctrlKey || event.metaKey || event.shiftKey;\n}\nfunction isKeyMatch(pressedKey, keyToMatch, pressedKeys, isKeyUp) {\n const keyCombination = keyToMatch.split(\"+\").map((k) => k.trim().toLowerCase());\n if (keyCombination.length === 1) {\n return pressedKey.toLowerCase() === keyToMatch.toLowerCase();\n }\n if (isKeyUp) {\n pressedKeys.delete(pressedKey.toLowerCase());\n } else {\n pressedKeys.add(pressedKey.toLowerCase());\n }\n return keyCombination.every(\n (key, index) => pressedKeys.has(key) && Array.from(pressedKeys.values())[index] === keyCombination[index]\n );\n}\nfunction createKeyPredicate(keyFilter, pressedKeys) {\n return (event) => {\n if (!event.code && !event.key) {\n return false;\n }\n const keyOrCode = useKeyOrCode(event.code, keyFilter);\n if (Array.isArray(keyFilter)) {\n return keyFilter.some((key) => isKeyMatch(event[keyOrCode], key, pressedKeys, event.type === \"keyup\"));\n }\n return isKeyMatch(event[keyOrCode], keyFilter, pressedKeys, event.type === \"keyup\");\n };\n}\nfunction useKeyOrCode(code, keysToWatch) {\n if (typeof keysToWatch === \"string\") {\n return code === keysToWatch ? \"code\" : \"key\";\n }\n return keysToWatch.includes(code) ? \"code\" : \"key\";\n}\nfunction useKeyPress(keyFilter, onChange, options = { actInsideInputWithModifier: true }) {\n const window2 = useWindow();\n const isPressed = ref(toValue$1(keyFilter) === true);\n let modifierPressed = false;\n const pressedKeys = /* @__PURE__ */ new Set();\n let currentFilter = createKeyFilterFn(toValue$1(keyFilter));\n watch(isPressed, (isKeyPressed, wasPressed) => {\n if (isKeyPressed !== wasPressed) {\n onChange == null ? void 0 : onChange(isKeyPressed);\n }\n });\n watch(\n () => toValue$1(keyFilter),\n (nextKeyFilter, previousKeyFilter) => {\n if (typeof previousKeyFilter === \"boolean\" && typeof nextKeyFilter !== \"boolean\") {\n reset();\n }\n currentFilter = createKeyFilterFn(nextKeyFilter);\n },\n {\n immediate: true\n }\n );\n useEventListener(window2, \"blur\", () => {\n if (toValue$1(keyFilter) !== true) {\n isPressed.value = false;\n }\n });\n onKeyStroke(\n (...args) => currentFilter(...args),\n (e) => {\n modifierPressed = wasModifierPressed(e);\n const preventAction = (!modifierPressed || modifierPressed && !options.actInsideInputWithModifier) && isInputDOMNode(e);\n if (preventAction) {\n return;\n }\n e.preventDefault();\n isPressed.value = true;\n },\n { eventName: \"keydown\" }\n );\n onKeyStroke(\n (...args) => currentFilter(...args),\n (e) => {\n if (isPressed.value) {\n const preventAction = (!modifierPressed || modifierPressed && !options.actInsideInputWithModifier) && isInputDOMNode(e);\n if (preventAction) {\n return;\n }\n reset();\n }\n },\n { eventName: \"keyup\" }\n );\n return isPressed;\n function reset() {\n modifierPressed = false;\n pressedKeys.clear();\n isPressed.value = false;\n }\n function createKeyFilterFn(keyFilter2) {\n if (keyFilter2 === null) {\n reset();\n return () => false;\n }\n if (typeof keyFilter2 === \"boolean\") {\n reset();\n isPressed.value = keyFilter2;\n return () => false;\n }\n if (Array.isArray(keyFilter2) || typeof keyFilter2 === \"string\") {\n return createKeyPredicate(keyFilter2, pressedKeys);\n }\n return keyFilter2;\n }\n}\nconst ARIA_NODE_DESC_KEY = \"vue-flow__node-desc\";\nconst ARIA_EDGE_DESC_KEY = \"vue-flow__edge-desc\";\nconst ARIA_LIVE_MESSAGE = \"vue-flow__aria-live\";\nconst elementSelectionKeys = [\"Enter\", \" \", \"Escape\"];\nconst arrowKeyDiffs = {\n ArrowUp: { x: 0, y: -1 },\n ArrowDown: { x: 0, y: 1 },\n ArrowLeft: { x: -1, y: 0 },\n ArrowRight: { x: 1, y: 0 }\n};\nfunction useDrag(params) {\n const {\n vueFlowRef,\n snapToGrid,\n snapGrid,\n noDragClassName,\n nodes,\n nodeExtent,\n nodeDragThreshold,\n viewport,\n autoPanOnNodeDrag,\n nodesDraggable,\n panBy,\n findNode,\n multiSelectionActive,\n nodesSelectionActive,\n selectNodesOnDrag,\n removeSelectedElements,\n addSelectedNodes,\n updateNodePositions,\n emits\n } = useVueFlow();\n const { onStart, onDrag, onStop, el, disabled, id: id2, selectable, dragHandle } = params;\n const dragging = ref(false);\n let dragItems = [];\n let dragHandler;\n let containerBounds = null;\n let lastPos = { x: void 0, y: void 0 };\n let mousePosition = { x: 0, y: 0 };\n let dragEvent = null;\n let dragStarted = false;\n let autoPanId = 0;\n let autoPanStarted = false;\n const getPointerPosition = useGetPointerPosition();\n const updateNodes = ({ x, y }) => {\n lastPos = { x, y };\n let hasChange = false;\n dragItems = dragItems.map((n) => {\n const nextPosition = { x: x - n.distance.x, y: y - n.distance.y };\n if (snapToGrid.value) {\n nextPosition.x = snapGrid.value[0] * Math.round(nextPosition.x / snapGrid.value[0]);\n nextPosition.y = snapGrid.value[1] * Math.round(nextPosition.y / snapGrid.value[1]);\n }\n const { computedPosition } = calcNextPosition(\n n,\n nextPosition,\n emits.error,\n nodeExtent.value,\n n.parentNode ? findNode(n.parentNode) : void 0\n );\n hasChange = hasChange || n.position.x !== computedPosition.x || n.position.y !== computedPosition.y;\n n.position = computedPosition;\n return n;\n });\n if (!hasChange) {\n return;\n }\n updateNodePositions(dragItems, true, true);\n dragging.value = true;\n if (dragEvent) {\n const [currentNode, nodes2] = getEventHandlerParams({\n id: id2,\n dragItems,\n findNode\n });\n onDrag({ event: dragEvent, node: currentNode, nodes: nodes2 });\n }\n };\n const autoPan = () => {\n if (!containerBounds) {\n return;\n }\n const [xMovement, yMovement] = calcAutoPan(mousePosition, containerBounds);\n if (xMovement !== 0 || yMovement !== 0) {\n const nextPos = {\n x: (lastPos.x ?? 0) - xMovement / viewport.value.zoom,\n y: (lastPos.y ?? 0) - yMovement / viewport.value.zoom\n };\n if (panBy({ x: xMovement, y: yMovement })) {\n updateNodes(nextPos);\n }\n }\n autoPanId = requestAnimationFrame(autoPan);\n };\n const startDrag = (event, nodeEl) => {\n dragStarted = true;\n const node = findNode(id2);\n if (!selectNodesOnDrag.value && !multiSelectionActive.value && node) {\n if (!node.selected) {\n removeSelectedElements();\n }\n }\n if (node && toValue$1(selectable) && selectNodesOnDrag.value) {\n handleNodeClick(\n node,\n multiSelectionActive.value,\n addSelectedNodes,\n removeSelectedElements,\n nodesSelectionActive,\n false,\n nodeEl\n );\n }\n const pointerPos = getPointerPosition(event);\n lastPos = pointerPos;\n dragItems = getDragItems(nodes.value, nodesDraggable.value, pointerPos, findNode, id2);\n if (dragItems.length) {\n const [currentNode, nodes2] = getEventHandlerParams({\n id: id2,\n dragItems,\n findNode\n });\n onStart({ event: event.sourceEvent, node: currentNode, nodes: nodes2 });\n }\n };\n const eventStart = (event, nodeEl) => {\n var _a;\n if (event.sourceEvent.type === \"touchmove\" && event.sourceEvent.touches.length > 1) {\n return;\n }\n if (nodeDragThreshold.value === 0) {\n startDrag(event, nodeEl);\n }\n lastPos = getPointerPosition(event);\n containerBounds = ((_a = vueFlowRef.value) == null ? void 0 : _a.getBoundingClientRect()) || null;\n mousePosition = getEventPosition(event.sourceEvent, containerBounds);\n };\n const eventDrag = (event, nodeEl) => {\n const pointerPos = getPointerPosition(event);\n if (!autoPanStarted && dragStarted && autoPanOnNodeDrag.value) {\n autoPanStarted = true;\n autoPan();\n }\n if (!dragStarted) {\n const x = pointerPos.xSnapped - (lastPos.x ?? 0);\n const y = pointerPos.ySnapped - (lastPos.y ?? 0);\n const distance2 = Math.sqrt(x * x + y * y);\n if (distance2 > nodeDragThreshold.value) {\n startDrag(event, nodeEl);\n }\n }\n if ((lastPos.x !== pointerPos.xSnapped || lastPos.y !== pointerPos.ySnapped) && dragItems.length && dragStarted) {\n dragEvent = event.sourceEvent;\n mousePosition = getEventPosition(event.sourceEvent, containerBounds);\n updateNodes(pointerPos);\n }\n };\n const eventEnd = (event) => {\n if (!dragStarted) {\n return;\n }\n dragging.value = false;\n autoPanStarted = false;\n dragStarted = false;\n cancelAnimationFrame(autoPanId);\n if (dragItems.length) {\n updateNodePositions(dragItems, false, false);\n const [currentNode, nodes2] = getEventHandlerParams({\n id: id2,\n dragItems,\n findNode\n });\n onStop({ event: event.sourceEvent, node: currentNode, nodes: nodes2 });\n }\n };\n watch([() => toValue$1(disabled), el], ([isDisabled, nodeEl], _, onCleanup) => {\n if (nodeEl) {\n const selection2 = select(nodeEl);\n if (!isDisabled) {\n dragHandler = drag().on(\"start\", (event) => eventStart(event, nodeEl)).on(\"drag\", (event) => eventDrag(event, nodeEl)).on(\"end\", (event) => eventEnd(event)).filter((event) => {\n const target = event.target;\n const unrefDragHandle = toValue$1(dragHandle);\n return !event.button && (!noDragClassName.value || !hasSelector(target, `.${noDragClassName.value}`, nodeEl) && (!unrefDragHandle || hasSelector(target, unrefDragHandle, nodeEl)));\n });\n selection2.call(dragHandler);\n }\n onCleanup(() => {\n selection2.on(\".drag\", null);\n if (dragHandler) {\n dragHandler.on(\"start\", null);\n dragHandler.on(\"drag\", null);\n dragHandler.on(\"end\", null);\n }\n });\n }\n });\n return dragging;\n}\nconst VueFlow = Symbol(\"vueFlow\");\nconst NodeId = Symbol(\"nodeId\");\nconst NodeRef = Symbol(\"nodeRef\");\nconst EdgeId = Symbol(\"edgeId\");\nconst EdgeRef = Symbol(\"edgeRef\");\nconst Slots = Symbol(\"slots\");\nfunction useEdge(id2) {\n const edgeId = id2 ?? inject(EdgeId, \"\");\n const edgeEl = inject(EdgeRef, ref(null));\n const { findEdge, emits } = useVueFlow();\n const edge = findEdge(edgeId);\n if (!edge) {\n emits.error(new VueFlowError(ErrorCode.EDGE_NOT_FOUND, edgeId));\n }\n return {\n id: edgeId,\n edge,\n edgeEl\n };\n}\nfunction createEdgeHooks() {\n return {\n doubleClick: createExtendedEventHook(),\n click: createExtendedEventHook(),\n mouseEnter: createExtendedEventHook(),\n mouseMove: createExtendedEventHook(),\n mouseLeave: createExtendedEventHook(),\n contextMenu: createExtendedEventHook(),\n updateStart: createExtendedEventHook(),\n update: createExtendedEventHook(),\n updateEnd: createExtendedEventHook()\n };\n}\nfunction useEdgeHooks(edge, emits) {\n const edgeHooks = createEdgeHooks();\n edgeHooks.doubleClick.on((event) => {\n var _a, _b;\n emits.edgeDoubleClick(event);\n (_b = (_a = edge.events) == null ? void 0 : _a.doubleClick) == null ? void 0 : _b.call(_a, event);\n });\n edgeHooks.click.on((event) => {\n var _a, _b;\n emits.edgeClick(event);\n (_b = (_a = edge.events) == null ? void 0 : _a.click) == null ? void 0 : _b.call(_a, event);\n });\n edgeHooks.mouseEnter.on((event) => {\n var _a, _b;\n emits.edgeMouseEnter(event);\n (_b = (_a = edge.events) == null ? void 0 : _a.mouseEnter) == null ? void 0 : _b.call(_a, event);\n });\n edgeHooks.mouseMove.on((event) => {\n var _a, _b;\n emits.edgeMouseMove(event);\n (_b = (_a = edge.events) == null ? void 0 : _a.mouseMove) == null ? void 0 : _b.call(_a, event);\n });\n edgeHooks.mouseLeave.on((event) => {\n var _a, _b;\n emits.edgeMouseLeave(event);\n (_b = (_a = edge.events) == null ? void 0 : _a.mouseLeave) == null ? void 0 : _b.call(_a, event);\n });\n edgeHooks.contextMenu.on((event) => {\n var _a, _b;\n emits.edgeContextMenu(event);\n (_b = (_a = edge.events) == null ? void 0 : _a.contextMenu) == null ? void 0 : _b.call(_a, event);\n });\n edgeHooks.updateStart.on((event) => {\n var _a, _b;\n emits.edgeUpdateStart(event);\n (_b = (_a = edge.events) == null ? void 0 : _a.updateStart) == null ? void 0 : _b.call(_a, event);\n });\n edgeHooks.update.on((event) => {\n var _a, _b;\n emits.edgeUpdate(event);\n (_b = (_a = edge.events) == null ? void 0 : _a.update) == null ? void 0 : _b.call(_a, event);\n });\n edgeHooks.updateEnd.on((event) => {\n var _a, _b;\n emits.edgeUpdateEnd(event);\n (_b = (_a = edge.events) == null ? void 0 : _a.updateEnd) == null ? void 0 : _b.call(_a, event);\n });\n return Object.entries(edgeHooks).reduce(\n (hooks, [key, value]) => {\n hooks.emit[key] = value.trigger;\n hooks.on[key] = value.on;\n return hooks;\n },\n { emit: {}, on: {} }\n );\n}\nfunction useGetPointerPosition() {\n const { viewport, snapGrid, snapToGrid } = useVueFlow();\n return ({ sourceEvent: sourceEvent2 }) => {\n const x = sourceEvent2.touches ? sourceEvent2.touches[0].clientX : sourceEvent2.clientX;\n const y = sourceEvent2.touches ? sourceEvent2.touches[0].clientY : sourceEvent2.clientY;\n const pointerPos = {\n x: (x - viewport.value.x) / viewport.value.zoom,\n y: (y - viewport.value.y) / viewport.value.zoom\n };\n return {\n xSnapped: snapToGrid.value ? snapGrid.value[0] * Math.round(pointerPos.x / snapGrid.value[0]) : pointerPos.x,\n ySnapped: snapToGrid.value ? snapGrid.value[1] * Math.round(pointerPos.y / snapGrid.value[1]) : pointerPos.y,\n ...pointerPos\n };\n };\n}\nfunction alwaysValid() {\n return true;\n}\nfunction useHandle({\n handleId,\n nodeId,\n type,\n isValidConnection,\n edgeUpdaterType,\n onEdgeUpdate,\n onEdgeUpdateEnd\n}) {\n const {\n vueFlowRef,\n connectionMode,\n connectionRadius,\n connectOnClick,\n connectionClickStartHandle,\n nodesConnectable,\n autoPanOnConnect,\n findNode,\n panBy,\n startConnection,\n updateConnection,\n endConnection,\n emits,\n viewport,\n edges,\n nodes,\n isValidConnection: isValidConnectionProp\n } = useVueFlow();\n let connection = null;\n let isValid = false;\n let handleDomNode = null;\n function handlePointerDown(event) {\n var _a;\n const isTarget = toValue$1(type) === \"target\";\n const isMouseTriggered = isMouseEvent(event);\n const doc = getHostForElement(event.target);\n if (isMouseTriggered && event.button === 0 || !isMouseTriggered) {\n let onPointerMove = function(event2) {\n connectionPosition = getEventPosition(event2, containerBounds);\n const { handle, validHandleResult } = getClosestHandle(\n event2,\n doc,\n pointToRendererPoint(connectionPosition, viewport.value, false, [1, 1]),\n connectionRadius.value,\n handleLookup,\n (handle2) => isValidHandle(\n event2,\n handle2,\n connectionMode.value,\n toValue$1(nodeId),\n toValue$1(handleId),\n isTarget ? \"target\" : \"source\",\n isValidConnectionHandler,\n doc,\n edges.value,\n nodes.value,\n findNode\n )\n );\n closestHandle = handle;\n if (!autoPanStarted) {\n autoPan();\n autoPanStarted = true;\n }\n connection = validHandleResult.connection;\n isValid = validHandleResult.isValid;\n handleDomNode = validHandleResult.handleDomNode;\n updateConnection(\n closestHandle && isValid ? rendererPointToPoint(\n {\n x: closestHandle.x,\n y: closestHandle.y\n },\n viewport.value\n ) : connectionPosition,\n validHandleResult.endHandle,\n getConnectionStatus(!!closestHandle, isValid)\n );\n if (!closestHandle && !isValid && !handleDomNode) {\n return resetRecentHandle(prevActiveHandle);\n }\n if (connection && connection.source !== connection.target && handleDomNode) {\n resetRecentHandle(prevActiveHandle);\n prevActiveHandle = handleDomNode;\n handleDomNode.classList.add(\"connecting\", \"vue-flow__handle-connecting\");\n handleDomNode.classList.toggle(\"valid\", isValid);\n handleDomNode.classList.toggle(\"vue-flow__handle-valid\", isValid);\n }\n }, onPointerUp = function(event2) {\n if ((closestHandle || handleDomNode) && connection && isValid) {\n if (!onEdgeUpdate) {\n emits.connect(connection);\n } else {\n onEdgeUpdate(event2, connection);\n }\n }\n emits.connectEnd(event2);\n if (edgeUpdaterType) {\n onEdgeUpdateEnd == null ? void 0 : onEdgeUpdateEnd(event2);\n }\n resetRecentHandle(prevActiveHandle);\n cancelAnimationFrame(autoPanId);\n endConnection(event2);\n autoPanStarted = false;\n isValid = false;\n connection = null;\n handleDomNode = null;\n doc.removeEventListener(\"mousemove\", onPointerMove);\n doc.removeEventListener(\"mouseup\", onPointerUp);\n doc.removeEventListener(\"touchmove\", onPointerMove);\n doc.removeEventListener(\"touchend\", onPointerUp);\n };\n const node = findNode(toValue$1(nodeId));\n let isValidConnectionHandler = toValue$1(isValidConnection) || isValidConnectionProp.value || alwaysValid;\n if (!isValidConnectionHandler && node) {\n isValidConnectionHandler = (!isTarget ? node.isValidTargetPos : node.isValidSourcePos) || alwaysValid;\n }\n let closestHandle;\n let autoPanId = 0;\n const { x, y } = getEventPosition(event);\n const clickedHandle = doc == null ? void 0 : doc.elementFromPoint(x, y);\n const handleType = getHandleType(toValue$1(edgeUpdaterType), clickedHandle);\n const containerBounds = (_a = vueFlowRef.value) == null ? void 0 : _a.getBoundingClientRect();\n if (!containerBounds || !handleType) {\n return;\n }\n let prevActiveHandle;\n let connectionPosition = getEventPosition(event, containerBounds);\n let autoPanStarted = false;\n const handleLookup = getHandleLookup({\n nodes: nodes.value,\n nodeId: toValue$1(nodeId),\n handleId: toValue$1(handleId),\n handleType\n });\n const autoPan = () => {\n if (!autoPanOnConnect.value) {\n return;\n }\n const [xMovement, yMovement] = calcAutoPan(connectionPosition, containerBounds);\n panBy({ x: xMovement, y: yMovement });\n autoPanId = requestAnimationFrame(autoPan);\n };\n startConnection(\n {\n nodeId: toValue$1(nodeId),\n handleId: toValue$1(handleId),\n type: handleType\n },\n {\n x: x - containerBounds.left,\n y: y - containerBounds.top\n }\n );\n emits.connectStart({ event, nodeId: toValue$1(nodeId), handleId: toValue$1(handleId), handleType });\n doc.addEventListener(\"mousemove\", onPointerMove);\n doc.addEventListener(\"mouseup\", onPointerUp);\n doc.addEventListener(\"touchmove\", onPointerMove);\n doc.addEventListener(\"touchend\", onPointerUp);\n }\n }\n function handleClick(event) {\n if (!connectOnClick.value) {\n return;\n }\n const isTarget = toValue$1(type) === \"target\";\n if (!connectionClickStartHandle.value) {\n emits.clickConnectStart({ event, nodeId: toValue$1(nodeId), handleId: toValue$1(handleId) });\n startConnection({ nodeId: toValue$1(nodeId), type: toValue$1(type), handleId: toValue$1(handleId) }, void 0, true);\n } else {\n let isValidConnectionHandler = toValue$1(isValidConnection) || isValidConnectionProp.value || alwaysValid;\n const node = findNode(toValue$1(nodeId));\n if (!isValidConnectionHandler && node) {\n isValidConnectionHandler = (!isTarget ? node.isValidTargetPos : node.isValidSourcePos) || alwaysValid;\n }\n if (node && (typeof node.connectable === \"undefined\" ? nodesConnectable.value : node.connectable) === false) {\n return;\n }\n const doc = getHostForElement(event.target);\n const { connection: connection2, isValid: isValid2 } = isValidHandle(\n event,\n {\n nodeId: toValue$1(nodeId),\n id: toValue$1(handleId),\n type: toValue$1(type)\n },\n connectionMode.value,\n connectionClickStartHandle.value.nodeId,\n connectionClickStartHandle.value.handleId || null,\n connectionClickStartHandle.value.type,\n isValidConnectionHandler,\n doc,\n edges.value,\n nodes.value,\n findNode\n );\n const isOwnHandle = connection2.source === connection2.target;\n if (isValid2 && !isOwnHandle) {\n emits.connect(connection2);\n }\n emits.clickConnectEnd(event);\n endConnection(event, true);\n }\n }\n return {\n handlePointerDown,\n handleClick\n };\n}\nfunction useNodeId() {\n return inject(NodeId, \"\");\n}\nfunction useNode(id2) {\n const nodeId = id2 ?? useNodeId() ?? \"\";\n const nodeEl = inject(NodeRef, ref(null));\n const { findNode, edges, emits } = useVueFlow();\n const node = findNode(nodeId);\n if (!node) {\n emits.error(new VueFlowError(ErrorCode.NODE_NOT_FOUND, nodeId));\n }\n return {\n id: nodeId,\n nodeEl,\n node,\n parentNode: computed(() => findNode(node.parentNode)),\n connectedEdges: computed(() => getConnectedEdges([node], edges.value))\n };\n}\nfunction createNodeHooks() {\n return {\n doubleClick: createExtendedEventHook(),\n click: createExtendedEventHook(),\n mouseEnter: createExtendedEventHook(),\n mouseMove: createExtendedEventHook(),\n mouseLeave: createExtendedEventHook(),\n contextMenu: createExtendedEventHook(),\n dragStart: createExtendedEventHook(),\n drag: createExtendedEventHook(),\n dragStop: createExtendedEventHook()\n };\n}\nfunction useNodeHooks(node, emits) {\n const nodeHooks = createNodeHooks();\n nodeHooks.doubleClick.on((event) => {\n var _a, _b;\n emits.nodeDoubleClick(event);\n (_b = (_a = node.events) == null ? void 0 : _a.doubleClick) == null ? void 0 : _b.call(_a, event);\n });\n nodeHooks.click.on((event) => {\n var _a, _b;\n emits.nodeClick(event);\n (_b = (_a = node.events) == null ? void 0 : _a.click) == null ? void 0 : _b.call(_a, event);\n });\n nodeHooks.mouseEnter.on((event) => {\n var _a, _b;\n emits.nodeMouseEnter(event);\n (_b = (_a = node.events) == null ? void 0 : _a.mouseEnter) == null ? void 0 : _b.call(_a, event);\n });\n nodeHooks.mouseMove.on((event) => {\n var _a, _b;\n emits.nodeMouseMove(event);\n (_b = (_a = node.events) == null ? void 0 : _a.mouseMove) == null ? void 0 : _b.call(_a, event);\n });\n nodeHooks.mouseLeave.on((event) => {\n var _a, _b;\n emits.nodeMouseLeave(event);\n (_b = (_a = node.events) == null ? void 0 : _a.mouseLeave) == null ? void 0 : _b.call(_a, event);\n });\n nodeHooks.contextMenu.on((event) => {\n var _a, _b;\n emits.nodeContextMenu(event);\n (_b = (_a = node.events) == null ? void 0 : _a.contextMenu) == null ? void 0 : _b.call(_a, event);\n });\n nodeHooks.dragStart.on((event) => {\n var _a, _b;\n emits.nodeDragStart(event);\n (_b = (_a = node.events) == null ? void 0 : _a.dragStart) == null ? void 0 : _b.call(_a, event);\n });\n nodeHooks.drag.on((event) => {\n var _a, _b;\n emits.nodeDrag(event);\n (_b = (_a = node.events) == null ? void 0 : _a.drag) == null ? void 0 : _b.call(_a, event);\n });\n nodeHooks.dragStop.on((event) => {\n var _a, _b;\n emits.nodeDragStop(event);\n (_b = (_a = node.events) == null ? void 0 : _a.dragStop) == null ? void 0 : _b.call(_a, event);\n });\n return Object.entries(nodeHooks).reduce(\n (hooks, [key, value]) => {\n hooks.emit[key] = value.trigger;\n hooks.on[key] = value.on;\n return hooks;\n },\n { emit: {}, on: {} }\n );\n}\nfunction useUpdateNodePositions() {\n const { getSelectedNodes, nodeExtent, updateNodePositions, findNode, snapGrid, snapToGrid, nodesDraggable, emits } = useVueFlow();\n return (positionDiff, isShiftPressed = false) => {\n const xVelo = snapToGrid.value ? snapGrid.value[0] : 5;\n const yVelo = snapToGrid.value ? snapGrid.value[1] : 5;\n const factor = isShiftPressed ? 4 : 1;\n const positionDiffX = positionDiff.x * xVelo * factor;\n const positionDiffY = positionDiff.y * yVelo * factor;\n const nodeUpdates = [];\n for (const node of getSelectedNodes.value) {\n if (node.draggable || nodesDraggable && typeof node.draggable === \"undefined\") {\n const nextPosition = { x: node.computedPosition.x + positionDiffX, y: node.computedPosition.y + positionDiffY };\n const { computedPosition } = calcNextPosition(\n node,\n nextPosition,\n emits.error,\n nodeExtent.value,\n node.parentNode ? findNode(node.parentNode) : void 0\n );\n nodeUpdates.push({\n id: node.id,\n position: computedPosition,\n from: node.position,\n distance: { x: positionDiff.x, y: positionDiff.y },\n dimensions: node.dimensions\n });\n }\n }\n updateNodePositions(nodeUpdates, true, false);\n };\n}\nconst DEFAULT_PADDING = 0.1;\nfunction noop() {\n warn(\"Viewport not initialized yet.\");\n return Promise.resolve(false);\n}\nconst initialViewportHelper = {\n zoomIn: noop,\n zoomOut: noop,\n zoomTo: noop,\n fitView: noop,\n setCenter: noop,\n fitBounds: noop,\n project: (position) => position,\n screenToFlowCoordinate: (position) => position,\n flowToScreenCoordinate: (position) => position,\n setViewport: noop,\n setTransform: noop,\n getViewport: () => ({ x: 0, y: 0, zoom: 1 }),\n getTransform: () => ({ x: 0, y: 0, zoom: 1 }),\n viewportInitialized: false\n};\nfunction useViewportHelper(state) {\n function zoom2(scale, duration) {\n return new Promise((resolve) => {\n if (state.d3Selection && state.d3Zoom) {\n state.d3Zoom.scaleBy(\n transition(state.d3Selection, duration, () => {\n resolve(true);\n }),\n scale\n );\n } else {\n resolve(false);\n }\n });\n }\n function transformViewport(x, y, zoom22, duration) {\n return new Promise((resolve) => {\n const { x: clampedX, y: clampedY } = clampPosition({ x: -x, y: -y }, state.translateExtent);\n const nextTransform = identity.translate(-clampedX, -clampedY).scale(zoom22);\n if (state.d3Selection && state.d3Zoom) {\n state.d3Zoom.transform(\n transition(state.d3Selection, duration, () => {\n resolve(true);\n }),\n nextTransform\n );\n } else {\n resolve(false);\n }\n });\n }\n return computed(() => {\n const isInitialized = state.d3Zoom && state.d3Selection && state.dimensions.width && state.dimensions.height;\n if (!isInitialized) {\n return initialViewportHelper;\n }\n return {\n viewportInitialized: true,\n // todo: allow passing scale as option\n zoomIn: (options) => {\n return zoom2(1.2, options == null ? void 0 : options.duration);\n },\n zoomOut: (options) => {\n return zoom2(1 / 1.2, options == null ? void 0 : options.duration);\n },\n zoomTo: (zoomLevel, options) => {\n return new Promise((resolve) => {\n if (state.d3Selection && state.d3Zoom) {\n state.d3Zoom.scaleTo(\n transition(state.d3Selection, options == null ? void 0 : options.duration, () => {\n resolve(true);\n }),\n zoomLevel\n );\n } else {\n resolve(false);\n }\n });\n },\n setViewport: (transform, options) => {\n return transformViewport(transform.x, transform.y, transform.zoom, options == null ? void 0 : options.duration);\n },\n setTransform: (transform, options) => {\n return transformViewport(transform.x, transform.y, transform.zoom, options == null ? void 0 : options.duration);\n },\n getViewport: () => ({\n x: state.viewport.x,\n y: state.viewport.y,\n zoom: state.viewport.zoom\n }),\n getTransform: () => {\n return {\n x: state.viewport.x,\n y: state.viewport.y,\n zoom: state.viewport.zoom\n };\n },\n fitView: (options = {\n padding: DEFAULT_PADDING,\n includeHiddenNodes: false,\n duration: 0\n }) => {\n var _a, _b;\n const nodesToFit = [];\n for (const node of state.nodes) {\n const isVisible = node.dimensions.width && node.dimensions.height && ((options == null ? void 0 : options.includeHiddenNodes) || !node.hidden);\n if (isVisible) {\n if (!((_a = options.nodes) == null ? void 0 : _a.length) || ((_b = options.nodes) == null ? void 0 : _b.length) && options.nodes.includes(node.id)) {\n nodesToFit.push(node);\n }\n }\n }\n if (!nodesToFit.length) {\n return Promise.resolve(false);\n }\n const bounds = getRectOfNodes(nodesToFit);\n const { x, y, zoom: zoom22 } = getTransformForBounds(\n bounds,\n state.dimensions.width,\n state.dimensions.height,\n options.minZoom ?? state.minZoom,\n options.maxZoom ?? state.maxZoom,\n options.padding ?? DEFAULT_PADDING,\n options.offset\n );\n return transformViewport(x, y, zoom22, options == null ? void 0 : options.duration);\n },\n setCenter: (x, y, options) => {\n const nextZoom = typeof (options == null ? void 0 : options.zoom) !== \"undefined\" ? options.zoom : state.maxZoom;\n const centerX = state.dimensions.width / 2 - x * nextZoom;\n const centerY = state.dimensions.height / 2 - y * nextZoom;\n return transformViewport(centerX, centerY, nextZoom, options == null ? void 0 : options.duration);\n },\n fitBounds: (bounds, options = { padding: DEFAULT_PADDING }) => {\n const { x, y, zoom: zoom22 } = getTransformForBounds(\n bounds,\n state.dimensions.width,\n state.dimensions.height,\n state.minZoom,\n state.maxZoom,\n options.padding\n );\n return transformViewport(x, y, zoom22, options == null ? void 0 : options.duration);\n },\n project: (position) => pointToRendererPoint(position, state.viewport, state.snapToGrid, state.snapGrid),\n screenToFlowCoordinate: (position) => {\n if (state.vueFlowRef) {\n const { x: domX, y: domY } = state.vueFlowRef.getBoundingClientRect();\n const correctedPosition = {\n x: position.x - domX,\n y: position.y - domY\n };\n return pointToRendererPoint(correctedPosition, state.viewport, state.snapToGrid, state.snapGrid);\n }\n return { x: 0, y: 0 };\n },\n flowToScreenCoordinate: (position) => {\n if (state.vueFlowRef) {\n const { x: domX, y: domY } = state.vueFlowRef.getBoundingClientRect();\n const correctedPosition = {\n x: position.x + domX,\n y: position.y + domY\n };\n return rendererPointToPoint(correctedPosition, state.viewport);\n }\n return { x: 0, y: 0 };\n }\n };\n });\n}\nfunction transition(selection2, ms = 0, onEnd) {\n return selection2.transition().duration(ms).on(\"end\", onEnd);\n}\nfunction useWatchProps(models, props, store) {\n const scope = effectScope(true);\n scope.run(() => {\n const watchModelValue = () => {\n scope.run(() => {\n let pauseModel;\n let pauseStore;\n let immediateStore = !!(store.nodes.value.length || store.edges.value.length);\n pauseModel = watchPausable([models.modelValue, () => {\n var _a, _b;\n return (_b = (_a = models.modelValue) == null ? void 0 : _a.value) == null ? void 0 : _b.length;\n }], ([elements]) => {\n if (elements && Array.isArray(elements)) {\n pauseStore == null ? void 0 : pauseStore.pause();\n store.setElements(elements);\n if (!pauseStore && !immediateStore && elements.length) {\n immediateStore = true;\n } else {\n pauseStore == null ? void 0 : pauseStore.resume();\n }\n }\n });\n pauseStore = watchPausable(\n [store.nodes, store.edges, () => store.edges.value.length, () => store.nodes.value.length],\n ([nodes, edges]) => {\n var _a;\n if (((_a = models.modelValue) == null ? void 0 : _a.value) && Array.isArray(models.modelValue.value)) {\n pauseModel == null ? void 0 : pauseModel.pause();\n models.modelValue.value = [...nodes, ...edges];\n nextTick(() => {\n pauseModel == null ? void 0 : pauseModel.resume();\n });\n }\n },\n { immediate: immediateStore }\n );\n onScopeDispose(() => {\n pauseModel == null ? void 0 : pauseModel.stop();\n pauseStore == null ? void 0 : pauseStore.stop();\n });\n });\n };\n const watchNodesValue = () => {\n scope.run(() => {\n let pauseModel;\n let pauseStore;\n let immediateStore = !!store.nodes.value.length;\n pauseModel = watchPausable([models.nodes, () => {\n var _a, _b;\n return (_b = (_a = models.nodes) == null ? void 0 : _a.value) == null ? void 0 : _b.length;\n }], ([nodes]) => {\n if (nodes && Array.isArray(nodes)) {\n pauseStore == null ? void 0 : pauseStore.pause();\n store.setNodes(nodes);\n if (!pauseStore && !immediateStore && nodes.length) {\n immediateStore = true;\n } else {\n pauseStore == null ? void 0 : pauseStore.resume();\n }\n }\n });\n pauseStore = watchPausable(\n [store.nodes, () => store.nodes.value.length],\n ([nodes]) => {\n var _a;\n if (((_a = models.nodes) == null ? void 0 : _a.value) && Array.isArray(models.nodes.value)) {\n pauseModel == null ? void 0 : pauseModel.pause();\n models.nodes.value = [...nodes];\n nextTick(() => {\n pauseModel == null ? void 0 : pauseModel.resume();\n });\n }\n },\n { immediate: immediateStore }\n );\n onScopeDispose(() => {\n pauseModel == null ? void 0 : pauseModel.stop();\n pauseStore == null ? void 0 : pauseStore.stop();\n });\n });\n };\n const watchEdgesValue = () => {\n scope.run(() => {\n let pauseModel;\n let pauseStore;\n let immediateStore = !!store.edges.value.length;\n pauseModel = watchPausable([models.edges, () => {\n var _a, _b;\n return (_b = (_a = models.edges) == null ? void 0 : _a.value) == null ? void 0 : _b.length;\n }], ([edges]) => {\n if (edges && Array.isArray(edges)) {\n pauseStore == null ? void 0 : pauseStore.pause();\n store.setEdges(edges);\n if (!pauseStore && !immediateStore && edges.length) {\n immediateStore = true;\n } else {\n pauseStore == null ? void 0 : pauseStore.resume();\n }\n }\n });\n pauseStore = watchPausable(\n [store.edges, () => store.edges.value.length],\n ([edges]) => {\n var _a;\n if (((_a = models.edges) == null ? void 0 : _a.value) && Array.isArray(models.edges.value)) {\n pauseModel == null ? void 0 : pauseModel.pause();\n models.edges.value = [...edges];\n nextTick(() => {\n pauseModel == null ? void 0 : pauseModel.resume();\n });\n }\n },\n { immediate: immediateStore }\n );\n onScopeDispose(() => {\n pauseModel == null ? void 0 : pauseModel.stop();\n pauseStore == null ? void 0 : pauseStore.stop();\n });\n });\n };\n const watchMaxZoom = () => {\n scope.run(() => {\n watch(\n () => props.maxZoom,\n () => {\n if (props.maxZoom && isDef(props.maxZoom)) {\n store.setMaxZoom(props.maxZoom);\n }\n },\n {\n immediate: true\n }\n );\n });\n };\n const watchMinZoom = () => {\n scope.run(() => {\n watch(\n () => props.minZoom,\n () => {\n if (props.minZoom && isDef(props.minZoom)) {\n store.setMinZoom(props.minZoom);\n }\n },\n { immediate: true }\n );\n });\n };\n const watchTranslateExtent = () => {\n scope.run(() => {\n watch(\n () => props.translateExtent,\n () => {\n if (props.translateExtent && isDef(props.translateExtent)) {\n store.setTranslateExtent(props.translateExtent);\n }\n },\n {\n immediate: true\n }\n );\n });\n };\n const watchNodeExtent = () => {\n scope.run(() => {\n watch(\n () => props.nodeExtent,\n () => {\n if (props.nodeExtent && isDef(props.nodeExtent)) {\n store.setNodeExtent(props.nodeExtent);\n }\n },\n {\n immediate: true\n }\n );\n });\n };\n const watchApplyDefault = () => {\n scope.run(() => {\n watch(\n () => props.applyDefault,\n () => {\n if (isDef(props.applyDefault)) {\n store.applyDefault.value = props.applyDefault;\n }\n },\n {\n immediate: true\n }\n );\n });\n };\n const watchAutoConnect = () => {\n scope.run(() => {\n const autoConnector = async (params) => {\n let connection = params;\n if (typeof props.autoConnect === \"function\") {\n connection = await props.autoConnect(params);\n }\n if (connection !== false) {\n store.addEdges([connection]);\n }\n };\n watch(\n () => props.autoConnect,\n () => {\n if (isDef(props.autoConnect)) {\n store.autoConnect.value = props.autoConnect;\n }\n },\n { immediate: true }\n );\n watch(\n store.autoConnect,\n (autoConnectEnabled, _, onCleanup) => {\n if (autoConnectEnabled) {\n store.onConnect(autoConnector);\n } else {\n store.hooks.value.connect.off(autoConnector);\n }\n onCleanup(() => {\n store.hooks.value.connect.off(autoConnector);\n });\n },\n { immediate: true }\n );\n });\n };\n const watchRest = () => {\n const skip = [\n \"id\",\n \"modelValue\",\n \"translateExtent\",\n \"nodeExtent\",\n \"edges\",\n \"nodes\",\n \"maxZoom\",\n \"minZoom\",\n \"applyDefault\",\n \"autoConnect\"\n ];\n for (const key of Object.keys(props)) {\n const propKey = key;\n if (!skip.includes(propKey)) {\n const propValue = toRef(() => props[propKey]);\n const storeRef = store[propKey];\n if (isRef(storeRef)) {\n scope.run(() => {\n watch(\n propValue,\n (nextValue) => {\n if (isDef(nextValue)) {\n storeRef.value = nextValue;\n }\n },\n { immediate: true }\n );\n });\n }\n }\n }\n };\n const runAll = () => {\n watchModelValue();\n watchNodesValue();\n watchEdgesValue();\n watchMinZoom();\n watchMaxZoom();\n watchTranslateExtent();\n watchNodeExtent();\n watchApplyDefault();\n watchAutoConnect();\n watchRest();\n };\n runAll();\n });\n return () => scope.stop();\n}\nfunction useZoomPanHelper(vueFlowId) {\n const state = useVueFlow({ id: vueFlowId });\n const viewportHelper = useViewportHelper(toReactive(state));\n return {\n fitView: (params) => viewportHelper.value.fitView(params),\n zoomIn: (transitionOpts) => viewportHelper.value.zoomIn(transitionOpts),\n zoomOut: (transitionOpts) => viewportHelper.value.zoomOut(transitionOpts),\n zoomTo: (zoomLevel, transitionOpts) => viewportHelper.value.zoomTo(zoomLevel, transitionOpts),\n setViewport: (params, transitionOpts) => viewportHelper.value.setViewport(params, transitionOpts),\n setTransform: (params, transitionOpts) => viewportHelper.value.setTransform(params, transitionOpts),\n getViewport: () => viewportHelper.value.getViewport(),\n getTransform: () => viewportHelper.value.getTransform(),\n setCenter: (x, y, opts) => viewportHelper.value.setCenter(x, y, opts),\n fitBounds: (params, opts) => viewportHelper.value.fitBounds(params, opts),\n project: (params) => viewportHelper.value.project(params)\n };\n}\nfunction nodeToRect(node) {\n return {\n ...node.computedPosition || { x: 0, y: 0 },\n width: node.dimensions.width || 0,\n height: node.dimensions.height || 0\n };\n}\nfunction getOverlappingArea(rectA, rectB) {\n const xOverlap = Math.max(0, Math.min(rectA.x + rectA.width, rectB.x + rectB.width) - Math.max(rectA.x, rectB.x));\n const yOverlap = Math.max(0, Math.min(rectA.y + rectA.height, rectB.y + rectB.height) - Math.max(rectA.y, rectB.y));\n return Math.ceil(xOverlap * yOverlap);\n}\nfunction getDimensions(node) {\n return {\n width: node.offsetWidth,\n height: node.offsetHeight\n };\n}\nfunction clamp(val, min = 0, max = 1) {\n return Math.min(Math.max(val, min), max);\n}\nfunction clampPosition(position, extent) {\n return {\n x: clamp(position.x, extent[0][0], extent[1][0]),\n y: clamp(position.y, extent[0][1], extent[1][1])\n };\n}\nfunction getHostForElement(element) {\n const doc = element.getRootNode();\n if (\"elementFromPoint\" in doc) {\n return doc;\n }\n const window2 = useWindow();\n return window2.document;\n}\nfunction isEdge(element) {\n return element && typeof element === \"object\" && \"id\" in element && \"source\" in element && \"target\" in element;\n}\nfunction isGraphEdge(element) {\n return isEdge(element) && \"sourceNode\" in element && \"targetNode\" in element;\n}\nfunction isNode(element) {\n return element && typeof element === \"object\" && \"id\" in element && \"position\" in element && !isEdge(element);\n}\nfunction isGraphNode(element) {\n return isNode(element) && \"computedPosition\" in element;\n}\nfunction isNumeric(n) {\n return !Number.isNaN(n) && Number.isFinite(n);\n}\nfunction isRect(obj) {\n return isNumeric(obj.width) && isNumeric(obj.height) && isNumeric(obj.x) && isNumeric(obj.y);\n}\nfunction parseNode(node, existingNode, parentNode) {\n const initialState = {\n id: node.id.toString(),\n type: node.type ?? \"default\",\n dimensions: markRaw({\n width: 0,\n height: 0\n }),\n computedPosition: markRaw({\n z: 0,\n ...node.position\n }),\n // todo: shouldn't be defined initially, as we want to use handleBounds to check if a node was actually initialized or not\n handleBounds: {\n source: [],\n target: []\n },\n draggable: void 0,\n selectable: void 0,\n connectable: void 0,\n focusable: void 0,\n selected: false,\n dragging: false,\n resizing: false,\n initialized: false,\n isParent: false,\n position: {\n x: 0,\n y: 0\n },\n data: isDef(node.data) ? node.data : {},\n events: markRaw(isDef(node.events) ? node.events : {})\n };\n return Object.assign(existingNode ?? initialState, node, { id: node.id.toString(), parentNode });\n}\nfunction parseEdge(edge, existingEdge, defaultEdgeOptions) {\n var _a, _b;\n const initialState = {\n id: edge.id.toString(),\n type: edge.type ?? (existingEdge == null ? void 0 : existingEdge.type) ?? \"default\",\n source: edge.source.toString(),\n target: edge.target.toString(),\n sourceHandle: (_a = edge.sourceHandle) == null ? void 0 : _a.toString(),\n targetHandle: (_b = edge.targetHandle) == null ? void 0 : _b.toString(),\n updatable: edge.updatable ?? (defaultEdgeOptions == null ? void 0 : defaultEdgeOptions.updatable),\n selectable: edge.selectable ?? (defaultEdgeOptions == null ? void 0 : defaultEdgeOptions.selectable),\n focusable: edge.focusable ?? (defaultEdgeOptions == null ? void 0 : defaultEdgeOptions.focusable),\n data: isDef(edge.data) ? edge.data : {},\n events: markRaw(isDef(edge.events) ? edge.events : {}),\n label: edge.label ?? \"\",\n interactionWidth: edge.interactionWidth ?? (defaultEdgeOptions == null ? void 0 : defaultEdgeOptions.interactionWidth),\n ...defaultEdgeOptions ?? {}\n };\n return Object.assign(existingEdge ?? initialState, edge, { id: edge.id.toString() });\n}\nfunction getConnectedElements(nodeOrId, nodes, edges, dir) {\n const id2 = typeof nodeOrId === \"string\" ? nodeOrId : nodeOrId.id;\n const connectedIds = /* @__PURE__ */ new Set();\n const origin = dir === \"source\" ? \"target\" : \"source\";\n for (const edge of edges) {\n if (edge[origin] === id2) {\n connectedIds.add(edge[dir]);\n }\n }\n return nodes.filter((n) => connectedIds.has(n.id));\n}\nfunction getOutgoers(...args) {\n if (args.length === 3) {\n const [nodeOrId2, nodes, edges] = args;\n return getConnectedElements(nodeOrId2, nodes, edges, \"target\");\n }\n const [nodeOrId, elements] = args;\n const nodeId = typeof nodeOrId === \"string\" ? nodeOrId : nodeOrId.id;\n const outgoers = elements.filter((el) => isEdge(el) && el.source === nodeId);\n return outgoers.map((edge) => elements.find((el) => isNode(el) && el.id === edge.target));\n}\nfunction getIncomers(...args) {\n if (args.length === 3) {\n const [nodeOrId2, nodes, edges] = args;\n return getConnectedElements(nodeOrId2, nodes, edges, \"source\");\n }\n const [nodeOrId, elements] = args;\n const nodeId = typeof nodeOrId === \"string\" ? nodeOrId : nodeOrId.id;\n const incomers = elements.filter((el) => isEdge(el) && el.target === nodeId);\n return incomers.map((edge) => elements.find((el) => isNode(el) && el.id === edge.source));\n}\nfunction getEdgeId({ source, sourceHandle, target, targetHandle }) {\n return `vueflow__edge-${source}${sourceHandle ?? \"\"}-${target}${targetHandle ?? \"\"}`;\n}\nfunction connectionExists(edge, elements) {\n return elements.some(\n (el) => isEdge(el) && el.source === edge.source && el.target === edge.target && (el.sourceHandle === edge.sourceHandle || !el.sourceHandle && !edge.sourceHandle) && (el.targetHandle === edge.targetHandle || !el.targetHandle && !edge.targetHandle)\n );\n}\nfunction addEdge(edgeParams, elements, defaults) {\n if (!edgeParams.source || !edgeParams.target) {\n warn(\"Can't create edge. An edge needs a source and a target.\");\n return elements;\n }\n let edge;\n if (isEdge(edgeParams)) {\n edge = { ...edgeParams };\n } else {\n edge = {\n ...edgeParams,\n id: getEdgeId(edgeParams)\n };\n }\n edge = parseEdge(edge, void 0, defaults);\n if (connectionExists(edge, elements)) {\n return elements;\n }\n elements.push(edge);\n return elements;\n}\nfunction updateEdge(oldEdge, newConnection, elements) {\n if (!newConnection.source || !newConnection.target) {\n warn(\"Can't create new edge. An edge needs a source and a target.\");\n return elements;\n }\n const foundEdge = elements.find((e) => isEdge(e) && e.id === oldEdge.id);\n if (!foundEdge) {\n warn(`The old edge with id=${oldEdge.id} does not exist.`);\n return elements;\n }\n const edge = {\n ...oldEdge,\n id: getEdgeId(newConnection),\n source: newConnection.source,\n target: newConnection.target,\n sourceHandle: newConnection.sourceHandle,\n targetHandle: newConnection.targetHandle\n };\n elements.splice(elements.indexOf(foundEdge), 1, edge);\n return elements.filter((e) => e.id !== oldEdge.id);\n}\nfunction rendererPointToPoint({ x, y }, { x: tx, y: ty, zoom: tScale }) {\n return {\n x: x * tScale + tx,\n y: y * tScale + ty\n };\n}\nfunction pointToRendererPoint({ x, y }, { x: tx, y: ty, zoom: tScale }, snapToGrid, [snapX, snapY]) {\n const position = {\n x: (x - tx) / tScale,\n y: (y - ty) / tScale\n };\n if (snapToGrid) {\n return {\n x: snapX * Math.round(position.x / snapX),\n y: snapY * Math.round(position.y / snapY)\n };\n }\n return position;\n}\nfunction getBoundsOfBoxes(box1, box2) {\n return {\n x: Math.min(box1.x, box2.x),\n y: Math.min(box1.y, box2.y),\n x2: Math.max(box1.x2, box2.x2),\n y2: Math.max(box1.y2, box2.y2)\n };\n}\nfunction rectToBox({ x, y, width, height }) {\n return {\n x,\n y,\n x2: x + width,\n y2: y + height\n };\n}\nfunction boxToRect({ x, y, x2, y2 }) {\n return {\n x,\n y,\n width: x2 - x,\n height: y2 - y\n };\n}\nfunction getBoundsofRects(rect1, rect2) {\n return boxToRect(getBoundsOfBoxes(rectToBox(rect1), rectToBox(rect2)));\n}\nfunction getRectOfNodes(nodes) {\n let box = {\n x: Number.POSITIVE_INFINITY,\n y: Number.POSITIVE_INFINITY,\n x2: Number.NEGATIVE_INFINITY,\n y2: Number.NEGATIVE_INFINITY\n };\n for (let i = 0; i < nodes.length; i++) {\n const node = nodes[i];\n box = getBoundsOfBoxes(\n box,\n rectToBox({\n ...node.computedPosition,\n ...node.dimensions\n })\n );\n }\n return boxToRect(box);\n}\nfunction getNodesInside(nodes, rect, { x: tx, y: ty, zoom: tScale } = { x: 0, y: 0, zoom: 1 }, partially = false, excludeNonSelectableNodes = false) {\n const paneRect = {\n x: (rect.x - tx) / tScale,\n y: (rect.y - ty) / tScale,\n width: rect.width / tScale,\n height: rect.height / tScale\n };\n return nodes.filter((node) => {\n const { computedPosition = { x: 0, y: 0 }, dimensions = { width: 0, height: 0 }, selectable } = node;\n if (excludeNonSelectableNodes && !selectable) {\n return false;\n }\n const nodeRect = { ...computedPosition, width: dimensions.width || 0, height: dimensions.height || 0 };\n const overlappingArea = getOverlappingArea(paneRect, nodeRect);\n const notInitialized = typeof dimensions.width === \"undefined\" || typeof dimensions.height === \"undefined\" || dimensions.width === 0 || dimensions.height === 0;\n const partiallyVisible = partially && overlappingArea > 0;\n const area = dimensions.width * dimensions.height;\n return notInitialized || partiallyVisible || overlappingArea >= area;\n });\n}\nfunction getConnectedEdges(nodesOrId, edges) {\n const nodeIds = /* @__PURE__ */ new Set();\n if (typeof nodesOrId === \"string\") {\n nodeIds.add(nodesOrId);\n } else if (nodesOrId.length >= 1) {\n for (const n of nodesOrId) {\n nodeIds.add(n.id);\n }\n }\n return edges.filter((edge) => nodeIds.has(edge.source) || nodeIds.has(edge.target));\n}\nfunction getTransformForBounds(bounds, width, height, minZoom, maxZoom, padding = 0.1, offset = { x: 0, y: 0 }) {\n const xZoom = width / (bounds.width * (1 + padding));\n const yZoom = height / (bounds.height * (1 + padding));\n const zoom2 = Math.min(xZoom, yZoom);\n const clampedZoom = clamp(zoom2, minZoom, maxZoom);\n const boundsCenterX = bounds.x + bounds.width / 2;\n const boundsCenterY = bounds.y + bounds.height / 2;\n const x = width / 2 - boundsCenterX * clampedZoom + (offset.x ?? 0);\n const y = height / 2 - boundsCenterY * clampedZoom + (offset.y ?? 0);\n return { x, y, zoom: clampedZoom };\n}\nfunction getXYZPos(parentPos, computedPosition) {\n return {\n x: computedPosition.x + parentPos.x,\n y: computedPosition.y + parentPos.y,\n z: (parentPos.z > computedPosition.z ? parentPos.z : computedPosition.z) + 1\n };\n}\nfunction isParentSelected(node, findNode) {\n if (!node.parentNode) {\n return false;\n }\n const parent = findNode(node.parentNode);\n if (!parent) {\n return false;\n }\n if (parent.selected) {\n return true;\n }\n return isParentSelected(parent, findNode);\n}\nfunction getMarkerId(marker, vueFlowId) {\n if (typeof marker === \"undefined\") {\n return \"\";\n }\n if (typeof marker === \"string\") {\n return marker;\n }\n const idPrefix = vueFlowId ? `${vueFlowId}__` : \"\";\n return `${idPrefix}${Object.keys(marker).sort().map((key) => `${key}=${marker[key]}`).join(\"&\")}`;\n}\nfunction calcAutoPanVelocity(value, min, max) {\n if (value < min) {\n return clamp(Math.abs(value - min), 1, 50) / 50;\n } else if (value > max) {\n return -clamp(Math.abs(value - max), 1, 50) / 50;\n }\n return 0;\n}\nfunction calcAutoPan(pos, bounds) {\n const xMovement = calcAutoPanVelocity(pos.x, 35, bounds.width - 35) * 20;\n const yMovement = calcAutoPanVelocity(pos.y, 35, bounds.height - 35) * 20;\n return [xMovement, yMovement];\n}\nfunction handleParentExpand(updateItem, parent) {\n if (parent) {\n const extendWidth = updateItem.position.x + updateItem.dimensions.width - parent.dimensions.width;\n const extendHeight = updateItem.position.y + updateItem.dimensions.height - parent.dimensions.height;\n if (extendWidth > 0 || extendHeight > 0 || updateItem.position.x < 0 || updateItem.position.y < 0) {\n let parentStyles = {};\n if (typeof parent.style === \"function\") {\n parentStyles = { ...parent.style(parent) };\n } else if (parent.style) {\n parentStyles = { ...parent.style };\n }\n parentStyles.width = parentStyles.width ?? `${parent.dimensions.width}px`;\n parentStyles.height = parentStyles.height ?? `${parent.dimensions.height}px`;\n if (extendWidth > 0) {\n if (typeof parentStyles.width === \"string\") {\n const currWidth = Number(parentStyles.width.replace(\"px\", \"\"));\n parentStyles.width = `${currWidth + extendWidth}px`;\n } else {\n parentStyles.width += extendWidth;\n }\n }\n if (extendHeight > 0) {\n if (typeof parentStyles.height === \"string\") {\n const currWidth = Number(parentStyles.height.replace(\"px\", \"\"));\n parentStyles.height = `${currWidth + extendHeight}px`;\n } else {\n parentStyles.height += extendHeight;\n }\n }\n if (updateItem.position.x < 0) {\n const xDiff = Math.abs(updateItem.position.x);\n parent.position.x = parent.position.x - xDiff;\n if (typeof parentStyles.width === \"string\") {\n const currWidth = Number(parentStyles.width.replace(\"px\", \"\"));\n parentStyles.width = `${currWidth + xDiff}px`;\n } else {\n parentStyles.width += xDiff;\n }\n updateItem.position.x = 0;\n }\n if (updateItem.position.y < 0) {\n const yDiff = Math.abs(updateItem.position.y);\n parent.position.y = parent.position.y - yDiff;\n if (typeof parentStyles.height === \"string\") {\n const currWidth = Number(parentStyles.height.replace(\"px\", \"\"));\n parentStyles.height = `${currWidth + yDiff}px`;\n } else {\n parentStyles.height += yDiff;\n }\n updateItem.position.y = 0;\n }\n parent.dimensions.width = Number(parentStyles.width.toString().replace(\"px\", \"\"));\n parent.dimensions.height = Number(parentStyles.height.toString().replace(\"px\", \"\"));\n if (typeof parent.style === \"function\") {\n parent.style = (p) => {\n const styleFunc = parent.style;\n return {\n ...styleFunc(p),\n ...parentStyles\n };\n };\n } else {\n parent.style = {\n ...parent.style,\n ...parentStyles\n };\n }\n }\n }\n}\nfunction applyChanges(changes, elements) {\n var _a, _b;\n const addRemoveChanges = changes.filter((c) => c.type === \"add\" || c.type === \"remove\");\n for (const change of addRemoveChanges) {\n if (change.type === \"add\") {\n const index = elements.findIndex((el) => el.id === change.item.id);\n if (index === -1) {\n elements.push(change.item);\n }\n } else if (change.type === \"remove\") {\n const index = elements.findIndex((el) => el.id === change.id);\n if (index !== -1) {\n elements.splice(index, 1);\n }\n }\n }\n const elementIds = elements.map((el) => el.id);\n for (const element of elements) {\n for (const currentChange of changes) {\n if (currentChange.id !== element.id) {\n continue;\n }\n switch (currentChange.type) {\n case \"select\":\n element.selected = currentChange.selected;\n break;\n case \"position\":\n if (isGraphNode(element)) {\n if (typeof currentChange.position !== \"undefined\") {\n element.position = currentChange.position;\n }\n if (typeof currentChange.dragging !== \"undefined\") {\n element.dragging = currentChange.dragging;\n }\n if (element.expandParent && element.parentNode) {\n const parent = elements[elementIds.indexOf(element.parentNode)];\n if (parent && isGraphNode(parent)) {\n handleParentExpand(element, parent);\n }\n }\n }\n break;\n case \"dimensions\":\n if (isGraphNode(element)) {\n if (typeof currentChange.dimensions !== \"undefined\") {\n element.dimensions = currentChange.dimensions;\n }\n if (typeof currentChange.updateStyle !== \"undefined\") {\n element.style = {\n ...element.style || {},\n width: `${(_a = currentChange.dimensions) == null ? void 0 : _a.width}px`,\n height: `${(_b = currentChange.dimensions) == null ? void 0 : _b.height}px`\n };\n }\n if (typeof currentChange.resizing !== \"undefined\") {\n element.resizing = currentChange.resizing;\n }\n if (element.expandParent && element.parentNode) {\n const parent = elements[elementIds.indexOf(element.parentNode)];\n if (parent && isGraphNode(parent)) {\n const parentInit = !!parent.dimensions.width && !!parent.dimensions.height;\n if (!parentInit) {\n nextTick(() => {\n handleParentExpand(element, parent);\n });\n } else {\n handleParentExpand(element, parent);\n }\n }\n }\n }\n break;\n }\n }\n }\n return elements;\n}\nfunction applyEdgeChanges(changes, edges) {\n return applyChanges(changes, edges);\n}\nfunction applyNodeChanges(changes, nodes) {\n return applyChanges(changes, nodes);\n}\nfunction createSelectionChange(id2, selected) {\n return {\n id: id2,\n type: \"select\",\n selected\n };\n}\nfunction createAdditionChange(item) {\n return {\n item,\n type: \"add\"\n };\n}\nfunction createNodeRemoveChange(id2) {\n return {\n id: id2,\n type: \"remove\"\n };\n}\nfunction createEdgeRemoveChange(id2, source, target, sourceHandle, targetHandle) {\n return {\n id: id2,\n source,\n target,\n sourceHandle: sourceHandle || null,\n targetHandle: targetHandle || null,\n type: \"remove\"\n };\n}\nfunction getSelectionChanges(elements, selectedIds) {\n return elements.reduce(\n (res, item) => {\n let willBeSelected = selectedIds.includes(item.id);\n if (isDef(item.selectable) && !item.selectable) {\n willBeSelected = false;\n }\n const key = isGraphNode(item) ? \"changedNodes\" : \"changedEdges\";\n if (!item.selected && willBeSelected) {\n res[key].push(createSelectionChange(item.id, true));\n } else if (item.selected && !willBeSelected) {\n res[key].push(createSelectionChange(item.id, false));\n }\n return res;\n },\n { changedNodes: [], changedEdges: [] }\n );\n}\nfunction createExtendedEventHook(defaultHandler) {\n const fns = /* @__PURE__ */ new Set();\n let hasDefaultHandler = false;\n const hasListeners = () => fns.size > 0;\n if (defaultHandler) {\n hasDefaultHandler = true;\n fns.add(defaultHandler);\n }\n const off = (fn) => {\n fns.delete(fn);\n };\n const on = (fn) => {\n if (defaultHandler && hasDefaultHandler) {\n fns.delete(defaultHandler);\n }\n fns.add(fn);\n const offFn = () => {\n off(fn);\n if (defaultHandler && hasDefaultHandler) {\n fns.add(defaultHandler);\n }\n };\n tryOnScopeDispose(offFn);\n return {\n off: offFn\n };\n };\n const trigger = (param) => {\n return Promise.all(Array.from(fns).map((fn) => fn(param)));\n };\n return {\n on,\n off,\n trigger,\n hasListeners,\n fns\n };\n}\nfunction hasSelector(target, selector2, node) {\n let current = target;\n do {\n if (current && current.matches(selector2)) {\n return true;\n } else if (current === node) {\n return false;\n }\n current = current.parentElement;\n } while (current);\n return false;\n}\nfunction getDragItems(nodes, nodesDraggable, mousePos, findNode, nodeId) {\n var _a, _b;\n const dragItems = [];\n for (const node of nodes) {\n if ((node.selected || node.id === nodeId) && (!node.parentNode || !isParentSelected(node, findNode)) && (node.draggable || nodesDraggable && typeof node.draggable === \"undefined\")) {\n dragItems.push(\n markRaw({\n id: node.id,\n position: node.position || { x: 0, y: 0 },\n distance: {\n x: mousePos.x - ((_a = node.computedPosition) == null ? void 0 : _a.x) || 0,\n y: mousePos.y - ((_b = node.computedPosition) == null ? void 0 : _b.y) || 0\n },\n from: node.computedPosition,\n extent: node.extent,\n parentNode: node.parentNode,\n dimensions: node.dimensions,\n expandParent: node.expandParent\n })\n );\n }\n }\n return dragItems;\n}\nfunction getEventHandlerParams({\n id: id2,\n dragItems,\n findNode\n}) {\n const extendedDragItems = [];\n for (const dragItem of dragItems) {\n const node = findNode(dragItem.id);\n if (node) {\n extendedDragItems.push(node);\n }\n }\n return [id2 ? extendedDragItems.find((n) => n.id === id2) : extendedDragItems[0], extendedDragItems];\n}\nfunction getExtentPadding(padding) {\n if (Array.isArray(padding)) {\n switch (padding.length) {\n case 1:\n return [padding[0], padding[0], padding[0], padding[0]];\n case 2:\n return [padding[0], padding[1], padding[0], padding[1]];\n case 3:\n return [padding[0], padding[1], padding[2], padding[1]];\n case 4:\n return padding;\n default:\n return [0, 0, 0, 0];\n }\n }\n return [padding, padding, padding, padding];\n}\nfunction getParentExtent(currentExtent, node, parent) {\n const [top, right, bottom, left] = typeof currentExtent !== \"string\" ? getExtentPadding(currentExtent.padding) : [0, 0, 0, 0];\n if (parent && typeof parent.computedPosition.x !== \"undefined\" && typeof parent.computedPosition.y !== \"undefined\" && typeof parent.dimensions.width !== \"undefined\" && typeof parent.dimensions.height !== \"undefined\") {\n return [\n [parent.computedPosition.x + left, parent.computedPosition.y + top],\n [\n parent.computedPosition.x + parent.dimensions.width - right,\n parent.computedPosition.y + parent.dimensions.height - bottom\n ]\n ];\n }\n return false;\n}\nfunction getExtent(item, triggerError, extent, parent) {\n let currentExtent = item.extent || extent;\n if ((currentExtent === \"parent\" || !Array.isArray(currentExtent) && (currentExtent == null ? void 0 : currentExtent.range) === \"parent\") && !item.expandParent) {\n if (item.parentNode && parent && item.dimensions.width && item.dimensions.height) {\n const parentExtent = getParentExtent(currentExtent, item, parent);\n if (parentExtent) {\n currentExtent = parentExtent;\n }\n } else {\n triggerError(new VueFlowError(ErrorCode.NODE_EXTENT_INVALID, item.id));\n currentExtent = extent;\n }\n } else if (Array.isArray(currentExtent)) {\n const parentX = (parent == null ? void 0 : parent.computedPosition.x) || 0;\n const parentY = (parent == null ? void 0 : parent.computedPosition.y) || 0;\n currentExtent = [\n [currentExtent[0][0] + parentX, currentExtent[0][1] + parentY],\n [currentExtent[1][0] + parentX, currentExtent[1][1] + parentY]\n ];\n } else if (currentExtent !== \"parent\" && (currentExtent == null ? void 0 : currentExtent.range) && Array.isArray(currentExtent.range)) {\n const [top, right, bottom, left] = getExtentPadding(currentExtent.padding);\n const parentX = (parent == null ? void 0 : parent.computedPosition.x) || 0;\n const parentY = (parent == null ? void 0 : parent.computedPosition.y) || 0;\n currentExtent = [\n [currentExtent.range[0][0] + parentX + left, currentExtent.range[0][1] + parentY + top],\n [currentExtent.range[1][0] + parentX - right, currentExtent.range[1][1] + parentY - bottom]\n ];\n }\n return currentExtent === \"parent\" ? [\n [Number.NEGATIVE_INFINITY, Number.NEGATIVE_INFINITY],\n [Number.POSITIVE_INFINITY, Number.POSITIVE_INFINITY]\n ] : currentExtent;\n}\nfunction clampNodeExtent({ width, height }, extent) {\n return [extent[0], [extent[1][0] - (width || 0), extent[1][1] - (height || 0)]];\n}\nfunction calcNextPosition(node, nextPosition, triggerError, nodeExtent, parentNode) {\n const extent = clampNodeExtent(node.dimensions, getExtent(node, triggerError, nodeExtent, parentNode));\n const clampedPos = clampPosition(nextPosition, extent);\n return {\n position: {\n x: clampedPos.x - ((parentNode == null ? void 0 : parentNode.computedPosition.x) || 0),\n y: clampedPos.y - ((parentNode == null ? void 0 : parentNode.computedPosition.y) || 0)\n },\n computedPosition: clampedPos\n };\n}\nfunction getHandlePosition(position, rect, handle) {\n const x = ((handle == null ? void 0 : handle.x) ?? 0) + rect.x;\n const y = ((handle == null ? void 0 : handle.y) ?? 0) + rect.y;\n const width = (handle == null ? void 0 : handle.width) ?? rect.width;\n const height = (handle == null ? void 0 : handle.height) ?? rect.height;\n switch (position) {\n case Position.Top:\n return {\n x: x + width / 2,\n y\n };\n case Position.Right:\n return {\n x: x + width,\n y: y + height / 2\n };\n case Position.Bottom:\n return {\n x: x + width / 2,\n y: y + height\n };\n case Position.Left:\n return {\n x,\n y: y + height / 2\n };\n }\n}\nfunction getHandle(bounds = [], handleId) {\n if (!bounds.length) {\n return null;\n }\n return (!handleId ? bounds[0] : bounds.find((d) => d.id === handleId)) || null;\n}\nfunction getEdgePositions(sourceNode, sourceHandle, sourcePosition, targetNode, targetHandle, targetPosition) {\n const sourceHandlePos = getHandlePosition(\n sourcePosition,\n {\n ...sourceNode.dimensions,\n ...sourceNode.computedPosition\n },\n sourceHandle\n );\n const targetHandlePos = getHandlePosition(\n targetPosition,\n {\n ...targetNode.dimensions,\n ...targetNode.computedPosition\n },\n targetHandle\n );\n return {\n sourceX: sourceHandlePos.x,\n sourceY: sourceHandlePos.y,\n targetX: targetHandlePos.x,\n targetY: targetHandlePos.y\n };\n}\nfunction isEdgeVisible({\n sourcePos,\n targetPos,\n sourceWidth,\n sourceHeight,\n targetWidth,\n targetHeight,\n width,\n height,\n viewport\n}) {\n const edgeBox = {\n x: Math.min(sourcePos.x, targetPos.x),\n y: Math.min(sourcePos.y, targetPos.y),\n x2: Math.max(sourcePos.x + sourceWidth, targetPos.x + targetWidth),\n y2: Math.max(sourcePos.y + sourceHeight, targetPos.y + targetHeight)\n };\n if (edgeBox.x === edgeBox.x2) {\n edgeBox.x2 += 1;\n }\n if (edgeBox.y === edgeBox.y2) {\n edgeBox.y2 += 1;\n }\n const viewBox = rectToBox({\n x: (0 - viewport.x) / viewport.zoom,\n y: (0 - viewport.y) / viewport.zoom,\n width: width / viewport.zoom,\n height: height / viewport.zoom\n });\n const xOverlap = Math.max(0, Math.min(viewBox.x2, edgeBox.x2) - Math.max(viewBox.x, edgeBox.x));\n const yOverlap = Math.max(0, Math.min(viewBox.y2, edgeBox.y2) - Math.max(viewBox.y, edgeBox.y));\n const overlappingArea = Math.ceil(xOverlap * yOverlap);\n return overlappingArea > 0;\n}\nfunction getEdgeZIndex(edge, findNode, elevateEdgesOnSelect = false) {\n const hasZIndex = typeof edge.zIndex === \"number\";\n let z = hasZIndex ? edge.zIndex : 0;\n const source = findNode(edge.source);\n const target = findNode(edge.target);\n if (!source || !target) {\n return 0;\n }\n if (elevateEdgesOnSelect) {\n z = hasZIndex ? edge.zIndex : Math.max(source.computedPosition.z || 0, target.computedPosition.z || 0);\n }\n return z;\n}\nvar ErrorCode = /* @__PURE__ */ ((ErrorCode2) => {\n ErrorCode2[\"MISSING_STYLES\"] = \"MISSING_STYLES\";\n ErrorCode2[\"MISSING_VIEWPORT_DIMENSIONS\"] = \"MISSING_VIEWPORT_DIMENSIONS\";\n ErrorCode2[\"NODE_INVALID\"] = \"NODE_INVALID\";\n ErrorCode2[\"NODE_NOT_FOUND\"] = \"NODE_NOT_FOUND\";\n ErrorCode2[\"NODE_MISSING_PARENT\"] = \"NODE_MISSING_PARENT\";\n ErrorCode2[\"NODE_TYPE_MISSING\"] = \"NODE_TYPE_MISSING\";\n ErrorCode2[\"NODE_EXTENT_INVALID\"] = \"NODE_EXTENT_INVALID\";\n ErrorCode2[\"EDGE_INVALID\"] = \"EDGE_INVALID\";\n ErrorCode2[\"EDGE_NOT_FOUND\"] = \"EDGE_NOT_FOUND\";\n ErrorCode2[\"EDGE_SOURCE_MISSING\"] = \"EDGE_SOURCE_MISSING\";\n ErrorCode2[\"EDGE_TARGET_MISSING\"] = \"EDGE_TARGET_MISSING\";\n ErrorCode2[\"EDGE_TYPE_MISSING\"] = \"EDGE_TYPE_MISSING\";\n ErrorCode2[\"EDGE_SOURCE_TARGET_SAME\"] = \"EDGE_SOURCE_TARGET_SAME\";\n ErrorCode2[\"EDGE_SOURCE_TARGET_MISSING\"] = \"EDGE_SOURCE_TARGET_MISSING\";\n ErrorCode2[\"EDGE_ORPHANED\"] = \"EDGE_ORPHANED\";\n ErrorCode2[\"USEVUEFLOW_OPTIONS\"] = \"USEVUEFLOW_OPTIONS\";\n return ErrorCode2;\n})(ErrorCode || {});\nconst messages = {\n [\n \"MISSING_STYLES\"\n /* MISSING_STYLES */\n ]: () => `It seems that you haven't loaded the necessary styles. Please import '@vue-flow/core/dist/style.css' to ensure that the graph is rendered correctly`,\n [\n \"MISSING_VIEWPORT_DIMENSIONS\"\n /* MISSING_VIEWPORT_DIMENSIONS */\n ]: () => \"The Vue Flow parent container needs a width and a height to render the graph\",\n [\n \"NODE_INVALID\"\n /* NODE_INVALID */\n ]: (id2) => `Node is invalid\nNode: ${id2}`,\n [\n \"NODE_NOT_FOUND\"\n /* NODE_NOT_FOUND */\n ]: (id2) => `Node not found\nNode: ${id2}`,\n [\n \"NODE_MISSING_PARENT\"\n /* NODE_MISSING_PARENT */\n ]: (id2, parentId) => `Node is missing a parent\nNode: ${id2}\nParent: ${parentId}`,\n [\n \"NODE_TYPE_MISSING\"\n /* NODE_TYPE_MISSING */\n ]: (type) => `Node type is missing\nType: ${type}`,\n [\n \"NODE_EXTENT_INVALID\"\n /* NODE_EXTENT_INVALID */\n ]: (id2) => `Only child nodes can use a parent extent\nNode: ${id2}`,\n [\n \"EDGE_INVALID\"\n /* EDGE_INVALID */\n ]: (id2) => `An edge needs a source and a target\nEdge: ${id2}`,\n [\n \"EDGE_SOURCE_MISSING\"\n /* EDGE_SOURCE_MISSING */\n ]: (id2, source) => `Edge source is missing\nEdge: ${id2} \nSource: ${source}`,\n [\n \"EDGE_TARGET_MISSING\"\n /* EDGE_TARGET_MISSING */\n ]: (id2, target) => `Edge target is missing\nEdge: ${id2} \nTarget: ${target}`,\n [\n \"EDGE_TYPE_MISSING\"\n /* EDGE_TYPE_MISSING */\n ]: (type) => `Edge type is missing\nType: ${type}`,\n [\n \"EDGE_SOURCE_TARGET_SAME\"\n /* EDGE_SOURCE_TARGET_SAME */\n ]: (id2, source, target) => `Edge source and target are the same\nEdge: ${id2} \nSource: ${source} \nTarget: ${target}`,\n [\n \"EDGE_SOURCE_TARGET_MISSING\"\n /* EDGE_SOURCE_TARGET_MISSING */\n ]: (id2, source, target) => `Edge source or target is missing\nEdge: ${id2} \nSource: ${source} \nTarget: ${target}`,\n [\n \"EDGE_ORPHANED\"\n /* EDGE_ORPHANED */\n ]: (id2) => `Edge was orphaned (suddenly missing source or target) and has been removed\nEdge: ${id2}`,\n [\n \"EDGE_NOT_FOUND\"\n /* EDGE_NOT_FOUND */\n ]: (id2) => `Edge not found\nEdge: ${id2}`,\n // deprecation errors\n [\n \"USEVUEFLOW_OPTIONS\"\n /* USEVUEFLOW_OPTIONS */\n ]: () => `The options parameter is deprecated and will be removed in the next major version. Please use the id parameter instead`\n};\nclass VueFlowError extends Error {\n constructor(code, ...args) {\n var _a;\n super((_a = messages[code]) == null ? void 0 : _a.call(messages, ...args));\n this.name = \"VueFlowError\";\n this.code = code;\n this.args = args;\n }\n}\nfunction isErrorOfType(error, code) {\n return error.code === code;\n}\nfunction isMouseEvent(event) {\n return \"clientX\" in event;\n}\nfunction getEventPosition(event, bounds) {\n var _a, _b;\n const isMouseTriggered = isMouseEvent(event);\n const evtX = isMouseTriggered ? event.clientX : (_a = event.touches) == null ? void 0 : _a[0].clientX;\n const evtY = isMouseTriggered ? event.clientY : (_b = event.touches) == null ? void 0 : _b[0].clientY;\n return {\n x: evtX - ((bounds == null ? void 0 : bounds.left) ?? 0),\n y: evtY - ((bounds == null ? void 0 : bounds.top) ?? 0)\n };\n}\nconst isMacOs = () => {\n var _a;\n return typeof navigator !== \"undefined\" && ((_a = navigator == null ? void 0 : navigator.userAgent) == null ? void 0 : _a.indexOf(\"Mac\")) >= 0;\n};\nfunction defaultValidHandleResult() {\n return {\n handleDomNode: null,\n isValid: false,\n connection: { source: \"\", target: \"\", sourceHandle: null, targetHandle: null },\n endHandle: null\n };\n}\nfunction resetRecentHandle(handleDomNode) {\n handleDomNode == null ? void 0 : handleDomNode.classList.remove(\"valid\", \"connecting\", \"vue-flow__handle-valid\", \"vue-flow__handle-connecting\");\n}\nfunction getHandles(node, handleBounds, type, currentHandle) {\n return (handleBounds[type] || []).reduce((res, h2) => {\n var _a, _b;\n if (`${node.id}-${h2.id}-${type}` !== currentHandle) {\n res.push({\n id: h2.id || null,\n type,\n nodeId: node.id,\n x: (((_a = node.computedPosition) == null ? void 0 : _a.x) ?? 0) + h2.x + h2.width / 2,\n y: (((_b = node.computedPosition) == null ? void 0 : _b.y) ?? 0) + h2.y + h2.height / 2,\n width: h2.width,\n height: h2.height\n });\n }\n return res;\n }, []);\n}\nfunction getClosestHandle(event, doc, pos, connectionRadius, handles, validator) {\n const { x, y } = getEventPosition(event);\n const domNodes = doc.elementsFromPoint(x, y);\n const handleBelow = domNodes.find((el) => el.classList.contains(\"vue-flow__handle\"));\n if (handleBelow) {\n const handleNodeId = handleBelow.getAttribute(\"data-nodeid\");\n if (handleNodeId) {\n const handleType = getHandleType(void 0, handleBelow);\n const handleId = handleBelow.getAttribute(\"data-handleid\");\n const validHandleResult = validator({ nodeId: handleNodeId, id: handleId, type: handleType });\n if (validHandleResult) {\n const handle = handles.find((h2) => h2.nodeId === handleNodeId && h2.type === handleType && h2.id === handleId);\n return {\n handle: {\n id: handleId,\n type: handleType,\n nodeId: handleNodeId,\n x: (handle == null ? void 0 : handle.x) || pos.x,\n y: (handle == null ? void 0 : handle.y) || pos.y\n },\n validHandleResult\n };\n }\n }\n }\n let closestHandles = [];\n let minDistance = Number.POSITIVE_INFINITY;\n for (const handle of handles) {\n const distance2 = Math.sqrt((handle.x - pos.x) ** 2 + (handle.y - pos.y) ** 2);\n if (distance2 <= connectionRadius) {\n const validHandleResult = validator(handle);\n if (distance2 <= minDistance) {\n if (distance2 < minDistance) {\n closestHandles = [{ handle, validHandleResult }];\n } else if (distance2 === minDistance) {\n closestHandles.push({\n handle,\n validHandleResult\n });\n }\n minDistance = distance2;\n }\n }\n }\n if (!closestHandles.length) {\n return { handle: null, validHandleResult: defaultValidHandleResult() };\n }\n if (closestHandles.length === 1) {\n return closestHandles[0];\n }\n const hasValidHandle = closestHandles.some(({ validHandleResult }) => validHandleResult.isValid);\n const hasTargetHandle = closestHandles.some(({ handle }) => handle.type === \"target\");\n return closestHandles.find(\n ({ handle, validHandleResult }) => hasTargetHandle ? handle.type === \"target\" : hasValidHandle ? validHandleResult.isValid : true\n ) || closestHandles[0];\n}\nfunction isValidHandle(event, handle, connectionMode, fromNodeId, fromHandleId, fromType, isValidConnection, doc, edges, nodes, findNode) {\n const isTarget = fromType === \"target\";\n const handleDomNode = doc.querySelector(`.vue-flow__handle[data-id=\"${handle == null ? void 0 : handle.nodeId}-${handle == null ? void 0 : handle.id}-${handle == null ? void 0 : handle.type}\"]`);\n const { x, y } = getEventPosition(event);\n const elementBelow = doc.elementFromPoint(x, y);\n const handleToCheck = (elementBelow == null ? void 0 : elementBelow.classList.contains(\"vue-flow__handle\")) ? elementBelow : handleDomNode;\n const result = defaultValidHandleResult();\n if (handleToCheck) {\n result.handleDomNode = handleToCheck;\n const handleType = getHandleType(void 0, handleToCheck);\n const handleNodeId = handleToCheck.getAttribute(\"data-nodeid\");\n const handleId = handleToCheck.getAttribute(\"data-handleid\");\n const connectable = handleToCheck.classList.contains(\"connectable\");\n const connectableEnd = handleToCheck.classList.contains(\"connectableend\");\n const connection = {\n source: isTarget ? handleNodeId : fromNodeId,\n sourceHandle: isTarget ? handleId : fromHandleId,\n target: isTarget ? fromNodeId : handleNodeId,\n targetHandle: isTarget ? fromHandleId : handleId\n };\n result.connection = connection;\n const isConnectable = connectable && connectableEnd;\n const isValid = isConnectable && (connectionMode === ConnectionMode.Strict ? isTarget && handleType === \"source\" || !isTarget && handleType === \"target\" : handleNodeId !== fromNodeId || handleId !== fromHandleId);\n result.endHandle = {\n nodeId: handleNodeId,\n handleId,\n type: handleType\n };\n if (isValid) {\n result.isValid = isValidConnection(connection, {\n edges,\n nodes,\n sourceNode: findNode(connection.source),\n targetNode: findNode(connection.target)\n });\n }\n }\n return result;\n}\nfunction getHandleLookup({ nodes, nodeId, handleId, handleType }) {\n const handleLookup = [];\n for (let i = 0; i < nodes.length; i++) {\n const node = nodes[i];\n const { handleBounds } = node;\n let sourceHandles = [];\n let targetHandles = [];\n if (handleBounds) {\n sourceHandles = getHandles(node, handleBounds, \"source\", `${nodeId}-${handleId}-${handleType}`);\n targetHandles = getHandles(node, handleBounds, \"target\", `${nodeId}-${handleId}-${handleType}`);\n }\n handleLookup.push(...sourceHandles, ...targetHandles);\n }\n return handleLookup;\n}\nfunction getHandleType(edgeUpdaterType, handleDomNode) {\n if (edgeUpdaterType) {\n return edgeUpdaterType;\n } else if (handleDomNode == null ? void 0 : handleDomNode.classList.contains(\"target\")) {\n return \"target\";\n } else if (handleDomNode == null ? void 0 : handleDomNode.classList.contains(\"source\")) {\n return \"source\";\n }\n return null;\n}\nfunction getConnectionStatus(isInsideConnectionRadius, isHandleValid) {\n let connectionStatus = null;\n if (isHandleValid) {\n connectionStatus = \"valid\";\n } else if (isInsideConnectionRadius && !isHandleValid) {\n connectionStatus = \"invalid\";\n }\n return connectionStatus;\n}\nconst productionEnvs = [\"production\", \"prod\"];\nfunction warn(message, ...args) {\n if (isDev()) {\n console.warn(`[Vue Flow]: ${message}`, ...args);\n }\n}\nfunction isDev() {\n return !productionEnvs.includes(process.env.NODE_ENV || \"\");\n}\nfunction getHandleBounds(selector2, nodeElement, nodeBounds, zoom2) {\n const handles = nodeElement.querySelectorAll(`.vue-flow__handle${selector2}`);\n const handlesArray = Array.from(handles);\n return handlesArray.map((handle) => {\n const handleBounds = handle.getBoundingClientRect();\n return {\n id: handle.getAttribute(\"data-handleid\"),\n position: handle.getAttribute(\"data-handlepos\"),\n x: (handleBounds.left - nodeBounds.left) / zoom2,\n y: (handleBounds.top - nodeBounds.top) / zoom2,\n ...getDimensions(handle)\n };\n });\n}\nfunction handleNodeClick(node, multiSelectionActive, addSelectedNodes, removeSelectedNodes, nodesSelectionActive, unselect = false, nodeEl) {\n nodesSelectionActive.value = false;\n if (!node.selected) {\n addSelectedNodes([node]);\n } else if (unselect || node.selected && multiSelectionActive) {\n removeSelectedNodes([node]);\n nextTick(() => {\n nodeEl.blur();\n });\n }\n}\nfunction isDef(val) {\n const unrefVal = unref(val);\n return typeof unrefVal !== \"undefined\";\n}\nfunction addEdgeToStore(edgeParams, edges, triggerError, defaultEdgeOptions) {\n if (!edgeParams || !edgeParams.source || !edgeParams.target) {\n triggerError(new VueFlowError(ErrorCode.EDGE_INVALID, (edgeParams == null ? void 0 : edgeParams.id) ?? `[ID UNKNOWN]`));\n return false;\n }\n let edge;\n if (isEdge(edgeParams)) {\n edge = edgeParams;\n } else {\n edge = {\n ...edgeParams,\n id: getEdgeId(edgeParams)\n };\n }\n edge = parseEdge(edge, void 0, defaultEdgeOptions);\n if (connectionExists(edge, edges)) {\n return false;\n }\n return edge;\n}\nfunction updateEdgeAction(edge, newConnection, edges, findEdge, shouldReplaceId, triggerError) {\n if (!newConnection.source || !newConnection.target) {\n triggerError(new VueFlowError(ErrorCode.EDGE_INVALID, edge.id));\n return false;\n }\n const foundEdge = findEdge(edge.id);\n if (!foundEdge) {\n triggerError(new VueFlowError(ErrorCode.EDGE_NOT_FOUND, edge.id));\n return false;\n }\n const { id: id2, ...rest } = edge;\n const newEdge = {\n ...rest,\n id: shouldReplaceId ? getEdgeId(newConnection) : id2,\n source: newConnection.source,\n target: newConnection.target,\n sourceHandle: newConnection.sourceHandle,\n targetHandle: newConnection.targetHandle\n };\n edges.splice(edges.indexOf(foundEdge), 1, newEdge);\n return newEdge;\n}\nfunction createGraphNodes(nodes, findNode, triggerError) {\n const parentNodes = {};\n const nextNodes = [];\n for (let i = 0; i < nodes.length; ++i) {\n const node = nodes[i];\n if (!isNode(node)) {\n triggerError(\n new VueFlowError(ErrorCode.NODE_INVALID, node == null ? void 0 : node.id) || `[ID UNKNOWN|INDEX ${i}]`\n );\n continue;\n }\n const parsed = parseNode(node, findNode(node.id), node.parentNode);\n if (node.parentNode) {\n parentNodes[node.parentNode] = true;\n }\n nextNodes[i] = parsed;\n }\n for (const node of nextNodes) {\n const parentNode = findNode(node.parentNode) || nextNodes.find((n) => n.id === node.parentNode);\n if (node.parentNode && !parentNode) {\n triggerError(new VueFlowError(ErrorCode.NODE_MISSING_PARENT, node.id, node.parentNode));\n }\n if (node.parentNode || parentNodes[node.id]) {\n if (parentNodes[node.id]) {\n node.isParent = true;\n }\n if (parentNode) {\n parentNode.isParent = true;\n }\n }\n }\n return nextNodes;\n}\nfunction updateConnectionLookup(connectionLookup, edges) {\n connectionLookup.clear();\n for (const edge of edges) {\n const { id: edgeId, source, target, sourceHandle = null, targetHandle = null } = edge;\n const sourceKey = `${source}-source-${sourceHandle}`;\n const targetKey = `${target}-target-${targetHandle}`;\n const prevSource = connectionLookup.get(sourceKey) || /* @__PURE__ */ new Map();\n const prevTarget = connectionLookup.get(targetKey) || /* @__PURE__ */ new Map();\n const connection = markRaw({ edgeId, source, target, sourceHandle, targetHandle });\n connectionLookup.set(sourceKey, prevSource.set(`${target}-${targetHandle}`, connection));\n connectionLookup.set(targetKey, prevTarget.set(`${source}-${sourceHandle}`, connection));\n }\n}\nfunction handleConnectionChange(a, b, cb) {\n if (!cb) {\n return;\n }\n const diff = [];\n for (const key of a.keys()) {\n if (!b.has(key)) {\n diff.push(a.get(key));\n }\n }\n if (diff.length) {\n cb(diff);\n }\n}\nfunction areConnectionMapsEqual(a, b) {\n if (!a && !b) {\n return true;\n }\n if (!a || !b || a.size !== b.size) {\n return false;\n }\n if (!a.size && !b.size) {\n return true;\n }\n for (const key of a.keys()) {\n if (!b.has(key)) {\n return false;\n }\n }\n return true;\n}\nfunction createGraphEdges(nextEdges, isValidConnection, findNode, findEdge, onError, defaultEdgeOptions, nodes, edges) {\n const validEdges = [];\n for (const edgeOrConnection of nextEdges) {\n const edge = isEdge(edgeOrConnection) ? edgeOrConnection : addEdgeToStore(edgeOrConnection, edges, onError, defaultEdgeOptions);\n if (!edge) {\n continue;\n }\n const sourceNode = findNode(edge.source);\n const targetNode = findNode(edge.target);\n if (!sourceNode || !targetNode) {\n onError(new VueFlowError(ErrorCode.EDGE_SOURCE_TARGET_MISSING, edge.id, edge.source, edge.target));\n continue;\n }\n if (!sourceNode) {\n onError(new VueFlowError(ErrorCode.EDGE_SOURCE_MISSING, edge.id, edge.source));\n continue;\n }\n if (!targetNode) {\n onError(new VueFlowError(ErrorCode.EDGE_TARGET_MISSING, edge.id, edge.target));\n continue;\n }\n if (isValidConnection) {\n const isValid = isValidConnection(edge, {\n edges,\n nodes,\n sourceNode,\n targetNode\n });\n if (!isValid) {\n onError(new VueFlowError(ErrorCode.EDGE_INVALID, edge.id));\n continue;\n }\n }\n const existingEdge = findEdge(edge.id);\n validEdges.push({\n ...parseEdge(edge, existingEdge, defaultEdgeOptions),\n sourceNode,\n targetNode\n });\n }\n return validEdges;\n}\nfunction createHooks() {\n return {\n edgesChange: createExtendedEventHook(),\n nodesChange: createExtendedEventHook(),\n nodeDoubleClick: createExtendedEventHook(),\n nodeClick: createExtendedEventHook(),\n nodeMouseEnter: createExtendedEventHook(),\n nodeMouseMove: createExtendedEventHook(),\n nodeMouseLeave: createExtendedEventHook(),\n nodeContextMenu: createExtendedEventHook(),\n nodeDragStart: createExtendedEventHook(),\n nodeDrag: createExtendedEventHook(),\n nodeDragStop: createExtendedEventHook(),\n nodesInitialized: createExtendedEventHook(),\n miniMapNodeClick: createExtendedEventHook(),\n miniMapNodeDoubleClick: createExtendedEventHook(),\n miniMapNodeMouseEnter: createExtendedEventHook(),\n miniMapNodeMouseMove: createExtendedEventHook(),\n miniMapNodeMouseLeave: createExtendedEventHook(),\n connect: createExtendedEventHook(),\n connectStart: createExtendedEventHook(),\n connectEnd: createExtendedEventHook(),\n clickConnectStart: createExtendedEventHook(),\n clickConnectEnd: createExtendedEventHook(),\n paneReady: createExtendedEventHook(),\n init: createExtendedEventHook(),\n move: createExtendedEventHook(),\n moveStart: createExtendedEventHook(),\n moveEnd: createExtendedEventHook(),\n selectionDragStart: createExtendedEventHook(),\n selectionDrag: createExtendedEventHook(),\n selectionDragStop: createExtendedEventHook(),\n selectionContextMenu: createExtendedEventHook(),\n selectionStart: createExtendedEventHook(),\n selectionEnd: createExtendedEventHook(),\n viewportChangeStart: createExtendedEventHook(),\n viewportChange: createExtendedEventHook(),\n viewportChangeEnd: createExtendedEventHook(),\n paneScroll: createExtendedEventHook(),\n paneClick: createExtendedEventHook(),\n paneContextMenu: createExtendedEventHook(),\n paneMouseEnter: createExtendedEventHook(),\n paneMouseMove: createExtendedEventHook(),\n paneMouseLeave: createExtendedEventHook(),\n edgeContextMenu: createExtendedEventHook(),\n edgeMouseEnter: createExtendedEventHook(),\n edgeMouseMove: createExtendedEventHook(),\n edgeMouseLeave: createExtendedEventHook(),\n edgeDoubleClick: createExtendedEventHook(),\n edgeClick: createExtendedEventHook(),\n edgeUpdateStart: createExtendedEventHook(),\n edgeUpdate: createExtendedEventHook(),\n edgeUpdateEnd: createExtendedEventHook(),\n updateNodeInternals: createExtendedEventHook(),\n error: createExtendedEventHook((err) => warn(err.message))\n };\n}\nfunction useHooks(emit, hooks) {\n onBeforeMount(() => {\n for (const [key, value] of Object.entries(hooks.value)) {\n const listener = (data) => {\n emit(key, data);\n };\n value.fns.add(listener);\n tryOnScopeDispose(() => {\n value.off(listener);\n });\n }\n });\n}\nfunction useState() {\n return {\n vueFlowRef: null,\n viewportRef: null,\n nodes: [],\n edges: [],\n connectionLookup: /* @__PURE__ */ new Map(),\n nodeTypes: {},\n edgeTypes: {},\n initialized: false,\n dimensions: {\n width: 0,\n height: 0\n },\n viewport: { x: 0, y: 0, zoom: 1 },\n d3Zoom: null,\n d3Selection: null,\n d3ZoomHandler: null,\n minZoom: 0.5,\n maxZoom: 2,\n translateExtent: [\n [Number.NEGATIVE_INFINITY, Number.NEGATIVE_INFINITY],\n [Number.POSITIVE_INFINITY, Number.POSITIVE_INFINITY]\n ],\n nodeExtent: [\n [Number.NEGATIVE_INFINITY, Number.NEGATIVE_INFINITY],\n [Number.POSITIVE_INFINITY, Number.POSITIVE_INFINITY]\n ],\n selectionMode: SelectionMode.Full,\n paneDragging: false,\n preventScrolling: true,\n zoomOnScroll: true,\n zoomOnPinch: true,\n zoomOnDoubleClick: true,\n panOnScroll: false,\n panOnScrollSpeed: 0.5,\n panOnScrollMode: PanOnScrollMode.Free,\n panOnDrag: true,\n edgeUpdaterRadius: 10,\n onlyRenderVisibleElements: false,\n defaultViewport: { x: 0, y: 0, zoom: 1 },\n nodesSelectionActive: false,\n userSelectionActive: false,\n userSelectionRect: null,\n defaultMarkerColor: \"#b1b1b7\",\n connectionLineStyle: {},\n connectionLineType: null,\n connectionLineOptions: {\n type: ConnectionLineType.Bezier,\n style: {}\n },\n connectionMode: ConnectionMode.Loose,\n connectionStartHandle: null,\n connectionEndHandle: null,\n connectionClickStartHandle: null,\n connectionPosition: { x: Number.NaN, y: Number.NaN },\n connectionRadius: 20,\n connectOnClick: true,\n connectionStatus: null,\n isValidConnection: null,\n snapGrid: [15, 15],\n snapToGrid: false,\n edgesUpdatable: false,\n edgesFocusable: true,\n nodesFocusable: true,\n nodesConnectable: true,\n nodesDraggable: true,\n nodeDragThreshold: 1,\n elementsSelectable: true,\n selectNodesOnDrag: true,\n multiSelectionActive: false,\n selectionKeyCode: \"Shift\",\n multiSelectionKeyCode: isMacOs() ? \"Meta\" : \"Control\",\n zoomActivationKeyCode: isMacOs() ? \"Meta\" : \"Control\",\n deleteKeyCode: \"Backspace\",\n panActivationKeyCode: \"Space\",\n hooks: createHooks(),\n applyDefault: true,\n autoConnect: false,\n fitViewOnInit: false,\n fitViewOnInitDone: false,\n noDragClassName: \"nodrag\",\n noWheelClassName: \"nowheel\",\n noPanClassName: \"nopan\",\n defaultEdgeOptions: void 0,\n elevateEdgesOnSelect: false,\n elevateNodesOnSelect: true,\n autoPanOnNodeDrag: true,\n autoPanOnConnect: true,\n disableKeyboardA11y: false,\n ariaLiveMessage: \"\"\n };\n}\nconst storeOptionsToSkip = [\n \"id\",\n \"vueFlowRef\",\n \"viewportRef\",\n \"initialized\",\n \"modelValue\",\n \"nodes\",\n \"edges\",\n \"maxZoom\",\n \"minZoom\",\n \"translateExtent\",\n \"hooks\",\n \"defaultEdgeOptions\"\n];\nfunction useActions(state, nodeLookup, edgeLookup) {\n const viewportHelper = useViewportHelper(state);\n const updateNodeInternals = (ids) => {\n const updateIds = ids ?? [];\n state.hooks.updateNodeInternals.trigger(updateIds);\n };\n const getIncomers$1 = (nodeOrId) => {\n return getIncomers(nodeOrId, state.nodes, state.edges);\n };\n const getOutgoers$1 = (nodeOrId) => {\n return getOutgoers(nodeOrId, state.nodes, state.edges);\n };\n const getConnectedEdges$1 = (nodesOrId) => {\n return getConnectedEdges(nodesOrId, state.edges);\n };\n const findNode = (id2) => {\n if (!id2) {\n return;\n }\n return nodeLookup.value.get(id2);\n };\n const findEdge = (id2) => {\n if (!id2) {\n return;\n }\n return edgeLookup.value.get(id2);\n };\n const updateNodePositions = (dragItems, changed, dragging) => {\n var _a, _b;\n const changes = [];\n for (const node of dragItems) {\n const change = {\n id: node.id,\n type: \"position\",\n dragging,\n from: node.from\n };\n if (changed) {\n change.position = node.position;\n if (node.parentNode) {\n const parentNode = findNode(node.parentNode);\n change.position = {\n x: change.position.x - (((_a = parentNode == null ? void 0 : parentNode.computedPosition) == null ? void 0 : _a.x) ?? 0),\n y: change.position.y - (((_b = parentNode == null ? void 0 : parentNode.computedPosition) == null ? void 0 : _b.y) ?? 0)\n };\n }\n }\n changes.push(change);\n }\n if (changes == null ? void 0 : changes.length) {\n state.hooks.nodesChange.trigger(changes);\n }\n };\n const updateNodeDimensions = (updates) => {\n if (!state.vueFlowRef) {\n return;\n }\n const viewportNode = state.vueFlowRef.querySelector(\".vue-flow__transformationpane\");\n if (!viewportNode) {\n return;\n }\n const style = window.getComputedStyle(viewportNode);\n const { m22: zoom2 } = new window.DOMMatrixReadOnly(style.transform);\n const changes = [];\n for (let i = 0; i < updates.length; ++i) {\n const update = updates[i];\n const node = findNode(update.id);\n if (node) {\n const dimensions = getDimensions(update.nodeElement);\n const doUpdate = !!(dimensions.width && dimensions.height && (node.dimensions.width !== dimensions.width || node.dimensions.height !== dimensions.height || update.forceUpdate));\n if (doUpdate) {\n const nodeBounds = update.nodeElement.getBoundingClientRect();\n node.dimensions = dimensions;\n node.handleBounds.source = getHandleBounds(\".source\", update.nodeElement, nodeBounds, zoom2);\n node.handleBounds.target = getHandleBounds(\".target\", update.nodeElement, nodeBounds, zoom2);\n changes[i] = {\n id: node.id,\n type: \"dimensions\",\n dimensions\n };\n }\n }\n }\n if (!state.fitViewOnInitDone && state.fitViewOnInit) {\n viewportHelper.value.fitView().then(() => {\n state.fitViewOnInitDone = true;\n });\n }\n if (changes.length) {\n state.hooks.nodesChange.trigger(changes);\n }\n };\n const nodeSelectionHandler = (nodes, selected) => {\n const nodeIds = [];\n for (const node of nodes) {\n nodeIds.push(node.id);\n }\n let changedNodes = [];\n let changedEdges = [];\n if (state.multiSelectionActive) {\n for (const nodeId of nodeIds) {\n changedNodes.push(createSelectionChange(nodeId, selected));\n }\n } else {\n const selectionChanges = getSelectionChanges([...state.nodes, ...state.edges], nodeIds);\n changedNodes = selectionChanges.changedNodes;\n changedEdges = selectionChanges.changedEdges;\n }\n if (changedNodes.length) {\n state.hooks.nodesChange.trigger(changedNodes);\n }\n if (changedEdges.length) {\n state.hooks.edgesChange.trigger(changedEdges);\n }\n };\n const edgeSelectionHandler = (edges, selected) => {\n const edgeIds = [];\n for (const edge of edges) {\n edgeIds.push(edge.id);\n }\n let changedNodes = [];\n let changedEdges = [];\n if (state.multiSelectionActive) {\n for (const edgeId of edgeIds) {\n changedEdges.push(createSelectionChange(edgeId, selected));\n }\n } else {\n const selectionChanges = getSelectionChanges([...state.nodes, ...state.edges], edgeIds);\n changedNodes = selectionChanges.changedNodes;\n changedEdges = selectionChanges.changedEdges;\n }\n if (changedNodes.length) {\n state.hooks.nodesChange.trigger(changedNodes);\n }\n if (changedEdges.length) {\n state.hooks.edgesChange.trigger(changedEdges);\n }\n };\n const elementSelectionHandler = (elements, selected) => {\n const nodeIds = [];\n const edgeIds = [];\n for (const element of elements) {\n if (isNode(element)) {\n nodeIds.push(element.id);\n } else if (isEdge(element)) {\n edgeIds.push(element.id);\n }\n }\n const { changedNodes, changedEdges } = getSelectionChanges([...state.nodes, ...state.edges], [...nodeIds, ...edgeIds]);\n if (state.multiSelectionActive) {\n for (const nodeId of nodeIds) {\n changedNodes.push(createSelectionChange(nodeId, selected));\n }\n for (const edgeId of edgeIds) {\n changedEdges.push(createSelectionChange(edgeId, selected));\n }\n }\n if (changedNodes.length) {\n state.hooks.nodesChange.trigger(changedNodes);\n }\n if (changedEdges.length) {\n state.hooks.edgesChange.trigger(changedEdges);\n }\n };\n const addSelectedNodes = (nodes) => {\n nodeSelectionHandler(nodes, true);\n };\n const addSelectedEdges = (edges) => {\n edgeSelectionHandler(edges, true);\n };\n const addSelectedElements = (elements) => {\n elementSelectionHandler(elements, true);\n };\n const removeSelectedNodes = (nodes) => {\n if (!nodes.length) {\n return nodeSelectionHandler(nodes, false);\n }\n const changedNodes = [];\n for (const node of nodes) {\n changedNodes.push(createSelectionChange(node.id, false));\n }\n if (changedNodes.length) {\n state.hooks.nodesChange.trigger(changedNodes);\n }\n };\n const removeSelectedEdges = (edges) => {\n if (!edges.length) {\n return edgeSelectionHandler(edges, false);\n }\n const changedEdges = [];\n for (const edge of edges) {\n changedEdges.push(createSelectionChange(edge.id, false));\n }\n if (changedEdges.length) {\n state.hooks.edgesChange.trigger(changedEdges);\n }\n };\n const removeSelectedElements = (elements) => {\n if (!elements || !elements.length) {\n return elementSelectionHandler([], false);\n }\n const changes = elements.reduce(\n (changes2, curr) => {\n const selectionChange = createSelectionChange(curr.id, false);\n if (isNode(curr)) {\n changes2.nodes.push(selectionChange);\n } else {\n changes2.edges.push(selectionChange);\n }\n return changes2;\n },\n { nodes: [], edges: [] }\n );\n if (changes.nodes.length) {\n state.hooks.nodesChange.trigger(changes.nodes);\n }\n if (changes.edges.length) {\n state.hooks.edgesChange.trigger(changes.edges);\n }\n };\n const setMinZoom = (minZoom) => {\n var _a;\n (_a = state.d3Zoom) == null ? void 0 : _a.scaleExtent([minZoom, state.maxZoom]);\n state.minZoom = minZoom;\n };\n const setMaxZoom = (maxZoom) => {\n var _a;\n (_a = state.d3Zoom) == null ? void 0 : _a.scaleExtent([state.minZoom, maxZoom]);\n state.maxZoom = maxZoom;\n };\n const setTranslateExtent = (translateExtent) => {\n var _a;\n (_a = state.d3Zoom) == null ? void 0 : _a.translateExtent(translateExtent);\n state.translateExtent = translateExtent;\n };\n const setNodeExtent = (nodeExtent) => {\n state.nodeExtent = nodeExtent;\n updateNodeInternals();\n };\n const setInteractive = (isInteractive) => {\n state.nodesDraggable = isInteractive;\n state.nodesConnectable = isInteractive;\n state.elementsSelectable = isInteractive;\n };\n const setNodes = (nodes) => {\n const nextNodes = nodes instanceof Function ? nodes(state.nodes) : nodes;\n if (!state.initialized && !nextNodes.length) {\n return;\n }\n state.nodes = createGraphNodes(nextNodes, findNode, state.hooks.error.trigger);\n };\n const setEdges = (edges) => {\n const nextEdges = edges instanceof Function ? edges(state.edges) : edges;\n if (!state.initialized && !nextEdges.length) {\n return;\n }\n const validEdges = createGraphEdges(\n nextEdges,\n state.isValidConnection,\n findNode,\n findEdge,\n state.hooks.error.trigger,\n state.defaultEdgeOptions,\n state.nodes,\n state.edges\n );\n updateConnectionLookup(state.connectionLookup, validEdges);\n state.edges = validEdges;\n };\n const setElements = (elements) => {\n const nextElements = elements instanceof Function ? elements([...state.nodes, ...state.edges]) : elements;\n if (!state.initialized && !nextElements.length) {\n return;\n }\n setNodes(nextElements.filter(isNode));\n setEdges(nextElements.filter(isEdge));\n };\n const addNodes = (nodes) => {\n let nextNodes = nodes instanceof Function ? nodes(state.nodes) : nodes;\n nextNodes = Array.isArray(nextNodes) ? nextNodes : [nextNodes];\n const graphNodes = createGraphNodes(nextNodes, findNode, state.hooks.error.trigger);\n const changes = [];\n for (const node of graphNodes) {\n changes.push(createAdditionChange(node));\n }\n if (changes.length) {\n state.hooks.nodesChange.trigger(changes);\n }\n };\n const addEdges = (params) => {\n let nextEdges = params instanceof Function ? params(state.edges) : params;\n nextEdges = Array.isArray(nextEdges) ? nextEdges : [nextEdges];\n const validEdges = createGraphEdges(\n nextEdges,\n state.isValidConnection,\n findNode,\n findEdge,\n state.hooks.error.trigger,\n state.defaultEdgeOptions,\n state.nodes,\n state.edges\n );\n const changes = [];\n for (const edge of validEdges) {\n changes.push(createAdditionChange(edge));\n }\n if (changes.length) {\n state.hooks.edgesChange.trigger(changes);\n }\n };\n const removeNodes = (nodes, removeConnectedEdges = true, removeChildren = false) => {\n const nextNodes = nodes instanceof Function ? nodes(state.nodes) : nodes;\n const nodesToRemove = Array.isArray(nextNodes) ? nextNodes : [nextNodes];\n const nodeChanges = [];\n const edgeChanges = [];\n function createEdgeRemovalChanges(nodes2) {\n const connectedEdges = getConnectedEdges$1(nodes2);\n for (const edge of connectedEdges) {\n if (isDef(edge.deletable) ? edge.deletable : true) {\n edgeChanges.push(createEdgeRemoveChange(edge.id, edge.source, edge.target, edge.sourceHandle, edge.targetHandle));\n }\n }\n }\n function createChildrenRemovalChanges(id2) {\n const children2 = [];\n for (const node of state.nodes) {\n if (node.parentNode === id2) {\n children2.push(node);\n }\n }\n if (children2.length) {\n for (const child of children2) {\n nodeChanges.push(createNodeRemoveChange(child.id));\n }\n if (removeConnectedEdges) {\n createEdgeRemovalChanges(children2);\n }\n for (const child of children2) {\n createChildrenRemovalChanges(child.id);\n }\n }\n }\n for (const item of nodesToRemove) {\n const currNode = typeof item === \"string\" ? findNode(item) : item;\n if (!currNode) {\n continue;\n }\n if (isDef(currNode.deletable) && !currNode.deletable) {\n continue;\n }\n nodeChanges.push(createNodeRemoveChange(currNode.id));\n if (removeConnectedEdges) {\n createEdgeRemovalChanges([currNode]);\n }\n if (removeChildren) {\n createChildrenRemovalChanges(currNode.id);\n }\n }\n if (edgeChanges.length) {\n state.hooks.edgesChange.trigger(edgeChanges);\n }\n if (nodeChanges.length) {\n state.hooks.nodesChange.trigger(nodeChanges);\n }\n };\n const removeEdges = (edges) => {\n const nextEdges = edges instanceof Function ? edges(state.edges) : edges;\n const edgesToRemove = Array.isArray(nextEdges) ? nextEdges : [nextEdges];\n const changes = [];\n for (const item of edgesToRemove) {\n const currEdge = typeof item === \"string\" ? findEdge(item) : item;\n if (!currEdge) {\n continue;\n }\n if (isDef(currEdge.deletable) && !currEdge.deletable) {\n continue;\n }\n changes.push(\n createEdgeRemoveChange(\n typeof item === \"string\" ? item : item.id,\n currEdge.source,\n currEdge.target,\n currEdge.sourceHandle,\n currEdge.targetHandle\n )\n );\n }\n state.hooks.edgesChange.trigger(changes);\n };\n const updateEdge2 = (oldEdge, newConnection, shouldReplaceId = true) => {\n return updateEdgeAction(oldEdge, newConnection, state.edges, findEdge, shouldReplaceId, state.hooks.error.trigger);\n };\n const updateEdgeData = (id2, dataUpdate, options = { replace: false }) => {\n const edge = findEdge(id2);\n if (!edge) {\n return;\n }\n const nextData = typeof dataUpdate === \"function\" ? dataUpdate(edge) : dataUpdate;\n edge.data = options.replace ? nextData : { ...edge.data, ...nextData };\n };\n const applyNodeChanges2 = (changes) => {\n return applyChanges(changes, state.nodes);\n };\n const applyEdgeChanges2 = (changes) => {\n const changedEdges = applyChanges(changes, state.edges);\n updateConnectionLookup(state.connectionLookup, changedEdges);\n return changedEdges;\n };\n const updateNode = (id2, nodeUpdate, options = { replace: false }) => {\n const node = findNode(id2);\n if (!node) {\n return;\n }\n const nextNode = typeof nodeUpdate === \"function\" ? nodeUpdate(node) : nodeUpdate;\n if (options.replace) {\n state.nodes.splice(state.nodes.indexOf(node), 1, nextNode);\n } else {\n Object.assign(node, nextNode);\n }\n };\n const updateNodeData = (id2, dataUpdate, options = { replace: false }) => {\n const node = findNode(id2);\n if (!node) {\n return;\n }\n const nextData = typeof dataUpdate === \"function\" ? dataUpdate(node) : dataUpdate;\n node.data = options.replace ? nextData : { ...node.data, ...nextData };\n };\n const startConnection = (startHandle, position, isClick = false) => {\n if (isClick) {\n state.connectionClickStartHandle = startHandle;\n } else {\n state.connectionStartHandle = startHandle;\n }\n state.connectionEndHandle = null;\n state.connectionStatus = null;\n if (position) {\n state.connectionPosition = position;\n }\n };\n const updateConnection = (position, result = null, status = null) => {\n if (state.connectionStartHandle) {\n state.connectionPosition = position;\n state.connectionEndHandle = result;\n state.connectionStatus = status;\n }\n };\n const endConnection = (event, isClick) => {\n state.connectionPosition = { x: Number.NaN, y: Number.NaN };\n state.connectionEndHandle = null;\n state.connectionStatus = null;\n if (isClick) {\n state.connectionClickStartHandle = null;\n } else {\n state.connectionStartHandle = null;\n }\n };\n const getNodeRect = (nodeOrRect) => {\n const isRectObj = isRect(nodeOrRect);\n const node = isRectObj ? null : isGraphNode(nodeOrRect) ? nodeOrRect : findNode(nodeOrRect.id);\n if (!isRectObj && !node) {\n return [null, null, isRectObj];\n }\n const nodeRect = isRectObj ? nodeOrRect : nodeToRect(node);\n return [nodeRect, node, isRectObj];\n };\n const getIntersectingNodes = (nodeOrRect, partially = true, nodes = state.nodes) => {\n const [nodeRect, node, isRect2] = getNodeRect(nodeOrRect);\n if (!nodeRect) {\n return [];\n }\n const intersections = [];\n for (const n of nodes || state.nodes) {\n if (!isRect2 && (n.id === node.id || !n.computedPosition)) {\n continue;\n }\n const currNodeRect = nodeToRect(n);\n const overlappingArea = getOverlappingArea(currNodeRect, nodeRect);\n const partiallyVisible = partially && overlappingArea > 0;\n if (partiallyVisible || overlappingArea >= Number(nodeRect.width) * Number(nodeRect.height)) {\n intersections.push(n);\n }\n }\n return intersections;\n };\n const isNodeIntersecting = (nodeOrRect, area, partially = true) => {\n const [nodeRect] = getNodeRect(nodeOrRect);\n if (!nodeRect) {\n return false;\n }\n const overlappingArea = getOverlappingArea(nodeRect, area);\n const partiallyVisible = partially && overlappingArea > 0;\n return partiallyVisible || overlappingArea >= Number(nodeRect.width) * Number(nodeRect.height);\n };\n const panBy = (delta) => {\n const { viewport, dimensions, d3Zoom, d3Selection, translateExtent } = state;\n if (!d3Zoom || !d3Selection || !delta.x && !delta.y) {\n return false;\n }\n const nextTransform = identity.translate(viewport.x + delta.x, viewport.y + delta.y).scale(viewport.zoom);\n const extent = [\n [0, 0],\n [dimensions.width, dimensions.height]\n ];\n const constrainedTransform = d3Zoom.constrain()(nextTransform, extent, translateExtent);\n const transformChanged = state.viewport.x !== constrainedTransform.x || state.viewport.y !== constrainedTransform.y || state.viewport.zoom !== constrainedTransform.k;\n d3Zoom.transform(d3Selection, constrainedTransform);\n return transformChanged;\n };\n const setState = (options) => {\n const opts = options instanceof Function ? options(state) : options;\n const exclude = [\n \"d3Zoom\",\n \"d3Selection\",\n \"d3ZoomHandler\",\n \"viewportRef\",\n \"vueFlowRef\",\n \"dimensions\",\n \"hooks\"\n ];\n if (isDef(opts.defaultEdgeOptions)) {\n state.defaultEdgeOptions = opts.defaultEdgeOptions;\n }\n const elements = opts.modelValue || opts.nodes || opts.edges ? [] : void 0;\n if (elements) {\n if (opts.modelValue) {\n elements.push(...opts.modelValue);\n }\n if (opts.nodes) {\n elements.push(...opts.nodes);\n }\n if (opts.edges) {\n elements.push(...opts.edges);\n }\n setElements(elements);\n }\n const setSkippedOptions = () => {\n if (isDef(opts.maxZoom)) {\n setMaxZoom(opts.maxZoom);\n }\n if (isDef(opts.minZoom)) {\n setMinZoom(opts.minZoom);\n }\n if (isDef(opts.translateExtent)) {\n setTranslateExtent(opts.translateExtent);\n }\n };\n for (const o of Object.keys(opts)) {\n const key = o;\n const option = opts[key];\n if (![...storeOptionsToSkip, ...exclude].includes(key) && isDef(option)) {\n state[key] = option;\n }\n }\n until(() => state.d3Zoom).not.toBeNull().then(setSkippedOptions);\n if (!state.initialized) {\n state.initialized = true;\n }\n };\n const toObject = () => {\n const nodes = [];\n const edges = [];\n for (const node of state.nodes) {\n const {\n computedPosition: _,\n handleBounds: __,\n selected: ___,\n dimensions: ____,\n isParent: _____,\n resizing: ______,\n dragging: _______,\n events: _________,\n ...rest\n } = node;\n nodes.push(rest);\n }\n for (const edge of state.edges) {\n const { selected: _, sourceNode: __, targetNode: ___, events: ____, ...rest } = edge;\n edges.push(rest);\n }\n return JSON.parse(\n JSON.stringify({\n nodes,\n edges,\n position: [state.viewport.x, state.viewport.y],\n zoom: state.viewport.zoom,\n viewport: state.viewport\n })\n );\n };\n const fromObject = (obj) => {\n return new Promise((resolve) => {\n const { nodes, edges, position, zoom: zoom2, viewport } = obj;\n if (nodes) {\n setNodes(nodes);\n }\n if (edges) {\n setEdges(edges);\n }\n if ((viewport == null ? void 0 : viewport.x) && (viewport == null ? void 0 : viewport.y) || position) {\n const x = (viewport == null ? void 0 : viewport.x) || position[0];\n const y = (viewport == null ? void 0 : viewport.y) || position[1];\n const nextZoom = (viewport == null ? void 0 : viewport.zoom) || zoom2 || state.viewport.zoom;\n return until(() => viewportHelper.value.viewportInitialized).toBe(true).then(() => {\n viewportHelper.value.setViewport({\n x,\n y,\n zoom: nextZoom\n }).then(() => {\n resolve(true);\n });\n });\n } else {\n resolve(true);\n }\n });\n };\n const $reset = () => {\n const resetState = useState();\n state.edges = [];\n state.nodes = [];\n if (state.d3Zoom && state.d3Selection) {\n const updatedTransform = identity.translate(resetState.defaultViewport.x ?? 0, resetState.defaultViewport.y ?? 0).scale(clamp(resetState.defaultViewport.zoom ?? 1, resetState.minZoom, resetState.maxZoom));\n const bbox = state.viewportRef.getBoundingClientRect();\n const extent = [\n [0, 0],\n [bbox.width, bbox.height]\n ];\n const constrainedTransform = state.d3Zoom.constrain()(updatedTransform, extent, resetState.translateExtent);\n state.d3Zoom.transform(state.d3Selection, constrainedTransform);\n }\n setState(resetState);\n };\n return {\n updateNodePositions,\n updateNodeDimensions,\n setElements,\n setNodes,\n setEdges,\n addNodes,\n addEdges,\n removeNodes,\n removeEdges,\n findNode,\n findEdge,\n updateEdge: updateEdge2,\n updateEdgeData,\n updateNode,\n updateNodeData,\n applyEdgeChanges: applyEdgeChanges2,\n applyNodeChanges: applyNodeChanges2,\n addSelectedElements,\n addSelectedNodes,\n addSelectedEdges,\n setMinZoom,\n setMaxZoom,\n setTranslateExtent,\n setNodeExtent,\n removeSelectedElements,\n removeSelectedNodes,\n removeSelectedEdges,\n startConnection,\n updateConnection,\n endConnection,\n setInteractive,\n setState,\n getIntersectingNodes,\n getIncomers: getIncomers$1,\n getOutgoers: getOutgoers$1,\n getConnectedEdges: getConnectedEdges$1,\n isNodeIntersecting,\n panBy,\n fitView: (params) => viewportHelper.value.fitView(params),\n zoomIn: (transitionOpts) => viewportHelper.value.zoomIn(transitionOpts),\n zoomOut: (transitionOpts) => viewportHelper.value.zoomOut(transitionOpts),\n zoomTo: (zoomLevel, transitionOpts) => viewportHelper.value.zoomTo(zoomLevel, transitionOpts),\n setViewport: (params, transitionOpts) => viewportHelper.value.setViewport(params, transitionOpts),\n setTransform: (params, transitionOpts) => viewportHelper.value.setTransform(params, transitionOpts),\n getViewport: () => viewportHelper.value.getViewport(),\n getTransform: () => viewportHelper.value.getTransform(),\n setCenter: (x, y, opts) => viewportHelper.value.setCenter(x, y, opts),\n fitBounds: (params, opts) => viewportHelper.value.fitBounds(params, opts),\n project: (params) => viewportHelper.value.project(params),\n screenToFlowCoordinate: (params) => viewportHelper.value.screenToFlowCoordinate(params),\n flowToScreenCoordinate: (params) => viewportHelper.value.flowToScreenCoordinate(params),\n toObject,\n fromObject,\n updateNodeInternals,\n viewportHelper,\n $reset,\n $destroy: () => {\n }\n };\n}\nconst _hoisted_1$9 = [\"data-id\", \"data-handleid\", \"data-nodeid\", \"data-handlepos\"];\nconst __default__$f = {\n name: \"Handle\",\n compatConfig: { MODE: 3 }\n};\nconst _sfc_main$f = /* @__PURE__ */ defineComponent({\n ...__default__$f,\n props: {\n id: { default: null },\n type: {},\n position: { default: () => Position.Top },\n isValidConnection: { type: Function },\n connectable: { type: [Boolean, Number, String, Function], default: void 0 },\n connectableStart: { type: Boolean, default: true },\n connectableEnd: { type: Boolean, default: true }\n },\n setup(__props, { expose: __expose }) {\n const props = createPropsRestProxy(__props, [\"position\", \"connectable\", \"connectableStart\", \"connectableEnd\", \"id\"]);\n const type = toRef(() => props.type ?? \"source\");\n const isValidConnection = toRef(() => props.isValidConnection ?? null);\n const {\n connectionStartHandle,\n connectionClickStartHandle,\n connectionEndHandle,\n vueFlowRef,\n nodesConnectable,\n noDragClassName,\n noPanClassName\n } = useVueFlow();\n const { id: nodeId, node, nodeEl, connectedEdges } = useNode();\n const handle = ref();\n const isConnectableStart = toRef(() => typeof __props.connectableStart !== \"undefined\" ? __props.connectableStart : true);\n const isConnectableEnd = toRef(() => typeof __props.connectableEnd !== \"undefined\" ? __props.connectableEnd : true);\n const isConnecting = toRef(\n () => {\n var _a, _b, _c, _d, _e, _f;\n return ((_a = connectionStartHandle.value) == null ? void 0 : _a.nodeId) === nodeId && ((_b = connectionStartHandle.value) == null ? void 0 : _b.handleId) === __props.id && ((_c = connectionStartHandle.value) == null ? void 0 : _c.type) === type.value || ((_d = connectionEndHandle.value) == null ? void 0 : _d.nodeId) === nodeId && ((_e = connectionEndHandle.value) == null ? void 0 : _e.handleId) === __props.id && ((_f = connectionEndHandle.value) == null ? void 0 : _f.type) === type.value;\n }\n );\n const isClickConnecting = toRef(\n () => {\n var _a, _b, _c;\n return ((_a = connectionClickStartHandle.value) == null ? void 0 : _a.nodeId) === nodeId && ((_b = connectionClickStartHandle.value) == null ? void 0 : _b.handleId) === __props.id && ((_c = connectionClickStartHandle.value) == null ? void 0 : _c.type) === type.value;\n }\n );\n const { handlePointerDown, handleClick } = useHandle({\n nodeId,\n handleId: __props.id,\n isValidConnection,\n type\n });\n const isConnectable = computed(() => {\n if (typeof __props.connectable === \"string\" && __props.connectable === \"single\") {\n return !connectedEdges.value.some((edge) => {\n const id2 = edge[`${type.value}Handle`];\n if (edge[type.value] !== nodeId) {\n return false;\n }\n return id2 ? id2 === __props.id : true;\n });\n }\n if (typeof __props.connectable === \"number\") {\n return connectedEdges.value.filter((edge) => {\n const id2 = edge[`${type.value}Handle`];\n if (edge[type.value] !== nodeId) {\n return false;\n }\n return id2 ? id2 === __props.id : true;\n }).length < __props.connectable;\n }\n if (typeof __props.connectable === \"function\") {\n return __props.connectable(node, connectedEdges.value);\n }\n return isDef(__props.connectable) ? __props.connectable : nodesConnectable.value;\n });\n until(() => !!node.dimensions.width && !!node.dimensions.height).toBe(true, { flush: \"post\" }).then(() => {\n var _a;\n const existingBounds = (_a = node.handleBounds[type.value]) == null ? void 0 : _a.find((b) => b.id === __props.id);\n if (!vueFlowRef.value || existingBounds) {\n return;\n }\n const viewportNode = vueFlowRef.value.querySelector(\".vue-flow__transformationpane\");\n if (!nodeEl.value || !handle.value || !viewportNode || !__props.id) {\n return;\n }\n const nodeBounds = nodeEl.value.getBoundingClientRect();\n const handleBounds = handle.value.getBoundingClientRect();\n const style = window.getComputedStyle(viewportNode);\n const { m22: zoom2 } = new window.DOMMatrixReadOnly(style.transform);\n const nextBounds = {\n id: __props.id,\n position: __props.position,\n x: (handleBounds.left - nodeBounds.left) / zoom2,\n y: (handleBounds.top - nodeBounds.top) / zoom2,\n ...getDimensions(handle.value)\n };\n node.handleBounds[type.value] = [...node.handleBounds[type.value] ?? [], nextBounds];\n });\n onUnmounted(() => {\n const handleBounds = node.handleBounds[type.value];\n if (handleBounds) {\n node.handleBounds[type.value] = handleBounds.filter((b) => b.id !== __props.id);\n }\n });\n function onPointerDown(event) {\n const isMouseTriggered = isMouseEvent(event);\n if (isConnectable.value && isConnectableStart.value && (isMouseTriggered && event.button === 0 || !isMouseTriggered)) {\n handlePointerDown(event);\n }\n }\n function onClick(event) {\n if (!nodeId || !connectionClickStartHandle.value && !isConnectableStart.value) {\n return;\n }\n if (isConnectable.value) {\n handleClick(event);\n }\n }\n __expose({\n handleClick,\n handlePointerDown,\n onClick,\n onPointerDown\n });\n return (_ctx, _cache) => {\n return openBlock(), createElementBlock(\"div\", {\n ref_key: \"handle\",\n ref: handle,\n \"data-id\": `${unref(nodeId)}-${__props.id}-${type.value}`,\n \"data-handleid\": __props.id,\n \"data-nodeid\": unref(nodeId),\n \"data-handlepos\": _ctx.position,\n class: normalizeClass([\"vue-flow__handle\", [\n `vue-flow__handle-${_ctx.position}`,\n `vue-flow__handle-${__props.id}`,\n unref(noDragClassName),\n unref(noPanClassName),\n type.value,\n {\n connectable: isConnectable.value,\n connecting: isClickConnecting.value,\n connectablestart: isConnectableStart.value,\n connectableend: isConnectableEnd.value,\n connectionindicator: isConnectable.value && (isConnectableStart.value && !isConnecting.value || isConnectableEnd.value && isConnecting.value)\n }\n ]]),\n onMousedown: onPointerDown,\n onTouchstartPassive: onPointerDown,\n onClick\n }, [\n renderSlot(_ctx.$slots, \"default\", { id: _ctx.id })\n ], 42, _hoisted_1$9);\n };\n }\n});\nconst DefaultNode = function({\n sourcePosition = Position.Bottom,\n targetPosition = Position.Top,\n label: _label,\n connectable = true,\n isValidTargetPos,\n isValidSourcePos,\n data\n}) {\n const label = data.label || _label;\n return [\n h(_sfc_main$f, { type: \"target\", position: targetPosition, connectable, isValidConnection: isValidTargetPos }),\n typeof label !== \"string\" && label ? h(label) : h(\"div\", { innerHTML: label }),\n h(_sfc_main$f, { type: \"source\", position: sourcePosition, connectable, isValidConnection: isValidSourcePos })\n ];\n};\nDefaultNode.props = [\"sourcePosition\", \"targetPosition\", \"label\", \"isValidTargetPos\", \"isValidSourcePos\", \"connectable\", \"data\"];\nDefaultNode.inheritAttrs = false;\nDefaultNode.compatConfig = { MODE: 3 };\nconst DefaultNode$1 = DefaultNode;\nconst OutputNode = function({\n targetPosition = Position.Top,\n label: _label,\n connectable = true,\n isValidTargetPos,\n data\n}) {\n const label = data.label || _label;\n return [\n h(_sfc_main$f, { type: \"target\", position: targetPosition, connectable, isValidConnection: isValidTargetPos }),\n typeof label !== \"string\" && label ? h(label) : h(\"div\", { innerHTML: label })\n ];\n};\nOutputNode.props = [\"targetPosition\", \"label\", \"isValidTargetPos\", \"connectable\", \"data\"];\nOutputNode.inheritAttrs = false;\nOutputNode.compatConfig = { MODE: 3 };\nconst OutputNode$1 = OutputNode;\nconst InputNode = function({\n sourcePosition = Position.Bottom,\n label: _label,\n connectable = true,\n isValidSourcePos,\n data\n}) {\n const label = data.label || _label;\n return [\n typeof label !== \"string\" && label ? h(label) : h(\"div\", { innerHTML: label }),\n h(_sfc_main$f, { type: \"source\", position: sourcePosition, connectable, isValidConnection: isValidSourcePos })\n ];\n};\nInputNode.props = [\"sourcePosition\", \"label\", \"isValidSourcePos\", \"connectable\", \"data\"];\nInputNode.inheritAttrs = false;\nInputNode.compatConfig = { MODE: 3 };\nconst InputNode$1 = InputNode;\nconst _hoisted_1$8 = [\"transform\"];\nconst _hoisted_2$2 = [\"width\", \"height\", \"x\", \"y\", \"rx\", \"ry\"];\nconst _hoisted_3$1 = [\"y\"];\nconst __default__$e = {\n name: \"EdgeText\",\n compatConfig: { MODE: 3 }\n};\nconst _sfc_main$e = /* @__PURE__ */ defineComponent({\n ...__default__$e,\n props: {\n x: {},\n y: {},\n label: {},\n labelStyle: { default: () => ({}) },\n labelShowBg: { type: Boolean, default: true },\n labelBgStyle: { default: () => ({}) },\n labelBgPadding: { default: () => [2, 4] },\n labelBgBorderRadius: { default: 2 }\n },\n setup(__props) {\n const box = ref({ x: 0, y: 0, width: 0, height: 0 });\n const el = ref(null);\n const transform = computed(() => `translate(${__props.x - box.value.width / 2} ${__props.y - box.value.height / 2})`);\n onMounted(getBox);\n watch([() => __props.x, () => __props.y, el, () => __props.label], getBox);\n function getBox() {\n if (!el.value) {\n return;\n }\n const nextBox = el.value.getBBox();\n if (nextBox.width !== box.value.width || nextBox.height !== box.value.height) {\n box.value = nextBox;\n }\n }\n return (_ctx, _cache) => {\n return openBlock(), createElementBlock(\"g\", {\n transform: transform.value,\n class: \"vue-flow__edge-textwrapper\"\n }, [\n _ctx.labelShowBg ? (openBlock(), createElementBlock(\"rect\", {\n key: 0,\n class: \"vue-flow__edge-textbg\",\n width: `${box.value.width + 2 * _ctx.labelBgPadding[0]}px`,\n height: `${box.value.height + 2 * _ctx.labelBgPadding[1]}px`,\n x: -_ctx.labelBgPadding[0],\n y: -_ctx.labelBgPadding[1],\n style: normalizeStyle(_ctx.labelBgStyle),\n rx: _ctx.labelBgBorderRadius,\n ry: _ctx.labelBgBorderRadius\n }, null, 12, _hoisted_2$2)) : createCommentVNode(\"\", true),\n createElementVNode(\"text\", mergeProps(_ctx.$attrs, {\n ref_key: \"el\",\n ref: el,\n class: \"vue-flow__edge-text\",\n y: box.value.height / 2,\n dy: \"0.3em\",\n style: _ctx.labelStyle\n }), [\n renderSlot(_ctx.$slots, \"default\", {}, () => [\n typeof _ctx.label !== \"string\" ? (openBlock(), createBlock(resolveDynamicComponent(_ctx.label), { key: 0 })) : (openBlock(), createElementBlock(Fragment, { key: 1 }, [\n createTextVNode(toDisplayString(_ctx.label), 1)\n ], 64))\n ])\n ], 16, _hoisted_3$1)\n ], 8, _hoisted_1$8);\n };\n }\n});\nconst _hoisted_1$7 = [\"id\", \"d\", \"marker-end\", \"marker-start\"];\nconst _hoisted_2$1 = [\"d\", \"stroke-width\"];\nconst __default__$d = {\n name: \"BaseEdge\",\n inheritAttrs: false,\n compatConfig: { MODE: 3 }\n};\nconst _sfc_main$d = /* @__PURE__ */ defineComponent({\n ...__default__$d,\n props: {\n id: {},\n labelX: {},\n labelY: {},\n path: {},\n label: {},\n markerStart: {},\n markerEnd: {},\n interactionWidth: { default: 20 },\n style: {},\n labelStyle: {},\n labelShowBg: { type: Boolean, default: true },\n labelBgStyle: {},\n labelBgPadding: {},\n labelBgBorderRadius: {}\n },\n setup(__props, { expose: __expose }) {\n const props = createPropsRestProxy(__props, [\"interactionWidth\", \"labelShowBg\"]);\n const pathEl = ref(null);\n const interactionEl = ref(null);\n const labelEl = ref(null);\n const attrs = useAttrs();\n __expose({\n pathEl,\n interactionEl,\n labelEl\n });\n return (_ctx, _cache) => {\n return openBlock(), createElementBlock(Fragment, null, [\n createElementVNode(\"path\", {\n id: _ctx.id,\n ref_key: \"pathEl\",\n ref: pathEl,\n d: _ctx.path,\n style: normalizeStyle(props.style),\n class: normalizeClass([\"vue-flow__edge-path\", unref(attrs).class]),\n \"marker-end\": _ctx.markerEnd,\n \"marker-start\": _ctx.markerStart\n }, null, 14, _hoisted_1$7),\n _ctx.interactionWidth ? (openBlock(), createElementBlock(\"path\", {\n key: 0,\n ref_key: \"interactionEl\",\n ref: interactionEl,\n fill: \"none\",\n d: _ctx.path,\n \"stroke-width\": _ctx.interactionWidth,\n \"stroke-opacity\": 0,\n class: \"vue-flow__edge-interaction\"\n }, null, 8, _hoisted_2$1)) : createCommentVNode(\"\", true),\n _ctx.label && _ctx.labelX && _ctx.labelY ? (openBlock(), createBlock(_sfc_main$e, {\n key: 1,\n ref_key: \"labelEl\",\n ref: labelEl,\n x: _ctx.labelX,\n y: _ctx.labelY,\n label: _ctx.label,\n \"label-show-bg\": _ctx.labelShowBg,\n \"label-bg-style\": _ctx.labelBgStyle,\n \"label-bg-padding\": _ctx.labelBgPadding,\n \"label-bg-border-radius\": _ctx.labelBgBorderRadius,\n \"label-style\": _ctx.labelStyle\n }, null, 8, [\"x\", \"y\", \"label\", \"label-show-bg\", \"label-bg-style\", \"label-bg-padding\", \"label-bg-border-radius\", \"label-style\"])) : createCommentVNode(\"\", true)\n ], 64);\n };\n }\n});\nfunction getSimpleEdgeCenter({\n sourceX,\n sourceY,\n targetX,\n targetY\n}) {\n const xOffset = Math.abs(targetX - sourceX) / 2;\n const centerX = targetX < sourceX ? targetX + xOffset : targetX - xOffset;\n const yOffset = Math.abs(targetY - sourceY) / 2;\n const centerY = targetY < sourceY ? targetY + yOffset : targetY - yOffset;\n return [centerX, centerY, xOffset, yOffset];\n}\nfunction getBezierEdgeCenter({\n sourceX,\n sourceY,\n targetX,\n targetY,\n sourceControlX,\n sourceControlY,\n targetControlX,\n targetControlY\n}) {\n const centerX = sourceX * 0.125 + sourceControlX * 0.375 + targetControlX * 0.375 + targetX * 0.125;\n const centerY = sourceY * 0.125 + sourceControlY * 0.375 + targetControlY * 0.375 + targetY * 0.125;\n const offsetX = Math.abs(centerX - sourceX);\n const offsetY = Math.abs(centerY - sourceY);\n return [centerX, centerY, offsetX, offsetY];\n}\nfunction calculateControlOffset(distance2, curvature) {\n if (distance2 >= 0) {\n return 0.5 * distance2;\n } else {\n return curvature * 25 * Math.sqrt(-distance2);\n }\n}\nfunction getControlWithCurvature({ pos, x1, y1, x2, y2, c }) {\n let ctX, ctY;\n switch (pos) {\n case Position.Left:\n ctX = x1 - calculateControlOffset(x1 - x2, c);\n ctY = y1;\n break;\n case Position.Right:\n ctX = x1 + calculateControlOffset(x2 - x1, c);\n ctY = y1;\n break;\n case Position.Top:\n ctX = x1;\n ctY = y1 - calculateControlOffset(y1 - y2, c);\n break;\n case Position.Bottom:\n ctX = x1;\n ctY = y1 + calculateControlOffset(y2 - y1, c);\n break;\n }\n return [ctX, ctY];\n}\nfunction getBezierPath(bezierPathParams) {\n const {\n sourceX,\n sourceY,\n sourcePosition = Position.Bottom,\n targetX,\n targetY,\n targetPosition = Position.Top,\n curvature = 0.25\n } = bezierPathParams;\n const [sourceControlX, sourceControlY] = getControlWithCurvature({\n pos: sourcePosition,\n x1: sourceX,\n y1: sourceY,\n x2: targetX,\n y2: targetY,\n c: curvature\n });\n const [targetControlX, targetControlY] = getControlWithCurvature({\n pos: targetPosition,\n x1: targetX,\n y1: targetY,\n x2: sourceX,\n y2: sourceY,\n c: curvature\n });\n const [labelX, labelY, offsetX, offsetY] = getBezierEdgeCenter({\n sourceX,\n sourceY,\n targetX,\n targetY,\n sourceControlX,\n sourceControlY,\n targetControlX,\n targetControlY\n });\n return [\n `M${sourceX},${sourceY} C${sourceControlX},${sourceControlY} ${targetControlX},${targetControlY} ${targetX},${targetY}`,\n labelX,\n labelY,\n offsetX,\n offsetY\n ];\n}\nfunction getControl({ pos, x1, y1, x2, y2 }) {\n let ctX, ctY;\n switch (pos) {\n case Position.Left:\n case Position.Right:\n ctX = 0.5 * (x1 + x2);\n ctY = y1;\n break;\n case Position.Top:\n case Position.Bottom:\n ctX = x1;\n ctY = 0.5 * (y1 + y2);\n break;\n }\n return [ctX, ctY];\n}\nfunction getSimpleBezierPath(simpleBezierPathParams) {\n const {\n sourceX,\n sourceY,\n sourcePosition = Position.Bottom,\n targetX,\n targetY,\n targetPosition = Position.Top\n } = simpleBezierPathParams;\n const [sourceControlX, sourceControlY] = getControl({\n pos: sourcePosition,\n x1: sourceX,\n y1: sourceY,\n x2: targetX,\n y2: targetY\n });\n const [targetControlX, targetControlY] = getControl({\n pos: targetPosition,\n x1: targetX,\n y1: targetY,\n x2: sourceX,\n y2: sourceY\n });\n const [centerX, centerY, offsetX, offsetY] = getBezierEdgeCenter({\n sourceX,\n sourceY,\n targetX,\n targetY,\n sourceControlX,\n sourceControlY,\n targetControlX,\n targetControlY\n });\n return [\n `M${sourceX},${sourceY} C${sourceControlX},${sourceControlY} ${targetControlX},${targetControlY} ${targetX},${targetY}`,\n centerX,\n centerY,\n offsetX,\n offsetY\n ];\n}\nconst handleDirections = {\n [Position.Left]: { x: -1, y: 0 },\n [Position.Right]: { x: 1, y: 0 },\n [Position.Top]: { x: 0, y: -1 },\n [Position.Bottom]: { x: 0, y: 1 }\n};\nfunction getDirection({\n source,\n sourcePosition = Position.Bottom,\n target\n}) {\n if (sourcePosition === Position.Left || sourcePosition === Position.Right) {\n return source.x < target.x ? { x: 1, y: 0 } : { x: -1, y: 0 };\n }\n return source.y < target.y ? { x: 0, y: 1 } : { x: 0, y: -1 };\n}\nfunction distance(a, b) {\n return Math.sqrt((b.x - a.x) ** 2 + (b.y - a.y) ** 2);\n}\nfunction getPoints({\n source,\n sourcePosition = Position.Bottom,\n target,\n targetPosition = Position.Top,\n center,\n offset\n}) {\n const sourceDir = handleDirections[sourcePosition];\n const targetDir = handleDirections[targetPosition];\n const sourceGapped = { x: source.x + sourceDir.x * offset, y: source.y + sourceDir.y * offset };\n const targetGapped = { x: target.x + targetDir.x * offset, y: target.y + targetDir.y * offset };\n const dir = getDirection({\n source: sourceGapped,\n sourcePosition,\n target: targetGapped\n });\n const dirAccessor = dir.x !== 0 ? \"x\" : \"y\";\n const currDir = dir[dirAccessor];\n let points;\n let centerX, centerY;\n const sourceGapOffset = { x: 0, y: 0 };\n const targetGapOffset = { x: 0, y: 0 };\n const [defaultCenterX, defaultCenterY, defaultOffsetX, defaultOffsetY] = getSimpleEdgeCenter({\n sourceX: source.x,\n sourceY: source.y,\n targetX: target.x,\n targetY: target.y\n });\n if (sourceDir[dirAccessor] * targetDir[dirAccessor] === -1) {\n centerX = center.x ?? defaultCenterX;\n centerY = center.y ?? defaultCenterY;\n const verticalSplit = [\n { x: centerX, y: sourceGapped.y },\n { x: centerX, y: targetGapped.y }\n ];\n const horizontalSplit = [\n { x: sourceGapped.x, y: centerY },\n { x: targetGapped.x, y: centerY }\n ];\n if (sourceDir[dirAccessor] === currDir) {\n points = dirAccessor === \"x\" ? verticalSplit : horizontalSplit;\n } else {\n points = dirAccessor === \"x\" ? horizontalSplit : verticalSplit;\n }\n } else {\n const sourceTarget = [{ x: sourceGapped.x, y: targetGapped.y }];\n const targetSource = [{ x: targetGapped.x, y: sourceGapped.y }];\n if (dirAccessor === \"x\") {\n points = sourceDir.x === currDir ? targetSource : sourceTarget;\n } else {\n points = sourceDir.y === currDir ? sourceTarget : targetSource;\n }\n if (sourcePosition === targetPosition) {\n const diff = Math.abs(source[dirAccessor] - target[dirAccessor]);\n if (diff <= offset) {\n const gapOffset = Math.min(offset - 1, offset - diff);\n if (sourceDir[dirAccessor] === currDir) {\n sourceGapOffset[dirAccessor] = (sourceGapped[dirAccessor] > source[dirAccessor] ? -1 : 1) * gapOffset;\n } else {\n targetGapOffset[dirAccessor] = (targetGapped[dirAccessor] > target[dirAccessor] ? -1 : 1) * gapOffset;\n }\n }\n }\n if (sourcePosition !== targetPosition) {\n const dirAccessorOpposite = dirAccessor === \"x\" ? \"y\" : \"x\";\n const isSameDir = sourceDir[dirAccessor] === targetDir[dirAccessorOpposite];\n const sourceGtTargetOppo = sourceGapped[dirAccessorOpposite] > targetGapped[dirAccessorOpposite];\n const sourceLtTargetOppo = sourceGapped[dirAccessorOpposite] < targetGapped[dirAccessorOpposite];\n const flipSourceTarget = sourceDir[dirAccessor] === 1 && (!isSameDir && sourceGtTargetOppo || isSameDir && sourceLtTargetOppo) || sourceDir[dirAccessor] !== 1 && (!isSameDir && sourceLtTargetOppo || isSameDir && sourceGtTargetOppo);\n if (flipSourceTarget) {\n points = dirAccessor === \"x\" ? sourceTarget : targetSource;\n }\n }\n const sourceGapPoint = { x: sourceGapped.x + sourceGapOffset.x, y: sourceGapped.y + sourceGapOffset.y };\n const targetGapPoint = { x: targetGapped.x + targetGapOffset.x, y: targetGapped.y + targetGapOffset.y };\n const maxXDistance = Math.max(Math.abs(sourceGapPoint.x - points[0].x), Math.abs(targetGapPoint.x - points[0].x));\n const maxYDistance = Math.max(Math.abs(sourceGapPoint.y - points[0].y), Math.abs(targetGapPoint.y - points[0].y));\n if (maxXDistance >= maxYDistance) {\n centerX = (sourceGapPoint.x + targetGapPoint.x) / 2;\n centerY = points[0].y;\n } else {\n centerX = points[0].x;\n centerY = (sourceGapPoint.y + targetGapPoint.y) / 2;\n }\n }\n const pathPoints = [\n source,\n { x: sourceGapped.x + sourceGapOffset.x, y: sourceGapped.y + sourceGapOffset.y },\n ...points,\n { x: targetGapped.x + targetGapOffset.x, y: targetGapped.y + targetGapOffset.y },\n target\n ];\n return [pathPoints, centerX, centerY, defaultOffsetX, defaultOffsetY];\n}\nfunction getBend(a, b, c, size) {\n const bendSize = Math.min(distance(a, b) / 2, distance(b, c) / 2, size);\n const { x, y } = b;\n if (a.x === x && x === c.x || a.y === y && y === c.y) {\n return `L${x} ${y}`;\n }\n if (a.y === y) {\n const xDir2 = a.x < c.x ? -1 : 1;\n const yDir2 = a.y < c.y ? 1 : -1;\n return `L ${x + bendSize * xDir2},${y}Q ${x},${y} ${x},${y + bendSize * yDir2}`;\n }\n const xDir = a.x < c.x ? 1 : -1;\n const yDir = a.y < c.y ? -1 : 1;\n return `L ${x},${y + bendSize * yDir}Q ${x},${y} ${x + bendSize * xDir},${y}`;\n}\nfunction getSmoothStepPath(smoothStepPathParams) {\n const {\n sourceX,\n sourceY,\n sourcePosition = Position.Bottom,\n targetX,\n targetY,\n targetPosition = Position.Top,\n borderRadius = 5,\n centerX,\n centerY,\n offset = 20\n } = smoothStepPathParams;\n const [points, labelX, labelY, offsetX, offsetY] = getPoints({\n source: { x: sourceX, y: sourceY },\n sourcePosition,\n target: { x: targetX, y: targetY },\n targetPosition,\n center: { x: centerX, y: centerY },\n offset\n });\n const path = points.reduce((res, p, i) => {\n let segment;\n if (i > 0 && i < points.length - 1) {\n segment = getBend(points[i - 1], p, points[i + 1], borderRadius);\n } else {\n segment = `${i === 0 ? \"M\" : \"L\"}${p.x} ${p.y}`;\n }\n res += segment;\n return res;\n }, \"\");\n return [path, labelX, labelY, offsetX, offsetY];\n}\nfunction getStraightPath(straightEdgeParams) {\n const { sourceX, sourceY, targetX, targetY } = straightEdgeParams;\n const [centerX, centerY, offsetX, offsetY] = getSimpleEdgeCenter({\n sourceX,\n sourceY,\n targetX,\n targetY\n });\n return [`M ${sourceX},${sourceY}L ${targetX},${targetY}`, centerX, centerY, offsetX, offsetY];\n}\nconst StraightEdge = defineComponent({\n name: \"StraightEdge\",\n props: [\n \"label\",\n \"labelStyle\",\n \"labelShowBg\",\n \"labelBgStyle\",\n \"labelBgPadding\",\n \"labelBgBorderRadius\",\n \"sourceY\",\n \"sourceX\",\n \"targetX\",\n \"targetY\",\n \"markerEnd\",\n \"markerStart\",\n \"interactionWidth\"\n ],\n compatConfig: { MODE: 3 },\n setup(props, { attrs }) {\n return () => {\n const [path, labelX, labelY] = getStraightPath(props);\n return h(_sfc_main$d, {\n path,\n labelX,\n labelY,\n ...attrs,\n ...props\n });\n };\n }\n});\nconst StraightEdge$1 = StraightEdge;\nconst SmoothStepEdge = defineComponent({\n name: \"SmoothStepEdge\",\n props: [\n \"sourcePosition\",\n \"targetPosition\",\n \"label\",\n \"labelStyle\",\n \"labelShowBg\",\n \"labelBgStyle\",\n \"labelBgPadding\",\n \"labelBgBorderRadius\",\n \"sourceY\",\n \"sourceX\",\n \"targetX\",\n \"targetY\",\n \"borderRadius\",\n \"markerEnd\",\n \"markerStart\",\n \"interactionWidth\",\n \"offset\"\n ],\n compatConfig: { MODE: 3 },\n setup(props, { attrs }) {\n return () => {\n const [path, labelX, labelY] = getSmoothStepPath({\n ...props,\n sourcePosition: props.sourcePosition ?? Position.Bottom,\n targetPosition: props.targetPosition ?? Position.Top\n });\n return h(_sfc_main$d, {\n path,\n labelX,\n labelY,\n ...attrs,\n ...props\n });\n };\n }\n});\nconst SmoothStepEdge$1 = SmoothStepEdge;\nconst StepEdge = defineComponent({\n name: \"StepEdge\",\n props: [\n \"sourcePosition\",\n \"targetPosition\",\n \"label\",\n \"labelStyle\",\n \"labelShowBg\",\n \"labelBgStyle\",\n \"labelBgPadding\",\n \"labelBgBorderRadius\",\n \"sourceY\",\n \"sourceX\",\n \"targetX\",\n \"targetY\",\n \"markerEnd\",\n \"markerStart\",\n \"interactionWidth\"\n ],\n setup(props, { attrs }) {\n return () => h(SmoothStepEdge$1, { ...props, ...attrs, borderRadius: 0 });\n }\n});\nconst StepEdge$1 = StepEdge;\nconst BezierEdge = defineComponent({\n name: \"BezierEdge\",\n props: [\n \"sourcePosition\",\n \"targetPosition\",\n \"label\",\n \"labelStyle\",\n \"labelShowBg\",\n \"labelBgStyle\",\n \"labelBgPadding\",\n \"labelBgBorderRadius\",\n \"sourceY\",\n \"sourceX\",\n \"targetX\",\n \"targetY\",\n \"curvature\",\n \"markerEnd\",\n \"markerStart\",\n \"interactionWidth\"\n ],\n compatConfig: { MODE: 3 },\n setup(props, { attrs }) {\n return () => {\n const [path, labelX, labelY] = getBezierPath({\n ...props,\n sourcePosition: props.sourcePosition ?? Position.Bottom,\n targetPosition: props.targetPosition ?? Position.Top\n });\n return h(_sfc_main$d, {\n path,\n labelX,\n labelY,\n ...attrs,\n ...props\n });\n };\n }\n});\nconst BezierEdge$1 = BezierEdge;\nconst SimpleBezierEdge = defineComponent({\n name: \"SimpleBezierEdge\",\n props: [\n \"sourcePosition\",\n \"targetPosition\",\n \"label\",\n \"labelStyle\",\n \"labelShowBg\",\n \"labelBgStyle\",\n \"labelBgPadding\",\n \"labelBgBorderRadius\",\n \"sourceY\",\n \"sourceX\",\n \"targetX\",\n \"targetY\",\n \"markerEnd\",\n \"markerStart\",\n \"interactionWidth\"\n ],\n compatConfig: { MODE: 3 },\n setup(props, { attrs }) {\n return () => {\n const [path, labelX, labelY] = getSimpleBezierPath({\n ...props,\n sourcePosition: props.sourcePosition ?? Position.Bottom,\n targetPosition: props.targetPosition ?? Position.Top\n });\n return h(_sfc_main$d, {\n path,\n labelX,\n labelY,\n ...attrs,\n ...props\n });\n };\n }\n});\nconst SimpleBezierEdge$1 = SimpleBezierEdge;\nconst defaultNodeTypes = {\n input: InputNode$1,\n default: DefaultNode$1,\n output: OutputNode$1\n};\nconst defaultEdgeTypes = {\n default: BezierEdge$1,\n straight: StraightEdge$1,\n step: StepEdge$1,\n smoothstep: SmoothStepEdge$1,\n simplebezier: SimpleBezierEdge$1\n};\nfunction useGetters(state, nodeLookup, edgeLookup) {\n const getNode = computed(() => (id2) => nodeLookup.value.get(id2));\n const getEdge = computed(() => (id2) => edgeLookup.value.get(id2));\n const getEdgeTypes = computed(() => {\n const edgeTypes = {\n ...defaultEdgeTypes,\n ...state.edgeTypes\n };\n const keys = Object.keys(edgeTypes);\n for (const e of state.edges) {\n e.type && !keys.includes(e.type) && (edgeTypes[e.type] = e.type);\n }\n return edgeTypes;\n });\n const getNodeTypes = computed(() => {\n const nodeTypes = {\n ...defaultNodeTypes,\n ...state.nodeTypes\n };\n const keys = Object.keys(nodeTypes);\n for (const n of state.nodes) {\n n.type && !keys.includes(n.type) && (nodeTypes[n.type] = n.type);\n }\n return nodeTypes;\n });\n const getNodes = computed(() => {\n if (state.onlyRenderVisibleElements) {\n return getNodesInside(\n state.nodes,\n {\n x: 0,\n y: 0,\n width: state.dimensions.width,\n height: state.dimensions.height\n },\n state.viewport,\n true\n );\n }\n return state.nodes;\n });\n const getEdges = computed(() => {\n if (state.onlyRenderVisibleElements) {\n const visibleEdges = [];\n for (const edge of state.edges) {\n const source = nodeLookup.value.get(edge.source);\n const target = nodeLookup.value.get(edge.target);\n if (isEdgeVisible({\n sourcePos: source.computedPosition || { x: 0, y: 0 },\n targetPos: target.computedPosition || { x: 0, y: 0 },\n sourceWidth: source.dimensions.width,\n sourceHeight: source.dimensions.height,\n targetWidth: target.dimensions.width,\n targetHeight: target.dimensions.height,\n width: state.dimensions.width,\n height: state.dimensions.height,\n viewport: state.viewport\n })) {\n visibleEdges.push(edge);\n }\n }\n return visibleEdges;\n }\n return state.edges;\n });\n const getElements = computed(() => [...getNodes.value, ...getEdges.value]);\n const getSelectedNodes = computed(() => {\n const selectedNodes = [];\n for (const node of state.nodes) {\n if (node.selected) {\n selectedNodes.push(node);\n }\n }\n return selectedNodes;\n });\n const getSelectedEdges = computed(() => {\n const selectedEdges = [];\n for (const edge of state.edges) {\n if (edge.selected) {\n selectedEdges.push(edge);\n }\n }\n return selectedEdges;\n });\n const getSelectedElements = computed(() => [\n ...getSelectedNodes.value,\n ...getSelectedEdges.value\n ]);\n const getNodesInitialized = computed(() => {\n const initializedNodes = [];\n for (const node of state.nodes) {\n if (!!node.dimensions.width && !!node.dimensions.height && node.handleBounds !== void 0) {\n initializedNodes.push(node);\n }\n }\n return initializedNodes;\n });\n const areNodesInitialized = computed(\n () => getNodes.value.length > 0 && getNodesInitialized.value.length === getNodes.value.length\n );\n return {\n getNode,\n getEdge,\n getElements,\n getEdgeTypes,\n getNodeTypes,\n getEdges,\n getNodes,\n getSelectedElements,\n getSelectedNodes,\n getSelectedEdges,\n getNodesInitialized,\n areNodesInitialized\n };\n}\nclass Storage {\n constructor() {\n this.currentId = 0;\n this.flows = /* @__PURE__ */ new Map();\n }\n static getInstance() {\n var _a;\n const vueApp = (_a = getCurrentInstance()) == null ? void 0 : _a.appContext.app;\n const existingInstance = (vueApp == null ? void 0 : vueApp.config.globalProperties.$vueFlowStorage) ?? Storage.instance;\n Storage.instance = existingInstance ?? new Storage();\n if (vueApp) {\n vueApp.config.globalProperties.$vueFlowStorage = Storage.instance;\n }\n return Storage.instance;\n }\n set(id2, flow) {\n return this.flows.set(id2, flow);\n }\n get(id2) {\n return this.flows.get(id2);\n }\n remove(id2) {\n return this.flows.delete(id2);\n }\n create(id2, preloadedState) {\n const state = useState();\n const reactiveState = reactive(state);\n const hooksOn = {};\n for (const [n, h2] of Object.entries(reactiveState.hooks)) {\n const name = `on${n.charAt(0).toUpperCase() + n.slice(1)}`;\n hooksOn[name] = h2.on;\n }\n const emits = {};\n for (const [n, h2] of Object.entries(reactiveState.hooks)) {\n emits[n] = h2.trigger;\n }\n const nodeLookup = computed(() => {\n const nodesMap = /* @__PURE__ */ new Map();\n for (const node of reactiveState.nodes) {\n nodesMap.set(node.id, node);\n }\n return nodesMap;\n });\n const edgeLookup = computed(() => {\n const edgesMap = /* @__PURE__ */ new Map();\n for (const edge of reactiveState.edges) {\n edgesMap.set(edge.id, edge);\n }\n return edgesMap;\n });\n const getters = useGetters(reactiveState, nodeLookup, edgeLookup);\n const actions = useActions(reactiveState, nodeLookup, edgeLookup);\n actions.setState({ ...reactiveState, ...preloadedState });\n const flow = {\n ...hooksOn,\n ...getters,\n ...actions,\n ...toRefs(reactiveState),\n emits,\n id: id2,\n vueFlowVersion: \"1.37.1\",\n $destroy: () => {\n this.remove(id2);\n }\n };\n this.set(id2, flow);\n return flow;\n }\n getId() {\n return `vue-flow-${this.currentId++}`;\n }\n}\nfunction useVueFlow(idOrOpts) {\n const storage = Storage.getInstance();\n const scope = getCurrentScope();\n const isOptsObj = typeof idOrOpts === \"object\";\n const options = isOptsObj ? idOrOpts : { id: idOrOpts };\n const id2 = options.id;\n const vueFlowId = (scope == null ? void 0 : scope.vueFlowId) || id2;\n let vueFlow;\n if (scope) {\n const injection = inject(VueFlow, null);\n if (typeof injection !== \"undefined\" && injection !== null) {\n vueFlow = injection;\n }\n }\n if (!vueFlow) {\n if (vueFlowId) {\n vueFlow = storage.get(vueFlowId);\n }\n }\n if (!vueFlow || vueFlow && id2 && id2 !== vueFlow.id) {\n const name = id2 ?? storage.getId();\n const state = storage.create(name, options);\n vueFlow = state;\n const vfScope = scope ?? effectScope(true);\n vfScope.run(() => {\n watch(\n state.applyDefault,\n (shouldApplyDefault, __, onCleanup) => {\n const nodesChangeHandler = (changes) => {\n state.applyNodeChanges(changes);\n };\n const edgesChangeHandler = (changes) => {\n state.applyEdgeChanges(changes);\n };\n if (shouldApplyDefault) {\n state.onNodesChange(nodesChangeHandler);\n state.onEdgesChange(edgesChangeHandler);\n } else {\n state.hooks.value.nodesChange.off(nodesChangeHandler);\n state.hooks.value.edgesChange.off(edgesChangeHandler);\n }\n onCleanup(() => {\n state.hooks.value.nodesChange.off(nodesChangeHandler);\n state.hooks.value.edgesChange.off(edgesChangeHandler);\n });\n },\n { immediate: true }\n );\n tryOnScopeDispose(() => {\n if (vueFlow) {\n const storedInstance = storage.get(vueFlow.id);\n if (storedInstance) {\n storedInstance.$destroy();\n } else {\n warn(`No store instance found for id ${vueFlow.id} in storage.`);\n }\n }\n });\n });\n } else {\n if (isOptsObj) {\n vueFlow.setState(options);\n }\n }\n if (scope) {\n provide(VueFlow, vueFlow);\n scope.vueFlowId = vueFlow.id;\n }\n if (isOptsObj) {\n const instance = getCurrentInstance();\n if ((instance == null ? void 0 : instance.type.name) !== \"VueFlow\") {\n vueFlow.emits.error(new VueFlowError(ErrorCode.USEVUEFLOW_OPTIONS));\n }\n }\n return vueFlow;\n}\nfunction useResizeHandler(viewportEl) {\n const window2 = useWindow();\n const { emits, dimensions } = useVueFlow();\n let resizeObserver;\n onMounted(() => {\n const rendererNode = viewportEl.value;\n const updateDimensions = () => {\n if (!rendererNode) {\n return;\n }\n const size = getDimensions(rendererNode);\n if (size.width === 0 || size.height === 0) {\n emits.error(new VueFlowError(ErrorCode.MISSING_VIEWPORT_DIMENSIONS));\n }\n dimensions.value = { width: size.width || 500, height: size.height || 500 };\n };\n updateDimensions();\n window2.addEventListener(\"resize\", updateDimensions);\n if (rendererNode) {\n resizeObserver = new ResizeObserver(() => updateDimensions());\n resizeObserver.observe(rendererNode);\n }\n onBeforeUnmount(() => {\n window2.removeEventListener(\"resize\", updateDimensions);\n if (resizeObserver && rendererNode) {\n resizeObserver.unobserve(rendererNode);\n }\n });\n });\n}\nconst __default__$c = {\n name: \"UserSelection\",\n compatConfig: { MODE: 3 }\n};\nconst _sfc_main$c = /* @__PURE__ */ defineComponent({\n ...__default__$c,\n props: {\n userSelectionRect: {}\n },\n setup(__props) {\n return (_ctx, _cache) => {\n return openBlock(), createElementBlock(\"div\", {\n class: \"vue-flow__selection vue-flow__container\",\n style: normalizeStyle({\n width: `${_ctx.userSelectionRect.width}px`,\n height: `${_ctx.userSelectionRect.height}px`,\n transform: `translate(${_ctx.userSelectionRect.x}px, ${_ctx.userSelectionRect.y}px)`\n })\n }, null, 4);\n };\n }\n});\nconst _hoisted_1$6 = [\"tabIndex\"];\nconst __default__$b = {\n name: \"NodesSelection\",\n compatConfig: { MODE: 3 }\n};\nconst _sfc_main$b = /* @__PURE__ */ defineComponent({\n ...__default__$b,\n setup(__props) {\n const { emits, viewport, getSelectedNodes, noPanClassName, disableKeyboardA11y, userSelectionActive } = useVueFlow();\n const updatePositions = useUpdateNodePositions();\n const el = ref(null);\n const dragging = useDrag({\n el,\n onStart(args) {\n emits.selectionDragStart(args);\n },\n onDrag(args) {\n emits.selectionDrag(args);\n },\n onStop(args) {\n emits.selectionDragStop(args);\n }\n });\n onMounted(() => {\n var _a;\n if (!disableKeyboardA11y.value) {\n (_a = el.value) == null ? void 0 : _a.focus({ preventScroll: true });\n }\n });\n const selectedNodesBBox = computed(() => getRectOfNodes(getSelectedNodes.value));\n const innerStyle = computed(() => ({\n width: `${selectedNodesBBox.value.width}px`,\n height: `${selectedNodesBBox.value.height}px`,\n top: `${selectedNodesBBox.value.y}px`,\n left: `${selectedNodesBBox.value.x}px`\n }));\n function onContextMenu(event) {\n emits.selectionContextMenu({ event, nodes: getSelectedNodes.value });\n }\n function onKeyDown(event) {\n if (disableKeyboardA11y) {\n return;\n }\n if (arrowKeyDiffs[event.key]) {\n updatePositions(\n {\n x: arrowKeyDiffs[event.key].x,\n y: arrowKeyDiffs[event.key].y\n },\n event.shiftKey\n );\n }\n }\n return (_ctx, _cache) => {\n return !unref(userSelectionActive) && selectedNodesBBox.value.width && selectedNodesBBox.value.height ? (openBlock(), createElementBlock(\"div\", {\n key: 0,\n class: normalizeClass([\"vue-flow__nodesselection vue-flow__container\", unref(noPanClassName)]),\n style: normalizeStyle({ transform: `translate(${unref(viewport).x}px,${unref(viewport).y}px) scale(${unref(viewport).zoom})` })\n }, [\n createElementVNode(\"div\", {\n ref_key: \"el\",\n ref: el,\n class: normalizeClass([{ dragging: unref(dragging) }, \"vue-flow__nodesselection-rect\"]),\n style: normalizeStyle(innerStyle.value),\n tabIndex: unref(disableKeyboardA11y) ? void 0 : -1,\n onContextmenu: onContextMenu,\n onKeydown: onKeyDown\n }, null, 46, _hoisted_1$6)\n ], 6)) : createCommentVNode(\"\", true);\n };\n }\n});\nfunction getMousePosition(event, containerBounds) {\n return {\n x: event.clientX - containerBounds.left,\n y: event.clientY - containerBounds.top\n };\n}\nconst __default__$a = {\n name: \"Pane\",\n compatConfig: { MODE: 3 }\n};\nconst _sfc_main$a = /* @__PURE__ */ defineComponent({\n ...__default__$a,\n props: {\n isSelecting: { type: Boolean }\n },\n setup(__props) {\n const {\n vueFlowRef,\n getNodes,\n getEdges,\n viewport,\n emits,\n userSelectionActive,\n removeSelectedElements,\n panOnDrag,\n userSelectionRect,\n elementsSelectable,\n nodesSelectionActive,\n addSelectedElements,\n getSelectedEdges,\n getSelectedNodes,\n removeNodes,\n removeEdges,\n selectionMode,\n deleteKeyCode,\n multiSelectionKeyCode,\n multiSelectionActive\n } = useVueFlow();\n const container = ref(null);\n const prevSelectedNodesCount = ref(0);\n const prevSelectedEdgesCount = ref(0);\n const containerBounds = ref();\n const hasActiveSelection = toRef(() => elementsSelectable.value && (__props.isSelecting || userSelectionActive.value));\n useKeyPress(\n deleteKeyCode,\n (keyPressed) => {\n if (!keyPressed) {\n return;\n }\n const nodesToRemove = [];\n for (const node of getNodes.value) {\n if (!node.selected && node.parentNode && nodesToRemove.some((n) => n.id === node.parentNode)) {\n nodesToRemove.push(node);\n } else if (node.selected) {\n nodesToRemove.push(node);\n }\n }\n if (nodesToRemove || getSelectedEdges.value) {\n if (getSelectedEdges.value.length > 0) {\n removeEdges(getSelectedEdges.value);\n }\n if (nodesToRemove.length > 0) {\n removeNodes(nodesToRemove);\n }\n nodesSelectionActive.value = false;\n removeSelectedElements();\n }\n },\n { actInsideInputWithModifier: false }\n );\n useKeyPress(multiSelectionKeyCode, (keyPressed) => {\n multiSelectionActive.value = keyPressed;\n });\n function resetUserSelection() {\n userSelectionActive.value = false;\n userSelectionRect.value = null;\n prevSelectedNodesCount.value = 0;\n prevSelectedEdgesCount.value = 0;\n }\n function onClick(event) {\n if (event.target !== container.value || hasActiveSelection.value) {\n return;\n }\n emits.paneClick(event);\n removeSelectedElements();\n nodesSelectionActive.value = false;\n }\n function onContextMenu(event) {\n var _a;\n if (event.target !== container.value) {\n return;\n }\n if (Array.isArray(panOnDrag.value) && ((_a = panOnDrag.value) == null ? void 0 : _a.includes(2))) {\n event.preventDefault();\n return;\n }\n emits.paneContextMenu(event);\n }\n function onWheel(event) {\n if (event.target !== container.value) {\n return;\n }\n emits.paneScroll(event);\n }\n function onMouseDown(event) {\n containerBounds.value = vueFlowRef.value.getBoundingClientRect();\n if (!hasActiveSelection.value || !elementsSelectable || !__props.isSelecting || event.button !== 0 || event.target !== container.value || !containerBounds.value) {\n return;\n }\n const { x, y } = getMousePosition(event, containerBounds.value);\n removeSelectedElements();\n userSelectionRect.value = {\n width: 0,\n height: 0,\n startX: x,\n startY: y,\n x,\n y\n };\n userSelectionActive.value = true;\n emits.selectionStart(event);\n }\n function onMouseMove(event) {\n if (!hasActiveSelection.value) {\n return emits.paneMouseMove(event);\n }\n if (!__props.isSelecting || !containerBounds.value || !userSelectionRect.value) {\n return;\n }\n if (!userSelectionActive.value) {\n userSelectionActive.value = true;\n }\n if (nodesSelectionActive.value) {\n nodesSelectionActive.value = false;\n }\n const mousePos = getMousePosition(event, containerBounds.value);\n const startX = userSelectionRect.value.startX ?? 0;\n const startY = userSelectionRect.value.startY ?? 0;\n const nextUserSelectRect = {\n ...userSelectionRect.value,\n x: mousePos.x < startX ? mousePos.x : startX,\n y: mousePos.y < startY ? mousePos.y : startY,\n width: Math.abs(mousePos.x - startX),\n height: Math.abs(mousePos.y - startY)\n };\n const selectedNodes = getNodesInside(\n getNodes.value,\n userSelectionRect.value,\n viewport.value,\n selectionMode.value === SelectionMode.Partial\n );\n const selectedEdges = getConnectedEdges(selectedNodes, getEdges.value);\n prevSelectedNodesCount.value = selectedNodes.length;\n prevSelectedEdgesCount.value = selectedEdges.length;\n userSelectionRect.value = nextUserSelectRect;\n addSelectedElements([...selectedNodes, ...selectedEdges]);\n }\n function onMouseUp(event) {\n if (!hasActiveSelection.value) {\n return;\n }\n if (event.button !== 0) {\n return;\n }\n if (!userSelectionActive.value && userSelectionRect.value && event.target === container.value) {\n onClick(event);\n }\n nodesSelectionActive.value = prevSelectedNodesCount.value > 0;\n resetUserSelection();\n emits.selectionEnd(event);\n }\n function onMouseLeave(event) {\n var _a;\n if (!hasActiveSelection.value) {\n return emits.paneMouseLeave(event);\n }\n if (userSelectionActive.value) {\n nodesSelectionActive.value = prevSelectedNodesCount.value > 0;\n (_a = emits.selectionEnd) == null ? void 0 : _a.call(emits, event);\n }\n resetUserSelection();\n }\n function onMouseEnter(event) {\n if (hasActiveSelection.value) {\n return;\n }\n emits.paneMouseEnter(event);\n }\n return (_ctx, _cache) => {\n return openBlock(), createElementBlock(\"div\", {\n ref_key: \"container\",\n ref: container,\n class: normalizeClass([\"vue-flow__pane vue-flow__container\", { selection: _ctx.isSelecting }]),\n onClick,\n onContextmenu: onContextMenu,\n onWheelPassive: onWheel,\n onMouseenter: onMouseEnter,\n onMousedown: onMouseDown,\n onMousemove: onMouseMove,\n onMouseup: onMouseUp,\n onMouseleave: onMouseLeave\n }, [\n renderSlot(_ctx.$slots, \"default\"),\n unref(userSelectionActive) && unref(userSelectionRect) ? (openBlock(), createBlock(_sfc_main$c, {\n key: 0,\n \"user-selection-rect\": unref(userSelectionRect)\n }, null, 8, [\"user-selection-rect\"])) : createCommentVNode(\"\", true),\n unref(nodesSelectionActive) && unref(getSelectedNodes).length ? (openBlock(), createBlock(_sfc_main$b, { key: 1 })) : createCommentVNode(\"\", true)\n ], 34);\n };\n }\n});\nconst __default__$9 = {\n name: \"Transform\",\n compatConfig: { MODE: 3 }\n};\nconst _sfc_main$9 = /* @__PURE__ */ defineComponent({\n ...__default__$9,\n setup(__props) {\n const { viewport, fitViewOnInit, fitViewOnInitDone } = useVueFlow();\n const isHidden = computed(() => {\n if (fitViewOnInit.value) {\n return !fitViewOnInitDone.value;\n }\n return false;\n });\n const transform = computed(() => `translate(${viewport.value.x}px,${viewport.value.y}px) scale(${viewport.value.zoom})`);\n return (_ctx, _cache) => {\n return openBlock(), createElementBlock(\"div\", {\n class: \"vue-flow__transformationpane vue-flow__container\",\n style: normalizeStyle({ transform: transform.value, opacity: isHidden.value ? 0 : void 0 })\n }, [\n renderSlot(_ctx.$slots, \"default\")\n ], 4);\n };\n }\n});\nconst __default__$8 = {\n name: \"Viewport\",\n compatConfig: { MODE: 3 }\n};\nconst _sfc_main$8 = /* @__PURE__ */ defineComponent({\n ...__default__$8,\n setup(__props) {\n const {\n minZoom,\n maxZoom,\n defaultViewport,\n translateExtent,\n zoomActivationKeyCode,\n selectionKeyCode,\n panActivationKeyCode,\n panOnScroll,\n panOnScrollMode,\n panOnScrollSpeed,\n panOnDrag,\n zoomOnDoubleClick,\n zoomOnPinch,\n zoomOnScroll,\n preventScrolling,\n noWheelClassName,\n noPanClassName,\n emits,\n connectionStartHandle,\n userSelectionActive,\n paneDragging,\n d3Zoom: storeD3Zoom,\n d3Selection: storeD3Selection,\n d3ZoomHandler: storeD3ZoomHandler,\n viewport,\n viewportRef\n } = useVueFlow();\n useResizeHandler(viewportRef);\n const isZoomingOrPanning = ref(false);\n const isPanScrolling = ref(false);\n let panScrollTimeout = null;\n let zoomedWithRightMouseButton = false;\n let mouseButton = 0;\n let prevTransform = {\n x: 0,\n y: 0,\n zoom: 0\n };\n const panKeyPressed = useKeyPress(panActivationKeyCode);\n const selectionKeyPressed = useKeyPress(selectionKeyCode);\n const zoomKeyPressed = useKeyPress(zoomActivationKeyCode);\n const shouldPanOnDrag = toRef(() => panKeyPressed.value || panOnDrag.value);\n const shouldPanOnScroll = toRef(() => panKeyPressed.value || panOnScroll.value);\n const isSelecting = toRef(() => selectionKeyPressed.value || selectionKeyCode.value === true && shouldPanOnDrag.value !== true);\n onMounted(() => {\n if (!viewportRef.value) {\n warn(\"Viewport element is missing\");\n return;\n }\n const viewportElement = viewportRef.value;\n const bbox = viewportElement.getBoundingClientRect();\n const d3Zoom = zoom().scaleExtent([minZoom.value, maxZoom.value]).translateExtent(translateExtent.value);\n const d3Selection = select(viewportElement).call(d3Zoom);\n const d3ZoomHandler = d3Selection.on(\"wheel.zoom\");\n const updatedTransform = identity.translate(defaultViewport.value.x ?? 0, defaultViewport.value.y ?? 0).scale(clamp(defaultViewport.value.zoom ?? 1, minZoom.value, maxZoom.value));\n const extent = [\n [0, 0],\n [bbox.width, bbox.height]\n ];\n const constrainedTransform = d3Zoom.constrain()(updatedTransform, extent, translateExtent.value);\n d3Zoom.transform(d3Selection, constrainedTransform);\n d3Zoom.wheelDelta(wheelDelta);\n storeD3Zoom.value = d3Zoom;\n storeD3Selection.value = d3Selection;\n storeD3ZoomHandler.value = d3ZoomHandler;\n viewport.value = { x: constrainedTransform.x, y: constrainedTransform.y, zoom: constrainedTransform.k };\n d3Zoom.on(\"start\", (event) => {\n var _a;\n if (!event.sourceEvent) {\n return null;\n }\n mouseButton = event.sourceEvent.button;\n isZoomingOrPanning.value = true;\n const flowTransform = eventToFlowTransform(event.transform);\n if (((_a = event.sourceEvent) == null ? void 0 : _a.type) === \"mousedown\") {\n paneDragging.value = true;\n }\n prevTransform = flowTransform;\n emits.viewportChangeStart(flowTransform);\n emits.moveStart({ event, flowTransform });\n });\n d3Zoom.on(\"end\", (event) => {\n if (!event.sourceEvent) {\n return null;\n }\n isZoomingOrPanning.value = false;\n paneDragging.value = false;\n if (isRightClickPan(shouldPanOnDrag.value, mouseButton ?? 0) && !zoomedWithRightMouseButton) {\n emits.paneContextMenu(event.sourceEvent);\n }\n zoomedWithRightMouseButton = false;\n if (viewChanged(prevTransform, event.transform)) {\n const flowTransform = eventToFlowTransform(event.transform);\n prevTransform = flowTransform;\n emits.viewportChangeEnd(flowTransform);\n emits.moveEnd({ event, flowTransform });\n }\n });\n d3Zoom.filter((event) => {\n var _a, _b, _c;\n const zoomScroll = zoomKeyPressed.value || zoomOnScroll.value;\n const pinchZoom = zoomOnPinch.value && event.ctrlKey;\n const eventButton = event.button;\n if ((shouldPanOnDrag.value === true || Array.isArray(shouldPanOnDrag.value) && shouldPanOnDrag.value.includes(1)) && eventButton === 1 && event.type === \"mousedown\" && (((_a = event.target) == null ? void 0 : _a.closest(\".vue-flow__node\")) || ((_b = event.target) == null ? void 0 : _b.closest(\".vue-flow__edge\")))) {\n return true;\n }\n if (!shouldPanOnDrag.value && !zoomScroll && !shouldPanOnScroll.value && !zoomOnDoubleClick.value && !zoomOnPinch.value) {\n return false;\n }\n if (userSelectionActive.value) {\n return false;\n }\n if (!zoomOnDoubleClick.value && event.type === \"dblclick\") {\n return false;\n }\n if (isWrappedWithClass(event, noWheelClassName.value) && event.type === \"wheel\") {\n return false;\n }\n if (isWrappedWithClass(event, noPanClassName.value) && (event.type !== \"wheel\" || shouldPanOnScroll.value && event.type === \"wheel\" && !zoomKeyPressed.value)) {\n return false;\n }\n if (!zoomOnPinch.value && event.ctrlKey && event.type === \"wheel\") {\n return false;\n }\n if (!zoomScroll && !shouldPanOnScroll.value && !pinchZoom && event.type === \"wheel\") {\n return false;\n }\n if (!zoomOnPinch && event.type === \"touchstart\" && ((_c = event.touches) == null ? void 0 : _c.length) > 1) {\n event.preventDefault();\n return false;\n }\n if (!shouldPanOnDrag.value && (event.type === \"mousedown\" || event.type === \"touchstart\")) {\n return false;\n }\n if (Array.isArray(shouldPanOnDrag.value) && !shouldPanOnDrag.value.includes(eventButton) && (event.type === \"mousedown\" || event.type === \"touchstart\")) {\n return false;\n }\n const buttonAllowed = Array.isArray(shouldPanOnDrag.value) && shouldPanOnDrag.value.includes(eventButton) || !eventButton || eventButton <= 1;\n return (!event.ctrlKey || event.type === \"wheel\") && buttonAllowed;\n });\n watch(\n [userSelectionActive, shouldPanOnDrag],\n () => {\n if (userSelectionActive.value && !isZoomingOrPanning.value) {\n d3Zoom.on(\"zoom\", null);\n } else if (!userSelectionActive.value) {\n d3Zoom.on(\"zoom\", (event) => {\n viewport.value = { x: event.transform.x, y: event.transform.y, zoom: event.transform.k };\n const flowTransform = eventToFlowTransform(event.transform);\n zoomedWithRightMouseButton = isRightClickPan(shouldPanOnDrag.value, mouseButton ?? 0);\n emits.viewportChange(flowTransform);\n emits.move({ event, flowTransform });\n });\n }\n },\n { immediate: true }\n );\n watch(\n [userSelectionActive, shouldPanOnScroll, panOnScrollMode, zoomKeyPressed, zoomOnPinch, preventScrolling, noWheelClassName],\n () => {\n if (shouldPanOnScroll.value && !zoomKeyPressed.value && !userSelectionActive.value) {\n d3Selection.on(\n \"wheel.zoom\",\n (event) => {\n if (isWrappedWithClass(event, noWheelClassName.value)) {\n return false;\n }\n const zoomScroll = zoomKeyPressed.value || zoomOnScroll.value;\n const pinchZoom = zoomOnPinch.value && event.ctrlKey;\n const scrollEventEnabled = !preventScrolling.value || shouldPanOnScroll.value || zoomScroll || pinchZoom;\n if (!scrollEventEnabled) {\n return false;\n }\n event.preventDefault();\n event.stopImmediatePropagation();\n const currentZoom = d3Selection.property(\"__zoom\").k || 1;\n const _isMacOs = isMacOs();\n if (event.ctrlKey && zoomOnPinch.value && _isMacOs) {\n const point = pointer(event);\n const pinchDelta = wheelDelta(event);\n const zoom2 = currentZoom * 2 ** pinchDelta;\n d3Zoom.scaleTo(d3Selection, zoom2, point, event);\n return;\n }\n const deltaNormalize = event.deltaMode === 1 ? 20 : 1;\n let deltaX = panOnScrollMode.value === PanOnScrollMode.Vertical ? 0 : event.deltaX * deltaNormalize;\n let deltaY = panOnScrollMode.value === PanOnScrollMode.Horizontal ? 0 : event.deltaY * deltaNormalize;\n if (!_isMacOs && event.shiftKey && panOnScrollMode.value !== PanOnScrollMode.Vertical && !deltaX && deltaY) {\n deltaX = deltaY;\n deltaY = 0;\n }\n d3Zoom.translateBy(\n d3Selection,\n -(deltaX / currentZoom) * panOnScrollSpeed.value,\n -(deltaY / currentZoom) * panOnScrollSpeed.value\n );\n const nextViewport = eventToFlowTransform(d3Selection.property(\"__zoom\"));\n if (panScrollTimeout) {\n clearTimeout(panScrollTimeout);\n }\n if (!isPanScrolling.value) {\n isPanScrolling.value = true;\n emits.moveStart({ event, flowTransform: nextViewport });\n emits.viewportChangeStart(nextViewport);\n } else {\n emits.move({ event, flowTransform: nextViewport });\n emits.viewportChange(nextViewport);\n panScrollTimeout = setTimeout(() => {\n emits.moveEnd({ event, flowTransform: nextViewport });\n emits.viewportChangeEnd(nextViewport);\n isPanScrolling.value = false;\n }, 150);\n }\n },\n { passive: false }\n );\n } else if (typeof d3ZoomHandler !== \"undefined\") {\n d3Selection.on(\n \"wheel.zoom\",\n function(event, d) {\n const invalidEvent = !preventScrolling.value && event.type === \"wheel\" && !event.ctrlKey;\n const zoomScroll = zoomKeyPressed.value || zoomOnScroll.value;\n const pinchZoom = zoomOnPinch.value && event.ctrlKey;\n const scrollEventsDisabled = !zoomScroll && !panOnScroll.value && !pinchZoom && event.type === \"wheel\";\n if (scrollEventsDisabled || invalidEvent || isWrappedWithClass(event, noWheelClassName.value)) {\n return null;\n }\n event.preventDefault();\n d3ZoomHandler.call(this, event, d);\n },\n { passive: false }\n );\n }\n },\n { immediate: true }\n );\n });\n function isRightClickPan(pan, usedButton) {\n return usedButton === 2 && Array.isArray(pan) && pan.includes(2);\n }\n function wheelDelta(event) {\n const factor = event.ctrlKey && isMacOs() ? 10 : 1;\n return -event.deltaY * (event.deltaMode === 1 ? 0.05 : event.deltaMode ? 1 : 2e-3) * factor;\n }\n function viewChanged(prevViewport, eventTransform) {\n return prevViewport.x !== eventTransform.x && !Number.isNaN(eventTransform.x) || prevViewport.y !== eventTransform.y && !Number.isNaN(eventTransform.y) || prevViewport.zoom !== eventTransform.k && !Number.isNaN(eventTransform.k);\n }\n function eventToFlowTransform(eventTransform) {\n return {\n x: eventTransform.x,\n y: eventTransform.y,\n zoom: eventTransform.k\n };\n }\n function isWrappedWithClass(event, className) {\n return event.target.closest(`.${className}`);\n }\n return (_ctx, _cache) => {\n return openBlock(), createElementBlock(\"div\", {\n ref_key: \"viewportRef\",\n ref: viewportRef,\n class: \"vue-flow__viewport vue-flow__container\"\n }, [\n createVNode(_sfc_main$a, {\n \"is-selecting\": isSelecting.value,\n class: normalizeClass({ connecting: !!unref(connectionStartHandle), dragging: unref(paneDragging), draggable: shouldPanOnDrag.value })\n }, {\n default: withCtx(() => [\n createVNode(_sfc_main$9, null, {\n default: withCtx(() => [\n renderSlot(_ctx.$slots, \"default\")\n ]),\n _: 3\n })\n ]),\n _: 3\n }, 8, [\"is-selecting\", \"class\"])\n ], 512);\n };\n }\n});\nconst _hoisted_1$5 = [\"id\"];\nconst _hoisted_2 = [\"id\"];\nconst _hoisted_3 = [\"id\"];\nconst __default__$7 = {\n name: \"A11yDescriptions\",\n compatConfig: { MODE: 3 }\n};\nconst _sfc_main$7 = /* @__PURE__ */ defineComponent({\n ...__default__$7,\n setup(__props) {\n const { id: id2, disableKeyboardA11y, ariaLiveMessage } = useVueFlow();\n return (_ctx, _cache) => {\n return openBlock(), createElementBlock(Fragment, null, [\n createElementVNode(\"div\", {\n id: `${unref(ARIA_NODE_DESC_KEY)}-${unref(id2)}`,\n style: { \"display\": \"none\" }\n }, \" Press enter or space to select a node. \" + toDisplayString(!unref(disableKeyboardA11y) ? \"You can then use the arrow keys to move the node around.\" : \"\") + \" You can then use the arrow keys to move the node around, press delete to remove it and press escape to cancel. \", 9, _hoisted_1$5),\n createElementVNode(\"div\", {\n id: `${unref(ARIA_EDGE_DESC_KEY)}-${unref(id2)}`,\n style: { \"display\": \"none\" }\n }, \" Press enter or space to select an edge. You can then press delete to remove it or press escape to cancel. \", 8, _hoisted_2),\n !unref(disableKeyboardA11y) ? (openBlock(), createElementBlock(\"div\", {\n key: 0,\n id: `${unref(ARIA_LIVE_MESSAGE)}-${unref(id2)}`,\n \"aria-live\": \"assertive\",\n \"aria-atomic\": \"true\",\n style: { \"position\": \"absolute\", \"width\": \"1px\", \"height\": \"1px\", \"margin\": \"-1px\", \"border\": \"0\", \"padding\": \"0\", \"overflow\": \"hidden\", \"clip\": \"rect(0px, 0px, 0px, 0px)\", \"clip-path\": \"inset(100%)\" }\n }, toDisplayString(unref(ariaLiveMessage)), 9, _hoisted_3)) : createCommentVNode(\"\", true)\n ], 64);\n };\n }\n});\nfunction useOnInitHandler() {\n const vfInstance = useVueFlow();\n watch(\n () => vfInstance.viewportHelper.value.viewportInitialized,\n (isInitialized) => {\n if (isInitialized) {\n setTimeout(() => {\n vfInstance.emits.init(vfInstance);\n vfInstance.emits.paneReady(vfInstance);\n }, 1);\n }\n }\n );\n}\nfunction shiftX(x, shift, position) {\n if (position === Position.Left) {\n return x - shift;\n }\n if (position === Position.Right) {\n return x + shift;\n }\n return x;\n}\nfunction shiftY(y, shift, position) {\n if (position === Position.Top) {\n return y - shift;\n }\n if (position === Position.Bottom) {\n return y + shift;\n }\n return y;\n}\nconst EdgeAnchor = function({\n radius = 10,\n centerX = 0,\n centerY = 0,\n position = Position.Top,\n type\n}) {\n return h(\"circle\", {\n class: `vue-flow__edgeupdater vue-flow__edgeupdater-${type}`,\n cx: shiftX(centerX, radius, position),\n cy: shiftY(centerY, radius, position),\n r: radius,\n stroke: \"transparent\",\n fill: \"transparent\"\n });\n};\nEdgeAnchor.props = [\"radius\", \"centerX\", \"centerY\", \"position\", \"type\"];\nEdgeAnchor.compatConfig = { MODE: 3 };\nconst EdgeAnchor$1 = EdgeAnchor;\nconst EdgeWrapper = defineComponent({\n name: \"Edge\",\n compatConfig: { MODE: 3 },\n props: [\"id\"],\n setup(props) {\n const {\n id: vueFlowId,\n addSelectedEdges,\n connectionMode,\n edgeUpdaterRadius,\n emits,\n nodesSelectionActive,\n noPanClassName,\n getEdgeTypes,\n removeSelectedEdges,\n findEdge,\n findNode,\n isValidConnection,\n multiSelectionActive,\n disableKeyboardA11y,\n elementsSelectable,\n edgesUpdatable,\n edgesFocusable\n } = useVueFlow();\n const edge = computed(() => findEdge(props.id));\n const hooks = useEdgeHooks(edge.value, emits);\n const slots = inject(Slots);\n const instance = getCurrentInstance();\n const mouseOver = ref(false);\n const updating = ref(false);\n const nodeId = ref(\"\");\n const handleId = ref(null);\n const edgeUpdaterType = ref(\"source\");\n const edgeEl = ref(null);\n const isSelectable = toRef(\n () => typeof edge.value.selectable === \"undefined\" ? elementsSelectable.value : edge.value.selectable\n );\n const isUpdatable = toRef(() => typeof edge.value.updatable === \"undefined\" ? edgesUpdatable.value : edge.value.updatable);\n const isFocusable = toRef(() => typeof edge.value.focusable === \"undefined\" ? edgesFocusable.value : edge.value.focusable);\n provide(EdgeId, props.id);\n provide(EdgeRef, edgeEl);\n const edgeClass = computed(() => edge.value.class instanceof Function ? edge.value.class(edge.value) : edge.value.class);\n const edgeStyle = computed(() => edge.value.style instanceof Function ? edge.value.style(edge.value) : edge.value.style);\n const edgeCmp = computed(() => {\n const name = edge.value.type || \"default\";\n const slot = slots == null ? void 0 : slots[`edge-${name}`];\n if (slot) {\n return slot;\n }\n let edgeType = edge.value.template ?? getEdgeTypes.value[name];\n if (typeof edgeType === \"string\") {\n if (instance) {\n const components = Object.keys(instance.appContext.components);\n if (components && components.includes(name)) {\n edgeType = resolveComponent(name, false);\n }\n }\n }\n if (edgeType && typeof edgeType !== \"string\") {\n return edgeType;\n }\n emits.error(new VueFlowError(ErrorCode.EDGE_TYPE_MISSING, edgeType));\n return false;\n });\n const { handlePointerDown } = useHandle({\n nodeId,\n handleId,\n type: edgeUpdaterType,\n isValidConnection,\n edgeUpdaterType,\n onEdgeUpdate,\n onEdgeUpdateEnd\n });\n return () => {\n const sourceNode = findNode(edge.value.source);\n const targetNode = findNode(edge.value.target);\n const pathOptions = \"pathOptions\" in edge.value ? edge.value.pathOptions : {};\n if (!sourceNode && !targetNode) {\n emits.error(new VueFlowError(ErrorCode.EDGE_SOURCE_TARGET_MISSING, edge.value.id, edge.value.source, edge.value.target));\n return null;\n }\n if (!sourceNode) {\n emits.error(new VueFlowError(ErrorCode.EDGE_SOURCE_MISSING, edge.value.id, edge.value.source));\n return null;\n }\n if (!targetNode) {\n emits.error(new VueFlowError(ErrorCode.EDGE_TARGET_MISSING, edge.value.id, edge.value.target));\n return null;\n }\n if (!edge.value || edge.value.hidden || sourceNode.hidden || targetNode.hidden) {\n return null;\n }\n let sourceNodeHandles;\n if (connectionMode.value === ConnectionMode.Strict) {\n sourceNodeHandles = sourceNode.handleBounds.source;\n } else {\n sourceNodeHandles = [...sourceNode.handleBounds.source || [], ...sourceNode.handleBounds.target || []];\n }\n const sourceHandle = getHandle(sourceNodeHandles, edge.value.sourceHandle);\n let targetNodeHandles;\n if (connectionMode.value === ConnectionMode.Strict) {\n targetNodeHandles = targetNode.handleBounds.target;\n } else {\n targetNodeHandles = [...targetNode.handleBounds.target || [], ...targetNode.handleBounds.source || []];\n }\n const targetHandle = getHandle(targetNodeHandles, edge.value.targetHandle);\n const sourcePosition = sourceHandle ? sourceHandle.position : Position.Bottom;\n const targetPosition = targetHandle ? targetHandle.position : Position.Top;\n const { sourceX, sourceY, targetY, targetX } = getEdgePositions(\n sourceNode,\n sourceHandle,\n sourcePosition,\n targetNode,\n targetHandle,\n targetPosition\n );\n edge.value.sourceX = sourceX;\n edge.value.sourceY = sourceY;\n edge.value.targetX = targetX;\n edge.value.targetY = targetY;\n return h(\n \"g\",\n {\n \"ref\": edgeEl,\n \"key\": props.id,\n \"data-id\": props.id,\n \"class\": [\n \"vue-flow__edge\",\n `vue-flow__edge-${edgeCmp.value === false ? \"default\" : edge.value.type || \"default\"}`,\n noPanClassName.value,\n edgeClass.value,\n {\n updating: mouseOver.value,\n selected: edge.value.selected,\n animated: edge.value.animated,\n inactive: !isSelectable.value\n }\n ],\n \"onClick\": onEdgeClick,\n \"onContextmenu\": onEdgeContextMenu,\n \"onDblclick\": onDoubleClick,\n \"onMouseenter\": onEdgeMouseEnter,\n \"onMousemove\": onEdgeMouseMove,\n \"onMouseleave\": onEdgeMouseLeave,\n \"onKeyDown\": isFocusable.value ? onKeyDown : void 0,\n \"tabIndex\": isFocusable.value ? 0 : void 0,\n \"aria-label\": edge.value.ariaLabel === null ? void 0 : edge.value.ariaLabel || `Edge from ${edge.value.source} to ${edge.value.target}`,\n \"aria-describedby\": isFocusable.value ? `${ARIA_EDGE_DESC_KEY}-${vueFlowId}` : void 0,\n \"role\": isFocusable.value ? \"button\" : \"img\"\n },\n [\n updating.value ? null : h(edgeCmp.value === false ? getEdgeTypes.value.default : edgeCmp.value, {\n id: props.id,\n sourceNode,\n targetNode,\n source: edge.value.source,\n target: edge.value.target,\n type: edge.value.type,\n updatable: isUpdatable.value,\n selected: edge.value.selected,\n animated: edge.value.animated,\n label: edge.value.label,\n labelStyle: edge.value.labelStyle,\n labelShowBg: edge.value.labelShowBg,\n labelBgStyle: edge.value.labelBgStyle,\n labelBgPadding: edge.value.labelBgPadding,\n labelBgBorderRadius: edge.value.labelBgBorderRadius,\n data: edge.value.data,\n events: { ...edge.value.events, ...hooks.on },\n style: edgeStyle.value,\n markerStart: `url('#${getMarkerId(edge.value.markerStart, vueFlowId)}')`,\n markerEnd: `url('#${getMarkerId(edge.value.markerEnd, vueFlowId)}')`,\n sourcePosition,\n targetPosition,\n sourceX,\n sourceY,\n targetX,\n targetY,\n sourceHandleId: edge.value.sourceHandle,\n targetHandleId: edge.value.targetHandle,\n interactionWidth: edge.value.interactionWidth,\n ...pathOptions\n }),\n [\n isUpdatable.value === \"source\" || isUpdatable.value === true ? [\n h(\n \"g\",\n {\n onMousedown: onEdgeUpdaterSourceMouseDown,\n onMouseenter: onEdgeUpdaterMouseEnter,\n onMouseout: onEdgeUpdaterMouseOut\n },\n h(EdgeAnchor$1, {\n \"position\": sourcePosition,\n \"centerX\": sourceX,\n \"centerY\": sourceY,\n \"radius\": edgeUpdaterRadius.value,\n \"type\": \"source\",\n \"data-type\": \"source\"\n })\n )\n ] : null,\n isUpdatable.value === \"target\" || isUpdatable.value === true ? [\n h(\n \"g\",\n {\n onMousedown: onEdgeUpdaterTargetMouseDown,\n onMouseenter: onEdgeUpdaterMouseEnter,\n onMouseout: onEdgeUpdaterMouseOut\n },\n h(EdgeAnchor$1, {\n \"position\": targetPosition,\n \"centerX\": targetX,\n \"centerY\": targetY,\n \"radius\": edgeUpdaterRadius.value,\n \"type\": \"target\",\n \"data-type\": \"target\"\n })\n )\n ] : null\n ]\n ]\n );\n };\n function onEdgeUpdaterMouseEnter() {\n mouseOver.value = true;\n }\n function onEdgeUpdaterMouseOut() {\n mouseOver.value = false;\n }\n function onEdgeUpdate(event, connection) {\n hooks.emit.update({ event, edge: edge.value, connection });\n }\n function onEdgeUpdateEnd(event) {\n hooks.emit.updateEnd({ event, edge: edge.value });\n updating.value = false;\n }\n function handleEdgeUpdater(event, isSourceHandle) {\n if (event.button !== 0) {\n return;\n }\n updating.value = true;\n nodeId.value = isSourceHandle ? edge.value.target : edge.value.source;\n handleId.value = (isSourceHandle ? edge.value.targetHandle : edge.value.sourceHandle) ?? \"\";\n edgeUpdaterType.value = isSourceHandle ? \"target\" : \"source\";\n hooks.emit.updateStart({ event, edge: edge.value });\n handlePointerDown(event);\n }\n function onEdgeClick(event) {\n var _a;\n const data = { event, edge: edge.value };\n if (isSelectable.value) {\n nodesSelectionActive.value = false;\n if (edge.value.selected && multiSelectionActive.value) {\n removeSelectedEdges([edge.value]);\n (_a = edgeEl.value) == null ? void 0 : _a.blur();\n } else {\n addSelectedEdges([edge.value]);\n }\n }\n hooks.emit.click(data);\n }\n function onEdgeContextMenu(event) {\n hooks.emit.contextMenu({ event, edge: edge.value });\n }\n function onDoubleClick(event) {\n hooks.emit.doubleClick({ event, edge: edge.value });\n }\n function onEdgeMouseEnter(event) {\n hooks.emit.mouseEnter({ event, edge: edge.value });\n }\n function onEdgeMouseMove(event) {\n hooks.emit.mouseMove({ event, edge: edge.value });\n }\n function onEdgeMouseLeave(event) {\n hooks.emit.mouseLeave({ event, edge: edge.value });\n }\n function onEdgeUpdaterSourceMouseDown(event) {\n handleEdgeUpdater(event, true);\n }\n function onEdgeUpdaterTargetMouseDown(event) {\n handleEdgeUpdater(event, false);\n }\n function onKeyDown(event) {\n var _a;\n if (!disableKeyboardA11y.value && elementSelectionKeys.includes(event.key) && isSelectable.value) {\n const unselect = event.key === \"Escape\";\n if (unselect) {\n (_a = edgeEl.value) == null ? void 0 : _a.blur();\n removeSelectedEdges([findEdge(props.id)]);\n } else {\n addSelectedEdges([findEdge(props.id)]);\n }\n }\n }\n }\n});\nconst EdgeWrapper$1 = EdgeWrapper;\nconst oppositePosition = {\n [Position.Left]: Position.Right,\n [Position.Right]: Position.Left,\n [Position.Top]: Position.Bottom,\n [Position.Bottom]: Position.Top\n};\nconst ConnectionLine = defineComponent({\n name: \"ConnectionLine\",\n compatConfig: { MODE: 3 },\n setup() {\n var _a;\n const {\n id: id2,\n connectionMode,\n connectionStartHandle,\n connectionEndHandle,\n connectionPosition,\n connectionLineType,\n connectionLineStyle,\n connectionLineOptions,\n connectionStatus,\n viewport,\n findNode\n } = useVueFlow();\n const connectionLineComponent = (_a = inject(Slots)) == null ? void 0 : _a[\"connection-line\"];\n const fromNode = computed(() => {\n var _a2;\n return findNode((_a2 = connectionStartHandle.value) == null ? void 0 : _a2.nodeId);\n });\n const toNode = computed(() => {\n var _a2;\n return findNode((_a2 = connectionEndHandle.value) == null ? void 0 : _a2.nodeId) ?? null;\n });\n const toXY = computed(() => {\n return {\n x: (connectionPosition.value.x - viewport.value.x) / viewport.value.zoom,\n y: (connectionPosition.value.y - viewport.value.y) / viewport.value.zoom\n };\n });\n const markerStart = computed(\n () => connectionLineOptions.value.markerStart ? `url(#${getMarkerId(connectionLineOptions.value.markerStart, id2)})` : \"\"\n );\n const markerEnd = computed(\n () => connectionLineOptions.value.markerEnd ? `url(#${getMarkerId(connectionLineOptions.value.markerEnd, id2)})` : \"\"\n );\n return () => {\n var _a2, _b, _c;\n if (!fromNode.value || !connectionStartHandle.value) {\n return null;\n }\n const startHandleId = connectionStartHandle.value.handleId;\n const handleType = connectionStartHandle.value.type;\n const fromHandleBounds = fromNode.value.handleBounds;\n let handleBounds = fromHandleBounds == null ? void 0 : fromHandleBounds[handleType];\n if (connectionMode.value === ConnectionMode.Loose) {\n handleBounds = handleBounds || (fromHandleBounds == null ? void 0 : fromHandleBounds[handleType === \"source\" ? \"target\" : \"source\"]);\n }\n if (!handleBounds) {\n return null;\n }\n const fromHandle = (startHandleId ? handleBounds.find((d) => d.id === startHandleId) : handleBounds[0]) ?? null;\n const fromPosition = (fromHandle == null ? void 0 : fromHandle.position) || Position.Top;\n const { x: fromX, y: fromY } = getHandlePosition(\n fromPosition,\n { ...fromNode.value.dimensions, ...fromNode.value.computedPosition },\n fromHandle\n );\n let toHandle = null;\n if (toNode.value && ((_a2 = connectionEndHandle.value) == null ? void 0 : _a2.handleId)) {\n if (connectionMode.value === ConnectionMode.Strict) {\n toHandle = ((_b = toNode.value.handleBounds[handleType === \"source\" ? \"target\" : \"source\"]) == null ? void 0 : _b.find(\n (d) => {\n var _a3;\n return d.id === ((_a3 = connectionEndHandle.value) == null ? void 0 : _a3.handleId);\n }\n )) || null;\n } else {\n toHandle = ((_c = [...toNode.value.handleBounds.source || [], ...toNode.value.handleBounds.target || []]) == null ? void 0 : _c.find(\n (d) => {\n var _a3;\n return d.id === ((_a3 = connectionEndHandle.value) == null ? void 0 : _a3.handleId);\n }\n )) || null;\n }\n }\n const toPosition = fromPosition ? oppositePosition[fromPosition] : null;\n if (!fromPosition || !toPosition) {\n return null;\n }\n const type = connectionLineType.value ?? connectionLineOptions.value.type ?? ConnectionLineType.Bezier;\n let dAttr = \"\";\n const pathParams = {\n sourceX: fromX,\n sourceY: fromY,\n sourcePosition: fromPosition,\n targetX: toXY.value.x,\n targetY: toXY.value.y,\n targetPosition: toPosition\n };\n if (type === ConnectionLineType.Bezier) {\n [dAttr] = getBezierPath(pathParams);\n } else if (type === ConnectionLineType.Step) {\n [dAttr] = getSmoothStepPath({\n ...pathParams,\n borderRadius: 0\n });\n } else if (type === ConnectionLineType.SmoothStep) {\n [dAttr] = getSmoothStepPath(pathParams);\n } else if (type === ConnectionLineType.SimpleBezier) {\n [dAttr] = getSimpleBezierPath(pathParams);\n } else {\n dAttr = `M${fromX},${fromY} ${toXY.value.x},${toXY.value.y}`;\n }\n return h(\n \"svg\",\n { class: \"vue-flow__edges vue-flow__connectionline vue-flow__container\" },\n h(\n \"g\",\n { class: \"vue-flow__connection\" },\n connectionLineComponent ? h(connectionLineComponent, {\n sourceX: fromX,\n sourceY: fromY,\n sourcePosition: fromPosition,\n targetX: toXY.value.x,\n targetY: toXY.value.y,\n targetPosition: toPosition,\n sourceNode: fromNode.value,\n sourceHandle: fromHandle,\n targetNode: toNode.value,\n targetHandle: toHandle,\n markerEnd: markerEnd.value,\n markerStart: markerStart.value,\n connectionStatus: connectionStatus.value\n }) : h(\"path\", {\n \"d\": dAttr,\n \"class\": [connectionLineOptions.value.class, connectionStatus, \"vue-flow__connection-path\"],\n \"style\": {\n ...connectionLineStyle.value,\n ...connectionLineOptions.value.style\n },\n \"marker-end\": markerEnd.value,\n \"marker-start\": markerStart.value\n })\n )\n );\n };\n }\n});\nconst ConnectionLine$1 = ConnectionLine;\nconst _hoisted_1$4 = [\"id\", \"markerWidth\", \"markerHeight\", \"markerUnits\", \"orient\"];\nconst __default__$6 = {\n name: \"MarkerType\",\n compatConfig: { MODE: 3 }\n};\nconst _sfc_main$6 = /* @__PURE__ */ defineComponent({\n ...__default__$6,\n props: {\n id: {},\n type: {},\n color: { default: \"none\" },\n width: { default: 12.5 },\n height: { default: 12.5 },\n markerUnits: { default: \"strokeWidth\" },\n orient: { default: \"auto-start-reverse\" },\n strokeWidth: { default: 1 }\n },\n setup(__props) {\n return (_ctx, _cache) => {\n return openBlock(), createElementBlock(\"marker\", {\n id: _ctx.id,\n class: \"vue-flow__arrowhead\",\n viewBox: \"-10 -10 20 20\",\n refX: \"0\",\n refY: \"0\",\n markerWidth: `${_ctx.width}`,\n markerHeight: `${_ctx.height}`,\n markerUnits: _ctx.markerUnits,\n orient: _ctx.orient\n }, [\n _ctx.type === unref(MarkerType).ArrowClosed ? (openBlock(), createElementBlock(\"polyline\", {\n key: 0,\n style: normalizeStyle({\n stroke: _ctx.color,\n fill: _ctx.color,\n strokeWidth: _ctx.strokeWidth\n }),\n \"stroke-linecap\": \"round\",\n \"stroke-linejoin\": \"round\",\n points: \"-5,-4 0,0 -5,4 -5,-4\"\n }, null, 4)) : createCommentVNode(\"\", true),\n _ctx.type === unref(MarkerType).Arrow ? (openBlock(), createElementBlock(\"polyline\", {\n key: 1,\n style: normalizeStyle({\n stroke: _ctx.color,\n strokeWidth: _ctx.strokeWidth\n }),\n \"stroke-linecap\": \"round\",\n \"stroke-linejoin\": \"round\",\n fill: \"none\",\n points: \"-5,-4 0,0 -5,4\"\n }, null, 4)) : createCommentVNode(\"\", true)\n ], 8, _hoisted_1$4);\n };\n }\n});\nconst _hoisted_1$3 = { class: \"vue-flow__marker vue-flow__container\" };\nconst __default__$5 = {\n name: \"MarkerDefinitions\",\n compatConfig: { MODE: 3 }\n};\nconst _sfc_main$5 = /* @__PURE__ */ defineComponent({\n ...__default__$5,\n setup(__props) {\n const { id: vueFlowId, edges, connectionLineOptions, defaultMarkerColor: defaultColor } = useVueFlow();\n const markers = computed(() => {\n const ids = /* @__PURE__ */ new Set();\n const markers2 = [];\n const createMarkers = (marker) => {\n if (marker) {\n const markerId = getMarkerId(marker, vueFlowId);\n if (!ids.has(markerId)) {\n if (typeof marker === \"object\") {\n markers2.push({ ...marker, id: markerId, color: marker.color || defaultColor.value });\n } else {\n markers2.push({ id: markerId, color: defaultColor.value, type: marker });\n }\n ids.add(markerId);\n }\n }\n };\n for (const marker of [connectionLineOptions.value.markerEnd, connectionLineOptions.value.markerStart]) {\n createMarkers(marker);\n }\n for (const edge of edges.value) {\n for (const marker of [edge.markerStart, edge.markerEnd]) {\n createMarkers(marker);\n }\n }\n return markers2.sort((a, b) => a.id.localeCompare(b.id));\n });\n return (_ctx, _cache) => {\n return openBlock(), createElementBlock(\"svg\", _hoisted_1$3, [\n createElementVNode(\"defs\", null, [\n (openBlock(true), createElementBlock(Fragment, null, renderList(markers.value, (marker) => {\n return openBlock(), createBlock(_sfc_main$6, {\n id: marker.id,\n key: marker.id,\n type: marker.type,\n color: marker.color,\n width: marker.width,\n height: marker.height,\n markerUnits: marker.markerUnits,\n \"stroke-width\": marker.strokeWidth,\n orient: marker.orient\n }, null, 8, [\"id\", \"type\", \"color\", \"width\", \"height\", \"markerUnits\", \"stroke-width\", \"orient\"]);\n }), 128))\n ])\n ]);\n };\n }\n});\nconst __default__$4 = {\n name: \"Edges\",\n compatConfig: { MODE: 3 }\n};\nconst _sfc_main$4 = /* @__PURE__ */ defineComponent({\n ...__default__$4,\n setup(__props) {\n const { findNode, getEdges, elevateEdgesOnSelect } = useVueFlow();\n return (_ctx, _cache) => {\n return openBlock(), createElementBlock(Fragment, null, [\n createVNode(_sfc_main$5),\n (openBlock(true), createElementBlock(Fragment, null, renderList(unref(getEdges), (edge, __, ___, _cached) => {\n const _memo = [edge.id];\n if (_cached && _cached.key === edge.id && isMemoSame(_cached, _memo))\n return _cached;\n const _item = (openBlock(), createElementBlock(\"svg\", {\n key: edge.id,\n class: \"vue-flow__edges vue-flow__container\",\n style: normalizeStyle({ zIndex: unref(getEdgeZIndex)(edge, unref(findNode), unref(elevateEdgesOnSelect)) })\n }, [\n createVNode(unref(EdgeWrapper$1), {\n id: edge.id\n }, null, 8, [\"id\"])\n ], 4));\n _item.memo = _memo;\n return _item;\n }, _cache, 0), 128)),\n createVNode(unref(ConnectionLine$1))\n ], 64);\n };\n }\n});\nconst NodeWrapper = defineComponent({\n name: \"Node\",\n compatConfig: { MODE: 3 },\n props: [\"id\", \"resizeObserver\"],\n setup(props) {\n const {\n id: vueFlowId,\n noPanClassName,\n selectNodesOnDrag,\n nodesSelectionActive,\n multiSelectionActive,\n emits,\n removeSelectedNodes,\n addSelectedNodes,\n updateNodeDimensions,\n onUpdateNodeInternals,\n getNodeTypes,\n nodeExtent,\n elevateNodesOnSelect,\n disableKeyboardA11y,\n ariaLiveMessage,\n snapToGrid,\n snapGrid,\n nodeDragThreshold,\n nodesDraggable,\n elementsSelectable,\n nodesConnectable,\n nodesFocusable\n } = useVueFlow();\n const nodeElement = ref(null);\n provide(NodeRef, nodeElement);\n provide(NodeId, props.id);\n const slots = inject(Slots);\n const instance = getCurrentInstance();\n const updateNodePositions = useUpdateNodePositions();\n const { node, parentNode } = useNode(props.id);\n const isDraggable = toRef(() => typeof node.draggable === \"undefined\" ? nodesDraggable.value : node.draggable);\n const isSelectable = toRef(() => typeof node.selectable === \"undefined\" ? elementsSelectable.value : node.selectable);\n const isConnectable = toRef(() => typeof node.connectable === \"undefined\" ? nodesConnectable.value : node.connectable);\n const isFocusable = toRef(() => typeof node.focusable === \"undefined\" ? nodesFocusable.value : node.focusable);\n const isInit = toRef(() => !!node.dimensions.width && !!node.dimensions.height);\n const nodeCmp = computed(() => {\n const name = node.type || \"default\";\n const slot = slots == null ? void 0 : slots[`node-${name}`];\n if (slot) {\n return slot;\n }\n let nodeType = node.template || getNodeTypes.value[name];\n if (typeof nodeType === \"string\") {\n if (instance) {\n const components = Object.keys(instance.appContext.components);\n if (components && components.includes(name)) {\n nodeType = resolveComponent(name, false);\n }\n }\n }\n if (nodeType && typeof nodeType !== \"string\") {\n return nodeType;\n }\n emits.error(new VueFlowError(ErrorCode.NODE_TYPE_MISSING, nodeType));\n return false;\n });\n const { emit, on } = useNodeHooks(node, emits);\n const dragging = useDrag({\n id: props.id,\n el: nodeElement,\n disabled: () => !isDraggable.value,\n selectable: isSelectable,\n dragHandle: () => node.dragHandle,\n onStart(args) {\n emit.dragStart(args);\n },\n onDrag(args) {\n emit.drag(args);\n },\n onStop(args) {\n emit.dragStop(args);\n }\n });\n const getClass = computed(() => node.class instanceof Function ? node.class(node) : node.class);\n const getStyle = computed(() => {\n const styles = (node.style instanceof Function ? node.style(node) : node.style) || {};\n const width = node.width instanceof Function ? node.width(node) : node.width;\n const height = node.height instanceof Function ? node.height(node) : node.height;\n if (width) {\n styles.width = typeof width === \"string\" ? width : `${width}px`;\n }\n if (height) {\n styles.height = typeof height === \"string\" ? height : `${height}px`;\n }\n return styles;\n });\n const zIndex = toRef(() => Number(node.zIndex ?? getStyle.value.zIndex ?? 0));\n onUpdateNodeInternals((updateIds) => {\n if (updateIds.includes(props.id) || !updateIds.length) {\n updateInternals();\n }\n });\n onMounted(() => {\n watch(\n () => node.hidden,\n (isHidden = false, _, onCleanup) => {\n if (!isHidden && nodeElement.value) {\n props.resizeObserver.observe(nodeElement.value);\n onCleanup(() => {\n if (nodeElement.value) {\n props.resizeObserver.unobserve(nodeElement.value);\n }\n });\n }\n },\n { immediate: true, flush: \"pre\" }\n );\n });\n watch([() => node.type, () => node.sourcePosition, () => node.targetPosition], () => {\n nextTick(() => {\n updateNodeDimensions([{ id: props.id, nodeElement: nodeElement.value, forceUpdate: true }]);\n });\n });\n watch(\n [\n () => node.position.x,\n () => node.position.y,\n () => {\n var _a;\n return (_a = parentNode.value) == null ? void 0 : _a.computedPosition.x;\n },\n () => {\n var _a;\n return (_a = parentNode.value) == null ? void 0 : _a.computedPosition.y;\n },\n () => {\n var _a;\n return (_a = parentNode.value) == null ? void 0 : _a.computedPosition.z;\n },\n zIndex,\n () => node.selected,\n () => node.dimensions.height,\n () => node.dimensions.width,\n () => {\n var _a;\n return (_a = parentNode.value) == null ? void 0 : _a.dimensions.height;\n },\n () => {\n var _a;\n return (_a = parentNode.value) == null ? void 0 : _a.dimensions.width;\n }\n ],\n ([newX, newY, parentX, parentY, parentZ, nodeZIndex]) => {\n const xyzPos = {\n x: newX,\n y: newY,\n z: nodeZIndex + (elevateNodesOnSelect.value ? node.selected ? 1e3 : 0 : 0)\n };\n if (typeof parentX !== \"undefined\" && typeof parentY !== \"undefined\") {\n node.computedPosition = getXYZPos({ x: parentX, y: parentY, z: parentZ }, xyzPos);\n } else {\n node.computedPosition = xyzPos;\n }\n },\n { flush: \"post\", immediate: true }\n );\n watch([() => node.extent, nodeExtent], ([nodeExtent2, globalExtent], [oldNodeExtent, oldGlobalExtent]) => {\n if (nodeExtent2 !== oldNodeExtent || globalExtent !== oldGlobalExtent) {\n clampPosition2();\n }\n });\n if (node.extent === \"parent\" || typeof node.extent === \"object\" && \"range\" in node.extent && node.extent.range === \"parent\") {\n until(() => isInit).toBe(true).then(clampPosition2);\n } else {\n clampPosition2();\n }\n return () => {\n if (node.hidden) {\n return null;\n }\n return h(\n \"div\",\n {\n \"ref\": nodeElement,\n \"data-id\": node.id,\n \"class\": [\n \"vue-flow__node\",\n `vue-flow__node-${nodeCmp.value === false ? \"default\" : node.type || \"default\"}`,\n {\n [noPanClassName.value]: isDraggable.value,\n dragging: dragging == null ? void 0 : dragging.value,\n draggable: isDraggable.value,\n selected: node.selected,\n selectable: isSelectable.value,\n parent: node.isParent\n },\n getClass.value\n ],\n \"style\": {\n visibility: isInit.value ? \"visible\" : \"hidden\",\n zIndex: node.computedPosition.z ?? zIndex.value,\n transform: `translate(${node.computedPosition.x}px,${node.computedPosition.y}px)`,\n pointerEvents: isSelectable.value || isDraggable.value ? \"all\" : \"none\",\n ...getStyle.value\n },\n \"tabIndex\": isFocusable.value ? 0 : void 0,\n \"role\": isFocusable.value ? \"button\" : void 0,\n \"aria-describedby\": disableKeyboardA11y.value ? void 0 : `${ARIA_NODE_DESC_KEY}-${vueFlowId}`,\n \"aria-label\": node.ariaLabel,\n \"onMouseenter\": onMouseEnter,\n \"onMousemove\": onMouseMove,\n \"onMouseleave\": onMouseLeave,\n \"onContextmenu\": onContextMenu,\n \"onClick\": onSelectNode,\n \"onDblclick\": onDoubleClick,\n \"onKeydown\": onKeyDown\n },\n [\n h(nodeCmp.value === false ? getNodeTypes.value.default : nodeCmp.value, {\n id: node.id,\n type: node.type,\n data: node.data,\n events: { ...node.events, ...on },\n selected: node.selected,\n resizing: node.resizing,\n dragging: dragging.value,\n connectable: isConnectable.value,\n position: node.computedPosition,\n dimensions: node.dimensions,\n isValidTargetPos: node.isValidTargetPos,\n isValidSourcePos: node.isValidSourcePos,\n parent: node.parentNode,\n parentNodeId: node.parentNode,\n zIndex: node.computedPosition.z ?? zIndex.value,\n targetPosition: node.targetPosition,\n sourcePosition: node.sourcePosition,\n label: node.label,\n dragHandle: node.dragHandle,\n onUpdateNodeInternals: updateInternals\n })\n ]\n );\n };\n function clampPosition2() {\n const nextPos = node.computedPosition;\n if (snapToGrid.value) {\n nextPos.x = snapGrid.value[0] * Math.round(nextPos.x / snapGrid.value[0]);\n nextPos.y = snapGrid.value[1] * Math.round(nextPos.y / snapGrid.value[1]);\n }\n const { computedPosition, position } = calcNextPosition(node, nextPos, emits.error, nodeExtent.value, parentNode.value);\n if (node.computedPosition.x !== computedPosition.x || node.computedPosition.y !== computedPosition.y) {\n node.computedPosition = { ...node.computedPosition, ...computedPosition };\n }\n if (node.position.x !== position.x || node.position.y !== position.y) {\n node.position = position;\n }\n }\n function updateInternals() {\n if (nodeElement.value) {\n updateNodeDimensions([{ id: props.id, nodeElement: nodeElement.value, forceUpdate: true }]);\n }\n }\n function onMouseEnter(event) {\n if (!(dragging == null ? void 0 : dragging.value)) {\n emit.mouseEnter({ event, node });\n }\n }\n function onMouseMove(event) {\n if (!(dragging == null ? void 0 : dragging.value)) {\n emit.mouseMove({ event, node });\n }\n }\n function onMouseLeave(event) {\n if (!(dragging == null ? void 0 : dragging.value)) {\n emit.mouseLeave({ event, node });\n }\n }\n function onContextMenu(event) {\n return emit.contextMenu({ event, node });\n }\n function onDoubleClick(event) {\n return emit.doubleClick({ event, node });\n }\n function onSelectNode(event) {\n if (isSelectable.value && (!selectNodesOnDrag.value || !isDraggable.value || nodeDragThreshold.value > 0)) {\n handleNodeClick(\n node,\n multiSelectionActive.value,\n addSelectedNodes,\n removeSelectedNodes,\n nodesSelectionActive,\n false,\n nodeElement.value\n );\n }\n emit.click({ event, node });\n }\n function onKeyDown(event) {\n if (isInputDOMNode(event) || disableKeyboardA11y.value) {\n return;\n }\n if (elementSelectionKeys.includes(event.key) && isSelectable.value) {\n const unselect = event.key === \"Escape\";\n handleNodeClick(\n node,\n multiSelectionActive.value,\n addSelectedNodes,\n removeSelectedNodes,\n nodesSelectionActive,\n unselect,\n nodeElement.value\n );\n } else if (isDraggable.value && node.selected && arrowKeyDiffs[event.key]) {\n ariaLiveMessage.value = `Moved selected node ${event.key.replace(\"Arrow\", \"\").toLowerCase()}. New position, x: ${~~node.position.x}, y: ${~~node.position.y}`;\n updateNodePositions(\n {\n x: arrowKeyDiffs[event.key].x,\n y: arrowKeyDiffs[event.key].y\n },\n event.shiftKey\n );\n }\n }\n }\n});\nconst NodeWrapper$1 = NodeWrapper;\nconst _hoisted_1$2 = {\n height: \"0\",\n width: \"0\"\n};\nconst __default__$3 = {\n name: \"EdgeLabelRenderer\",\n compatConfig: { MODE: 3 }\n};\nconst _sfc_main$3 = /* @__PURE__ */ defineComponent({\n ...__default__$3,\n setup(__props) {\n const { viewportRef } = useVueFlow();\n const teleportTarget = toRef(() => {\n var _a;\n return (_a = viewportRef.value) == null ? void 0 : _a.getElementsByClassName(\"vue-flow__edge-labels\")[0];\n });\n return (_ctx, _cache) => {\n return openBlock(), createElementBlock(\"svg\", null, [\n (openBlock(), createElementBlock(\"foreignObject\", _hoisted_1$2, [\n (openBlock(), createBlock(Teleport, {\n to: teleportTarget.value,\n disabled: !teleportTarget.value\n }, [\n renderSlot(_ctx.$slots, \"default\")\n ], 8, [\"to\", \"disabled\"]))\n ]))\n ]);\n };\n }\n});\nfunction useNodesInitialized(options = { includeHiddenNodes: false }) {\n const { nodes } = useVueFlow();\n return computed(() => {\n if (nodes.value.length === 0) {\n return false;\n }\n for (const node of nodes.value) {\n if (options.includeHiddenNodes || !node.hidden) {\n if ((node == null ? void 0 : node.handleBounds) === void 0 || node.dimensions.width === 0 || node.dimensions.height === 0) {\n return false;\n }\n }\n }\n return true;\n });\n}\nconst _hoisted_1$1 = { class: \"vue-flow__nodes vue-flow__container\" };\nconst __default__$2 = {\n name: \"Nodes\",\n compatConfig: { MODE: 3 }\n};\nconst _sfc_main$2 = /* @__PURE__ */ defineComponent({\n ...__default__$2,\n setup(__props) {\n const { getNodes, updateNodeDimensions, emits } = useVueFlow();\n const nodesInitialized = useNodesInitialized();\n const resizeObserver = ref();\n watch(\n nodesInitialized,\n (isInit) => {\n if (isInit) {\n nextTick(() => {\n emits.nodesInitialized(getNodes.value);\n });\n }\n },\n { immediate: true }\n );\n onMounted(() => {\n resizeObserver.value = new ResizeObserver((entries) => {\n const updates = entries.map((entry) => {\n const id2 = entry.target.getAttribute(\"data-id\");\n return {\n id: id2,\n nodeElement: entry.target,\n forceUpdate: true\n };\n });\n nextTick(() => updateNodeDimensions(updates));\n });\n });\n onBeforeUnmount(() => {\n var _a;\n return (_a = resizeObserver.value) == null ? void 0 : _a.disconnect();\n });\n return (_ctx, _cache) => {\n return openBlock(), createElementBlock(\"div\", _hoisted_1$1, [\n resizeObserver.value ? (openBlock(true), createElementBlock(Fragment, { key: 0 }, renderList(unref(getNodes), (node, __, ___, _cached) => {\n const _memo = [node.id];\n if (_cached && _cached.key === node.id && isMemoSame(_cached, _memo))\n return _cached;\n const _item = (openBlock(), createBlock(unref(NodeWrapper$1), {\n id: node.id,\n key: node.id,\n \"resize-observer\": resizeObserver.value\n }, null, 8, [\"id\", \"resize-observer\"]));\n _item.memo = _memo;\n return _item;\n }, _cache, 0), 128)) : createCommentVNode(\"\", true)\n ]);\n };\n }\n});\nfunction useStylesLoadedWarning() {\n const { emits } = useVueFlow();\n onMounted(() => {\n if (isDev()) {\n const pane = document.querySelector(\".vue-flow__pane\");\n if (pane && !(window.getComputedStyle(pane).zIndex === \"1\")) {\n emits.error(new VueFlowError(ErrorCode.MISSING_STYLES));\n }\n }\n });\n}\nconst _hoisted_1 = /* @__PURE__ */ createElementVNode(\"div\", { class: \"vue-flow__edge-labels\" }, null, -1);\nconst __default__$1 = {\n name: \"VueFlow\",\n compatConfig: { MODE: 3 }\n};\nconst _sfc_main$1 = /* @__PURE__ */ defineComponent({\n ...__default__$1,\n props: {\n id: {},\n modelValue: {},\n nodes: {},\n edges: {},\n edgeTypes: {},\n nodeTypes: {},\n connectionMode: {},\n connectionLineType: {},\n connectionLineStyle: { default: void 0 },\n connectionLineOptions: { default: void 0 },\n connectionRadius: {},\n isValidConnection: { type: [Function, null], default: void 0 },\n deleteKeyCode: { default: void 0 },\n selectionKeyCode: { default: void 0 },\n multiSelectionKeyCode: { default: void 0 },\n zoomActivationKeyCode: { default: void 0 },\n panActivationKeyCode: { default: void 0 },\n snapToGrid: { type: Boolean, default: void 0 },\n snapGrid: {},\n onlyRenderVisibleElements: { type: Boolean, default: void 0 },\n edgesUpdatable: { type: [Boolean, String], default: void 0 },\n nodesDraggable: { type: Boolean, default: void 0 },\n nodesConnectable: { type: Boolean, default: void 0 },\n nodeDragThreshold: {},\n elementsSelectable: { type: Boolean, default: void 0 },\n selectNodesOnDrag: { type: Boolean, default: void 0 },\n panOnDrag: { type: [Boolean, Array], default: void 0 },\n minZoom: {},\n maxZoom: {},\n defaultViewport: {},\n translateExtent: {},\n nodeExtent: {},\n defaultMarkerColor: {},\n zoomOnScroll: { type: Boolean, default: void 0 },\n zoomOnPinch: { type: Boolean, default: void 0 },\n panOnScroll: { type: Boolean, default: void 0 },\n panOnScrollSpeed: {},\n panOnScrollMode: {},\n zoomOnDoubleClick: { type: Boolean, default: void 0 },\n preventScrolling: { type: Boolean, default: void 0 },\n selectionMode: {},\n edgeUpdaterRadius: {},\n fitViewOnInit: { type: Boolean, default: void 0 },\n connectOnClick: { type: Boolean, default: void 0 },\n applyDefault: { type: Boolean, default: void 0 },\n autoConnect: { type: [Boolean, Function], default: void 0 },\n noDragClassName: {},\n noWheelClassName: {},\n noPanClassName: {},\n defaultEdgeOptions: {},\n elevateEdgesOnSelect: { type: Boolean, default: void 0 },\n elevateNodesOnSelect: { type: Boolean, default: void 0 },\n disableKeyboardA11y: { type: Boolean, default: void 0 },\n edgesFocusable: { type: Boolean, default: void 0 },\n nodesFocusable: { type: Boolean, default: void 0 },\n autoPanOnConnect: { type: Boolean, default: void 0 },\n autoPanOnNodeDrag: { type: Boolean, default: void 0 }\n },\n emits: [\"nodesChange\", \"edgesChange\", \"nodesInitialized\", \"miniMapNodeClick\", \"miniMapNodeDoubleClick\", \"miniMapNodeMouseEnter\", \"miniMapNodeMouseMove\", \"miniMapNodeMouseLeave\", \"connect\", \"connectStart\", \"connectEnd\", \"clickConnectStart\", \"clickConnectEnd\", \"moveStart\", \"move\", \"moveEnd\", \"selectionDragStart\", \"selectionDrag\", \"selectionDragStop\", \"selectionContextMenu\", \"selectionStart\", \"selectionEnd\", \"viewportChangeStart\", \"viewportChange\", \"viewportChangeEnd\", \"paneReady\", \"init\", \"paneScroll\", \"paneClick\", \"paneContextMenu\", \"paneMouseEnter\", \"paneMouseMove\", \"paneMouseLeave\", \"updateNodeInternals\", \"error\", \"edgeContextMenu\", \"edgeMouseEnter\", \"edgeMouseMove\", \"edgeMouseLeave\", \"edgeDoubleClick\", \"edgeClick\", \"edgeUpdateStart\", \"edgeUpdate\", \"edgeUpdateEnd\", \"nodeDoubleClick\", \"nodeClick\", \"nodeMouseEnter\", \"nodeMouseMove\", \"nodeMouseLeave\", \"nodeContextMenu\", \"nodeDragStart\", \"nodeDrag\", \"nodeDragStop\", \"update:modelValue\", \"update:nodes\", \"update:edges\"],\n setup(__props, { expose: __expose, emit }) {\n const props = __props;\n const slots = useSlots();\n const modelValue = useVModel(props, \"modelValue\", emit);\n const modelNodes = useVModel(props, \"nodes\", emit);\n const modelEdges = useVModel(props, \"edges\", emit);\n const instance = useVueFlow(props);\n const dispose = useWatchProps({ modelValue, nodes: modelNodes, edges: modelEdges }, props, instance);\n useHooks(emit, instance.hooks);\n useOnInitHandler();\n useStylesLoadedWarning();\n provide(Slots, slots);\n onUnmounted(() => {\n dispose();\n });\n __expose(instance);\n return (_ctx, _cache) => {\n return openBlock(), createElementBlock(\"div\", {\n ref: unref(instance).vueFlowRef,\n class: \"vue-flow\"\n }, [\n createVNode(_sfc_main$8, null, {\n default: withCtx(() => [\n createVNode(_sfc_main$4),\n _hoisted_1,\n createVNode(_sfc_main$2),\n renderSlot(_ctx.$slots, \"zoom-pane\")\n ]),\n _: 3\n }),\n renderSlot(_ctx.$slots, \"default\"),\n createVNode(_sfc_main$7)\n ], 512);\n };\n }\n});\nconst __default__ = {\n name: \"Panel\",\n compatConfig: { MODE: 3 }\n};\nconst _sfc_main = /* @__PURE__ */ defineComponent({\n ...__default__,\n props: {\n position: {}\n },\n setup(__props) {\n const props = __props;\n const { userSelectionActive } = useVueFlow();\n const positionClasses = computed(() => `${props.position}`.split(\"-\"));\n return (_ctx, _cache) => {\n return openBlock(), createElementBlock(\"div\", {\n class: normalizeClass([\"vue-flow__panel\", positionClasses.value]),\n style: normalizeStyle({ pointerEvents: unref(userSelectionActive) ? \"none\" : \"all\" })\n }, [\n renderSlot(_ctx.$slots, \"default\")\n ], 6);\n };\n }\n});\nfunction useConnection() {\n const {\n connectionStartHandle: startHandle,\n connectionEndHandle: endHandle,\n connectionStatus: status,\n connectionPosition: position\n } = useVueFlow();\n return {\n startHandle,\n endHandle,\n status,\n position\n };\n}\nfunction useHandleConnections(params) {\n const { type, id: id2, nodeId, onConnect, onDisconnect } = params;\n const { connectionLookup } = useVueFlow();\n const _nodeId = useNodeId();\n const currentNodeId = toRef(() => toValue$1(nodeId) ?? _nodeId);\n const handleType = toRef(() => toValue$1(type));\n const handleId = toRef(() => toValue$1(id2) ?? null);\n const prevConnections = ref(null);\n const connections = ref();\n watch(\n () => connectionLookup.value.get(`${currentNodeId.value}-${handleType.value}-${handleId.value}`),\n (nextConnections) => {\n if (areConnectionMapsEqual(connections.value, nextConnections)) {\n return;\n }\n connections.value = nextConnections;\n },\n { immediate: true }\n );\n watch(\n [connections, () => typeof onConnect !== \"undefined\", () => typeof onDisconnect !== \"undefined\"],\n ([currentConnections = /* @__PURE__ */ new Map()]) => {\n if (prevConnections.value && prevConnections.value !== currentConnections) {\n handleConnectionChange(prevConnections.value, currentConnections, onDisconnect);\n handleConnectionChange(currentConnections, prevConnections.value, onConnect);\n }\n prevConnections.value = currentConnections;\n },\n { immediate: true }\n );\n return computed(() => {\n if (!connections.value) {\n return [];\n }\n return Array.from(connections.value.values());\n });\n}\nfunction useNodesData(_nodeIds) {\n const { findNode } = useVueFlow();\n return computed({\n get() {\n const nodeIds = toValue$1(_nodeIds);\n if (!Array.isArray(nodeIds)) {\n const node = findNode(nodeIds);\n if (node) {\n return {\n id: node.id,\n type: node.type,\n data: node.data ?? null\n };\n }\n return null;\n }\n const data = [];\n for (const nodeId of nodeIds) {\n const node = findNode(nodeId);\n if (node) {\n data.push({\n id: node.id,\n type: node.type,\n data: node.data ?? null\n });\n }\n }\n return data;\n },\n set() {\n warn(\"You are trying to set node data via useNodesData. This is not supported.\");\n }\n });\n}\nfunction useEdgesData(_edgeIds) {\n const { findEdge } = useVueFlow();\n return computed({\n get() {\n const edgeIds = toValue$1(_edgeIds);\n if (!Array.isArray(edgeIds)) {\n const edge = findEdge(edgeIds);\n if (edge) {\n return {\n id: edge.id,\n type: edge.type,\n data: edge.data ?? null\n };\n }\n return null;\n }\n const data = [];\n for (const edgeId of edgeIds) {\n const edge = findEdge(edgeId);\n if (edge) {\n data.push({\n id: edge.id,\n type: edge.type,\n data: edge.data ?? null\n });\n }\n }\n return data;\n },\n set() {\n warn(\"You are trying to set edge data via useEdgesData. This is not supported.\");\n }\n });\n}\nexport {\n _sfc_main$d as BaseEdge,\n BezierEdge$1 as BezierEdge,\n ConnectionLineType,\n ConnectionMode,\n _sfc_main$3 as EdgeLabelRenderer,\n _sfc_main$e as EdgeText,\n ErrorCode,\n _sfc_main$f as Handle,\n MarkerType,\n NodeId as NodeIdInjection,\n PanOnScrollMode,\n _sfc_main as Panel,\n PanelPosition,\n Position,\n SelectionMode,\n SimpleBezierEdge$1 as SimpleBezierEdge,\n SmoothStepEdge$1 as SmoothStepEdge,\n StepEdge$1 as StepEdge,\n StraightEdge$1 as StraightEdge,\n _sfc_main$1 as VueFlow,\n VueFlowError,\n VueFlow as VueFlowInjection,\n addEdge,\n applyChanges,\n applyEdgeChanges,\n applyNodeChanges,\n clamp,\n connectionExists,\n defaultEdgeTypes,\n defaultNodeTypes,\n getBezierEdgeCenter,\n getBezierPath,\n getBoundsofRects,\n getConnectedEdges,\n getIncomers,\n getMarkerId,\n getNodesInside,\n getOutgoers,\n getRectOfNodes,\n getSimpleBezierPath,\n getSimpleEdgeCenter,\n getSmoothStepPath,\n getStraightPath,\n getTransformForBounds,\n rendererPointToPoint as graphPosToZoomedPos,\n isEdge,\n isErrorOfType,\n isGraphEdge,\n isGraphNode,\n isNode,\n pointToRendererPoint,\n rendererPointToPoint,\n updateEdge,\n useConnection,\n useEdge,\n useEdgesData,\n useGetPointerPosition,\n useHandle,\n useHandleConnections,\n useNode,\n useNodeId,\n useNodesData,\n useNodesInitialized,\n useVueFlow,\n useZoomPanHelper\n};\n","<template>\n\t<path :id=\"id\" :style=\"style\" class=\"vue-flow__edge-path\" :d=\"path[0]\" :marker-end=\"markerEnd\" />\n\n\t<EdgeLabelRenderer>\n\t\t<div\n\t\t\t:style=\"{\n\t\t\t\tpointerEvents: 'all',\n\t\t\t\tposition: 'absolute',\n\t\t\t\ttransform: `translate(-50%, -50%) translate(${path[1]}px,${path[2]}px)`,\n\t\t\t}\"\n\t\t\tclass=\"nodrag nopan editable-edge-label\"\n\t\t\t@click=\"labelOnClick()\">\n\t\t\t<div class=\"vue-flow__edge-label\">{{ props.label }}</div>\n\t\t\t<div v-if=\"showInput\" class=\"label-input-wrapper\">\n\t\t\t\t<input\n\t\t\t\t\tref=\"labelInput\"\n\t\t\t\t\tclass=\"label-input\"\n\t\t\t\t\tv-model=\"newLabel\"\n\t\t\t\t\t@blur=\"showInput = false\"\n\t\t\t\t\t@keypress.enter=\"submitNewLabel\" />\n\t\t\t</div>\n\t\t</div>\n\t</EdgeLabelRenderer>\n</template>\n\n<script setup lang=\"ts\">\nimport { type EdgeProps, EdgeLabelRenderer, getBezierPath /* useVueFlow */ } from '@vue-flow/core'\nimport { computed, ref, nextTick } from 'vue'\n\nconst props = defineProps<EdgeProps>()\nconst emit = defineEmits(['change'])\n\n// TODO: Implement edge removal\n// const { removeEdges } = useVueFlow()\n\nconst labelInput = ref<HTMLElement>()\nconst newLabel = ref<EdgeProps['label']>('')\nconst showInput = ref(false)\nlet lastClick = 0\n\nconst labelOnClick = async () => {\n\tlet now = Date.now()\n\tif (now - lastClick < 500 && !showInput.value) {\n\t\tawait showLabelInput()\n\t}\n\tlastClick = now\n}\n\nconst showLabelInput = async () => {\n\tnewLabel.value = props.label\n\tshowInput.value = true\n\tawait nextTick()\n\tlabelInput.value.focus()\n}\n\nconst submitNewLabel = () => {\n\tshowInput.value = false\n\temit('change', newLabel.value)\n}\n\nconst path = computed(() => getBezierPath(props))\n</script>\n\n<script lang=\"ts\">\nexport default {\n\tinheritAttrs: false,\n}\n</script>\n\n<style>\n.editable-edge-label {\n\tbackground-color: white;\n\tposition: relative;\n\tfont-size: 12px;\n}\n\n.label-input-wrapper {\n\tposition: absolute;\n\ttop: 0;\n\tleft: 0;\n\tright: 0;\n\tbottom: 0;\n\tdisplay: flex;\n\talign-items: center;\n\tjustify-content: center;\n}\n\n.label-input {\n\ttext-align: center;\n}\n</style>\n","<template>\n\t<div @click=\"nodeOnClick()\">\n\t\t<div>{{ props.label }}</div>\n\t\t<div v-if=\"showInput\" class=\"label-input-wrapper\">\n\t\t\t<input\n\t\t\t\tref=\"labelInput\"\n\t\t\t\tclass=\"label-input\"\n\t\t\t\tv-model=\"newLabel\"\n\t\t\t\t@blur=\"showInput = false\"\n\t\t\t\t@keypress.enter=\"submitNewLabel\" />\n\t\t</div>\n\t\t<Handle v-if=\"props.data.hasInput\" id=\"a\" type=\"target\" :position=\"props.targetPosition\" />\n\t\t<Handle v-if=\"props.data.hasOutput\" id=\"b\" type=\"source\" :position=\"props.sourcePosition\" />\n\t</div>\n</template>\n\n<script setup lang=\"ts\">\nimport { NodeProps, Handle } from '@vue-flow/core'\nimport { ref, nextTick } from 'vue'\n\nconst props = defineProps<NodeProps>()\nconst emit = defineEmits(['change'])\n\nconst labelInput = ref<HTMLInputElement>()\nconst newLabel = ref<NodeProps['label']>('')\nconst showInput = ref(false)\nlet lastClick = 0\n\nconst nodeOnClick = async () => {\n\tlet now = Date.now()\n\tif (now - lastClick < 500 && !showInput.value) {\n\t\tawait showLabelInput()\n\t}\n\tlastClick = now\n}\n\nconst showLabelInput = async () => {\n\tnewLabel.value = props.label\n\tshowInput.value = true\n\tawait nextTick()\n\tlabelInput.value.focus()\n}\n\nconst submitNewLabel = () => {\n\tshowInput.value = false\n\temit('change', newLabel.value)\n}\n</script>\n\n<style>\n.label-input-wrapper {\n\tposition: absolute;\n\ttop: 0;\n\tleft: 0;\n\tright: 0;\n\tbottom: 0;\n\tdisplay: flex;\n\talign-items: center;\n\tjustify-content: center;\n}\n\n.label-input {\n\ttext-align: center;\n}\n</style>\n","<template>\n\t<div class=\"node-editor-wrapper\" :class=\"nodeContainerClass\" @mouseover=\"hover = true\" @mouseleave=\"hover = false\">\n\t\t<div class=\"chart-controls\">\n\t\t\t<div class=\"chart-controls-left\">\n\t\t\t\t<div><b>Selected Node:</b> {{ activeElementKey ? activeElementKey : 'none' }}</div>\n\t\t\t</div>\n\t\t\t<div class=\"chart-controls-right\">\n\t\t\t\t<div>\n\t\t\t\t\t<button class=\"button-default\" @click=\"addNode\">Add Node</button>\n\t\t\t\t</div>\n\t\t\t\t<div>\n\t\t\t\t\t<button class=\"button-default\" @click=\"fitView\">Center</button>\n\t\t\t\t</div>\n\t\t\t\t<div v-if=\"activeElementIndex > -1\">\n\t\t\t\t\t<button class=\"button-default\" @click=\"shiftInput\">Shift Input Position</button>\n\t\t\t\t</div>\n\t\t\t\t<div v-if=\"activeElementIndex > -1\">\n\t\t\t\t\t<button class=\"button-default\" @click=\"shiftOutput\">Shift Output Position</button>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</div>\n\n\t\t<VueFlow\n\t\t\tv-if=\"vueFlowElements && vueFlowElements.length\"\n\t\t\tclass=\"nowheel\"\n\t\t\t:prevent-scrolling=\"true\"\n\t\t\t:zoom-on-scroll=\"false\"\n\t\t\t:fit-view-on-init=\"true\"\n\t\t\tv-model=\"vueFlowElements\"\n\t\t\t@wheel.prevent=\"onWheel\">\n\t\t\t<template #node-editable=\"props\">\n\t\t\t\t<EditableNode v-bind=\"props\" @change=\"labelChanged($event, props.id)\" />\n\t\t\t</template>\n\t\t\t<template #edge-editable=\"props\">\n\t\t\t\t<EditableEdge v-bind=\"props\" @change=\"labelChanged($event, props.id)\" />\n\t\t\t</template>\n\t\t</VueFlow>\n\t</div>\n</template>\n\n<script setup lang=\"ts\">\nimport { type VueFlowStore, Position, VueFlow, useVueFlow, Node } from '@vue-flow/core'\nimport { type HTMLAttributes, ref, computed, defineEmits, onBeforeUnmount, onMounted } from 'vue'\n\nimport EditableEdge from '@/components/EditableEdge.vue'\nimport EditableNode from '@/components/EditableNode.vue'\nimport type { FlowElements } from '@/types'\n\nconst props = defineProps<{\n\tmodelValue: FlowElements\n\tnodeContainerClass?: HTMLAttributes['class']\n}>()\nconst emit = defineEmits(['update:modelValue'])\n\nconst hover = ref(false)\nconst vueFlowElements = ref<FlowElements>([])\nconst vueFlowInstance = ref<Partial<VueFlowStore>>()\n\nconst activeElementKey = ref('')\nconst activeElementIndex = computed(() => {\n\tvueFlowElements.value.forEach((element, index) => {\n\t\tif (element.id === activeElementKey.value) {\n\t\t\treturn index\n\t\t}\n\t})\n\n\treturn -1\n})\n\nconst elements = computed({\n\tget: () => {\n\t\tconst _elements = props.modelValue\n\n\t\t// Add data to each element\n\t\tfor (const _element of _elements) {\n\t\t\t_element.data = {}\n\t\t\tif (_element.type === 'input') {\n\t\t\t\t_element.data.hasInput = false\n\t\t\t\t_element.data.hasOutput = true\n\t\t\t} else if (_element.type === 'output') {\n\t\t\t\t_element.data.hasInput = true\n\t\t\t\t_element.data.hasOutput = false\n\t\t\t} else {\n\t\t\t\t_element.data.hasInput = true\n\t\t\t\t_element.data.hasOutput = true\n\t\t\t}\n\t\t\t_element.class = 'vue-flow__node-default'\n\t\t\t_element.type = 'editable'\n\t\t}\n\n\t\t// Add click event to each element\n\t\tfor (const _element of _elements) {\n\t\t\t_element.events = {\n\t\t\t\tclick: () => {\n\t\t\t\t\tactiveElementKey.value = _element.id\n\t\t\t\t},\n\t\t\t}\n\t\t}\n\n\t\treturn _elements\n\t},\n\tset: newValue => {\n\t\temit('update:modelValue', JSON.parse(JSON.stringify(newValue)))\n\t},\n})\n\nonMounted(() => {\n\tdocument.removeEventListener('keypress', handleKeypress)\n\tdocument.addEventListener('keypress', handleKeypress)\n})\n\nonBeforeUnmount(() => {\n\tdocument.removeEventListener('keypress', handleKeypress)\n})\n\nconst { onPaneReady } = useVueFlow()\nonPaneReady(instance => {\n\tvueFlowInstance.value = instance\n})\n\nvueFlowElements.value = elements.value\n\n// Methods\nconst shiftTerminal = (currentTerminal: Position) => {\n\treturn {\n\t\t[Position.Top]: Position.Right,\n\t\t[Position.Right]: Position.Bottom,\n\t\t[Position.Bottom]: Position.Left,\n\t\t[Position.Left]: Position.Top,\n\t}[currentTerminal]\n}\n\nconst shiftOutput = () => {\n\tif (activeElementIndex.value > -1) {\n\t\tconst activeNode = vueFlowElements.value[activeElementIndex.value] as Node\n\t\tactiveNode.sourcePosition = shiftTerminal(activeNode.sourcePosition)\n\t}\n}\n\nconst shiftInput = () => {\n\tif (activeElementIndex.value > -1) {\n\t\tconst activeNode = vueFlowElements.value[activeElementIndex.value] as Node\n\t\tactiveNode.targetPosition = shiftTerminal(activeNode.targetPosition)\n\t}\n}\n\nconst onWheel = (event: WheelEvent) => {\n\twindow.scrollBy(0, event.deltaY)\n}\n\nconst handleKeypress = (event: KeyboardEvent) => {\n\tif (hover.value && event.ctrlKey == true) {\n\t\tif (event.key == '+' || event.key == '=') {\n\t\t\tvoid vueFlowInstance.value.zoomIn()\n\t\t}\n\t\tif (event.key == '-') {\n\t\t\tvoid vueFlowInstance.value.zoomOut()\n\t\t}\n\t}\n}\n\nconst fitView = async () => {\n\tawait vueFlowInstance.value.fitView()\n}\n\nconst addNode = () => {\n\tlet makeEdge = false\n\tlet newNodePosition = { x: Math.random() * 200, y: Math.random() * 200 }\n\tif (activeElementIndex.value > -1) {\n\t\tconst activeNode = vueFlowElements.value[activeElementIndex.value]\n\t\tif (activeNode.data.hasOutput) {\n\t\t\tnewNodePosition = { x: (activeNode as Node).position.x + 200, y: (activeNode as Node).position.y + 50 }\n\t\t\tmakeEdge = true\n\t\t}\n\t}\n\n\tconst id = vueFlowElements.value.length\n\tconst nodeId = `node-${id}`\n\tvueFlowElements.value.push({\n\t\tid: nodeId,\n\t\tlabel: 'Node ' + id,\n\t\tsourcePosition: Position.Right,\n\t\ttargetPosition: Position.Left,\n\t\tclass: 'vue-flow__node-default',\n\t\ttype: 'editable',\n\t\tdata: {\n\t\t\thasInput: true,\n\t\t\thasOutput: true,\n\t\t},\n\t\tevents: {\n\t\t\tclick: () => {\n\t\t\t\tactiveElementKey.value = nodeId\n\t\t\t},\n\t\t},\n\t\t// position: { x: Math.random() * vueFlowInstance.value.dimensions.width, y: Math.random() * vueFlowInstance.value.dimensions.height }\n\t\tposition: newNodePosition,\n\t})\n\n\tif (makeEdge) {\n\t\tlet edgeId = `edge-${id + 1}`\n\t\tvueFlowElements.value.push({\n\t\t\tid: edgeId,\n\t\t\tsource: activeElementKey.value,\n\t\t\ttarget: nodeId,\n\t\t\ttype: 'editable',\n\t\t\tlabel: `EDGE ${id + 1}`,\n\t\t\tanimated: true,\n\t\t\tevents: {\n\t\t\t\tclick: () => {\n\t\t\t\t\tactiveElementKey.value = edgeId\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t}\n}\n\nconst labelChanged = (e, id) => {\n\tfor (let j = 0; j < vueFlowElements.value.length; j++) {\n\t\tif (vueFlowElements.value[j].id == id) {\n\t\t\tvueFlowElements.value[j].label = e\n\t\t\tbreak\n\t\t}\n\t}\n}\n</script>\n\n<style>\n@import '@vue-flow/core/dist/style.css';\n@import '@vue-flow/core/dist/theme-default.css';\n\n.chart-controls-left,\n.chart-controls-right {\n\theight: 1.8em;\n\tdisplay: flex;\n\tflex-direction: row;\n\talign-items: center;\n\tpadding-top: 0.2em;\n}\n\n.chart-controls-right div {\n\tmargin-left: 5px;\n}\n\n.chart-controls {\n\tpadding-left: 20px;\n\tpadding-right: 20px;\n\theight: 1.8em;\n\tborder-bottom: 1px solid #ccc;\n\tdisplay: flex;\n\tflex-direction: row;\n\tjustify-content: space-between;\n}\n\n.chart-controls div {\n\tmargin-bottom: 5px;\n}\n\n.defaultContainerClass {\n\theight: 90vh;\n\twidth: 100%;\n\tborder: 1px solid #ccc;\n}\n\n.default-input-node.vue-flow__node-input,\n.default-output-node.vue-flow__node-output {\n\tborder-color: #000;\n}\n\n.default-input-node.vue-flow__node-input .vue-flow__handle,\n.default-output-node.vue-flow__node-output .vue-flow__handle {\n\tbackground-color: #000;\n}\n\n.default-input-node.vue-flow__node-input.selected,\n.default-output-node.vue-flow__node-output.selected {\n\tbox-shadow: 0 0 0 0.5px #000;\n}\n\nbutton.button-default {\n\tbackground-color: #ffffff;\n\tpadding: 1px 12px;\n\tborder-radius: 3px;\n\tborder: 1px solid #ccc;\n\tcursor: pointer;\n\twhite-space: nowrap;\n}\n\nbutton.button-default:hover {\n\tbackground-color: #f2f2f2;\n}\n\n.vue-flow {\n\tbackground-size: 40px 40px;\n\tbackground-image: linear-gradient(to right, #ccc 1px, transparent 1px),\n\t\tlinear-gradient(to bottom, #ccc 1px, transparent 1px);\n}\n\ninput.label-editor {\n\tposition: absolute;\n}\n\n.node-editor-wrapper {\n\tposition: relative;\n}\n</style>\n","<template>\n\t<div>\n\t\t<NodeEditor v-model=\"elements\" :node-container-class=\"nodeContainerClass\" />\n\t</div>\n</template>\n\n<script setup lang=\"ts\">\nimport { type Node, Position } from '@vue-flow/core'\nimport { type HTMLAttributes, computed } from 'vue'\n\nimport NodeEditor from '@/components/NodeEditor.vue'\nimport type { EditorStates, FlowElement, FlowElements, Layout } from '@/types'\n\nconst states = defineModel<EditorStates>()\nconst props = defineProps<{\n\tlayout: Layout\n\tnodeContainerClass?: HTMLAttributes['class']\n}>()\nconst emit = defineEmits(['update:modelValue'])\n\nconst elements = computed<FlowElements>({\n\tget: () => {\n\t\tconst hasInputs = {}\n\t\tconst stateElements: FlowElements = []\n\t\tconst stateHash: Record<string, FlowElement> = {}\n\n\t\tlet index = 0\n\t\tfor (const [key, value] of Object.entries(states.value)) {\n\t\t\tconst el: Node = {\n\t\t\t\tid: key,\n\t\t\t\tlabel: key,\n\t\t\t\tposition: props.layout[key]?.position || { x: 200 * index, y: 100 },\n\t\t\t\ttargetPosition: props.layout[key]?.targetPosition || Position.Left,\n\t\t\t\tsourcePosition: props.layout[key]?.sourcePosition || Position.Right,\n\t\t\t}\n\n\t\t\tif (value.type === 'final') {\n\t\t\t\tel.type = 'output'\n\t\t\t\tel.class = 'default-output-node'\n\t\t\t}\n\n\t\t\tstateHash[key] = el\n\n\t\t\tif (value.on) {\n\t\t\t\tfor (const [edgeKey, edgeValue] of Object.entries(value.on)) {\n\t\t\t\t\tif (Array.isArray(edgeValue)) {\n\t\t\t\t\t\tfor (const edge of edgeValue) {\n\t\t\t\t\t\t\t// TODO: handle typescript errors for both types of states\n\t\t\t\t\t\t\t// eslint-disable-next-line @typescript-eslint/no-unsafe-call, @typescript-eslint/no-unsafe-member-access\n\t\t\t\t\t\t\tconst edgeJson = edge.toJSON()\n\t\t\t\t\t\t\t// eslint-disable-next-line @typescript-eslint/no-unsafe-call, @typescript-eslint/no-unsafe-member-access\n\t\t\t\t\t\t\tconst target = edgeJson.target.toString()\n\t\t\t\t\t\t\tstateElements.push({\n\t\t\t\t\t\t\t\tid: `${key}-${edgeKey}`,\n\t\t\t\t\t\t\t\ttarget: target,\n\t\t\t\t\t\t\t\tsource: key,\n\t\t\t\t\t\t\t\tlabel: edgeKey,\n\t\t\t\t\t\t\t\tanimated: true,\n\t\t\t\t\t\t\t})\n\n\t\t\t\t\t\t\t// eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n\t\t\t\t\t\t\thasInputs[target] = true\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tindex++\n\t\t}\n\n\t\tfor (const [key, value] of Object.entries(stateHash)) {\n\t\t\tif (!hasInputs[key]) {\n\t\t\t\tvalue['type'] = 'input'\n\t\t\t\tvalue['class'] = 'default-input-node'\n\t\t\t}\n\t\t\tstateElements.push(value)\n\t\t}\n\n\t\treturn stateElements\n\t},\n\tset: newValue => {\n\t\t// update modelValue when elements change\n\t\tonElementsChange(newValue)\n\n\t\t// TODO: emit('update:modelValue', props.modelValue)\n\t},\n})\n\nconst onElementsChange = (elements: FlowElements) => {\n\tconst edges: Record<string, Record<string, any>> = {}\n\tconst idToLabel: Record<string, string> = {}\n\tconst states: EditorStates = {}\n\n\tfor (const el of elements) {\n\t\tconst label = el.label as string\n\n\t\tif (el.type === 'input') {\n\t\t\t// it's an input node\n\t\t\tstates[label] = {\n\t\t\t\ton: {},\n\t\t\t}\n\t\t} else if (el.type === 'output') {\n\t\t\t// it's an output node\n\t\t\tstates[label] = {\n\t\t\t\ttype: 'final',\n\t\t\t}\n\t\t} /* else if (el.source && el.target) {\n\t\t\t// it's an edge\n\t\t\tedges[el.source] = edges[el.source] || {}\n\t\t\tedges[el.source][label] = {\n\t\t\t\ttarget: el.target,\n\t\t\t}\n\t\t} */ else {\n\t\t\t// it's a state\n\t\t\tstates[label] = {\n\t\t\t\ton: {},\n\t\t\t}\n\t\t}\n\n\t\tidToLabel[el.id] = label\n\t}\n\n\tfor (const [edgeKey, edgeValue] of Object.entries(edges)) {\n\t\t// add edges to states\n\t\tconst label = idToLabel[edgeKey]\n\t\tfor (const [key, value] of Object.entries(edgeValue)) {\n\t\t\tstates[label].on[key] = value\n\t\t}\n\t}\n\n\temit('update:modelValue', states)\n}\n</script>\n","import { App } from 'vue'\n\nimport NodeEditor from '@/components/NodeEditor.vue'\nimport StateEditor from '@/components/StateEditor.vue'\nexport type { EditorStates, FlowElement, FlowElements, Layout } from '@/types'\n\n/**\n * Install all Node Editor components\n * @param app - Vue app instance\n * @public\n */\nfunction install(app: App) {\n\tapp.component('NodeEditor', NodeEditor)\n\tapp.component('StateEditor', StateEditor)\n}\n\nexport { install, NodeEditor, StateEditor }\n"],"names":["tryOnScopeDispose","fn","getCurrentScope","onScopeDispose","toValue","r","unref","isClient","isDef$1","val","toString","isObject","noop$2","createFilterWrapper","filter2","wrapper","args","resolve","reject","bypassFilter","invoke","pausableFilter","extendFilter","isActive","ref","pause","resume","eventFilter","readonly","promiseTimeout","ms","throwOnTimeout","reason","watchWithFilter","source","cb","options","watchOptions","watch","watchPausable","toRefs","objectRef","isRef","toRefs$1","result","key","customRef","v","_a","copy","newObject","createUntil","isNot","toMatch","condition","flush","deep","timeout2","stop","promises","toBe","value","v1","v2","toBeTruthy","toBeNull","toBeUndefined","toBeNaN","toContains","array2","changed","changedTimes","n","count","until","unrefElement","elRef","plain","defaultWindow","useEventListener","target","events","listeners","cleanups","cleanup","register","el","event","listener","options2","stopWatch","optionsClone","createKeyPredicate$1","keyFilter","onKeyStroke","handler","eventName","passive","dedupe","predicate","e","cloneFnJSON","useVModel","props","emit","_b","_c","clone","defaultValue","shouldEmit","vm","getCurrentInstance","_emit","cloneFn","getValue","triggerEmit","initialValue","proxy","isUpdating","nextTick","computed","noop$1","dispatch","i","_","t","Dispatch","parseTypenames$1","typenames","types","name","typename","callback","T","get$1","set$1","type","that","c","xhtml","namespaces","namespace","prefix","creatorInherit","document2","uri","creatorFixed","fullname","creator","none","selector","selector2","selection_select","select2","groups","m","subgroups","j","group","subgroup","node","subnode","Selection$1","array","x","empty","selectorAll","arrayAll","selection_selectAll","parents","matcher","childMatcher","find","childFind","match","childFirst","selection_selectChild","filter","children","childrenFilter","selection_selectChildren","selection_filter","sparse","update","selection_enter","EnterNode","parent","datum2","child","next","constant$3","bindIndex","enter","exit","data","groupLength","dataLength","bindKey","nodeByKeyValue","keyValues","keyValue","datum","selection_data","bind","arraylike","enterGroup","updateGroup","exitGroup","i0","i1","previous","selection_exit","selection_join","onenter","onupdate","onexit","selection_merge","context","selection2","groups0","groups1","m0","m1","merges","group0","group1","merge","selection_order","selection_sort","compare","ascending","compareNode","a","b","sortgroups","sortgroup","selection_call","selection_nodes","selection_node","selection_size","size","selection_empty","selection_each","attrRemove$1","attrRemoveNS$1","attrConstant$1","attrConstantNS$1","attrFunction$1","attrFunctionNS$1","selection_attr","defaultView","styleRemove$1","styleConstant$1","priority","styleFunction$1","selection_style","styleValue","propertyRemove","propertyConstant","propertyFunction","selection_property","classArray","string","classList","ClassList","classedAdd","names","list","classedRemove","classedTrue","classedFalse","classedFunction","selection_classed","textRemove","textConstant$1","textFunction$1","selection_text","htmlRemove","htmlConstant","htmlFunction","selection_html","raise","selection_raise","lower","selection_lower","selection_append","create2","constantNull","selection_insert","before","remove","selection_remove","selection_cloneShallow","selection_cloneDeep","selection_clone","selection_datum","contextListener","parseTypenames","onRemove","on","o","onAdd","selection_on","dispatchEvent","params","window2","dispatchConstant","dispatchFunction","selection_dispatch","selection_iterator","root","selection","selection_selection","select","sourceEvent","sourceEvent2","pointer","svg","point","rect","nonpassive","nonpassivecapture","nopropagation$1","noevent$1","dragDisable","view","root2","yesdrag","noclick","constant$2","DragEvent","subject","identifier","active","y","dx","dy","dispatch2","defaultFilter$1","defaultContainer","defaultSubject","d","defaultTouchable$1","drag","container","touchable","gestures","mousedownx","mousedowny","mousemoving","touchending","clickDistance2","drag2","mousedowned","touchstarted","touchmoved","touchended","gesture","beforestart","mousemoved","mouseupped","touches","container2","touch","p","s","event2","touch2","p0","define","constructor","factory","prototype","extend","definition","Color","darker","brighter","reI","reN","reP","reHex","reRgbInteger","reRgbPercent","reRgbaInteger","reRgbaPercent","reHslPercent","reHslaPercent","named","color","channels","color_formatHex","color_formatHex8","color_formatHsl","color_formatRgb","hslConvert","format","l","rgbn","Rgb","rgba","hsla","g","rgbConvert","rgb","opacity","k","clampi","clampa","rgb_formatHex","rgb_formatHex8","rgb_formatRgb","hex","h2","Hsl","min","max","hsl","m2","hsl2rgb","clamph","clampt","constant$1","linear","exponential","gamma","nogamma","interpolateRgb","rgbGamma","color2","rgb$1","start2","end","interpolateNumber","reA","reB","zero","one","interpolateString","bi","am","bm","bs","q","i2","degrees","identity$1","decompose","f","scaleX","scaleY","skewX","svgNode","parseCss","parseSvg","interpolateTransform","parse","pxComma","pxParen","degParen","pop","translate","xa","ya","xb","yb","rotate","scale","interpolateTransformCss","interpolateTransformSvg","epsilon2","cosh","sinh","tanh","interpolateZoom","zoomRho","rho","rho2","rho4","zoom2","p1","ux0","uy0","w0","ux1","uy1","w1","d2","d1","b0","b1","r0","r1","coshr0","u","_1","_2","_4","frame","timeout$1","interval","pokeDelay","taskHead","taskTail","clockLast","clockNow","clockSkew","clock","setFrame","now","clearNow","Timer","timer","delay","time","sleep","timerFlush","wake","nap","poke","now2","t0","t1","t2","timeout","elapsed","emptyOn","emptyTween","CREATED","SCHEDULED","STARTING","STARTED","RUNNING","ENDING","ENDED","schedule","id2","index","timing","schedules","create","init","schedule2","get","set","self","tween","tick","interrupt","empty2","selection_interrupt","tweenRemove","tween0","tween1","tweenFunction","transition_tween","tweenValue","transition2","interpolate","attrRemove","attrRemoveNS","attrConstant","interpolate2","value1","string00","string1","interpolate0","string0","attrConstantNS","attrFunction","string10","attrFunctionNS","transition_attr","attrInterpolate","attrInterpolateNS","attrTweenNS","attrTween","transition_attrTween","delayFunction","delayConstant","transition_delay","durationFunction","durationConstant","transition_duration","easeConstant","transition_ease","easeVarying","transition_easeVarying","transition_filter","Transition","transition_merge","start","onFunction","on0","on1","sit","transition_on","removeFunction","transition_remove","transition_select","transition_selectAll","children2","inherit2","Selection","transition_selection","styleNull","styleRemove","styleConstant","styleFunction","styleMaybeRemove","listener0","remove2","transition_style","styleInterpolate","styleTween","transition_styleTween","textConstant","textFunction","transition_text","textInterpolate","textTween","transition_textTween","transition_transition","id0","id1","newId","transition_end","cancel","id","selection_prototype","cubicInOut","defaultTiming","inherit","selection_transition","constant","ZoomEvent","transform","Transform","location","identity","nopropagation","noevent","defaultFilter","defaultExtent","defaultTransform","defaultWheelDelta","defaultTouchable","defaultConstrain","extent","translateExtent","dx0","dx1","dy0","dy1","zoom","constrain","wheelDelta","scaleExtent","duration","touchstarting","touchfirst","touchDelay","wheelDelay","tapDistance","wheeled","dblclicked","collection","k0","k1","centroid","extent2","w","clean","Gesture","wheelidled","currentTarget","x0","y0","started","l0","l1","dp","dl","Position","Position2","SelectionMode","SelectionMode2","ConnectionLineType","ConnectionLineType2","ConnectionMode","ConnectionMode2","MarkerType","MarkerType2","PanOnScrollMode","PanOnScrollMode2","useWindow","isInputDOMNode","hasAttribute","closest","wasModifierPressed","isKeyMatch","pressedKey","keyToMatch","pressedKeys","isKeyUp","keyCombination","createKeyPredicate","keyOrCode","useKeyOrCode","code","keysToWatch","useKeyPress","onChange","isPressed","toValue$1","modifierPressed","currentFilter","createKeyFilterFn","isKeyPressed","wasPressed","nextKeyFilter","previousKeyFilter","reset","keyFilter2","ARIA_NODE_DESC_KEY","ARIA_EDGE_DESC_KEY","ARIA_LIVE_MESSAGE","elementSelectionKeys","arrowKeyDiffs","useDrag","vueFlowRef","snapToGrid","snapGrid","noDragClassName","nodes","nodeExtent","nodeDragThreshold","viewport","autoPanOnNodeDrag","nodesDraggable","panBy","findNode","multiSelectionActive","nodesSelectionActive","selectNodesOnDrag","removeSelectedElements","addSelectedNodes","updateNodePositions","emits","useVueFlow","onStart","onDrag","onStop","disabled","selectable","dragHandle","dragging","dragItems","dragHandler","containerBounds","lastPos","mousePosition","dragEvent","dragStarted","autoPanId","autoPanStarted","getPointerPosition","useGetPointerPosition","updateNodes","hasChange","nextPosition","computedPosition","calcNextPosition","currentNode","nodes2","getEventHandlerParams","autoPan","xMovement","yMovement","calcAutoPan","nextPos","startDrag","nodeEl","handleNodeClick","pointerPos","getDragItems","eventStart","getEventPosition","eventDrag","eventEnd","isDisabled","onCleanup","unrefDragHandle","hasSelector","VueFlow","NodeId","NodeRef","EdgeId","EdgeRef","Slots","createEdgeHooks","createExtendedEventHook","useEdgeHooks","edge","edgeHooks","hooks","alwaysValid","useHandle","handleId","nodeId","isValidConnection","edgeUpdaterType","onEdgeUpdate","onEdgeUpdateEnd","connectionMode","connectionRadius","connectOnClick","connectionClickStartHandle","nodesConnectable","autoPanOnConnect","startConnection","updateConnection","endConnection","edges","isValidConnectionProp","connection","isValid","handleDomNode","handlePointerDown","isTarget","isMouseTriggered","isMouseEvent","doc","getHostForElement","onPointerMove","connectionPosition","handle","validHandleResult","getClosestHandle","pointToRendererPoint","handleLookup","handle2","isValidHandle","isValidConnectionHandler","closestHandle","rendererPointToPoint","getConnectionStatus","resetRecentHandle","prevActiveHandle","onPointerUp","clickedHandle","handleType","getHandleType","getHandleLookup","handleClick","connection2","isValid2","isOwnHandle","useNodeId","inject","useNode","VueFlowError","ErrorCode","getConnectedEdges","createNodeHooks","useNodeHooks","nodeHooks","useUpdateNodePositions","getSelectedNodes","positionDiff","isShiftPressed","xVelo","yVelo","factor","positionDiffX","positionDiffY","nodeUpdates","DEFAULT_PADDING","noop","warn","initialViewportHelper","position","useViewportHelper","state","transition","transformViewport","zoom22","clampedX","clampedY","clampPosition","nextTransform","zoomLevel","nodesToFit","bounds","getRectOfNodes","getTransformForBounds","nextZoom","centerX","centerY","domX","domY","correctedPosition","onEnd","useWatchProps","models","store","scope","effectScope","watchModelValue","pauseModel","pauseStore","immediateStore","elements","watchNodesValue","watchEdgesValue","watchMaxZoom","isDef","watchMinZoom","watchTranslateExtent","watchNodeExtent","watchApplyDefault","watchAutoConnect","autoConnector","autoConnectEnabled","watchRest","skip","propKey","propValue","toRef","storeRef","nextValue","nodeToRect","getOverlappingArea","rectA","rectB","xOverlap","yOverlap","getDimensions","clamp","element","isEdge","isNode","isGraphNode","isNumeric","isRect","obj","parseNode","existingNode","parentNode","initialState","markRaw","parseEdge","existingEdge","defaultEdgeOptions","getConnectedElements","nodeOrId","dir","connectedIds","origin","getOutgoers","nodeOrId2","getIncomers","getEdgeId","sourceHandle","targetHandle","connectionExists","tx","ty","tScale","snapX","snapY","getBoundsOfBoxes","box1","box2","rectToBox","width","height","boxToRect","x2","y2","box","getNodesInside","partially","excludeNonSelectableNodes","paneRect","dimensions","nodeRect","overlappingArea","notInitialized","partiallyVisible","area","nodesOrId","nodeIds","minZoom","maxZoom","padding","offset","xZoom","yZoom","clampedZoom","boundsCenterX","boundsCenterY","getXYZPos","parentPos","isParentSelected","getMarkerId","marker","vueFlowId","calcAutoPanVelocity","pos","handleParentExpand","updateItem","extendWidth","extendHeight","parentStyles","currWidth","xDiff","yDiff","styleFunc","applyChanges","changes","addRemoveChanges","change","elementIds","currentChange","createSelectionChange","selected","createAdditionChange","item","createNodeRemoveChange","createEdgeRemoveChange","getSelectionChanges","selectedIds","res","willBeSelected","defaultHandler","fns","hasDefaultHandler","hasListeners","off","offFn","param","current","mousePos","extendedDragItems","dragItem","getExtentPadding","getParentExtent","currentExtent","top","right","bottom","left","getExtent","triggerError","parentExtent","parentX","parentY","clampNodeExtent","clampedPos","getHandlePosition","getHandle","getEdgePositions","sourceNode","sourcePosition","targetNode","targetPosition","sourceHandlePos","targetHandlePos","isEdgeVisible","sourcePos","targetPos","sourceWidth","sourceHeight","targetWidth","targetHeight","edgeBox","viewBox","getEdgeZIndex","elevateEdgesOnSelect","hasZIndex","z","ErrorCode2","messages","parentId","evtX","evtY","isMacOs","defaultValidHandleResult","getHandles","handleBounds","currentHandle","handles","validator","handleBelow","handleNodeId","closestHandles","minDistance","distance2","hasValidHandle","hasTargetHandle","fromNodeId","fromHandleId","fromType","elementBelow","handleToCheck","connectable","connectableEnd","sourceHandles","targetHandles","isInsideConnectionRadius","isHandleValid","connectionStatus","productionEnvs","message","isDev","getHandleBounds","nodeElement","nodeBounds","removeSelectedNodes","unselect","addEdgeToStore","edgeParams","updateEdgeAction","newConnection","findEdge","shouldReplaceId","foundEdge","rest","newEdge","createGraphNodes","parentNodes","nextNodes","parsed","updateConnectionLookup","connectionLookup","edgeId","sourceKey","targetKey","prevSource","prevTarget","createGraphEdges","nextEdges","onError","validEdges","edgeOrConnection","createHooks","err","useHooks","onBeforeMount","useState","storeOptionsToSkip","useActions","nodeLookup","edgeLookup","viewportHelper","updateNodeInternals","ids","updateIds","getIncomers$1","getOutgoers$1","getConnectedEdges$1","updateNodeDimensions","updates","viewportNode","style","nodeSelectionHandler","changedNodes","changedEdges","selectionChanges","edgeSelectionHandler","edgeIds","elementSelectionHandler","addSelectedEdges","addSelectedElements","removeSelectedEdges","changes2","curr","selectionChange","setMinZoom","setMaxZoom","setTranslateExtent","setNodeExtent","setInteractive","isInteractive","setNodes","setEdges","setElements","nextElements","addNodes","graphNodes","addEdges","removeNodes","removeConnectedEdges","removeChildren","nodesToRemove","nodeChanges","edgeChanges","createEdgeRemovalChanges","connectedEdges","createChildrenRemovalChanges","currNode","removeEdges","edgesToRemove","currEdge","updateEdge2","oldEdge","updateEdgeData","dataUpdate","nextData","applyNodeChanges2","applyEdgeChanges2","updateNode","nodeUpdate","nextNode","updateNodeData","startHandle","isClick","status","getNodeRect","nodeOrRect","isRectObj","getIntersectingNodes","isRect2","intersections","currNodeRect","isNodeIntersecting","delta","d3Zoom","d3Selection","constrainedTransform","transformChanged","setState","opts","exclude","setSkippedOptions","option","transitionOpts","__","___","____","_____","______","_______","_________","resetState","updatedTransform","bbox","_hoisted_1$9","__default__$f","_sfc_main$f","defineComponent","__props","__expose","createPropsRestProxy","connectionStartHandle","connectionEndHandle","noPanClassName","isConnectableStart","isConnectableEnd","isConnecting","_d","_e","_f","isClickConnecting","isConnectable","existingBounds","nextBounds","onUnmounted","onPointerDown","onClick","_ctx","_cache","openBlock","createElementBlock","normalizeClass","renderSlot","DefaultNode","_label","isValidTargetPos","isValidSourcePos","label","h","DefaultNode$1","OutputNode","OutputNode$1","InputNode","InputNode$1","_hoisted_1$8","_hoisted_2$2","_hoisted_3$1","__default__$e","_sfc_main$e","onMounted","getBox","nextBox","normalizeStyle","createCommentVNode","createElementVNode","mergeProps","createBlock","resolveDynamicComponent","Fragment","createTextVNode","toDisplayString","_hoisted_1$7","_hoisted_2$1","__default__$d","_sfc_main$d","pathEl","interactionEl","labelEl","attrs","useAttrs","getSimpleEdgeCenter","sourceX","sourceY","targetX","targetY","xOffset","yOffset","getBezierEdgeCenter","sourceControlX","sourceControlY","targetControlX","targetControlY","offsetX","offsetY","calculateControlOffset","curvature","getControlWithCurvature","x1","y1","ctX","ctY","getBezierPath","bezierPathParams","labelX","labelY","getControl","getSimpleBezierPath","simpleBezierPathParams","handleDirections","getDirection","distance","getPoints","center","sourceDir","targetDir","sourceGapped","targetGapped","dirAccessor","currDir","points","sourceGapOffset","targetGapOffset","defaultCenterX","defaultCenterY","defaultOffsetX","defaultOffsetY","verticalSplit","horizontalSplit","sourceTarget","targetSource","diff","gapOffset","dirAccessorOpposite","isSameDir","sourceGtTargetOppo","sourceLtTargetOppo","sourceGapPoint","targetGapPoint","maxXDistance","maxYDistance","getBend","bendSize","xDir2","yDir2","xDir","yDir","getSmoothStepPath","smoothStepPathParams","borderRadius","segment","getStraightPath","straightEdgeParams","StraightEdge","path","StraightEdge$1","SmoothStepEdge","SmoothStepEdge$1","StepEdge","StepEdge$1","BezierEdge","BezierEdge$1","SimpleBezierEdge","SimpleBezierEdge$1","defaultNodeTypes","defaultEdgeTypes","useGetters","getNode","getEdge","getEdgeTypes","edgeTypes","keys","getNodeTypes","nodeTypes","getNodes","getEdges","visibleEdges","getElements","selectedNodes","getSelectedEdges","selectedEdges","getSelectedElements","getNodesInitialized","initializedNodes","areNodesInitialized","Storage","vueApp","existingInstance","flow","preloadedState","reactiveState","reactive","hooksOn","nodesMap","edgesMap","getters","actions","idOrOpts","storage","isOptsObj","vueFlow","injection","shouldApplyDefault","nodesChangeHandler","edgesChangeHandler","storedInstance","provide","instance","useResizeHandler","viewportEl","resizeObserver","rendererNode","updateDimensions","onBeforeUnmount","__default__$c","_sfc_main$c","_hoisted_1$6","__default__$b","_sfc_main$b","disableKeyboardA11y","userSelectionActive","updatePositions","selectedNodesBBox","innerStyle","onContextMenu","onKeyDown","getMousePosition","__default__$a","_sfc_main$a","panOnDrag","userSelectionRect","elementsSelectable","selectionMode","deleteKeyCode","multiSelectionKeyCode","prevSelectedNodesCount","prevSelectedEdgesCount","hasActiveSelection","keyPressed","resetUserSelection","onWheel","onMouseDown","onMouseMove","startX","startY","nextUserSelectRect","onMouseUp","onMouseLeave","onMouseEnter","__default__$9","_sfc_main$9","fitViewOnInit","fitViewOnInitDone","isHidden","__default__$8","_sfc_main$8","defaultViewport","zoomActivationKeyCode","selectionKeyCode","panActivationKeyCode","panOnScroll","panOnScrollMode","panOnScrollSpeed","zoomOnDoubleClick","zoomOnPinch","zoomOnScroll","preventScrolling","noWheelClassName","paneDragging","storeD3Zoom","storeD3Selection","storeD3ZoomHandler","viewportRef","isZoomingOrPanning","isPanScrolling","panScrollTimeout","zoomedWithRightMouseButton","mouseButton","prevTransform","panKeyPressed","selectionKeyPressed","zoomKeyPressed","shouldPanOnDrag","shouldPanOnScroll","isSelecting","viewportElement","d3ZoomHandler","flowTransform","eventToFlowTransform","isRightClickPan","viewChanged","zoomScroll","pinchZoom","eventButton","isWrappedWithClass","buttonAllowed","currentZoom","_isMacOs","pinchDelta","deltaNormalize","deltaX","deltaY","nextViewport","invalidEvent","pan","usedButton","prevViewport","eventTransform","className","createVNode","withCtx","_hoisted_1$5","_hoisted_2","_hoisted_3","__default__$7","_sfc_main$7","ariaLiveMessage","useOnInitHandler","vfInstance","isInitialized","shiftX","shift","shiftY","EdgeAnchor","radius","EdgeAnchor$1","EdgeWrapper","edgeUpdaterRadius","edgesUpdatable","edgesFocusable","slots","mouseOver","updating","edgeEl","isSelectable","isUpdatable","isFocusable","edgeClass","edgeStyle","edgeCmp","slot","edgeType","components","resolveComponent","pathOptions","sourceNodeHandles","targetNodeHandles","onEdgeClick","onEdgeContextMenu","onDoubleClick","onEdgeMouseEnter","onEdgeMouseMove","onEdgeMouseLeave","onEdgeUpdaterSourceMouseDown","onEdgeUpdaterMouseEnter","onEdgeUpdaterMouseOut","onEdgeUpdaterTargetMouseDown","handleEdgeUpdater","isSourceHandle","EdgeWrapper$1","oppositePosition","ConnectionLine","connectionLineType","connectionLineStyle","connectionLineOptions","connectionLineComponent","fromNode","_a2","toNode","toXY","markerStart","markerEnd","startHandleId","fromHandleBounds","fromHandle","fromPosition","fromX","fromY","toHandle","_a3","toPosition","dAttr","pathParams","ConnectionLine$1","_hoisted_1$4","__default__$6","_sfc_main$6","_hoisted_1$3","__default__$5","_sfc_main$5","defaultColor","markers","markers2","createMarkers","markerId","renderList","__default__$4","_sfc_main$4","_cached","_memo","isMemoSame","_item","NodeWrapper","onUpdateNodeInternals","elevateNodesOnSelect","nodesFocusable","isDraggable","isInit","nodeCmp","nodeType","getClass","getStyle","styles","zIndex","updateInternals","newX","newY","parentZ","nodeZIndex","xyzPos","nodeExtent2","globalExtent","oldNodeExtent","oldGlobalExtent","clampPosition2","onSelectNode","NodeWrapper$1","_hoisted_1$2","__default__$3","_sfc_main$3","teleportTarget","Teleport","useNodesInitialized","_hoisted_1$1","__default__$2","_sfc_main$2","nodesInitialized","entries","entry","useStylesLoadedWarning","pane","_hoisted_1","__default__$1","_sfc_main$1","useSlots","modelValue","modelNodes","modelEdges","dispose","__default__","__emit","labelInput","newLabel","showInput","lastClick","labelOnClick","showLabelInput","submitNewLabel","nodeOnClick","hover","vueFlowElements","vueFlowInstance","activeElementKey","activeElementIndex","_elements","_element","newValue","handleKeypress","onPaneReady","shiftTerminal","currentTerminal","shiftOutput","activeNode","shiftInput","fitView","addNode","makeEdge","newNodePosition","labelChanged","states","_useModel","hasInputs","stateElements","stateHash","edgeKey","edgeValue","onElementsChange","idToLabel","install","app","NodeEditor","StateEditor"],"mappings":"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","x_google_ignoreList":[0]}