@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.umd.cjs","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","le","C","Br","i","r","yi","Rr","ie","Er","So","Vr","Sn","a","de","l","u","br","c","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","yt","J","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","uo","Si","Xt","Ni","co","Ci","sn","Zt","ma","Mi","Xe","o","pa","ya","Do","fo","Ye","Qe","Yn","Ut","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","re","k","H","Ma","$a","ka","Kt","ge","M","ee","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","at","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","vn","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","s","$r","nu","ou","iu","ru","au","su","lu","uu","ar","cu","yo","sr","kt","Et","jt","lt","St","Me","du","fu","hu","gu","vu","mu","pu","Ko","Nt","qo","yu","xu","jo","lr","Qo","pe","zt","ti","_u","jn","We","Qt","Jo","wu","ei","Ze","be","bu","kn","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","bn","Fu","_o","Se","ke","Yu","Xu","Zu","Uu","wo","pr","Wu","Ku","qu","ju","Qu","Ju","ec","tc","nc","oc","ic","rc","ac","sc","lc","uc","cc","dc","fc","hc","gc","vc","mc","Be","pc","yc","xc","_c","wc","bc","Ec","Sc","Nc","Cc","Mc","yr","$c","kc","Oc","Tc","Ic","Pc","Dc","zc","Ac","Bc","Rc","Vc","Hc","Lc","xr","Gc","Fc","Oe","Yc","Xc","Zc","Uc","Rt","Wc","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","sd","ld","ud","pi","dt","cd","dd","fd","hd","gd","vd","md","pd","yd","xd","qe","_d","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","j","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.umd.cjs","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","S","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$1","path","SmoothStepEdge$1","StepEdge$1","BezierEdge$1","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$1","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","oppositePosition","ConnectionLine$1","connectionLineType","connectionLineStyle","connectionLineOptions","connectionLineComponent","fromNode","_a2","toNode","toXY","markerStart","markerEnd","startHandleId","fromHandleBounds","fromHandle","fromPosition","fromX","fromY","toHandle","_a3","toPosition","dAttr","pathParams","_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$1","onUpdateNodeInternals","elevateNodesOnSelect","nodesFocusable","isDraggable","isInit","nodeCmp","nodeType","getClass","getStyle","styles","zIndex","updateInternals","newX","newY","parentZ","nodeZIndex","xyzPos","nodeExtent2","globalExtent","oldNodeExtent","oldGlobalExtent","clampPosition2","onSelectNode","_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]}