{ "version": 3, "sources": ["../../@abi-software/map-utilities/dist/map-utilities.js"], "sourcesContent": ["var p0 = Object.defineProperty;\nvar g0 = (t, e, r) => e in t ? p0(t, e, { enumerable: !0, configurable: !0, writable: !0, value: r }) : t[e] = r;\nvar Ir = (t, e, r) => g0(t, typeof e != \"symbol\" ? e + \"\" : e, r);\nimport { getCurrentScope as m0, onScopeDispose as y0, unref as P, getCurrentInstance as gt, onMounted as Et, nextTick as ot, watch as Pe, ref as ce, defineComponent as de, openBlock as N, createElementBlock as Z, createElementVNode as X, warn as b0, computed as V, inject as Ue, isRef as Xa, shallowRef as jr, onBeforeUnmount as qr, onBeforeMount as w0, provide as Ct, mergeProps as Rr, renderSlot as Le, toRef as $r, onUnmounted as x0, useAttrs as C0, useSlots as vo, createCommentVNode as he, Fragment as Qe, normalizeClass as ie, createBlock as ye, withCtx as U, resolveDynamicComponent as er, withModifiers as ht, createVNode as J, toDisplayString as Ie, normalizeStyle as lt, Transition as ui, withDirectives as Ze, vShow as mt, reactive as Jr, onActivated as E0, onUpdated as mv, cloneVNode as k0, Text as yv, Comment as S0, Teleport as T0, readonly as _0, onDeactivated as D0, createTextVNode as ze, toRaw as ys, vModelCheckbox as bs, toRefs as ho, toHandlers as P0, watchEffect as bv, renderList as Jt, withKeys as aa, resolveComponent as Qt, resolveDirective as O0, toHandlerKey as L0, vModelText as I0, h as ia, createApp as F0, pushScopeId as po, popScopeId as go, createStaticVNode as A0 } from \"vue\";\nconst cn = (t, e, { checkForDefaultPrevented: r = !0 } = {}) => (a) => {\n const i = t == null ? void 0 : t(a);\n if (r === !1 || !i)\n return e == null ? void 0 : e(a);\n};\nvar Ac;\nconst _t = typeof window < \"u\", M0 = (t) => typeof t == \"string\", wv = () => {\n}, Gl = _t && ((Ac = window == null ? void 0 : window.navigator) == null ? void 0 : Ac.userAgent) && /iP(ad|hone|od)/.test(window.navigator.userAgent);\nfunction xv(t) {\n return typeof t == \"function\" ? t() : P(t);\n}\nfunction B0(t) {\n return t;\n}\nfunction Rs(t) {\n return m0() ? (y0(t), !0) : !1;\n}\nfunction N0(t, e = !0) {\n gt() ? Et(t) : e ? t() : ot(t);\n}\nfunction vn(t) {\n var e;\n const r = xv(t);\n return (e = r == null ? void 0 : r.$el) != null ? e : r;\n}\nconst zs = _t ? window : void 0;\nfunction kr(...t) {\n let e, r, n, a;\n if (M0(t[0]) || Array.isArray(t[0]) ? ([r, n, a] = t, e = zs) : [e, r, n, a] = t, !e)\n return wv;\n Array.isArray(r) || (r = [r]), Array.isArray(n) || (n = [n]);\n const i = [], o = () => {\n i.forEach((c) => c()), i.length = 0;\n }, s = (c, d, v, h) => (c.addEventListener(d, v, h), () => c.removeEventListener(d, v, h)), u = Pe(() => [vn(e), xv(a)], ([c, d]) => {\n o(), c && i.push(...r.flatMap((v) => n.map((h) => s(c, v, h, d))));\n }, { immediate: !0, flush: \"post\" }), l = () => {\n u(), o();\n };\n return Rs(l), l;\n}\nlet Mc = !1;\nfunction $0(t, e, r = {}) {\n const { window: n = zs, ignore: a = [], capture: i = !0, detectIframe: o = !1 } = r;\n if (!n)\n return;\n Gl && !Mc && (Mc = !0, Array.from(n.document.body.children).forEach((v) => v.addEventListener(\"click\", wv)));\n let s = !0;\n const u = (v) => a.some((h) => {\n if (typeof h == \"string\")\n return Array.from(n.document.querySelectorAll(h)).some((f) => f === v.target || v.composedPath().includes(f));\n {\n const f = vn(h);\n return f && (v.target === f || v.composedPath().includes(f));\n }\n }), c = [\n kr(n, \"click\", (v) => {\n const h = vn(t);\n if (!(!h || h === v.target || v.composedPath().includes(h))) {\n if (v.detail === 0 && (s = !u(v)), !s) {\n s = !0;\n return;\n }\n e(v);\n }\n }, { passive: !0, capture: i }),\n kr(n, \"pointerdown\", (v) => {\n const h = vn(t);\n h && (s = !v.composedPath().includes(h) && !u(v));\n }, { passive: !0 }),\n o && kr(n, \"blur\", (v) => {\n var h;\n const f = vn(t);\n ((h = n.document.activeElement) == null ? void 0 : h.tagName) === \"IFRAME\" && !(f != null && f.contains(n.document.activeElement)) && e(v);\n })\n ].filter(Boolean);\n return () => c.forEach((v) => v());\n}\nfunction Cv(t, e = !1) {\n const r = ce(), n = () => r.value = !!t();\n return n(), N0(n, e), r;\n}\nconst Bc = typeof globalThis < \"u\" ? globalThis : typeof window < \"u\" ? window : typeof global < \"u\" ? global : typeof self < \"u\" ? self : {}, Nc = \"__vueuse_ssr_handlers__\";\nBc[Nc] = Bc[Nc] || {};\nvar $c = Object.getOwnPropertySymbols, R0 = Object.prototype.hasOwnProperty, z0 = Object.prototype.propertyIsEnumerable, V0 = (t, e) => {\n var r = {};\n for (var n in t)\n R0.call(t, n) && e.indexOf(n) < 0 && (r[n] = t[n]);\n if (t != null && $c)\n for (var n of $c(t))\n e.indexOf(n) < 0 && z0.call(t, n) && (r[n] = t[n]);\n return r;\n};\nfunction dn(t, e, r = {}) {\n const n = r, { window: a = zs } = n, i = V0(n, [\"window\"]);\n let o;\n const s = Cv(() => a && \"ResizeObserver\" in a), u = () => {\n o && (o.disconnect(), o = void 0);\n }, l = Pe(() => vn(t), (d) => {\n u(), s.value && a && d && (o = new ResizeObserver(e), o.observe(d, i));\n }, { immediate: !0, flush: \"post\" }), c = () => {\n u(), l();\n };\n return Rs(c), {\n isSupported: s,\n stop: c\n };\n}\nvar Rc = Object.getOwnPropertySymbols, H0 = Object.prototype.hasOwnProperty, q0 = Object.prototype.propertyIsEnumerable, K0 = (t, e) => {\n var r = {};\n for (var n in t)\n H0.call(t, n) && e.indexOf(n) < 0 && (r[n] = t[n]);\n if (t != null && Rc)\n for (var n of Rc(t))\n e.indexOf(n) < 0 && q0.call(t, n) && (r[n] = t[n]);\n return r;\n};\nfunction U0(t, e, r = {}) {\n const n = r, { window: a = zs } = n, i = K0(n, [\"window\"]);\n let o;\n const s = Cv(() => a && \"MutationObserver\" in a), u = () => {\n o && (o.disconnect(), o = void 0);\n }, l = Pe(() => vn(t), (d) => {\n u(), s.value && a && d && (o = new MutationObserver(e), o.observe(d, i));\n }, { immediate: !0 }), c = () => {\n u(), l();\n };\n return Rs(c), {\n isSupported: s,\n stop: c\n };\n}\nvar zc;\n(function(t) {\n t.UP = \"UP\", t.RIGHT = \"RIGHT\", t.DOWN = \"DOWN\", t.LEFT = \"LEFT\", t.NONE = \"NONE\";\n})(zc || (zc = {}));\nvar G0 = Object.defineProperty, Vc = Object.getOwnPropertySymbols, W0 = Object.prototype.hasOwnProperty, Y0 = Object.prototype.propertyIsEnumerable, Hc = (t, e, r) => e in t ? G0(t, e, { enumerable: !0, configurable: !0, writable: !0, value: r }) : t[e] = r, Z0 = (t, e) => {\n for (var r in e || (e = {}))\n W0.call(e, r) && Hc(t, r, e[r]);\n if (Vc)\n for (var r of Vc(e))\n Y0.call(e, r) && Hc(t, r, e[r]);\n return t;\n};\nconst X0 = {\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};\nZ0({\n linear: B0\n}, X0);\nconst j0 = () => _t && /firefox/i.test(window.navigator.userAgent), Tu = (t) => {\n let e, r;\n return t.type === \"touchend\" ? (r = t.changedTouches[0].clientY, e = t.changedTouches[0].clientX) : t.type.startsWith(\"touch\") ? (r = t.touches[0].clientY, e = t.touches[0].clientX) : (r = t.clientY, e = t.clientX), {\n clientX: e,\n clientY: r\n };\n};\n/**\n* @vue/shared v3.4.27\n* (c) 2018-present Yuxi (Evan) You and Vue contributors\n* @license MIT\n**/\nprocess.env.NODE_ENV !== \"production\" && Object.freeze({});\nprocess.env.NODE_ENV !== \"production\" && Object.freeze([]);\nconst Wi = () => {\n}, Q0 = Object.prototype.hasOwnProperty, va = (t, e) => Q0.call(t, e), fr = Array.isArray, lr = (t) => typeof t == \"function\", tr = (t) => typeof t == \"string\", Ht = (t) => t !== null && typeof t == \"object\", J0 = Object.prototype.toString, em = (t) => J0.call(t), bl = (t) => em(t).slice(8, -1), Ev = (t) => {\n const e = /* @__PURE__ */ Object.create(null);\n return (r) => e[r] || (e[r] = t(r));\n}, tm = /-(\\w)/g, rm = Ev((t) => t.replace(tm, (e, r) => r ? r.toUpperCase() : \"\")), nm = /\\B([A-Z])/g, am = Ev(\n (t) => t.replace(nm, \"-$1\").toLowerCase()\n);\nvar kv = typeof global == \"object\" && global && global.Object === Object && global, im = typeof self == \"object\" && self && self.Object === Object && self, nn = kv || im || Function(\"return this\")(), en = nn.Symbol, Sv = Object.prototype, om = Sv.hasOwnProperty, sm = Sv.toString, Si = en ? en.toStringTag : void 0;\nfunction lm(t) {\n var e = om.call(t, Si), r = t[Si];\n try {\n t[Si] = void 0;\n var n = !0;\n } catch {\n }\n var a = sm.call(t);\n return n && (e ? t[Si] = r : delete t[Si]), a;\n}\nvar um = Object.prototype, cm = um.toString;\nfunction dm(t) {\n return cm.call(t);\n}\nvar fm = \"[object Null]\", vm = \"[object Undefined]\", qc = en ? en.toStringTag : void 0;\nfunction ci(t) {\n return t == null ? t === void 0 ? vm : fm : qc && qc in Object(t) ? lm(t) : dm(t);\n}\nfunction ja(t) {\n return t != null && typeof t == \"object\";\n}\nvar hm = \"[object Symbol]\";\nfunction Vs(t) {\n return typeof t == \"symbol\" || ja(t) && ci(t) == hm;\n}\nfunction pm(t, e) {\n for (var r = -1, n = t == null ? 0 : t.length, a = Array(n); ++r < n; )\n a[r] = e(t[r], r, t);\n return a;\n}\nvar Vr = Array.isArray, gm = 1 / 0, Kc = en ? en.prototype : void 0, Uc = Kc ? Kc.toString : void 0;\nfunction Tv(t) {\n if (typeof t == \"string\")\n return t;\n if (Vr(t))\n return pm(t, Tv) + \"\";\n if (Vs(t))\n return Uc ? Uc.call(t) : \"\";\n var e = t + \"\";\n return e == \"0\" && 1 / t == -gm ? \"-0\" : e;\n}\nvar mm = /\\s/;\nfunction ym(t) {\n for (var e = t.length; e-- && mm.test(t.charAt(e)); )\n ;\n return e;\n}\nvar bm = /^\\s+/;\nfunction wm(t) {\n return t && t.slice(0, ym(t) + 1).replace(bm, \"\");\n}\nfunction Vn(t) {\n var e = typeof t;\n return t != null && (e == \"object\" || e == \"function\");\n}\nvar Gc = NaN, xm = /^[-+]0x[0-9a-f]+$/i, Cm = /^0b[01]+$/i, Em = /^0o[0-7]+$/i, km = parseInt;\nfunction Wc(t) {\n if (typeof t == \"number\")\n return t;\n if (Vs(t))\n return Gc;\n if (Vn(t)) {\n var e = typeof t.valueOf == \"function\" ? t.valueOf() : t;\n t = Vn(e) ? e + \"\" : e;\n }\n if (typeof t != \"string\")\n return t === 0 ? t : +t;\n t = wm(t);\n var r = Cm.test(t);\n return r || Em.test(t) ? km(t.slice(2), r ? 2 : 8) : xm.test(t) ? Gc : +t;\n}\nfunction _v(t) {\n return t;\n}\nvar Sm = \"[object AsyncFunction]\", Tm = \"[object Function]\", _m = \"[object GeneratorFunction]\", Dm = \"[object Proxy]\";\nfunction Dv(t) {\n if (!Vn(t))\n return !1;\n var e = ci(t);\n return e == Tm || e == _m || e == Sm || e == Dm;\n}\nvar wl = nn[\"__core-js_shared__\"], Yc = function() {\n var t = /[^.]+$/.exec(wl && wl.keys && wl.keys.IE_PROTO || \"\");\n return t ? \"Symbol(src)_1.\" + t : \"\";\n}();\nfunction Pm(t) {\n return !!Yc && Yc in t;\n}\nvar Om = Function.prototype, Lm = Om.toString;\nfunction ka(t) {\n if (t != null) {\n try {\n return Lm.call(t);\n } catch {\n }\n try {\n return t + \"\";\n } catch {\n }\n }\n return \"\";\n}\nvar Im = /[\\\\^$.*+?()[\\]{}|]/g, Fm = /^\\[object .+?Constructor\\]$/, Am = Function.prototype, Mm = Object.prototype, Bm = Am.toString, Nm = Mm.hasOwnProperty, $m = RegExp(\n \"^\" + Bm.call(Nm).replace(Im, \"\\\\$&\").replace(/hasOwnProperty|(function).*?(?=\\\\\\()| for .+?(?=\\\\\\])/g, \"$1.*?\") + \"$\"\n);\nfunction Rm(t) {\n if (!Vn(t) || Pm(t))\n return !1;\n var e = Dv(t) ? $m : Fm;\n return e.test(ka(t));\n}\nfunction zm(t, e) {\n return t == null ? void 0 : t[e];\n}\nfunction Sa(t, e) {\n var r = zm(t, e);\n return Rm(r) ? r : void 0;\n}\nvar Wl = Sa(nn, \"WeakMap\");\nfunction Vm(t, e, r) {\n switch (r.length) {\n case 0:\n return t.call(e);\n case 1:\n return t.call(e, r[0]);\n case 2:\n return t.call(e, r[0], r[1]);\n case 3:\n return t.call(e, r[0], r[1], r[2]);\n }\n return t.apply(e, r);\n}\nvar Hm = 800, qm = 16, Km = Date.now;\nfunction Um(t) {\n var e = 0, r = 0;\n return function() {\n var n = Km(), a = qm - (n - r);\n if (r = n, a > 0) {\n if (++e >= Hm)\n return arguments[0];\n } else\n e = 0;\n return t.apply(void 0, arguments);\n };\n}\nfunction Gm(t) {\n return function() {\n return t;\n };\n}\nvar ws = function() {\n try {\n var t = Sa(Object, \"defineProperty\");\n return t({}, \"\", {}), t;\n } catch {\n }\n}(), Wm = ws ? function(t, e) {\n return ws(t, \"toString\", {\n configurable: !0,\n enumerable: !1,\n value: Gm(e),\n writable: !0\n });\n} : _v, Ym = Um(Wm);\nfunction Zm(t, e, r, n) {\n t.length;\n for (var a = r + 1; a--; )\n if (e(t[a], a, t))\n return a;\n return -1;\n}\nvar Xm = 9007199254740991, jm = /^(?:0|[1-9]\\d*)$/;\nfunction _u(t, e) {\n var r = typeof t;\n return e = e ?? Xm, !!e && (r == \"number\" || r != \"symbol\" && jm.test(t)) && t > -1 && t % 1 == 0 && t < e;\n}\nfunction Qm(t, e, r) {\n e == \"__proto__\" && ws ? ws(t, e, {\n configurable: !0,\n enumerable: !0,\n value: r,\n writable: !0\n }) : t[e] = r;\n}\nfunction Du(t, e) {\n return t === e || t !== t && e !== e;\n}\nvar Jm = Object.prototype, ey = Jm.hasOwnProperty;\nfunction ty(t, e, r) {\n var n = t[e];\n (!(ey.call(t, e) && Du(n, r)) || r === void 0 && !(e in t)) && Qm(t, e, r);\n}\nvar Zc = Math.max;\nfunction ry(t, e, r) {\n return e = Zc(e === void 0 ? t.length - 1 : e, 0), function() {\n for (var n = arguments, a = -1, i = Zc(n.length - e, 0), o = Array(i); ++a < i; )\n o[a] = n[e + a];\n a = -1;\n for (var s = Array(e + 1); ++a < e; )\n s[a] = n[a];\n return s[e] = r(o), Vm(t, this, s);\n };\n}\nvar ny = 9007199254740991;\nfunction Pu(t) {\n return typeof t == \"number\" && t > -1 && t % 1 == 0 && t <= ny;\n}\nfunction ay(t) {\n return t != null && Pu(t.length) && !Dv(t);\n}\nvar iy = Object.prototype;\nfunction oy(t) {\n var e = t && t.constructor, r = typeof e == \"function\" && e.prototype || iy;\n return t === r;\n}\nfunction sy(t, e) {\n for (var r = -1, n = Array(t); ++r < t; )\n n[r] = e(r);\n return n;\n}\nvar ly = \"[object Arguments]\";\nfunction Xc(t) {\n return ja(t) && ci(t) == ly;\n}\nvar Pv = Object.prototype, uy = Pv.hasOwnProperty, cy = Pv.propertyIsEnumerable, Ou = Xc(/* @__PURE__ */ function() {\n return arguments;\n}()) ? Xc : function(t) {\n return ja(t) && uy.call(t, \"callee\") && !cy.call(t, \"callee\");\n};\nfunction dy() {\n return !1;\n}\nvar Ov = typeof exports == \"object\" && exports && !exports.nodeType && exports, jc = Ov && typeof module == \"object\" && module && !module.nodeType && module, fy = jc && jc.exports === Ov, Qc = fy ? nn.Buffer : void 0, vy = Qc ? Qc.isBuffer : void 0, Yl = vy || dy, hy = \"[object Arguments]\", py = \"[object Array]\", gy = \"[object Boolean]\", my = \"[object Date]\", yy = \"[object Error]\", by = \"[object Function]\", wy = \"[object Map]\", xy = \"[object Number]\", Cy = \"[object Object]\", Ey = \"[object RegExp]\", ky = \"[object Set]\", Sy = \"[object String]\", Ty = \"[object WeakMap]\", _y = \"[object ArrayBuffer]\", Dy = \"[object DataView]\", Py = \"[object Float32Array]\", Oy = \"[object Float64Array]\", Ly = \"[object Int8Array]\", Iy = \"[object Int16Array]\", Fy = \"[object Int32Array]\", Ay = \"[object Uint8Array]\", My = \"[object Uint8ClampedArray]\", By = \"[object Uint16Array]\", Ny = \"[object Uint32Array]\", ft = {};\nft[Py] = ft[Oy] = ft[Ly] = ft[Iy] = ft[Fy] = ft[Ay] = ft[My] = ft[By] = ft[Ny] = !0;\nft[hy] = ft[py] = ft[_y] = ft[gy] = ft[Dy] = ft[my] = ft[yy] = ft[by] = ft[wy] = ft[xy] = ft[Cy] = ft[Ey] = ft[ky] = ft[Sy] = ft[Ty] = !1;\nfunction $y(t) {\n return ja(t) && Pu(t.length) && !!ft[ci(t)];\n}\nfunction Ry(t) {\n return function(e) {\n return t(e);\n };\n}\nvar Lv = typeof exports == \"object\" && exports && !exports.nodeType && exports, zi = Lv && typeof module == \"object\" && module && !module.nodeType && module, zy = zi && zi.exports === Lv, xl = zy && kv.process, Jc = function() {\n try {\n var t = zi && zi.require && zi.require(\"util\").types;\n return t || xl && xl.binding && xl.binding(\"util\");\n } catch {\n }\n}(), ed = Jc && Jc.isTypedArray, Iv = ed ? Ry(ed) : $y, Vy = Object.prototype, Hy = Vy.hasOwnProperty;\nfunction qy(t, e) {\n var r = Vr(t), n = !r && Ou(t), a = !r && !n && Yl(t), i = !r && !n && !a && Iv(t), o = r || n || a || i, s = o ? sy(t.length, String) : [], u = s.length;\n for (var l in t)\n Hy.call(t, l) && !(o && // Safari 9 has enumerable `arguments.length` in strict mode.\n (l == \"length\" || // Node.js 0.10 has enumerable non-index properties on buffers.\n a && (l == \"offset\" || l == \"parent\") || // PhantomJS 2 has enumerable non-index properties on typed arrays.\n i && (l == \"buffer\" || l == \"byteLength\" || l == \"byteOffset\") || // Skip index properties.\n _u(l, u))) && s.push(l);\n return s;\n}\nfunction Ky(t, e) {\n return function(r) {\n return t(e(r));\n };\n}\nvar Uy = Ky(Object.keys, Object), Gy = Object.prototype, Wy = Gy.hasOwnProperty;\nfunction Yy(t) {\n if (!oy(t))\n return Uy(t);\n var e = [];\n for (var r in Object(t))\n Wy.call(t, r) && r != \"constructor\" && e.push(r);\n return e;\n}\nfunction Fv(t) {\n return ay(t) ? qy(t) : Yy(t);\n}\nvar Zy = /\\.|\\[(?:[^[\\]]*|([\"'])(?:(?!\\1)[^\\\\]|\\\\.)*?\\1)\\]/, Xy = /^\\w*$/;\nfunction Lu(t, e) {\n if (Vr(t))\n return !1;\n var r = typeof t;\n return r == \"number\" || r == \"symbol\" || r == \"boolean\" || t == null || Vs(t) ? !0 : Xy.test(t) || !Zy.test(t) || e != null && t in Object(e);\n}\nvar Yi = Sa(Object, \"create\");\nfunction jy() {\n this.__data__ = Yi ? Yi(null) : {}, this.size = 0;\n}\nfunction Qy(t) {\n var e = this.has(t) && delete this.__data__[t];\n return this.size -= e ? 1 : 0, e;\n}\nvar Jy = \"__lodash_hash_undefined__\", e1 = Object.prototype, t1 = e1.hasOwnProperty;\nfunction r1(t) {\n var e = this.__data__;\n if (Yi) {\n var r = e[t];\n return r === Jy ? void 0 : r;\n }\n return t1.call(e, t) ? e[t] : void 0;\n}\nvar n1 = Object.prototype, a1 = n1.hasOwnProperty;\nfunction i1(t) {\n var e = this.__data__;\n return Yi ? e[t] !== void 0 : a1.call(e, t);\n}\nvar o1 = \"__lodash_hash_undefined__\";\nfunction s1(t, e) {\n var r = this.__data__;\n return this.size += this.has(t) ? 0 : 1, r[t] = Yi && e === void 0 ? o1 : e, this;\n}\nfunction ha(t) {\n var e = -1, r = t == null ? 0 : t.length;\n for (this.clear(); ++e < r; ) {\n var n = t[e];\n this.set(n[0], n[1]);\n }\n}\nha.prototype.clear = jy;\nha.prototype.delete = Qy;\nha.prototype.get = r1;\nha.prototype.has = i1;\nha.prototype.set = s1;\nfunction l1() {\n this.__data__ = [], this.size = 0;\n}\nfunction Hs(t, e) {\n for (var r = t.length; r--; )\n if (Du(t[r][0], e))\n return r;\n return -1;\n}\nvar u1 = Array.prototype, c1 = u1.splice;\nfunction d1(t) {\n var e = this.__data__, r = Hs(e, t);\n if (r < 0)\n return !1;\n var n = e.length - 1;\n return r == n ? e.pop() : c1.call(e, r, 1), --this.size, !0;\n}\nfunction f1(t) {\n var e = this.__data__, r = Hs(e, t);\n return r < 0 ? void 0 : e[r][1];\n}\nfunction v1(t) {\n return Hs(this.__data__, t) > -1;\n}\nfunction h1(t, e) {\n var r = this.__data__, n = Hs(r, t);\n return n < 0 ? (++this.size, r.push([t, e])) : r[n][1] = e, this;\n}\nfunction bn(t) {\n var e = -1, r = t == null ? 0 : t.length;\n for (this.clear(); ++e < r; ) {\n var n = t[e];\n this.set(n[0], n[1]);\n }\n}\nbn.prototype.clear = l1;\nbn.prototype.delete = d1;\nbn.prototype.get = f1;\nbn.prototype.has = v1;\nbn.prototype.set = h1;\nvar Zi = Sa(nn, \"Map\");\nfunction p1() {\n this.size = 0, this.__data__ = {\n hash: new ha(),\n map: new (Zi || bn)(),\n string: new ha()\n };\n}\nfunction g1(t) {\n var e = typeof t;\n return e == \"string\" || e == \"number\" || e == \"symbol\" || e == \"boolean\" ? t !== \"__proto__\" : t === null;\n}\nfunction qs(t, e) {\n var r = t.__data__;\n return g1(e) ? r[typeof e == \"string\" ? \"string\" : \"hash\"] : r.map;\n}\nfunction m1(t) {\n var e = qs(this, t).delete(t);\n return this.size -= e ? 1 : 0, e;\n}\nfunction y1(t) {\n return qs(this, t).get(t);\n}\nfunction b1(t) {\n return qs(this, t).has(t);\n}\nfunction w1(t, e) {\n var r = qs(this, t), n = r.size;\n return r.set(t, e), this.size += r.size == n ? 0 : 1, this;\n}\nfunction wn(t) {\n var e = -1, r = t == null ? 0 : t.length;\n for (this.clear(); ++e < r; ) {\n var n = t[e];\n this.set(n[0], n[1]);\n }\n}\nwn.prototype.clear = p1;\nwn.prototype.delete = m1;\nwn.prototype.get = y1;\nwn.prototype.has = b1;\nwn.prototype.set = w1;\nvar x1 = \"Expected a function\";\nfunction Iu(t, e) {\n if (typeof t != \"function\" || e != null && typeof e != \"function\")\n throw new TypeError(x1);\n var r = function() {\n var n = arguments, a = e ? e.apply(this, n) : n[0], i = r.cache;\n if (i.has(a))\n return i.get(a);\n var o = t.apply(this, n);\n return r.cache = i.set(a, o) || i, o;\n };\n return r.cache = new (Iu.Cache || wn)(), r;\n}\nIu.Cache = wn;\nvar C1 = 500;\nfunction E1(t) {\n var e = Iu(t, function(n) {\n return r.size === C1 && r.clear(), n;\n }), r = e.cache;\n return e;\n}\nvar k1 = /[^.[\\]]+|\\[(?:(-?\\d+(?:\\.\\d+)?)|([\"'])((?:(?!\\2)[^\\\\]|\\\\.)*?)\\2)\\]|(?=(?:\\.|\\[\\])(?:\\.|\\[\\]|$))/g, S1 = /\\\\(\\\\)?/g, T1 = E1(function(t) {\n var e = [];\n return t.charCodeAt(0) === 46 && e.push(\"\"), t.replace(k1, function(r, n, a, i) {\n e.push(a ? i.replace(S1, \"$1\") : n || r);\n }), e;\n});\nfunction _1(t) {\n return t == null ? \"\" : Tv(t);\n}\nfunction Ks(t, e) {\n return Vr(t) ? t : Lu(t, e) ? [t] : T1(_1(t));\n}\nvar D1 = 1 / 0;\nfunction mo(t) {\n if (typeof t == \"string\" || Vs(t))\n return t;\n var e = t + \"\";\n return e == \"0\" && 1 / t == -D1 ? \"-0\" : e;\n}\nfunction Fu(t, e) {\n e = Ks(e, t);\n for (var r = 0, n = e.length; t != null && r < n; )\n t = t[mo(e[r++])];\n return r && r == n ? t : void 0;\n}\nfunction fn(t, e, r) {\n var n = t == null ? void 0 : Fu(t, e);\n return n === void 0 ? r : n;\n}\nfunction Av(t, e) {\n for (var r = -1, n = e.length, a = t.length; ++r < n; )\n t[a + r] = e[r];\n return t;\n}\nvar td = en ? en.isConcatSpreadable : void 0;\nfunction P1(t) {\n return Vr(t) || Ou(t) || !!(td && t && t[td]);\n}\nfunction O1(t, e, r, n, a) {\n var i = -1, o = t.length;\n for (r || (r = P1), a || (a = []); ++i < o; ) {\n var s = t[i];\n r(s) ? Av(a, s) : a[a.length] = s;\n }\n return a;\n}\nfunction L1(t) {\n var e = t == null ? 0 : t.length;\n return e ? O1(t) : [];\n}\nfunction I1(t) {\n return Ym(ry(t, void 0, L1), t + \"\");\n}\nfunction Fn() {\n if (!arguments.length)\n return [];\n var t = arguments[0];\n return Vr(t) ? t : [t];\n}\nfunction F1() {\n this.__data__ = new bn(), this.size = 0;\n}\nfunction A1(t) {\n var e = this.__data__, r = e.delete(t);\n return this.size = e.size, r;\n}\nfunction M1(t) {\n return this.__data__.get(t);\n}\nfunction B1(t) {\n return this.__data__.has(t);\n}\nvar N1 = 200;\nfunction $1(t, e) {\n var r = this.__data__;\n if (r instanceof bn) {\n var n = r.__data__;\n if (!Zi || n.length < N1 - 1)\n return n.push([t, e]), this.size = ++r.size, this;\n r = this.__data__ = new wn(n);\n }\n return r.set(t, e), this.size = r.size, this;\n}\nfunction hn(t) {\n var e = this.__data__ = new bn(t);\n this.size = e.size;\n}\nhn.prototype.clear = F1;\nhn.prototype.delete = A1;\nhn.prototype.get = M1;\nhn.prototype.has = B1;\nhn.prototype.set = $1;\nfunction R1(t, e) {\n for (var r = -1, n = t == null ? 0 : t.length, a = 0, i = []; ++r < n; ) {\n var o = t[r];\n e(o, r, t) && (i[a++] = o);\n }\n return i;\n}\nfunction z1() {\n return [];\n}\nvar V1 = Object.prototype, H1 = V1.propertyIsEnumerable, rd = Object.getOwnPropertySymbols, q1 = rd ? function(t) {\n return t == null ? [] : (t = Object(t), R1(rd(t), function(e) {\n return H1.call(t, e);\n }));\n} : z1;\nfunction K1(t, e, r) {\n var n = e(t);\n return Vr(t) ? n : Av(n, r(t));\n}\nfunction nd(t) {\n return K1(t, Fv, q1);\n}\nvar Zl = Sa(nn, \"DataView\"), Xl = Sa(nn, \"Promise\"), jl = Sa(nn, \"Set\"), ad = \"[object Map]\", U1 = \"[object Object]\", id = \"[object Promise]\", od = \"[object Set]\", sd = \"[object WeakMap]\", ld = \"[object DataView]\", G1 = ka(Zl), W1 = ka(Zi), Y1 = ka(Xl), Z1 = ka(jl), X1 = ka(Wl), In = ci;\n(Zl && In(new Zl(new ArrayBuffer(1))) != ld || Zi && In(new Zi()) != ad || Xl && In(Xl.resolve()) != id || jl && In(new jl()) != od || Wl && In(new Wl()) != sd) && (In = function(t) {\n var e = ci(t), r = e == U1 ? t.constructor : void 0, n = r ? ka(r) : \"\";\n if (n)\n switch (n) {\n case G1:\n return ld;\n case W1:\n return ad;\n case Y1:\n return id;\n case Z1:\n return od;\n case X1:\n return sd;\n }\n return e;\n});\nvar ud = nn.Uint8Array, j1 = \"__lodash_hash_undefined__\";\nfunction Q1(t) {\n return this.__data__.set(t, j1), this;\n}\nfunction J1(t) {\n return this.__data__.has(t);\n}\nfunction xs(t) {\n var e = -1, r = t == null ? 0 : t.length;\n for (this.__data__ = new wn(); ++e < r; )\n this.add(t[e]);\n}\nxs.prototype.add = xs.prototype.push = Q1;\nxs.prototype.has = J1;\nfunction eb(t, e) {\n for (var r = -1, n = t == null ? 0 : t.length; ++r < n; )\n if (e(t[r], r, t))\n return !0;\n return !1;\n}\nfunction tb(t, e) {\n return t.has(e);\n}\nvar rb = 1, nb = 2;\nfunction Mv(t, e, r, n, a, i) {\n var o = r & rb, s = t.length, u = e.length;\n if (s != u && !(o && u > s))\n return !1;\n var l = i.get(t), c = i.get(e);\n if (l && c)\n return l == e && c == t;\n var d = -1, v = !0, h = r & nb ? new xs() : void 0;\n for (i.set(t, e), i.set(e, t); ++d < s; ) {\n var f = t[d], p = e[d];\n if (n)\n var m = o ? n(p, f, d, e, t, i) : n(f, p, d, t, e, i);\n if (m !== void 0) {\n if (m)\n continue;\n v = !1;\n break;\n }\n if (h) {\n if (!eb(e, function(g, y) {\n if (!tb(h, y) && (f === g || a(f, g, r, n, i)))\n return h.push(y);\n })) {\n v = !1;\n break;\n }\n } else if (!(f === p || a(f, p, r, n, i))) {\n v = !1;\n break;\n }\n }\n return i.delete(t), i.delete(e), v;\n}\nfunction ab(t) {\n var e = -1, r = Array(t.size);\n return t.forEach(function(n, a) {\n r[++e] = [a, n];\n }), r;\n}\nfunction ib(t) {\n var e = -1, r = Array(t.size);\n return t.forEach(function(n) {\n r[++e] = n;\n }), r;\n}\nvar ob = 1, sb = 2, lb = \"[object Boolean]\", ub = \"[object Date]\", cb = \"[object Error]\", db = \"[object Map]\", fb = \"[object Number]\", vb = \"[object RegExp]\", hb = \"[object Set]\", pb = \"[object String]\", gb = \"[object Symbol]\", mb = \"[object ArrayBuffer]\", yb = \"[object DataView]\", cd = en ? en.prototype : void 0, Cl = cd ? cd.valueOf : void 0;\nfunction bb(t, e, r, n, a, i, o) {\n switch (r) {\n case yb:\n if (t.byteLength != e.byteLength || t.byteOffset != e.byteOffset)\n return !1;\n t = t.buffer, e = e.buffer;\n case mb:\n return !(t.byteLength != e.byteLength || !i(new ud(t), new ud(e)));\n case lb:\n case ub:\n case fb:\n return Du(+t, +e);\n case cb:\n return t.name == e.name && t.message == e.message;\n case vb:\n case pb:\n return t == e + \"\";\n case db:\n var s = ab;\n case hb:\n var u = n & ob;\n if (s || (s = ib), t.size != e.size && !u)\n return !1;\n var l = o.get(t);\n if (l)\n return l == e;\n n |= sb, o.set(t, e);\n var c = Mv(s(t), s(e), n, a, i, o);\n return o.delete(t), c;\n case gb:\n if (Cl)\n return Cl.call(t) == Cl.call(e);\n }\n return !1;\n}\nvar wb = 1, xb = Object.prototype, Cb = xb.hasOwnProperty;\nfunction Eb(t, e, r, n, a, i) {\n var o = r & wb, s = nd(t), u = s.length, l = nd(e), c = l.length;\n if (u != c && !o)\n return !1;\n for (var d = u; d--; ) {\n var v = s[d];\n if (!(o ? v in e : Cb.call(e, v)))\n return !1;\n }\n var h = i.get(t), f = i.get(e);\n if (h && f)\n return h == e && f == t;\n var p = !0;\n i.set(t, e), i.set(e, t);\n for (var m = o; ++d < u; ) {\n v = s[d];\n var g = t[v], y = e[v];\n if (n)\n var b = o ? n(y, g, v, e, t, i) : n(g, y, v, t, e, i);\n if (!(b === void 0 ? g === y || a(g, y, r, n, i) : b)) {\n p = !1;\n break;\n }\n m || (m = v == \"constructor\");\n }\n if (p && !m) {\n var w = t.constructor, C = e.constructor;\n w != C && \"constructor\" in t && \"constructor\" in e && !(typeof w == \"function\" && w instanceof w && typeof C == \"function\" && C instanceof C) && (p = !1);\n }\n return i.delete(t), i.delete(e), p;\n}\nvar kb = 1, dd = \"[object Arguments]\", fd = \"[object Array]\", No = \"[object Object]\", Sb = Object.prototype, vd = Sb.hasOwnProperty;\nfunction Tb(t, e, r, n, a, i) {\n var o = Vr(t), s = Vr(e), u = o ? fd : In(t), l = s ? fd : In(e);\n u = u == dd ? No : u, l = l == dd ? No : l;\n var c = u == No, d = l == No, v = u == l;\n if (v && Yl(t)) {\n if (!Yl(e))\n return !1;\n o = !0, c = !1;\n }\n if (v && !c)\n return i || (i = new hn()), o || Iv(t) ? Mv(t, e, r, n, a, i) : bb(t, e, u, r, n, a, i);\n if (!(r & kb)) {\n var h = c && vd.call(t, \"__wrapped__\"), f = d && vd.call(e, \"__wrapped__\");\n if (h || f) {\n var p = h ? t.value() : t, m = f ? e.value() : e;\n return i || (i = new hn()), a(p, m, r, n, i);\n }\n }\n return v ? (i || (i = new hn()), Eb(t, e, r, n, a, i)) : !1;\n}\nfunction Us(t, e, r, n, a) {\n return t === e ? !0 : t == null || e == null || !ja(t) && !ja(e) ? t !== t && e !== e : Tb(t, e, r, n, Us, a);\n}\nvar _b = 1, Db = 2;\nfunction Pb(t, e, r, n) {\n var a = r.length, i = a;\n if (t == null)\n return !i;\n for (t = Object(t); a--; ) {\n var o = r[a];\n if (o[2] ? o[1] !== t[o[0]] : !(o[0] in t))\n return !1;\n }\n for (; ++a < i; ) {\n o = r[a];\n var s = o[0], u = t[s], l = o[1];\n if (o[2]) {\n if (u === void 0 && !(s in t))\n return !1;\n } else {\n var c = new hn(), d;\n if (!(d === void 0 ? Us(l, u, _b | Db, n, c) : d))\n return !1;\n }\n }\n return !0;\n}\nfunction Bv(t) {\n return t === t && !Vn(t);\n}\nfunction Ob(t) {\n for (var e = Fv(t), r = e.length; r--; ) {\n var n = e[r], a = t[n];\n e[r] = [n, a, Bv(a)];\n }\n return e;\n}\nfunction Nv(t, e) {\n return function(r) {\n return r == null ? !1 : r[t] === e && (e !== void 0 || t in Object(r));\n };\n}\nfunction Lb(t) {\n var e = Ob(t);\n return e.length == 1 && e[0][2] ? Nv(e[0][0], e[0][1]) : function(r) {\n return r === t || Pb(r, t, e);\n };\n}\nfunction Ib(t, e) {\n return t != null && e in Object(t);\n}\nfunction Fb(t, e, r) {\n e = Ks(e, t);\n for (var n = -1, a = e.length, i = !1; ++n < a; ) {\n var o = mo(e[n]);\n if (!(i = t != null && r(t, o)))\n break;\n t = t[o];\n }\n return i || ++n != a ? i : (a = t == null ? 0 : t.length, !!a && Pu(a) && _u(o, a) && (Vr(t) || Ou(t)));\n}\nfunction $v(t, e) {\n return t != null && Fb(t, e, Ib);\n}\nvar Ab = 1, Mb = 2;\nfunction Bb(t, e) {\n return Lu(t) && Bv(e) ? Nv(mo(t), e) : function(r) {\n var n = fn(r, t);\n return n === void 0 && n === e ? $v(r, t) : Us(e, n, Ab | Mb);\n };\n}\nfunction Nb(t) {\n return function(e) {\n return e == null ? void 0 : e[t];\n };\n}\nfunction $b(t) {\n return function(e) {\n return Fu(e, t);\n };\n}\nfunction Rb(t) {\n return Lu(t) ? Nb(mo(t)) : $b(t);\n}\nfunction zb(t) {\n return typeof t == \"function\" ? t : t == null ? _v : typeof t == \"object\" ? Vr(t) ? Bb(t[0], t[1]) : Lb(t) : Rb(t);\n}\nvar El = function() {\n return nn.Date.now();\n}, Vb = \"Expected a function\", Hb = Math.max, qb = Math.min;\nfunction Rv(t, e, r) {\n var n, a, i, o, s, u, l = 0, c = !1, d = !1, v = !0;\n if (typeof t != \"function\")\n throw new TypeError(Vb);\n e = Wc(e) || 0, Vn(r) && (c = !!r.leading, d = \"maxWait\" in r, i = d ? Hb(Wc(r.maxWait) || 0, e) : i, v = \"trailing\" in r ? !!r.trailing : v);\n function h(E) {\n var x = n, T = a;\n return n = a = void 0, l = E, o = t.apply(T, x), o;\n }\n function f(E) {\n return l = E, s = setTimeout(g, e), c ? h(E) : o;\n }\n function p(E) {\n var x = E - u, T = E - l, k = e - x;\n return d ? qb(k, i - T) : k;\n }\n function m(E) {\n var x = E - u, T = E - l;\n return u === void 0 || x >= e || x < 0 || d && T >= i;\n }\n function g() {\n var E = El();\n if (m(E))\n return y(E);\n s = setTimeout(g, p(E));\n }\n function y(E) {\n return s = void 0, v && n ? h(E) : (n = a = void 0, o);\n }\n function b() {\n s !== void 0 && clearTimeout(s), l = 0, n = u = a = s = void 0;\n }\n function w() {\n return s === void 0 ? o : y(El());\n }\n function C() {\n var E = El(), x = m(E);\n if (n = arguments, a = this, u = E, x) {\n if (s === void 0)\n return f(u);\n if (d)\n return clearTimeout(s), s = setTimeout(g, e), h(u);\n }\n return s === void 0 && (s = setTimeout(g, e)), o;\n }\n return C.cancel = b, C.flush = w, C;\n}\nfunction Kb(t, e, r) {\n var n = t == null ? 0 : t.length;\n if (!n)\n return -1;\n var a = n - 1;\n return Zm(t, zb(e), a);\n}\nfunction Cs(t) {\n for (var e = -1, r = t == null ? 0 : t.length, n = {}; ++e < r; ) {\n var a = t[e];\n n[a[0]] = a[1];\n }\n return n;\n}\nfunction Es(t, e) {\n return Us(t, e);\n}\nfunction $n(t) {\n return t == null;\n}\nfunction Ub(t) {\n return t === void 0;\n}\nfunction Gb(t, e, r, n) {\n if (!Vn(t))\n return t;\n e = Ks(e, t);\n for (var a = -1, i = e.length, o = i - 1, s = t; s != null && ++a < i; ) {\n var u = mo(e[a]), l = r;\n if (u === \"__proto__\" || u === \"constructor\" || u === \"prototype\")\n return t;\n if (a != o) {\n var c = s[u];\n l = void 0, l === void 0 && (l = Vn(c) ? c : _u(e[a + 1]) ? [] : {});\n }\n ty(s, u, l), s = s[u];\n }\n return t;\n}\nfunction Wb(t, e, r) {\n for (var n = -1, a = e.length, i = {}; ++n < a; ) {\n var o = e[n], s = Fu(t, o);\n r(s, o) && Gb(i, Ks(o, t), s);\n }\n return i;\n}\nfunction Yb(t, e) {\n return Wb(t, e, function(r, n) {\n return $v(t, n);\n });\n}\nvar zv = I1(function(t, e) {\n return t == null ? {} : Yb(t, e);\n});\nconst Mn = (t) => t === void 0, Qa = (t) => typeof t == \"boolean\", qt = (t) => typeof t == \"number\", ua = (t) => typeof Element > \"u\" ? !1 : t instanceof Element, ks = (t) => $n(t), Zb = (t) => tr(t) ? !Number.isNaN(Number(t)) : !1, Xb = (t = \"\") => t.replace(/[|\\\\{}()[\\]^$+*?.]/g, \"\\\\$&\").replace(/-/g, \"\\\\x2d\"), hd = (t) => Object.keys(t);\nclass Vv extends Error {\n constructor(e) {\n super(e), this.name = \"ElementPlusError\";\n }\n}\nfunction jb(t, e) {\n throw new Vv(`[${t}] ${e}`);\n}\nfunction Dt(t, e) {\n if (process.env.NODE_ENV !== \"production\") {\n const r = tr(t) ? new Vv(`[${t}] ${e}`) : t;\n console.warn(r);\n }\n}\nconst Qb = \"utils/dom/style\", Hv = (t = \"\") => t.split(\" \").filter((e) => !!e.trim()), Ql = (t, e) => {\n !t || !e.trim() || t.classList.add(...Hv(e));\n}, ca = (t, e) => {\n !t || !e.trim() || t.classList.remove(...Hv(e));\n}, Ti = (t, e) => {\n var r;\n if (!_t || !t || !e)\n return \"\";\n let n = rm(e);\n n === \"float\" && (n = \"cssFloat\");\n try {\n const a = t.style[n];\n if (a)\n return a;\n const i = (r = document.defaultView) == null ? void 0 : r.getComputedStyle(t, \"\");\n return i ? i[n] : \"\";\n } catch {\n return t.style[n];\n }\n};\nfunction Ja(t, e = \"px\") {\n if (!t)\n return \"\";\n if (qt(t) || Zb(t))\n return `${t}${e}`;\n if (tr(t))\n return t;\n Dt(Qb, \"binding value must be a string or number\");\n}\nfunction Jb(t, e) {\n if (!_t)\n return;\n if (!e) {\n t.scrollTop = 0;\n return;\n }\n const r = [];\n let n = e.offsetParent;\n for (; n !== null && t !== n && t.contains(n); )\n r.push(n), n = n.offsetParent;\n const a = e.offsetTop + r.reduce((u, l) => u + l.offsetTop, 0), i = a + e.offsetHeight, o = t.scrollTop, s = o + t.clientHeight;\n a < o ? t.scrollTop = a : i > s && (t.scrollTop = i - t.clientHeight);\n}\n/*! Element Plus Icons Vue v2.3.1 */\nvar e2 = /* @__PURE__ */ de({\n name: \"Aim\",\n __name: \"aim\",\n setup(t) {\n return (e, r) => (N(), Z(\"svg\", {\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 1024 1024\"\n }, [\n X(\"path\", {\n fill: \"currentColor\",\n d: \"M512 896a384 384 0 1 0 0-768 384 384 0 0 0 0 768m0 64a448 448 0 1 1 0-896 448 448 0 0 1 0 896\"\n }),\n X(\"path\", {\n fill: \"currentColor\",\n d: \"M512 96a32 32 0 0 1 32 32v192a32 32 0 0 1-64 0V128a32 32 0 0 1 32-32m0 576a32 32 0 0 1 32 32v192a32 32 0 1 1-64 0V704a32 32 0 0 1 32-32M96 512a32 32 0 0 1 32-32h192a32 32 0 0 1 0 64H128a32 32 0 0 1-32-32m576 0a32 32 0 0 1 32-32h192a32 32 0 1 1 0 64H704a32 32 0 0 1-32-32\"\n })\n ]));\n }\n}), t2 = e2, r2 = /* @__PURE__ */ de({\n name: \"ArrowDown\",\n __name: \"arrow-down\",\n setup(t) {\n return (e, r) => (N(), Z(\"svg\", {\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 1024 1024\"\n }, [\n X(\"path\", {\n fill: \"currentColor\",\n d: \"M831.872 340.864 512 652.672 192.128 340.864a30.592 30.592 0 0 0-42.752 0 29.12 29.12 0 0 0 0 41.6L489.664 714.24a32 32 0 0 0 44.672 0l340.288-331.712a29.12 29.12 0 0 0 0-41.728 30.592 30.592 0 0 0-42.752 0z\"\n })\n ]));\n }\n}), Gs = r2, n2 = /* @__PURE__ */ de({\n name: \"ArrowUp\",\n __name: \"arrow-up\",\n setup(t) {\n return (e, r) => (N(), Z(\"svg\", {\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 1024 1024\"\n }, [\n X(\"path\", {\n fill: \"currentColor\",\n d: \"m488.832 344.32-339.84 356.672a32 32 0 0 0 0 44.16l.384.384a29.44 29.44 0 0 0 42.688 0l320-335.872 319.872 335.872a29.44 29.44 0 0 0 42.688 0l.384-.384a32 32 0 0 0 0-44.16L535.168 344.32a32 32 0 0 0-46.336 0\"\n })\n ]));\n }\n}), qv = n2, a2 = /* @__PURE__ */ de({\n name: \"CaretRight\",\n __name: \"caret-right\",\n setup(t) {\n return (e, r) => (N(), Z(\"svg\", {\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 1024 1024\"\n }, [\n X(\"path\", {\n fill: \"currentColor\",\n d: \"M384 192v640l384-320.064z\"\n })\n ]));\n }\n}), i2 = a2, o2 = /* @__PURE__ */ de({\n name: \"CircleCheck\",\n __name: \"circle-check\",\n setup(t) {\n return (e, r) => (N(), Z(\"svg\", {\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 1024 1024\"\n }, [\n X(\"path\", {\n fill: \"currentColor\",\n d: \"M512 896a384 384 0 1 0 0-768 384 384 0 0 0 0 768m0 64a448 448 0 1 1 0-896 448 448 0 0 1 0 896\"\n }),\n X(\"path\", {\n fill: \"currentColor\",\n d: \"M745.344 361.344a32 32 0 0 1 45.312 45.312l-288 288a32 32 0 0 1-45.312 0l-160-160a32 32 0 1 1 45.312-45.312L480 626.752l265.344-265.408z\"\n })\n ]));\n }\n}), s2 = o2, l2 = /* @__PURE__ */ de({\n name: \"CircleClose\",\n __name: \"circle-close\",\n setup(t) {\n return (e, r) => (N(), Z(\"svg\", {\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 1024 1024\"\n }, [\n X(\"path\", {\n fill: \"currentColor\",\n d: \"m466.752 512-90.496-90.496a32 32 0 0 1 45.248-45.248L512 466.752l90.496-90.496a32 32 0 1 1 45.248 45.248L557.248 512l90.496 90.496a32 32 0 1 1-45.248 45.248L512 557.248l-90.496 90.496a32 32 0 0 1-45.248-45.248z\"\n }),\n X(\"path\", {\n fill: \"currentColor\",\n d: \"M512 896a384 384 0 1 0 0-768 384 384 0 0 0 0 768m0 64a448 448 0 1 1 0-896 448 448 0 0 1 0 896\"\n })\n ]));\n }\n}), Au = l2, u2 = /* @__PURE__ */ de({\n name: \"Close\",\n __name: \"close\",\n setup(t) {\n return (e, r) => (N(), Z(\"svg\", {\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 1024 1024\"\n }, [\n X(\"path\", {\n fill: \"currentColor\",\n d: \"M764.288 214.592 512 466.88 259.712 214.592a31.936 31.936 0 0 0-45.12 45.12L466.752 512 214.528 764.224a31.936 31.936 0 1 0 45.12 45.184L512 557.184l252.288 252.288a31.936 31.936 0 0 0 45.12-45.12L557.12 512.064l252.288-252.352a31.936 31.936 0 1 0-45.12-45.184z\"\n })\n ]));\n }\n}), Ss = u2, c2 = /* @__PURE__ */ de({\n name: \"CopyDocument\",\n __name: \"copy-document\",\n setup(t) {\n return (e, r) => (N(), Z(\"svg\", {\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 1024 1024\"\n }, [\n X(\"path\", {\n fill: \"currentColor\",\n d: \"M768 832a128 128 0 0 1-128 128H192A128 128 0 0 1 64 832V384a128 128 0 0 1 128-128v64a64 64 0 0 0-64 64v448a64 64 0 0 0 64 64h448a64 64 0 0 0 64-64z\"\n }),\n X(\"path\", {\n fill: \"currentColor\",\n d: \"M384 128a64 64 0 0 0-64 64v448a64 64 0 0 0 64 64h448a64 64 0 0 0 64-64V192a64 64 0 0 0-64-64zm0-64h448a128 128 0 0 1 128 128v448a128 128 0 0 1-128 128H384a128 128 0 0 1-128-128V192A128 128 0 0 1 384 64\"\n })\n ]));\n }\n}), d2 = c2, f2 = /* @__PURE__ */ de({\n name: \"Delete\",\n __name: \"delete\",\n setup(t) {\n return (e, r) => (N(), Z(\"svg\", {\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 1024 1024\"\n }, [\n X(\"path\", {\n fill: \"currentColor\",\n d: \"M160 256H96a32 32 0 0 1 0-64h256V95.936a32 32 0 0 1 32-32h256a32 32 0 0 1 32 32V192h256a32 32 0 1 1 0 64h-64v672a32 32 0 0 1-32 32H192a32 32 0 0 1-32-32zm448-64v-64H416v64zM224 896h576V256H224zm192-128a32 32 0 0 1-32-32V416a32 32 0 0 1 64 0v320a32 32 0 0 1-32 32m192 0a32 32 0 0 1-32-32V416a32 32 0 0 1 64 0v320a32 32 0 0 1-32 32\"\n })\n ]));\n }\n}), v2 = f2, h2 = /* @__PURE__ */ de({\n name: \"Edit\",\n __name: \"edit\",\n setup(t) {\n return (e, r) => (N(), Z(\"svg\", {\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 1024 1024\"\n }, [\n X(\"path\", {\n fill: \"currentColor\",\n d: \"M832 512a32 32 0 1 1 64 0v352a32 32 0 0 1-32 32H160a32 32 0 0 1-32-32V160a32 32 0 0 1 32-32h352a32 32 0 0 1 0 64H192v640h640z\"\n }),\n X(\"path\", {\n fill: \"currentColor\",\n d: \"m469.952 554.24 52.8-7.552L847.104 222.4a32 32 0 1 0-45.248-45.248L477.44 501.44l-7.552 52.8zm422.4-422.4a96 96 0 0 1 0 135.808l-331.84 331.84a32 32 0 0 1-18.112 9.088L436.8 623.68a32 32 0 0 1-36.224-36.224l15.104-105.6a32 32 0 0 1 9.024-18.112l331.904-331.84a96 96 0 0 1 135.744 0z\"\n })\n ]));\n }\n}), p2 = h2, g2 = /* @__PURE__ */ de({\n name: \"Finished\",\n __name: \"finished\",\n setup(t) {\n return (e, r) => (N(), Z(\"svg\", {\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 1024 1024\"\n }, [\n X(\"path\", {\n fill: \"currentColor\",\n d: \"M280.768 753.728 691.456 167.04a32 32 0 1 1 52.416 36.672L314.24 817.472a32 32 0 0 1-45.44 7.296l-230.4-172.8a32 32 0 0 1 38.4-51.2l203.968 152.96zM736 448a32 32 0 1 1 0-64h192a32 32 0 1 1 0 64zM608 640a32 32 0 0 1 0-64h319.936a32 32 0 1 1 0 64zM480 832a32 32 0 1 1 0-64h447.936a32 32 0 1 1 0 64z\"\n })\n ]));\n }\n}), m2 = g2, y2 = /* @__PURE__ */ de({\n name: \"Hide\",\n __name: \"hide\",\n setup(t) {\n return (e, r) => (N(), Z(\"svg\", {\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 1024 1024\"\n }, [\n X(\"path\", {\n fill: \"currentColor\",\n d: \"M876.8 156.8c0-9.6-3.2-16-9.6-22.4-6.4-6.4-12.8-9.6-22.4-9.6-9.6 0-16 3.2-22.4 9.6L736 220.8c-64-32-137.6-51.2-224-60.8-160 16-288 73.6-377.6 176C44.8 438.4 0 496 0 512s48 73.6 134.4 176c22.4 25.6 44.8 48 73.6 67.2l-86.4 89.6c-6.4 6.4-9.6 12.8-9.6 22.4 0 9.6 3.2 16 9.6 22.4 6.4 6.4 12.8 9.6 22.4 9.6 9.6 0 16-3.2 22.4-9.6l704-710.4c3.2-6.4 6.4-12.8 6.4-22.4Zm-646.4 528c-76.8-70.4-128-128-153.6-172.8 28.8-48 80-105.6 153.6-172.8C304 272 400 230.4 512 224c64 3.2 124.8 19.2 176 44.8l-54.4 54.4C598.4 300.8 560 288 512 288c-64 0-115.2 22.4-160 64s-64 96-64 160c0 48 12.8 89.6 35.2 124.8L256 707.2c-9.6-6.4-19.2-16-25.6-22.4Zm140.8-96c-12.8-22.4-19.2-48-19.2-76.8 0-44.8 16-83.2 48-112 32-28.8 67.2-48 112-48 28.8 0 54.4 6.4 73.6 19.2zM889.599 336c-12.8-16-28.8-28.8-41.6-41.6l-48 48c73.6 67.2 124.8 124.8 150.4 169.6-28.8 48-80 105.6-153.6 172.8-73.6 67.2-172.8 108.8-284.8 115.2-51.2-3.2-99.2-12.8-140.8-28.8l-48 48c57.6 22.4 118.4 38.4 188.8 44.8 160-16 288-73.6 377.6-176C979.199 585.6 1024 528 1024 512s-48.001-73.6-134.401-176Z\"\n }),\n X(\"path\", {\n fill: \"currentColor\",\n d: \"M511.998 672c-12.8 0-25.6-3.2-38.4-6.4l-51.2 51.2c28.8 12.8 57.6 19.2 89.6 19.2 64 0 115.2-22.4 160-64 41.6-41.6 64-96 64-160 0-32-6.4-64-19.2-89.6l-51.2 51.2c3.2 12.8 6.4 25.6 6.4 38.4 0 44.8-16 83.2-48 112-32 28.8-67.2 48-112 48Z\"\n })\n ]));\n }\n}), b2 = y2, w2 = /* @__PURE__ */ de({\n name: \"Loading\",\n __name: \"loading\",\n setup(t) {\n return (e, r) => (N(), Z(\"svg\", {\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 1024 1024\"\n }, [\n X(\"path\", {\n fill: \"currentColor\",\n d: \"M512 64a32 32 0 0 1 32 32v192a32 32 0 0 1-64 0V96a32 32 0 0 1 32-32m0 640a32 32 0 0 1 32 32v192a32 32 0 1 1-64 0V736a32 32 0 0 1 32-32m448-192a32 32 0 0 1-32 32H736a32 32 0 1 1 0-64h192a32 32 0 0 1 32 32m-640 0a32 32 0 0 1-32 32H96a32 32 0 0 1 0-64h192a32 32 0 0 1 32 32M195.2 195.2a32 32 0 0 1 45.248 0L376.32 331.008a32 32 0 0 1-45.248 45.248L195.2 240.448a32 32 0 0 1 0-45.248zm452.544 452.544a32 32 0 0 1 45.248 0L828.8 783.552a32 32 0 0 1-45.248 45.248L647.744 692.992a32 32 0 0 1 0-45.248zM828.8 195.264a32 32 0 0 1 0 45.184L692.992 376.32a32 32 0 0 1-45.248-45.248l135.808-135.808a32 32 0 0 1 45.248 0m-452.544 452.48a32 32 0 0 1 0 45.248L240.448 828.8a32 32 0 0 1-45.248-45.248l135.808-135.808a32 32 0 0 1 45.248 0z\"\n })\n ]));\n }\n}), Mu = w2, x2 = /* @__PURE__ */ de({\n name: \"Lock\",\n __name: \"lock\",\n setup(t) {\n return (e, r) => (N(), Z(\"svg\", {\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 1024 1024\"\n }, [\n X(\"path\", {\n fill: \"currentColor\",\n d: \"M224 448a32 32 0 0 0-32 32v384a32 32 0 0 0 32 32h576a32 32 0 0 0 32-32V480a32 32 0 0 0-32-32zm0-64h576a96 96 0 0 1 96 96v384a96 96 0 0 1-96 96H224a96 96 0 0 1-96-96V480a96 96 0 0 1 96-96\"\n }),\n X(\"path\", {\n fill: \"currentColor\",\n d: \"M512 544a32 32 0 0 1 32 32v192a32 32 0 1 1-64 0V576a32 32 0 0 1 32-32m192-160v-64a192 192 0 1 0-384 0v64zM512 64a256 256 0 0 1 256 256v128H256V320A256 256 0 0 1 512 64\"\n })\n ]));\n }\n}), C2 = x2, E2 = /* @__PURE__ */ de({\n name: \"Notebook\",\n __name: \"notebook\",\n setup(t) {\n return (e, r) => (N(), Z(\"svg\", {\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 1024 1024\"\n }, [\n X(\"path\", {\n fill: \"currentColor\",\n d: \"M192 128v768h640V128zm-32-64h704a32 32 0 0 1 32 32v832a32 32 0 0 1-32 32H160a32 32 0 0 1-32-32V96a32 32 0 0 1 32-32\"\n }),\n X(\"path\", {\n fill: \"currentColor\",\n d: \"M672 128h64v768h-64zM96 192h128q32 0 32 32t-32 32H96q-32 0-32-32t32-32m0 192h128q32 0 32 32t-32 32H96q-32 0-32-32t32-32m0 192h128q32 0 32 32t-32 32H96q-32 0-32-32t32-32m0 192h128q32 0 32 32t-32 32H96q-32 0-32-32t32-32\"\n })\n ]));\n }\n}), k2 = E2, S2 = /* @__PURE__ */ de({\n name: \"Unlock\",\n __name: \"unlock\",\n setup(t) {\n return (e, r) => (N(), Z(\"svg\", {\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 1024 1024\"\n }, [\n X(\"path\", {\n fill: \"currentColor\",\n d: \"M224 448a32 32 0 0 0-32 32v384a32 32 0 0 0 32 32h576a32 32 0 0 0 32-32V480a32 32 0 0 0-32-32zm0-64h576a96 96 0 0 1 96 96v384a96 96 0 0 1-96 96H224a96 96 0 0 1-96-96V480a96 96 0 0 1 96-96\"\n }),\n X(\"path\", {\n fill: \"currentColor\",\n d: \"M512 544a32 32 0 0 1 32 32v192a32 32 0 1 1-64 0V576a32 32 0 0 1 32-32m178.304-295.296A192.064 192.064 0 0 0 320 320v64h352l96 38.4V448H256V320a256 256 0 0 1 493.76-95.104z\"\n })\n ]));\n }\n}), T2 = S2, _2 = /* @__PURE__ */ de({\n name: \"View\",\n __name: \"view\",\n setup(t) {\n return (e, r) => (N(), Z(\"svg\", {\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 1024 1024\"\n }, [\n X(\"path\", {\n fill: \"currentColor\",\n d: \"M512 160c320 0 512 352 512 352S832 864 512 864 0 512 0 512s192-352 512-352m0 64c-225.28 0-384.128 208.064-436.8 288 52.608 79.872 211.456 288 436.8 288 225.28 0 384.128-208.064 436.8-288-52.608-79.872-211.456-288-436.8-288zm0 64a224 224 0 1 1 0 448 224 224 0 0 1 0-448m0 64a160.192 160.192 0 0 0-160 160c0 88.192 71.744 160 160 160s160-71.808 160-160-71.744-160-160-160\"\n })\n ]));\n }\n}), D2 = _2, P2 = /* @__PURE__ */ de({\n name: \"Warning\",\n __name: \"warning\",\n setup(t) {\n return (e, r) => (N(), Z(\"svg\", {\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 1024 1024\"\n }, [\n X(\"path\", {\n fill: \"currentColor\",\n d: \"M512 64a448 448 0 1 1 0 896 448 448 0 0 1 0-896m0 832a384 384 0 0 0 0-768 384 384 0 0 0 0 768m48-176a48 48 0 1 1-96 0 48 48 0 0 1 96 0m-48-464a32 32 0 0 1 32 32v288a32 32 0 0 1-64 0V288a32 32 0 0 1 32-32\"\n })\n ]));\n }\n}), O2 = P2, L2 = /* @__PURE__ */ de({\n name: \"ZoomIn\",\n __name: \"zoom-in\",\n setup(t) {\n return (e, r) => (N(), Z(\"svg\", {\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 1024 1024\"\n }, [\n X(\"path\", {\n fill: \"currentColor\",\n d: \"m795.904 750.72 124.992 124.928a32 32 0 0 1-45.248 45.248L750.656 795.904a416 416 0 1 1 45.248-45.248zM480 832a352 352 0 1 0 0-704 352 352 0 0 0 0 704m-32-384v-96a32 32 0 0 1 64 0v96h96a32 32 0 0 1 0 64h-96v96a32 32 0 0 1-64 0v-96h-96a32 32 0 0 1 0-64z\"\n })\n ]));\n }\n}), I2 = L2, F2 = /* @__PURE__ */ de({\n name: \"ZoomOut\",\n __name: \"zoom-out\",\n setup(t) {\n return (e, r) => (N(), Z(\"svg\", {\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 1024 1024\"\n }, [\n X(\"path\", {\n fill: \"currentColor\",\n d: \"m795.904 750.72 124.992 124.928a32 32 0 0 1-45.248 45.248L750.656 795.904a416 416 0 1 1 45.248-45.248zM480 832a352 352 0 1 0 0-704 352 352 0 0 0 0 704M352 448h256a32 32 0 0 1 0 64H352a32 32 0 0 1 0-64\"\n })\n ]));\n }\n}), A2 = F2;\nconst Kv = \"__epPropKey\", $e = (t) => t, M2 = (t) => Ht(t) && !!t[Kv], Ws = (t, e) => {\n if (!Ht(t) || M2(t))\n return t;\n const { values: r, required: n, default: a, type: i, validator: o } = t, u = {\n type: i,\n required: !!n,\n validator: r || o ? (l) => {\n let c = !1, d = [];\n if (r && (d = Array.from(r), va(t, \"default\") && d.push(a), c || (c = d.includes(l))), o && (c || (c = o(l))), !c && d.length > 0) {\n const v = [...new Set(d)].map((h) => JSON.stringify(h)).join(\", \");\n b0(`Invalid prop: validation failed${e ? ` for prop \"${e}\"` : \"\"}. Expected one of [${v}], got value ${JSON.stringify(l)}.`);\n }\n return c;\n } : void 0,\n [Kv]: !0\n };\n return va(t, \"default\") && (u.default = a), u;\n}, rt = (t) => Cs(Object.entries(t).map(([e, r]) => [\n e,\n Ws(r, e)\n])), Hn = $e([\n String,\n Object,\n Function\n]), Uv = {\n validating: Mu,\n success: s2,\n error: Au\n}, $t = (t, e) => {\n if (t.install = (r) => {\n for (const n of [t, ...Object.values(e ?? {})])\n r.component(n.name, n);\n }, e)\n for (const [r, n] of Object.entries(e))\n t[r] = n;\n return t;\n}, B2 = (t, e) => (t.install = (r) => {\n r.directive(e, t);\n}, t), xn = (t) => (t.install = Wi, t), Lt = {\n tab: \"Tab\",\n enter: \"Enter\",\n space: \"Space\",\n left: \"ArrowLeft\",\n up: \"ArrowUp\",\n right: \"ArrowRight\",\n down: \"ArrowDown\",\n esc: \"Escape\",\n delete: \"Delete\",\n backspace: \"Backspace\",\n numpadEnter: \"NumpadEnter\",\n pageUp: \"PageUp\",\n pageDown: \"PageDown\",\n home: \"Home\",\n end: \"End\"\n}, zt = \"update:modelValue\", Bu = \"change\", Gv = [\"\", \"default\", \"small\", \"large\"], N2 = (t) => /([\\uAC00-\\uD7AF\\u3130-\\u318F])+/gi.test(t), Ra = (t) => t, $2 = [\"class\", \"style\"], R2 = /^on[A-Z]/, z2 = (t = {}) => {\n const { excludeListeners: e = !1, excludeKeys: r } = t, n = V(() => ((r == null ? void 0 : r.value) || []).concat($2)), a = gt();\n return a ? V(() => {\n var i;\n return Cs(Object.entries((i = a.proxy) == null ? void 0 : i.$attrs).filter(([o]) => !n.value.includes(o) && !(e && R2.test(o))));\n }) : (Dt(\"use-attrs\", \"getCurrentInstance() returned null. useAttrs() must be called at the top of a setup function\"), V(() => ({})));\n}, as = ({ from: t, replacement: e, scope: r, version: n, ref: a, type: i = \"API\" }, o) => {\n Pe(() => P(o), (s) => {\n s && Dt(r, `[${i}] ${t} is about to be deprecated in version ${n}, please use ${e} instead.\nFor more detail, please visit: ${a}\n`);\n }, {\n immediate: !0\n });\n};\nvar V2 = {\n name: \"en\",\n el: {\n breadcrumb: {\n label: \"Breadcrumb\"\n },\n colorpicker: {\n confirm: \"OK\",\n clear: \"Clear\",\n defaultLabel: \"color picker\",\n description: \"current color is {color}. press enter to select a new color.\",\n alphaLabel: \"pick alpha value\"\n },\n datepicker: {\n now: \"Now\",\n today: \"Today\",\n cancel: \"Cancel\",\n clear: \"Clear\",\n confirm: \"OK\",\n dateTablePrompt: \"Use the arrow keys and enter to select the day of the month\",\n monthTablePrompt: \"Use the arrow keys and enter to select the month\",\n yearTablePrompt: \"Use the arrow keys and enter to select the year\",\n selectedDate: \"Selected date\",\n selectDate: \"Select date\",\n selectTime: \"Select time\",\n startDate: \"Start Date\",\n startTime: \"Start Time\",\n endDate: \"End Date\",\n endTime: \"End Time\",\n prevYear: \"Previous Year\",\n nextYear: \"Next Year\",\n prevMonth: \"Previous Month\",\n nextMonth: \"Next Month\",\n year: \"\",\n month1: \"January\",\n month2: \"February\",\n month3: \"March\",\n month4: \"April\",\n month5: \"May\",\n month6: \"June\",\n month7: \"July\",\n month8: \"August\",\n month9: \"September\",\n month10: \"October\",\n month11: \"November\",\n month12: \"December\",\n week: \"week\",\n weeks: {\n sun: \"Sun\",\n mon: \"Mon\",\n tue: \"Tue\",\n wed: \"Wed\",\n thu: \"Thu\",\n fri: \"Fri\",\n sat: \"Sat\"\n },\n weeksFull: {\n sun: \"Sunday\",\n mon: \"Monday\",\n tue: \"Tuesday\",\n wed: \"Wednesday\",\n thu: \"Thursday\",\n fri: \"Friday\",\n sat: \"Saturday\"\n },\n months: {\n jan: \"Jan\",\n feb: \"Feb\",\n mar: \"Mar\",\n apr: \"Apr\",\n may: \"May\",\n jun: \"Jun\",\n jul: \"Jul\",\n aug: \"Aug\",\n sep: \"Sep\",\n oct: \"Oct\",\n nov: \"Nov\",\n dec: \"Dec\"\n }\n },\n inputNumber: {\n decrease: \"decrease number\",\n increase: \"increase number\"\n },\n select: {\n loading: \"Loading\",\n noMatch: \"No matching data\",\n noData: \"No data\",\n placeholder: \"Select\"\n },\n mention: {\n loading: \"Loading\"\n },\n dropdown: {\n toggleDropdown: \"Toggle Dropdown\"\n },\n cascader: {\n noMatch: \"No matching data\",\n loading: \"Loading\",\n placeholder: \"Select\",\n noData: \"No data\"\n },\n pagination: {\n goto: \"Go to\",\n pagesize: \"/page\",\n total: \"Total {total}\",\n pageClassifier: \"\",\n page: \"Page\",\n prev: \"Go to previous page\",\n next: \"Go to next page\",\n currentPage: \"page {pager}\",\n prevPages: \"Previous {pager} pages\",\n nextPages: \"Next {pager} pages\",\n deprecationWarning: \"Deprecated usages detected, please refer to the el-pagination documentation for more details\"\n },\n dialog: {\n close: \"Close this dialog\"\n },\n drawer: {\n close: \"Close this dialog\"\n },\n messagebox: {\n title: \"Message\",\n confirm: \"OK\",\n cancel: \"Cancel\",\n error: \"Illegal input\",\n close: \"Close this dialog\"\n },\n upload: {\n deleteTip: \"press delete to remove\",\n delete: \"Delete\",\n preview: \"Preview\",\n continue: \"Continue\"\n },\n slider: {\n defaultLabel: \"slider between {min} and {max}\",\n defaultRangeStartLabel: \"pick start value\",\n defaultRangeEndLabel: \"pick end value\"\n },\n table: {\n emptyText: \"No Data\",\n confirmFilter: \"Confirm\",\n resetFilter: \"Reset\",\n clearFilter: \"All\",\n sumText: \"Sum\"\n },\n tour: {\n next: \"Next\",\n previous: \"Previous\",\n finish: \"Finish\"\n },\n tree: {\n emptyText: \"No Data\"\n },\n transfer: {\n noMatch: \"No matching data\",\n noData: \"No data\",\n titles: [\"List 1\", \"List 2\"],\n filterPlaceholder: \"Enter keyword\",\n noCheckedFormat: \"{total} items\",\n hasCheckedFormat: \"{checked}/{total} checked\"\n },\n image: {\n error: \"FAILED\"\n },\n pageHeader: {\n title: \"Back\"\n },\n popconfirm: {\n confirmButtonText: \"Yes\",\n cancelButtonText: \"No\"\n },\n carousel: {\n leftArrow: \"Carousel arrow left\",\n rightArrow: \"Carousel arrow right\",\n indicator: \"Carousel switch to index {index}\"\n }\n }\n};\nconst H2 = (t) => (e, r) => q2(e, r, P(t)), q2 = (t, e, r) => fn(r, t, t).replace(/\\{(\\w+)\\}/g, (n, a) => {\n var i;\n return `${(i = e == null ? void 0 : e[a]) != null ? i : `{${a}}`}`;\n}), K2 = (t) => {\n const e = V(() => P(t).name), r = Xa(t) ? t : ce(t);\n return {\n lang: e,\n locale: r,\n t: H2(t)\n };\n}, Wv = Symbol(\"localeContextKey\"), yo = (t) => {\n const e = t || Ue(Wv, ce());\n return K2(V(() => e.value || V2));\n}, is = \"el\", U2 = \"is-\", Qn = (t, e, r, n, a) => {\n let i = `${t}-${e}`;\n return r && (i += `-${r}`), n && (i += `__${n}`), a && (i += `--${a}`), i;\n}, Yv = Symbol(\"namespaceContextKey\"), Nu = (t) => {\n const e = t || (gt() ? Ue(Yv, ce(is)) : ce(is));\n return V(() => P(e) || is);\n}, He = (t, e) => {\n const r = Nu(e);\n return {\n namespace: r,\n b: (p = \"\") => Qn(r.value, t, p, \"\", \"\"),\n e: (p) => p ? Qn(r.value, t, \"\", p, \"\") : \"\",\n m: (p) => p ? Qn(r.value, t, \"\", \"\", p) : \"\",\n be: (p, m) => p && m ? Qn(r.value, t, p, m, \"\") : \"\",\n em: (p, m) => p && m ? Qn(r.value, t, \"\", p, m) : \"\",\n bm: (p, m) => p && m ? Qn(r.value, t, p, \"\", m) : \"\",\n bem: (p, m, g) => p && m && g ? Qn(r.value, t, p, m, g) : \"\",\n is: (p, ...m) => {\n const g = m.length >= 1 ? m[0] : !0;\n return p && g ? `${U2}${p}` : \"\";\n },\n cssVar: (p) => {\n const m = {};\n for (const g in p)\n p[g] && (m[`--${r.value}-${g}`] = p[g]);\n return m;\n },\n cssVarName: (p) => `--${r.value}-${p}`,\n cssVarBlock: (p) => {\n const m = {};\n for (const g in p)\n p[g] && (m[`--${r.value}-${t}-${g}`] = p[g]);\n return m;\n },\n cssVarBlockName: (p) => `--${r.value}-${t}-${p}`\n };\n}, G2 = Ws({\n type: $e(Boolean),\n default: null\n}), W2 = Ws({\n type: $e(Function)\n}), Y2 = (t) => {\n const e = `update:${t}`, r = `onUpdate:${t}`, n = [e], a = {\n [t]: G2,\n [r]: W2\n };\n return {\n useModelToggle: ({\n indicator: o,\n toggleReason: s,\n shouldHideWhenRouteChanges: u,\n shouldProceed: l,\n onShow: c,\n onHide: d\n }) => {\n const v = gt(), { emit: h } = v, f = v.props, p = V(() => lr(f[r])), m = V(() => f[t] === null), g = (x) => {\n o.value !== !0 && (o.value = !0, s && (s.value = x), lr(c) && c(x));\n }, y = (x) => {\n o.value !== !1 && (o.value = !1, s && (s.value = x), lr(d) && d(x));\n }, b = (x) => {\n if (f.disabled === !0 || lr(l) && !l())\n return;\n const T = p.value && _t;\n T && h(e, !0), (m.value || !T) && g(x);\n }, w = (x) => {\n if (f.disabled === !0 || !_t)\n return;\n const T = p.value && _t;\n T && h(e, !1), (m.value || !T) && y(x);\n }, C = (x) => {\n Qa(x) && (f.disabled && x ? p.value && h(e, !1) : o.value !== x && (x ? g() : y()));\n }, E = () => {\n o.value ? w() : b();\n };\n return Pe(() => f[t], C), u && v.appContext.config.globalProperties.$route !== void 0 && Pe(() => ({\n ...v.proxy.$route\n }), () => {\n u.value && o.value && w();\n }), Et(() => {\n C(f[t]);\n }), {\n hide: w,\n show: b,\n toggle: E,\n hasUpdateHandler: p\n };\n },\n useModelToggleProps: a,\n useModelToggleEmits: n\n };\n}, Zv = (t) => {\n const e = gt();\n return V(() => {\n var r, n;\n return (n = (r = e == null ? void 0 : e.proxy) == null ? void 0 : r.$props) == null ? void 0 : n[t];\n });\n};\nvar vr = \"top\", _r = \"bottom\", Dr = \"right\", hr = \"left\", $u = \"auto\", bo = [vr, _r, Dr, hr], ei = \"start\", Xi = \"end\", Z2 = \"clippingParents\", Xv = \"viewport\", _i = \"popper\", X2 = \"reference\", pd = bo.reduce(function(t, e) {\n return t.concat([e + \"-\" + ei, e + \"-\" + Xi]);\n}, []), Ys = [].concat(bo, [$u]).reduce(function(t, e) {\n return t.concat([e, e + \"-\" + ei, e + \"-\" + Xi]);\n}, []), j2 = \"beforeRead\", Q2 = \"read\", J2 = \"afterRead\", ew = \"beforeMain\", tw = \"main\", rw = \"afterMain\", nw = \"beforeWrite\", aw = \"write\", iw = \"afterWrite\", ow = [j2, Q2, J2, ew, tw, rw, nw, aw, iw];\nfunction tn(t) {\n return t ? (t.nodeName || \"\").toLowerCase() : null;\n}\nfunction Kr(t) {\n if (t == null) return window;\n if (t.toString() !== \"[object Window]\") {\n var e = t.ownerDocument;\n return e && e.defaultView || window;\n }\n return t;\n}\nfunction ti(t) {\n var e = Kr(t).Element;\n return t instanceof e || t instanceof Element;\n}\nfunction Tr(t) {\n var e = Kr(t).HTMLElement;\n return t instanceof e || t instanceof HTMLElement;\n}\nfunction Ru(t) {\n if (typeof ShadowRoot > \"u\") return !1;\n var e = Kr(t).ShadowRoot;\n return t instanceof e || t instanceof ShadowRoot;\n}\nfunction sw(t) {\n var e = t.state;\n Object.keys(e.elements).forEach(function(r) {\n var n = e.styles[r] || {}, a = e.attributes[r] || {}, i = e.elements[r];\n !Tr(i) || !tn(i) || (Object.assign(i.style, n), Object.keys(a).forEach(function(o) {\n var s = a[o];\n s === !1 ? i.removeAttribute(o) : i.setAttribute(o, s === !0 ? \"\" : s);\n }));\n });\n}\nfunction lw(t) {\n var e = t.state, r = { popper: { position: e.options.strategy, left: \"0\", top: \"0\", margin: \"0\" }, arrow: { position: \"absolute\" }, reference: {} };\n return Object.assign(e.elements.popper.style, r.popper), e.styles = r, e.elements.arrow && Object.assign(e.elements.arrow.style, r.arrow), function() {\n Object.keys(e.elements).forEach(function(n) {\n var a = e.elements[n], i = e.attributes[n] || {}, o = Object.keys(e.styles.hasOwnProperty(n) ? e.styles[n] : r[n]), s = o.reduce(function(u, l) {\n return u[l] = \"\", u;\n }, {});\n !Tr(a) || !tn(a) || (Object.assign(a.style, s), Object.keys(i).forEach(function(u) {\n a.removeAttribute(u);\n }));\n });\n };\n}\nvar jv = { name: \"applyStyles\", enabled: !0, phase: \"write\", fn: sw, effect: lw, requires: [\"computeStyles\"] };\nfunction Qr(t) {\n return t.split(\"-\")[0];\n}\nvar da = Math.max, Ts = Math.min, ri = Math.round;\nfunction ni(t, e) {\n e === void 0 && (e = !1);\n var r = t.getBoundingClientRect(), n = 1, a = 1;\n if (Tr(t) && e) {\n var i = t.offsetHeight, o = t.offsetWidth;\n o > 0 && (n = ri(r.width) / o || 1), i > 0 && (a = ri(r.height) / i || 1);\n }\n return { width: r.width / n, height: r.height / a, top: r.top / a, right: r.right / n, bottom: r.bottom / a, left: r.left / n, x: r.left / n, y: r.top / a };\n}\nfunction zu(t) {\n var e = ni(t), r = t.offsetWidth, n = t.offsetHeight;\n return Math.abs(e.width - r) <= 1 && (r = e.width), Math.abs(e.height - n) <= 1 && (n = e.height), { x: t.offsetLeft, y: t.offsetTop, width: r, height: n };\n}\nfunction Qv(t, e) {\n var r = e.getRootNode && e.getRootNode();\n if (t.contains(e)) return !0;\n if (r && Ru(r)) {\n var n = e;\n do {\n if (n && t.isSameNode(n)) return !0;\n n = n.parentNode || n.host;\n } while (n);\n }\n return !1;\n}\nfunction pn(t) {\n return Kr(t).getComputedStyle(t);\n}\nfunction uw(t) {\n return [\"table\", \"td\", \"th\"].indexOf(tn(t)) >= 0;\n}\nfunction Yn(t) {\n return ((ti(t) ? t.ownerDocument : t.document) || window.document).documentElement;\n}\nfunction Zs(t) {\n return tn(t) === \"html\" ? t : t.assignedSlot || t.parentNode || (Ru(t) ? t.host : null) || Yn(t);\n}\nfunction gd(t) {\n return !Tr(t) || pn(t).position === \"fixed\" ? null : t.offsetParent;\n}\nfunction cw(t) {\n var e = navigator.userAgent.toLowerCase().indexOf(\"firefox\") !== -1, r = navigator.userAgent.indexOf(\"Trident\") !== -1;\n if (r && Tr(t)) {\n var n = pn(t);\n if (n.position === \"fixed\") return null;\n }\n var a = Zs(t);\n for (Ru(a) && (a = a.host); Tr(a) && [\"html\", \"body\"].indexOf(tn(a)) < 0; ) {\n var i = pn(a);\n if (i.transform !== \"none\" || i.perspective !== \"none\" || i.contain === \"paint\" || [\"transform\", \"perspective\"].indexOf(i.willChange) !== -1 || e && i.willChange === \"filter\" || e && i.filter && i.filter !== \"none\") return a;\n a = a.parentNode;\n }\n return null;\n}\nfunction wo(t) {\n for (var e = Kr(t), r = gd(t); r && uw(r) && pn(r).position === \"static\"; ) r = gd(r);\n return r && (tn(r) === \"html\" || tn(r) === \"body\" && pn(r).position === \"static\") ? e : r || cw(t) || e;\n}\nfunction Vu(t) {\n return [\"top\", \"bottom\"].indexOf(t) >= 0 ? \"x\" : \"y\";\n}\nfunction Vi(t, e, r) {\n return da(t, Ts(e, r));\n}\nfunction dw(t, e, r) {\n var n = Vi(t, e, r);\n return n > r ? r : n;\n}\nfunction Jv() {\n return { top: 0, right: 0, bottom: 0, left: 0 };\n}\nfunction eh(t) {\n return Object.assign({}, Jv(), t);\n}\nfunction th(t, e) {\n return e.reduce(function(r, n) {\n return r[n] = t, r;\n }, {});\n}\nvar fw = function(t, e) {\n return t = typeof t == \"function\" ? t(Object.assign({}, e.rects, { placement: e.placement })) : t, eh(typeof t != \"number\" ? t : th(t, bo));\n};\nfunction vw(t) {\n var e, r = t.state, n = t.name, a = t.options, i = r.elements.arrow, o = r.modifiersData.popperOffsets, s = Qr(r.placement), u = Vu(s), l = [hr, Dr].indexOf(s) >= 0, c = l ? \"height\" : \"width\";\n if (!(!i || !o)) {\n var d = fw(a.padding, r), v = zu(i), h = u === \"y\" ? vr : hr, f = u === \"y\" ? _r : Dr, p = r.rects.reference[c] + r.rects.reference[u] - o[u] - r.rects.popper[c], m = o[u] - r.rects.reference[u], g = wo(i), y = g ? u === \"y\" ? g.clientHeight || 0 : g.clientWidth || 0 : 0, b = p / 2 - m / 2, w = d[h], C = y - v[c] - d[f], E = y / 2 - v[c] / 2 + b, x = Vi(w, E, C), T = u;\n r.modifiersData[n] = (e = {}, e[T] = x, e.centerOffset = x - E, e);\n }\n}\nfunction hw(t) {\n var e = t.state, r = t.options, n = r.element, a = n === void 0 ? \"[data-popper-arrow]\" : n;\n a != null && (typeof a == \"string\" && (a = e.elements.popper.querySelector(a), !a) || !Qv(e.elements.popper, a) || (e.elements.arrow = a));\n}\nvar pw = { name: \"arrow\", enabled: !0, phase: \"main\", fn: vw, effect: hw, requires: [\"popperOffsets\"], requiresIfExists: [\"preventOverflow\"] };\nfunction ai(t) {\n return t.split(\"-\")[1];\n}\nvar gw = { top: \"auto\", right: \"auto\", bottom: \"auto\", left: \"auto\" };\nfunction mw(t) {\n var e = t.x, r = t.y, n = window, a = n.devicePixelRatio || 1;\n return { x: ri(e * a) / a || 0, y: ri(r * a) / a || 0 };\n}\nfunction md(t) {\n var e, r = t.popper, n = t.popperRect, a = t.placement, i = t.variation, o = t.offsets, s = t.position, u = t.gpuAcceleration, l = t.adaptive, c = t.roundOffsets, d = t.isFixed, v = o.x, h = v === void 0 ? 0 : v, f = o.y, p = f === void 0 ? 0 : f, m = typeof c == \"function\" ? c({ x: h, y: p }) : { x: h, y: p };\n h = m.x, p = m.y;\n var g = o.hasOwnProperty(\"x\"), y = o.hasOwnProperty(\"y\"), b = hr, w = vr, C = window;\n if (l) {\n var E = wo(r), x = \"clientHeight\", T = \"clientWidth\";\n if (E === Kr(r) && (E = Yn(r), pn(E).position !== \"static\" && s === \"absolute\" && (x = \"scrollHeight\", T = \"scrollWidth\")), E = E, a === vr || (a === hr || a === Dr) && i === Xi) {\n w = _r;\n var k = d && E === C && C.visualViewport ? C.visualViewport.height : E[x];\n p -= k - n.height, p *= u ? 1 : -1;\n }\n if (a === hr || (a === vr || a === _r) && i === Xi) {\n b = Dr;\n var _ = d && E === C && C.visualViewport ? C.visualViewport.width : E[T];\n h -= _ - n.width, h *= u ? 1 : -1;\n }\n }\n var D = Object.assign({ position: s }, l && gw), O = c === !0 ? mw({ x: h, y: p }) : { x: h, y: p };\n if (h = O.x, p = O.y, u) {\n var F;\n return Object.assign({}, D, (F = {}, F[w] = y ? \"0\" : \"\", F[b] = g ? \"0\" : \"\", F.transform = (C.devicePixelRatio || 1) <= 1 ? \"translate(\" + h + \"px, \" + p + \"px)\" : \"translate3d(\" + h + \"px, \" + p + \"px, 0)\", F));\n }\n return Object.assign({}, D, (e = {}, e[w] = y ? p + \"px\" : \"\", e[b] = g ? h + \"px\" : \"\", e.transform = \"\", e));\n}\nfunction yw(t) {\n var e = t.state, r = t.options, n = r.gpuAcceleration, a = n === void 0 ? !0 : n, i = r.adaptive, o = i === void 0 ? !0 : i, s = r.roundOffsets, u = s === void 0 ? !0 : s, l = { placement: Qr(e.placement), variation: ai(e.placement), popper: e.elements.popper, popperRect: e.rects.popper, gpuAcceleration: a, isFixed: e.options.strategy === \"fixed\" };\n e.modifiersData.popperOffsets != null && (e.styles.popper = Object.assign({}, e.styles.popper, md(Object.assign({}, l, { offsets: e.modifiersData.popperOffsets, position: e.options.strategy, adaptive: o, roundOffsets: u })))), e.modifiersData.arrow != null && (e.styles.arrow = Object.assign({}, e.styles.arrow, md(Object.assign({}, l, { offsets: e.modifiersData.arrow, position: \"absolute\", adaptive: !1, roundOffsets: u })))), e.attributes.popper = Object.assign({}, e.attributes.popper, { \"data-popper-placement\": e.placement });\n}\nvar rh = { name: \"computeStyles\", enabled: !0, phase: \"beforeWrite\", fn: yw, data: {} }, $o = { passive: !0 };\nfunction bw(t) {\n var e = t.state, r = t.instance, n = t.options, a = n.scroll, i = a === void 0 ? !0 : a, o = n.resize, s = o === void 0 ? !0 : o, u = Kr(e.elements.popper), l = [].concat(e.scrollParents.reference, e.scrollParents.popper);\n return i && l.forEach(function(c) {\n c.addEventListener(\"scroll\", r.update, $o);\n }), s && u.addEventListener(\"resize\", r.update, $o), function() {\n i && l.forEach(function(c) {\n c.removeEventListener(\"scroll\", r.update, $o);\n }), s && u.removeEventListener(\"resize\", r.update, $o);\n };\n}\nvar nh = { name: \"eventListeners\", enabled: !0, phase: \"write\", fn: function() {\n}, effect: bw, data: {} }, ww = { left: \"right\", right: \"left\", bottom: \"top\", top: \"bottom\" };\nfunction os(t) {\n return t.replace(/left|right|bottom|top/g, function(e) {\n return ww[e];\n });\n}\nvar xw = { start: \"end\", end: \"start\" };\nfunction yd(t) {\n return t.replace(/start|end/g, function(e) {\n return xw[e];\n });\n}\nfunction Hu(t) {\n var e = Kr(t), r = e.pageXOffset, n = e.pageYOffset;\n return { scrollLeft: r, scrollTop: n };\n}\nfunction qu(t) {\n return ni(Yn(t)).left + Hu(t).scrollLeft;\n}\nfunction Cw(t) {\n var e = Kr(t), r = Yn(t), n = e.visualViewport, a = r.clientWidth, i = r.clientHeight, o = 0, s = 0;\n return n && (a = n.width, i = n.height, /^((?!chrome|android).)*safari/i.test(navigator.userAgent) || (o = n.offsetLeft, s = n.offsetTop)), { width: a, height: i, x: o + qu(t), y: s };\n}\nfunction Ew(t) {\n var e, r = Yn(t), n = Hu(t), a = (e = t.ownerDocument) == null ? void 0 : e.body, i = da(r.scrollWidth, r.clientWidth, a ? a.scrollWidth : 0, a ? a.clientWidth : 0), o = da(r.scrollHeight, r.clientHeight, a ? a.scrollHeight : 0, a ? a.clientHeight : 0), s = -n.scrollLeft + qu(t), u = -n.scrollTop;\n return pn(a || r).direction === \"rtl\" && (s += da(r.clientWidth, a ? a.clientWidth : 0) - i), { width: i, height: o, x: s, y: u };\n}\nfunction Ku(t) {\n var e = pn(t), r = e.overflow, n = e.overflowX, a = e.overflowY;\n return /auto|scroll|overlay|hidden/.test(r + a + n);\n}\nfunction ah(t) {\n return [\"html\", \"body\", \"#document\"].indexOf(tn(t)) >= 0 ? t.ownerDocument.body : Tr(t) && Ku(t) ? t : ah(Zs(t));\n}\nfunction Hi(t, e) {\n var r;\n e === void 0 && (e = []);\n var n = ah(t), a = n === ((r = t.ownerDocument) == null ? void 0 : r.body), i = Kr(n), o = a ? [i].concat(i.visualViewport || [], Ku(n) ? n : []) : n, s = e.concat(o);\n return a ? s : s.concat(Hi(Zs(o)));\n}\nfunction Jl(t) {\n return Object.assign({}, t, { left: t.x, top: t.y, right: t.x + t.width, bottom: t.y + t.height });\n}\nfunction kw(t) {\n var e = ni(t);\n return e.top = e.top + t.clientTop, e.left = e.left + t.clientLeft, e.bottom = e.top + t.clientHeight, e.right = e.left + t.clientWidth, e.width = t.clientWidth, e.height = t.clientHeight, e.x = e.left, e.y = e.top, e;\n}\nfunction bd(t, e) {\n return e === Xv ? Jl(Cw(t)) : ti(e) ? kw(e) : Jl(Ew(Yn(t)));\n}\nfunction Sw(t) {\n var e = Hi(Zs(t)), r = [\"absolute\", \"fixed\"].indexOf(pn(t).position) >= 0, n = r && Tr(t) ? wo(t) : t;\n return ti(n) ? e.filter(function(a) {\n return ti(a) && Qv(a, n) && tn(a) !== \"body\";\n }) : [];\n}\nfunction Tw(t, e, r) {\n var n = e === \"clippingParents\" ? Sw(t) : [].concat(e), a = [].concat(n, [r]), i = a[0], o = a.reduce(function(s, u) {\n var l = bd(t, u);\n return s.top = da(l.top, s.top), s.right = Ts(l.right, s.right), s.bottom = Ts(l.bottom, s.bottom), s.left = da(l.left, s.left), s;\n }, bd(t, i));\n return o.width = o.right - o.left, o.height = o.bottom - o.top, o.x = o.left, o.y = o.top, o;\n}\nfunction ih(t) {\n var e = t.reference, r = t.element, n = t.placement, a = n ? Qr(n) : null, i = n ? ai(n) : null, o = e.x + e.width / 2 - r.width / 2, s = e.y + e.height / 2 - r.height / 2, u;\n switch (a) {\n case vr:\n u = { x: o, y: e.y - r.height };\n break;\n case _r:\n u = { x: o, y: e.y + e.height };\n break;\n case Dr:\n u = { x: e.x + e.width, y: s };\n break;\n case hr:\n u = { x: e.x - r.width, y: s };\n break;\n default:\n u = { x: e.x, y: e.y };\n }\n var l = a ? Vu(a) : null;\n if (l != null) {\n var c = l === \"y\" ? \"height\" : \"width\";\n switch (i) {\n case ei:\n u[l] = u[l] - (e[c] / 2 - r[c] / 2);\n break;\n case Xi:\n u[l] = u[l] + (e[c] / 2 - r[c] / 2);\n break;\n }\n }\n return u;\n}\nfunction ji(t, e) {\n e === void 0 && (e = {});\n var r = e, n = r.placement, a = n === void 0 ? t.placement : n, i = r.boundary, o = i === void 0 ? Z2 : i, s = r.rootBoundary, u = s === void 0 ? Xv : s, l = r.elementContext, c = l === void 0 ? _i : l, d = r.altBoundary, v = d === void 0 ? !1 : d, h = r.padding, f = h === void 0 ? 0 : h, p = eh(typeof f != \"number\" ? f : th(f, bo)), m = c === _i ? X2 : _i, g = t.rects.popper, y = t.elements[v ? m : c], b = Tw(ti(y) ? y : y.contextElement || Yn(t.elements.popper), o, u), w = ni(t.elements.reference), C = ih({ reference: w, element: g, strategy: \"absolute\", placement: a }), E = Jl(Object.assign({}, g, C)), x = c === _i ? E : w, T = { top: b.top - x.top + p.top, bottom: x.bottom - b.bottom + p.bottom, left: b.left - x.left + p.left, right: x.right - b.right + p.right }, k = t.modifiersData.offset;\n if (c === _i && k) {\n var _ = k[a];\n Object.keys(T).forEach(function(D) {\n var O = [Dr, _r].indexOf(D) >= 0 ? 1 : -1, F = [vr, _r].indexOf(D) >= 0 ? \"y\" : \"x\";\n T[D] += _[F] * O;\n });\n }\n return T;\n}\nfunction _w(t, e) {\n e === void 0 && (e = {});\n var r = e, n = r.placement, a = r.boundary, i = r.rootBoundary, o = r.padding, s = r.flipVariations, u = r.allowedAutoPlacements, l = u === void 0 ? Ys : u, c = ai(n), d = c ? s ? pd : pd.filter(function(f) {\n return ai(f) === c;\n }) : bo, v = d.filter(function(f) {\n return l.indexOf(f) >= 0;\n });\n v.length === 0 && (v = d);\n var h = v.reduce(function(f, p) {\n return f[p] = ji(t, { placement: p, boundary: a, rootBoundary: i, padding: o })[Qr(p)], f;\n }, {});\n return Object.keys(h).sort(function(f, p) {\n return h[f] - h[p];\n });\n}\nfunction Dw(t) {\n if (Qr(t) === $u) return [];\n var e = os(t);\n return [yd(t), e, yd(e)];\n}\nfunction Pw(t) {\n var e = t.state, r = t.options, n = t.name;\n if (!e.modifiersData[n]._skip) {\n for (var a = r.mainAxis, i = a === void 0 ? !0 : a, o = r.altAxis, s = o === void 0 ? !0 : o, u = r.fallbackPlacements, l = r.padding, c = r.boundary, d = r.rootBoundary, v = r.altBoundary, h = r.flipVariations, f = h === void 0 ? !0 : h, p = r.allowedAutoPlacements, m = e.options.placement, g = Qr(m), y = g === m, b = u || (y || !f ? [os(m)] : Dw(m)), w = [m].concat(b).reduce(function(se, oe) {\n return se.concat(Qr(oe) === $u ? _w(e, { placement: oe, boundary: c, rootBoundary: d, padding: l, flipVariations: f, allowedAutoPlacements: p }) : oe);\n }, []), C = e.rects.reference, E = e.rects.popper, x = /* @__PURE__ */ new Map(), T = !0, k = w[0], _ = 0; _ < w.length; _++) {\n var D = w[_], O = Qr(D), F = ai(D) === ei, L = [vr, _r].indexOf(O) >= 0, B = L ? \"width\" : \"height\", I = ji(e, { placement: D, boundary: c, rootBoundary: d, altBoundary: v, padding: l }), M = L ? F ? Dr : hr : F ? _r : vr;\n C[B] > E[B] && (M = os(M));\n var A = os(M), R = [];\n if (i && R.push(I[O] <= 0), s && R.push(I[M] <= 0, I[A] <= 0), R.every(function(se) {\n return se;\n })) {\n k = D, T = !1;\n break;\n }\n x.set(D, R);\n }\n if (T) for (var K = f ? 3 : 1, H = function(se) {\n var oe = w.find(function(ne) {\n var ue = x.get(ne);\n if (ue) return ue.slice(0, se).every(function(te) {\n return te;\n });\n });\n if (oe) return k = oe, \"break\";\n }, q = K; q > 0; q--) {\n var ee = H(q);\n if (ee === \"break\") break;\n }\n e.placement !== k && (e.modifiersData[n]._skip = !0, e.placement = k, e.reset = !0);\n }\n}\nvar Ow = { name: \"flip\", enabled: !0, phase: \"main\", fn: Pw, requiresIfExists: [\"offset\"], data: { _skip: !1 } };\nfunction wd(t, e, r) {\n return r === void 0 && (r = { x: 0, y: 0 }), { top: t.top - e.height - r.y, right: t.right - e.width + r.x, bottom: t.bottom - e.height + r.y, left: t.left - e.width - r.x };\n}\nfunction xd(t) {\n return [vr, Dr, _r, hr].some(function(e) {\n return t[e] >= 0;\n });\n}\nfunction Lw(t) {\n var e = t.state, r = t.name, n = e.rects.reference, a = e.rects.popper, i = e.modifiersData.preventOverflow, o = ji(e, { elementContext: \"reference\" }), s = ji(e, { altBoundary: !0 }), u = wd(o, n), l = wd(s, a, i), c = xd(u), d = xd(l);\n e.modifiersData[r] = { referenceClippingOffsets: u, popperEscapeOffsets: l, isReferenceHidden: c, hasPopperEscaped: d }, e.attributes.popper = Object.assign({}, e.attributes.popper, { \"data-popper-reference-hidden\": c, \"data-popper-escaped\": d });\n}\nvar Iw = { name: \"hide\", enabled: !0, phase: \"main\", requiresIfExists: [\"preventOverflow\"], fn: Lw };\nfunction Fw(t, e, r) {\n var n = Qr(t), a = [hr, vr].indexOf(n) >= 0 ? -1 : 1, i = typeof r == \"function\" ? r(Object.assign({}, e, { placement: t })) : r, o = i[0], s = i[1];\n return o = o || 0, s = (s || 0) * a, [hr, Dr].indexOf(n) >= 0 ? { x: s, y: o } : { x: o, y: s };\n}\nfunction Aw(t) {\n var e = t.state, r = t.options, n = t.name, a = r.offset, i = a === void 0 ? [0, 0] : a, o = Ys.reduce(function(c, d) {\n return c[d] = Fw(d, e.rects, i), c;\n }, {}), s = o[e.placement], u = s.x, l = s.y;\n e.modifiersData.popperOffsets != null && (e.modifiersData.popperOffsets.x += u, e.modifiersData.popperOffsets.y += l), e.modifiersData[n] = o;\n}\nvar Mw = { name: \"offset\", enabled: !0, phase: \"main\", requires: [\"popperOffsets\"], fn: Aw };\nfunction Bw(t) {\n var e = t.state, r = t.name;\n e.modifiersData[r] = ih({ reference: e.rects.reference, element: e.rects.popper, strategy: \"absolute\", placement: e.placement });\n}\nvar oh = { name: \"popperOffsets\", enabled: !0, phase: \"read\", fn: Bw, data: {} };\nfunction Nw(t) {\n return t === \"x\" ? \"y\" : \"x\";\n}\nfunction $w(t) {\n var e = t.state, r = t.options, n = t.name, a = r.mainAxis, i = a === void 0 ? !0 : a, o = r.altAxis, s = o === void 0 ? !1 : o, u = r.boundary, l = r.rootBoundary, c = r.altBoundary, d = r.padding, v = r.tether, h = v === void 0 ? !0 : v, f = r.tetherOffset, p = f === void 0 ? 0 : f, m = ji(e, { boundary: u, rootBoundary: l, padding: d, altBoundary: c }), g = Qr(e.placement), y = ai(e.placement), b = !y, w = Vu(g), C = Nw(w), E = e.modifiersData.popperOffsets, x = e.rects.reference, T = e.rects.popper, k = typeof p == \"function\" ? p(Object.assign({}, e.rects, { placement: e.placement })) : p, _ = typeof k == \"number\" ? { mainAxis: k, altAxis: k } : Object.assign({ mainAxis: 0, altAxis: 0 }, k), D = e.modifiersData.offset ? e.modifiersData.offset[e.placement] : null, O = { x: 0, y: 0 };\n if (E) {\n if (i) {\n var F, L = w === \"y\" ? vr : hr, B = w === \"y\" ? _r : Dr, I = w === \"y\" ? \"height\" : \"width\", M = E[w], A = M + m[L], R = M - m[B], K = h ? -T[I] / 2 : 0, H = y === ei ? x[I] : T[I], q = y === ei ? -T[I] : -x[I], ee = e.elements.arrow, se = h && ee ? zu(ee) : { width: 0, height: 0 }, oe = e.modifiersData[\"arrow#persistent\"] ? e.modifiersData[\"arrow#persistent\"].padding : Jv(), ne = oe[L], ue = oe[B], te = Vi(0, x[I], se[I]), $ = b ? x[I] / 2 - K - te - ne - _.mainAxis : H - te - ne - _.mainAxis, G = b ? -x[I] / 2 + K + te + ue + _.mainAxis : q + te + ue + _.mainAxis, Q = e.elements.arrow && wo(e.elements.arrow), ge = Q ? w === \"y\" ? Q.clientTop || 0 : Q.clientLeft || 0 : 0, Ee = (F = D == null ? void 0 : D[w]) != null ? F : 0, fe = M + $ - Ee - ge, me = M + G - Ee, xe = Vi(h ? Ts(A, fe) : A, M, h ? da(R, me) : R);\n E[w] = xe, O[w] = xe - M;\n }\n if (s) {\n var ke, Ce = w === \"x\" ? vr : hr, De = w === \"x\" ? _r : Dr, qe = E[C], Ke = C === \"y\" ? \"height\" : \"width\", Be = qe + m[Ce], Ge = qe - m[De], le = [vr, hr].indexOf(g) !== -1, S = (ke = D == null ? void 0 : D[C]) != null ? ke : 0, z = le ? Be : qe - x[Ke] - T[Ke] - S + _.altAxis, ae = le ? qe + x[Ke] + T[Ke] - S - _.altAxis : Ge, j = h && le ? dw(z, qe, ae) : Vi(h ? z : Be, qe, h ? ae : Ge);\n E[C] = j, O[C] = j - qe;\n }\n e.modifiersData[n] = O;\n }\n}\nvar Rw = { name: \"preventOverflow\", enabled: !0, phase: \"main\", fn: $w, requiresIfExists: [\"offset\"] };\nfunction zw(t) {\n return { scrollLeft: t.scrollLeft, scrollTop: t.scrollTop };\n}\nfunction Vw(t) {\n return t === Kr(t) || !Tr(t) ? Hu(t) : zw(t);\n}\nfunction Hw(t) {\n var e = t.getBoundingClientRect(), r = ri(e.width) / t.offsetWidth || 1, n = ri(e.height) / t.offsetHeight || 1;\n return r !== 1 || n !== 1;\n}\nfunction qw(t, e, r) {\n r === void 0 && (r = !1);\n var n = Tr(e), a = Tr(e) && Hw(e), i = Yn(e), o = ni(t, a), s = { scrollLeft: 0, scrollTop: 0 }, u = { x: 0, y: 0 };\n return (n || !n && !r) && ((tn(e) !== \"body\" || Ku(i)) && (s = Vw(e)), Tr(e) ? (u = ni(e, !0), u.x += e.clientLeft, u.y += e.clientTop) : i && (u.x = qu(i))), { x: o.left + s.scrollLeft - u.x, y: o.top + s.scrollTop - u.y, width: o.width, height: o.height };\n}\nfunction Kw(t) {\n var e = /* @__PURE__ */ new Map(), r = /* @__PURE__ */ new Set(), n = [];\n t.forEach(function(i) {\n e.set(i.name, i);\n });\n function a(i) {\n r.add(i.name);\n var o = [].concat(i.requires || [], i.requiresIfExists || []);\n o.forEach(function(s) {\n if (!r.has(s)) {\n var u = e.get(s);\n u && a(u);\n }\n }), n.push(i);\n }\n return t.forEach(function(i) {\n r.has(i.name) || a(i);\n }), n;\n}\nfunction Uw(t) {\n var e = Kw(t);\n return ow.reduce(function(r, n) {\n return r.concat(e.filter(function(a) {\n return a.phase === n;\n }));\n }, []);\n}\nfunction Gw(t) {\n var e;\n return function() {\n return e || (e = new Promise(function(r) {\n Promise.resolve().then(function() {\n e = void 0, r(t());\n });\n })), e;\n };\n}\nfunction Ww(t) {\n var e = t.reduce(function(r, n) {\n var a = r[n.name];\n return r[n.name] = a ? Object.assign({}, a, n, { options: Object.assign({}, a.options, n.options), data: Object.assign({}, a.data, n.data) }) : n, r;\n }, {});\n return Object.keys(e).map(function(r) {\n return e[r];\n });\n}\nvar Cd = { placement: \"bottom\", modifiers: [], strategy: \"absolute\" };\nfunction Ed() {\n for (var t = arguments.length, e = new Array(t), r = 0; r < t; r++) e[r] = arguments[r];\n return !e.some(function(n) {\n return !(n && typeof n.getBoundingClientRect == \"function\");\n });\n}\nfunction Uu(t) {\n t === void 0 && (t = {});\n var e = t, r = e.defaultModifiers, n = r === void 0 ? [] : r, a = e.defaultOptions, i = a === void 0 ? Cd : a;\n return function(o, s, u) {\n u === void 0 && (u = i);\n var l = { placement: \"bottom\", orderedModifiers: [], options: Object.assign({}, Cd, i), modifiersData: {}, elements: { reference: o, popper: s }, attributes: {}, styles: {} }, c = [], d = !1, v = { state: l, setOptions: function(p) {\n var m = typeof p == \"function\" ? p(l.options) : p;\n f(), l.options = Object.assign({}, i, l.options, m), l.scrollParents = { reference: ti(o) ? Hi(o) : o.contextElement ? Hi(o.contextElement) : [], popper: Hi(s) };\n var g = Uw(Ww([].concat(n, l.options.modifiers)));\n return l.orderedModifiers = g.filter(function(y) {\n return y.enabled;\n }), h(), v.update();\n }, forceUpdate: function() {\n if (!d) {\n var p = l.elements, m = p.reference, g = p.popper;\n if (Ed(m, g)) {\n l.rects = { reference: qw(m, wo(g), l.options.strategy === \"fixed\"), popper: zu(g) }, l.reset = !1, l.placement = l.options.placement, l.orderedModifiers.forEach(function(T) {\n return l.modifiersData[T.name] = Object.assign({}, T.data);\n });\n for (var y = 0; y < l.orderedModifiers.length; y++) {\n if (l.reset === !0) {\n l.reset = !1, y = -1;\n continue;\n }\n var b = l.orderedModifiers[y], w = b.fn, C = b.options, E = C === void 0 ? {} : C, x = b.name;\n typeof w == \"function\" && (l = w({ state: l, options: E, name: x, instance: v }) || l);\n }\n }\n }\n }, update: Gw(function() {\n return new Promise(function(p) {\n v.forceUpdate(), p(l);\n });\n }), destroy: function() {\n f(), d = !0;\n } };\n if (!Ed(o, s)) return v;\n v.setOptions(u).then(function(p) {\n !d && u.onFirstUpdate && u.onFirstUpdate(p);\n });\n function h() {\n l.orderedModifiers.forEach(function(p) {\n var m = p.name, g = p.options, y = g === void 0 ? {} : g, b = p.effect;\n if (typeof b == \"function\") {\n var w = b({ state: l, name: m, instance: v, options: y }), C = function() {\n };\n c.push(w || C);\n }\n });\n }\n function f() {\n c.forEach(function(p) {\n return p();\n }), c = [];\n }\n return v;\n };\n}\nUu();\nvar Yw = [nh, oh, rh, jv];\nUu({ defaultModifiers: Yw });\nvar Zw = [nh, oh, rh, jv, Mw, Ow, Rw, pw, Iw], Xw = Uu({ defaultModifiers: Zw });\nconst jw = (t, e, r = {}) => {\n const n = {\n name: \"updateState\",\n enabled: !0,\n phase: \"write\",\n fn: ({ state: u }) => {\n const l = Qw(u);\n Object.assign(o.value, l);\n },\n requires: [\"computeStyles\"]\n }, a = V(() => {\n const { onFirstUpdate: u, placement: l, strategy: c, modifiers: d } = P(r);\n return {\n onFirstUpdate: u,\n placement: l || \"bottom\",\n strategy: c || \"absolute\",\n modifiers: [\n ...d || [],\n n,\n { name: \"applyStyles\", enabled: !1 }\n ]\n };\n }), i = jr(), o = ce({\n styles: {\n popper: {\n position: P(a).strategy,\n left: \"0\",\n top: \"0\"\n },\n arrow: {\n position: \"absolute\"\n }\n },\n attributes: {}\n }), s = () => {\n i.value && (i.value.destroy(), i.value = void 0);\n };\n return Pe(a, (u) => {\n const l = P(i);\n l && l.setOptions(u);\n }, {\n deep: !0\n }), Pe([t, e], ([u, l]) => {\n s(), !(!u || !l) && (i.value = Xw(u, l, P(a)));\n }), qr(() => {\n s();\n }), {\n state: V(() => {\n var u;\n return { ...((u = P(i)) == null ? void 0 : u.state) || {} };\n }),\n styles: V(() => P(o).styles),\n attributes: V(() => P(o).attributes),\n update: () => {\n var u;\n return (u = P(i)) == null ? void 0 : u.update();\n },\n forceUpdate: () => {\n var u;\n return (u = P(i)) == null ? void 0 : u.forceUpdate();\n },\n instanceRef: V(() => P(i))\n };\n};\nfunction Qw(t) {\n const e = Object.keys(t.elements), r = Cs(e.map((a) => [a, t.styles[a] || {}])), n = Cs(e.map((a) => [a, t.attributes[a]]));\n return {\n styles: r,\n attributes: n\n };\n}\nfunction kd() {\n let t;\n const e = (n, a) => {\n r(), t = window.setTimeout(n, a);\n }, r = () => window.clearTimeout(t);\n return Rs(() => r()), {\n registerTimeout: e,\n cancelTimeout: r\n };\n}\nconst eu = {\n prefix: Math.floor(Math.random() * 1e4),\n current: 0\n}, Jw = Symbol(\"elIdInjection\"), sh = () => gt() ? Ue(Jw, eu) : eu, Xs = (t) => {\n const e = sh();\n !_t && e === eu && Dt(\"IdInjection\", `Looks like you are using server rendering, you must provide a id provider to ensure the hydration process to be succeed\nusage: app.provide(ID_INJECTION_KEY, {\n prefix: number,\n current: number,\n})`);\n const r = Nu();\n return V(() => P(t) || `${r.value}-id-${e.prefix}-${e.current++}`);\n};\nlet za = [];\nconst Sd = (t) => {\n const e = t;\n e.key === Lt.esc && za.forEach((r) => r(e));\n}, ex = (t) => {\n Et(() => {\n za.length === 0 && document.addEventListener(\"keydown\", Sd), _t && za.push(t);\n }), qr(() => {\n za = za.filter((e) => e !== t), za.length === 0 && _t && document.removeEventListener(\"keydown\", Sd);\n });\n};\nlet Td;\nconst lh = () => {\n const t = Nu(), e = sh(), r = V(() => `${t.value}-popper-container-${e.prefix}`), n = V(() => `#${r.value}`);\n return {\n id: r,\n selector: n\n };\n}, tx = (t) => {\n const e = document.createElement(\"div\");\n return e.id = t, document.body.appendChild(e), e;\n}, rx = () => {\n const { id: t, selector: e } = lh();\n return w0(() => {\n _t && (process.env.NODE_ENV === \"test\" || !Td || !document.body.querySelector(e.value)) && (Td = tx(t.value));\n }), {\n id: t,\n selector: e\n };\n}, nx = rt({\n showAfter: {\n type: Number,\n default: 0\n },\n hideAfter: {\n type: Number,\n default: 200\n },\n autoClose: {\n type: Number,\n default: 0\n }\n}), ax = ({\n showAfter: t,\n hideAfter: e,\n autoClose: r,\n open: n,\n close: a\n}) => {\n const { registerTimeout: i } = kd(), {\n registerTimeout: o,\n cancelTimeout: s\n } = kd();\n return {\n onOpen: (c) => {\n i(() => {\n n(c);\n const d = P(r);\n qt(d) && d > 0 && o(() => {\n a(c);\n }, d);\n }, P(t));\n },\n onClose: (c) => {\n s(), i(() => {\n a(c);\n }, P(e));\n }\n };\n}, uh = Symbol(\"elForwardRef\"), ix = (t) => {\n Ct(uh, {\n setForwardRef: (r) => {\n t.value = r;\n }\n });\n}, ox = (t) => ({\n mounted(e) {\n t(e);\n },\n updated(e) {\n t(e);\n },\n unmounted() {\n t(null);\n }\n}), _d = {\n current: 0\n}, Dd = ce(0), ch = 2e3, Pd = Symbol(\"elZIndexContextKey\"), dh = Symbol(\"zIndexContextKey\"), fh = (t) => {\n const e = gt() ? Ue(Pd, _d) : _d, r = t || (gt() ? Ue(dh, void 0) : void 0), n = V(() => {\n const o = P(r);\n return qt(o) ? o : ch;\n }), a = V(() => n.value + Dd.value), i = () => (e.current++, Dd.value = e.current, a.value);\n return !_t && !Ue(Pd) && Dt(\"ZIndexInjection\", `Looks like you are using server rendering, you must provide a z-index provider to ensure the hydration process to be succeed\nusage: app.provide(ZINDEX_INJECTION_KEY, { current: 0 })`), {\n initialZIndex: n,\n currentZIndex: a,\n nextZIndex: i\n };\n};\nfunction sx(t) {\n let e;\n function r() {\n if (t.value == null)\n return;\n const { selectionStart: a, selectionEnd: i, value: o } = t.value;\n if (a == null || i == null)\n return;\n const s = o.slice(0, Math.max(0, a)), u = o.slice(Math.max(0, i));\n e = {\n selectionStart: a,\n selectionEnd: i,\n value: o,\n beforeTxt: s,\n afterTxt: u\n };\n }\n function n() {\n if (t.value == null || e == null)\n return;\n const { value: a } = t.value, { beforeTxt: i, afterTxt: o, selectionStart: s } = e;\n if (i == null || o == null || s == null)\n return;\n let u = a.length;\n if (a.endsWith(o))\n u = a.length - o.length;\n else if (a.startsWith(i))\n u = i.length;\n else {\n const l = i[s - 1], c = a.indexOf(l, s - 1);\n c !== -1 && (u = c + 1);\n }\n t.value.setSelectionRange(u, u);\n }\n return [r, n];\n}\nconst di = Ws({\n type: String,\n values: Gv,\n required: !1\n}), vh = Symbol(\"size\"), lx = () => {\n const t = Ue(vh, {});\n return V(() => P(t.size) || \"\");\n};\nfunction Gu(t, {\n beforeFocus: e,\n afterFocus: r,\n beforeBlur: n,\n afterBlur: a\n} = {}) {\n const i = gt(), { emit: o } = i, s = jr(), u = ce(!1), l = (v) => {\n lr(e) && e(v) || u.value || (u.value = !0, o(\"focus\", v), r == null || r());\n }, c = (v) => {\n var h;\n lr(n) && n(v) || v.relatedTarget && ((h = s.value) != null && h.contains(v.relatedTarget)) || (u.value = !1, o(\"blur\", v), a == null || a());\n }, d = () => {\n var v, h;\n (v = s.value) != null && v.contains(document.activeElement) && s.value !== document.activeElement || (h = t.value) == null || h.focus();\n };\n return Pe(s, (v) => {\n v && v.setAttribute(\"tabindex\", \"-1\");\n }), kr(s, \"focus\", l, !0), kr(s, \"blur\", c, !0), kr(s, \"click\", d, !0), process.env.NODE_ENV === \"test\" && Et(() => {\n const v = ua(t.value) ? t.value : document.querySelector(\"input,textarea\");\n v && (kr(v, \"focus\", l, !0), kr(v, \"blur\", c, !0));\n }), {\n isFocused: u,\n wrapperRef: s,\n handleFocus: l,\n handleBlur: c\n };\n}\nfunction hh({\n afterComposition: t,\n emit: e\n}) {\n const r = ce(!1), n = (s) => {\n e == null || e(\"compositionstart\", s), r.value = !0;\n }, a = (s) => {\n var u;\n e == null || e(\"compositionupdate\", s);\n const l = (u = s.target) == null ? void 0 : u.value, c = l[l.length - 1] || \"\";\n r.value = !N2(c);\n }, i = (s) => {\n e == null || e(\"compositionend\", s), r.value && (r.value = !1, ot(() => t(s)));\n };\n return {\n isComposing: r,\n handleComposition: (s) => {\n s.type === \"compositionend\" ? i(s) : a(s);\n },\n handleCompositionStart: n,\n handleCompositionUpdate: a,\n handleCompositionEnd: i\n };\n}\nconst ph = Symbol(\"emptyValuesContextKey\"), ux = \"use-empty-values\", cx = [\"\", void 0, null], dx = void 0, fx = rt({\n emptyValues: Array,\n valueOnClear: {\n type: [String, Number, Boolean, Function],\n default: void 0,\n validator: (t) => lr(t) ? !t() : !t\n }\n}), vx = (t, e) => {\n const r = gt() ? Ue(ph, ce({})) : ce({}), n = V(() => t.emptyValues || r.value.emptyValues || cx), a = V(() => lr(t.valueOnClear) ? t.valueOnClear() : t.valueOnClear !== void 0 ? t.valueOnClear : lr(r.value.valueOnClear) ? r.value.valueOnClear() : r.value.valueOnClear !== void 0 ? r.value.valueOnClear : dx), i = (o) => n.value.includes(o);\n return n.value.includes(a.value) || Dt(ux, \"value-on-clear should be a value of empty-values\"), {\n emptyValues: n,\n valueOnClear: a,\n isEmptyValue: i\n };\n}, hx = rt({\n ariaLabel: String,\n ariaOrientation: {\n type: String,\n values: [\"horizontal\", \"vertical\", \"undefined\"]\n },\n ariaControls: String\n}), Zn = (t) => zv(hx, t), gh = Symbol(), _s = ce();\nfunction Wu(t, e = void 0) {\n const r = gt() ? Ue(gh, _s) : _s;\n return t ? V(() => {\n var n, a;\n return (a = (n = r.value) == null ? void 0 : n[t]) != null ? a : e;\n }) : r;\n}\nfunction px(t, e) {\n const r = Wu(), n = He(t, V(() => {\n var s;\n return ((s = r.value) == null ? void 0 : s.namespace) || is;\n })), a = yo(V(() => {\n var s;\n return (s = r.value) == null ? void 0 : s.locale;\n })), i = fh(V(() => {\n var s;\n return ((s = r.value) == null ? void 0 : s.zIndex) || ch;\n })), o = V(() => {\n var s;\n return P(e) || ((s = r.value) == null ? void 0 : s.size) || \"\";\n });\n return gx(V(() => P(r) || {})), {\n ns: n,\n locale: a,\n zIndex: i,\n size: o\n };\n}\nconst gx = (t, e, r = !1) => {\n var n;\n const a = !!gt(), i = a ? Wu() : void 0, o = (n = void 0) != null ? n : a ? Ct : void 0;\n if (!o) {\n Dt(\"provideGlobalConfig\", \"provideGlobalConfig() can only be used inside setup().\");\n return;\n }\n const s = V(() => {\n const u = P(t);\n return i != null && i.value ? mx(i.value, u) : u;\n });\n return o(gh, s), o(Wv, V(() => s.value.locale)), o(Yv, V(() => s.value.namespace)), o(dh, V(() => s.value.zIndex)), o(vh, {\n size: V(() => s.value.size || \"\")\n }), o(ph, V(() => ({\n emptyValues: s.value.emptyValues,\n valueOnClear: s.value.valueOnClear\n }))), (r || !_s.value) && (_s.value = s.value), s;\n}, mx = (t, e) => {\n const r = [.../* @__PURE__ */ new Set([...hd(t), ...hd(e)])], n = {};\n for (const a of r)\n n[a] = e[a] !== void 0 ? e[a] : t[a];\n return n;\n};\nvar Ve = (t, e) => {\n const r = t.__vccOpts || t;\n for (const [n, a] of e)\n r[n] = a;\n return r;\n};\nconst yx = rt({\n size: {\n type: $e([Number, String])\n },\n color: {\n type: String\n }\n}), bx = de({\n name: \"ElIcon\",\n inheritAttrs: !1\n}), wx = /* @__PURE__ */ de({\n ...bx,\n props: yx,\n setup(t) {\n const e = t, r = He(\"icon\"), n = V(() => {\n const { size: a, color: i } = e;\n return !a && !i ? {} : {\n fontSize: Mn(a) ? void 0 : Ja(a),\n \"--color\": i\n };\n });\n return (a, i) => (N(), Z(\"i\", Rr({\n class: P(r).b(),\n style: P(n)\n }, a.$attrs), [\n Le(a.$slots, \"default\")\n ], 16));\n }\n});\nvar xx = /* @__PURE__ */ Ve(wx, [[\"__file\", \"icon.vue\"]]);\nconst Vt = $t(xx), Yu = Symbol(\"formContextKey\"), Qi = Symbol(\"formItemContextKey\"), pa = (t, e = {}) => {\n const r = ce(void 0), n = e.prop ? r : Zv(\"size\"), a = e.global ? r : lx(), i = e.form ? { size: void 0 } : Ue(Yu, void 0), o = e.formItem ? { size: void 0 } : Ue(Qi, void 0);\n return V(() => n.value || P(t) || (o == null ? void 0 : o.size) || (i == null ? void 0 : i.size) || a.value || \"\");\n}, xo = (t) => {\n const e = Zv(\"disabled\"), r = Ue(Yu, void 0);\n return V(() => e.value || P(t) || (r == null ? void 0 : r.disabled) || !1);\n}, Ta = () => {\n const t = Ue(Yu, void 0), e = Ue(Qi, void 0);\n return {\n form: t,\n formItem: e\n };\n}, Co = (t, {\n formItemContext: e,\n disableIdGeneration: r,\n disableIdManagement: n\n}) => {\n r || (r = ce(!1)), n || (n = ce(!1));\n const a = ce();\n let i;\n const o = V(() => {\n var s;\n return !!(!(t.label || t.ariaLabel) && e && e.inputIds && ((s = e.inputIds) == null ? void 0 : s.length) <= 1);\n });\n return Et(() => {\n i = Pe([$r(t, \"id\"), r], ([s, u]) => {\n const l = s ?? (u ? void 0 : Xs().value);\n l !== a.value && (e != null && e.removeInputId && (a.value && e.removeInputId(a.value), !(n != null && n.value) && !u && l && e.addInputId(l)), a.value = l);\n }, { immediate: !0 });\n }), x0(() => {\n i && i(), e != null && e.removeInputId && a.value && e.removeInputId(a.value);\n }), {\n isLabeledByFormItem: o,\n inputId: a\n };\n};\nlet Fr;\nconst Cx = `\n height:0 !important;\n visibility:hidden !important;\n ${j0() ? \"\" : \"overflow:hidden !important;\"}\n position:absolute !important;\n z-index:-1000 !important;\n top:0 !important;\n right:0 !important;\n`, Ex = [\n \"letter-spacing\",\n \"line-height\",\n \"padding-top\",\n \"padding-bottom\",\n \"font-family\",\n \"font-weight\",\n \"font-size\",\n \"text-rendering\",\n \"text-transform\",\n \"width\",\n \"text-indent\",\n \"padding-left\",\n \"padding-right\",\n \"border-width\",\n \"box-sizing\"\n];\nfunction kx(t) {\n const e = window.getComputedStyle(t), r = e.getPropertyValue(\"box-sizing\"), n = Number.parseFloat(e.getPropertyValue(\"padding-bottom\")) + Number.parseFloat(e.getPropertyValue(\"padding-top\")), a = Number.parseFloat(e.getPropertyValue(\"border-bottom-width\")) + Number.parseFloat(e.getPropertyValue(\"border-top-width\"));\n return { contextStyle: Ex.map((o) => `${o}:${e.getPropertyValue(o)}`).join(\";\"), paddingSize: n, borderSize: a, boxSizing: r };\n}\nfunction Od(t, e = 1, r) {\n var n;\n Fr || (Fr = document.createElement(\"textarea\"), document.body.appendChild(Fr));\n const { paddingSize: a, borderSize: i, boxSizing: o, contextStyle: s } = kx(t);\n Fr.setAttribute(\"style\", `${s};${Cx}`), Fr.value = t.value || t.placeholder || \"\";\n let u = Fr.scrollHeight;\n const l = {};\n o === \"border-box\" ? u = u + i : o === \"content-box\" && (u = u - a), Fr.value = \"\";\n const c = Fr.scrollHeight - a;\n if (qt(e)) {\n let d = c * e;\n o === \"border-box\" && (d = d + a + i), u = Math.max(d, u), l.minHeight = `${d}px`;\n }\n if (qt(r)) {\n let d = c * r;\n o === \"border-box\" && (d = d + a + i), u = Math.min(d, u);\n }\n return l.height = `${u}px`, (n = Fr.parentNode) == null || n.removeChild(Fr), Fr = void 0, l;\n}\nconst Sx = rt({\n id: {\n type: String,\n default: void 0\n },\n size: di,\n disabled: Boolean,\n modelValue: {\n type: $e([\n String,\n Number,\n Object\n ]),\n default: \"\"\n },\n maxlength: {\n type: [String, Number]\n },\n minlength: {\n type: [String, Number]\n },\n type: {\n type: String,\n default: \"text\"\n },\n resize: {\n type: String,\n values: [\"none\", \"both\", \"horizontal\", \"vertical\"]\n },\n autosize: {\n type: $e([Boolean, Object]),\n default: !1\n },\n autocomplete: {\n type: String,\n default: \"off\"\n },\n formatter: {\n type: Function\n },\n parser: {\n type: Function\n },\n placeholder: {\n type: String\n },\n form: {\n type: String\n },\n readonly: Boolean,\n clearable: Boolean,\n showPassword: Boolean,\n showWordLimit: Boolean,\n suffixIcon: {\n type: Hn\n },\n prefixIcon: {\n type: Hn\n },\n containerRole: {\n type: String,\n default: void 0\n },\n tabindex: {\n type: [String, Number],\n default: 0\n },\n validateEvent: {\n type: Boolean,\n default: !0\n },\n inputStyle: {\n type: $e([Object, Array, String]),\n default: () => Ra({})\n },\n autofocus: Boolean,\n rows: {\n type: Number,\n default: 2\n },\n ...Zn([\"ariaLabel\"])\n}), Tx = {\n [zt]: (t) => tr(t),\n input: (t) => tr(t),\n change: (t) => tr(t),\n focus: (t) => t instanceof FocusEvent,\n blur: (t) => t instanceof FocusEvent,\n clear: () => !0,\n mouseleave: (t) => t instanceof MouseEvent,\n mouseenter: (t) => t instanceof MouseEvent,\n keydown: (t) => t instanceof Event,\n compositionstart: (t) => t instanceof CompositionEvent,\n compositionupdate: (t) => t instanceof CompositionEvent,\n compositionend: (t) => t instanceof CompositionEvent\n}, _x = de({\n name: \"ElInput\",\n inheritAttrs: !1\n}), Dx = /* @__PURE__ */ de({\n ..._x,\n props: Sx,\n emits: Tx,\n setup(t, { expose: e, emit: r }) {\n const n = t, a = C0(), i = vo(), o = V(() => {\n const S = {};\n return n.containerRole === \"combobox\" && (S[\"aria-haspopup\"] = a[\"aria-haspopup\"], S[\"aria-owns\"] = a[\"aria-owns\"], S[\"aria-expanded\"] = a[\"aria-expanded\"]), S;\n }), s = V(() => [\n n.type === \"textarea\" ? m.b() : p.b(),\n p.m(h.value),\n p.is(\"disabled\", f.value),\n p.is(\"exceed\", ee.value),\n {\n [p.b(\"group\")]: i.prepend || i.append,\n [p.m(\"prefix\")]: i.prefix || n.prefixIcon,\n [p.m(\"suffix\")]: i.suffix || n.suffixIcon || n.clearable || n.showPassword,\n [p.bm(\"suffix\", \"password-clear\")]: R.value && K.value,\n [p.b(\"hidden\")]: n.type === \"hidden\"\n },\n a.class\n ]), u = V(() => [\n p.e(\"wrapper\"),\n p.is(\"focus\", k.value)\n ]), l = z2({\n excludeKeys: V(() => Object.keys(o.value))\n }), { form: c, formItem: d } = Ta(), { inputId: v } = Co(n, {\n formItemContext: d\n }), h = pa(), f = xo(), p = He(\"input\"), m = He(\"textarea\"), g = jr(), y = jr(), b = ce(!1), w = ce(!1), C = ce(), E = jr(n.inputStyle), x = V(() => g.value || y.value), { wrapperRef: T, isFocused: k, handleFocus: _, handleBlur: D } = Gu(x, {\n beforeFocus() {\n return f.value;\n },\n afterBlur() {\n var S;\n n.validateEvent && ((S = d == null ? void 0 : d.validate) == null || S.call(d, \"blur\").catch((z) => Dt(z)));\n }\n }), O = V(() => {\n var S;\n return (S = c == null ? void 0 : c.statusIcon) != null ? S : !1;\n }), F = V(() => (d == null ? void 0 : d.validateState) || \"\"), L = V(() => F.value && Uv[F.value]), B = V(() => w.value ? D2 : b2), I = V(() => [\n a.style\n ]), M = V(() => [\n n.inputStyle,\n E.value,\n { resize: n.resize }\n ]), A = V(() => $n(n.modelValue) ? \"\" : String(n.modelValue)), R = V(() => n.clearable && !f.value && !n.readonly && !!A.value && (k.value || b.value)), K = V(() => n.showPassword && !f.value && !n.readonly && !!A.value && (!!A.value || k.value)), H = V(() => n.showWordLimit && !!n.maxlength && (n.type === \"text\" || n.type === \"textarea\") && !f.value && !n.readonly && !n.showPassword), q = V(() => A.value.length), ee = V(() => !!H.value && q.value > Number(n.maxlength)), se = V(() => !!i.suffix || !!n.suffixIcon || R.value || n.showPassword || H.value || !!F.value && O.value), [oe, ne] = sx(g);\n dn(y, (S) => {\n if ($(), !H.value || n.resize !== \"both\")\n return;\n const z = S[0], { width: ae } = z.contentRect;\n C.value = {\n right: `calc(100% - ${ae + 15 + 6}px)`\n };\n });\n const ue = () => {\n const { type: S, autosize: z } = n;\n if (!(!_t || S !== \"textarea\" || !y.value))\n if (z) {\n const ae = Ht(z) ? z.minRows : void 0, j = Ht(z) ? z.maxRows : void 0, Y = Od(y.value, ae, j);\n E.value = {\n overflowY: \"hidden\",\n ...Y\n }, ot(() => {\n y.value.offsetHeight, E.value = Y;\n });\n } else\n E.value = {\n minHeight: Od(y.value).minHeight\n };\n }, $ = ((S) => {\n let z = !1;\n return () => {\n var ae;\n if (z || !n.autosize)\n return;\n ((ae = y.value) == null ? void 0 : ae.offsetParent) === null || (S(), z = !0);\n };\n })(ue), G = () => {\n const S = x.value, z = n.formatter ? n.formatter(A.value) : A.value;\n !S || S.value === z || (S.value = z);\n }, Q = async (S) => {\n oe();\n let { value: z } = S.target;\n if (n.formatter && (z = n.parser ? n.parser(z) : z), !Ee.value) {\n if (z === A.value) {\n G();\n return;\n }\n r(zt, z), r(\"input\", z), await ot(), G(), ne();\n }\n }, ge = (S) => {\n r(\"change\", S.target.value);\n }, {\n isComposing: Ee,\n handleCompositionStart: fe,\n handleCompositionUpdate: me,\n handleCompositionEnd: xe\n } = hh({ emit: r, afterComposition: Q }), ke = () => {\n w.value = !w.value, Ce();\n }, Ce = async () => {\n var S;\n await ot(), (S = x.value) == null || S.focus();\n }, De = () => {\n var S;\n return (S = x.value) == null ? void 0 : S.blur();\n }, qe = (S) => {\n b.value = !1, r(\"mouseleave\", S);\n }, Ke = (S) => {\n b.value = !0, r(\"mouseenter\", S);\n }, Be = (S) => {\n r(\"keydown\", S);\n }, Ge = () => {\n var S;\n (S = x.value) == null || S.select();\n }, le = () => {\n r(zt, \"\"), r(\"change\", \"\"), r(\"clear\"), r(\"input\", \"\");\n };\n return Pe(() => n.modelValue, () => {\n var S;\n ot(() => ue()), n.validateEvent && ((S = d == null ? void 0 : d.validate) == null || S.call(d, \"change\").catch((z) => Dt(z)));\n }), Pe(A, () => G()), Pe(() => n.type, async () => {\n await ot(), G(), ue();\n }), Et(() => {\n !n.formatter && n.parser && Dt(\"ElInput\", \"If you set the parser, you also need to set the formatter.\"), G(), ot(ue);\n }), e({\n input: g,\n textarea: y,\n ref: x,\n textareaStyle: M,\n autosize: $r(n, \"autosize\"),\n isComposing: Ee,\n focus: Ce,\n blur: De,\n select: Ge,\n clear: le,\n resizeTextarea: ue\n }), (S, z) => (N(), Z(\"div\", Rr(P(o), {\n class: [\n P(s),\n {\n [P(p).bm(\"group\", \"append\")]: S.$slots.append,\n [P(p).bm(\"group\", \"prepend\")]: S.$slots.prepend\n }\n ],\n style: P(I),\n role: S.containerRole,\n onMouseenter: Ke,\n onMouseleave: qe\n }), [\n he(\" input \"),\n S.type !== \"textarea\" ? (N(), Z(Qe, { key: 0 }, [\n he(\" prepend slot \"),\n S.$slots.prepend ? (N(), Z(\"div\", {\n key: 0,\n class: ie(P(p).be(\"group\", \"prepend\"))\n }, [\n Le(S.$slots, \"prepend\")\n ], 2)) : he(\"v-if\", !0),\n X(\"div\", {\n ref_key: \"wrapperRef\",\n ref: T,\n class: ie(P(u))\n }, [\n he(\" prefix slot \"),\n S.$slots.prefix || S.prefixIcon ? (N(), Z(\"span\", {\n key: 0,\n class: ie(P(p).e(\"prefix\"))\n }, [\n X(\"span\", {\n class: ie(P(p).e(\"prefix-inner\"))\n }, [\n Le(S.$slots, \"prefix\"),\n S.prefixIcon ? (N(), ye(P(Vt), {\n key: 0,\n class: ie(P(p).e(\"icon\"))\n }, {\n default: U(() => [\n (N(), ye(er(S.prefixIcon)))\n ]),\n _: 1\n }, 8, [\"class\"])) : he(\"v-if\", !0)\n ], 2)\n ], 2)) : he(\"v-if\", !0),\n X(\"input\", Rr({\n id: P(v),\n ref_key: \"input\",\n ref: g,\n class: P(p).e(\"inner\")\n }, P(l), {\n minlength: S.minlength,\n maxlength: S.maxlength,\n type: S.showPassword ? w.value ? \"text\" : \"password\" : S.type,\n disabled: P(f),\n readonly: S.readonly,\n autocomplete: S.autocomplete,\n tabindex: S.tabindex,\n \"aria-label\": S.ariaLabel,\n placeholder: S.placeholder,\n style: S.inputStyle,\n form: S.form,\n autofocus: S.autofocus,\n onCompositionstart: P(fe),\n onCompositionupdate: P(me),\n onCompositionend: P(xe),\n onInput: Q,\n onChange: ge,\n onKeydown: Be\n }), null, 16, [\"id\", \"minlength\", \"maxlength\", \"type\", \"disabled\", \"readonly\", \"autocomplete\", \"tabindex\", \"aria-label\", \"placeholder\", \"form\", \"autofocus\", \"onCompositionstart\", \"onCompositionupdate\", \"onCompositionend\"]),\n he(\" suffix slot \"),\n P(se) ? (N(), Z(\"span\", {\n key: 1,\n class: ie(P(p).e(\"suffix\"))\n }, [\n X(\"span\", {\n class: ie(P(p).e(\"suffix-inner\"))\n }, [\n !P(R) || !P(K) || !P(H) ? (N(), Z(Qe, { key: 0 }, [\n Le(S.$slots, \"suffix\"),\n S.suffixIcon ? (N(), ye(P(Vt), {\n key: 0,\n class: ie(P(p).e(\"icon\"))\n }, {\n default: U(() => [\n (N(), ye(er(S.suffixIcon)))\n ]),\n _: 1\n }, 8, [\"class\"])) : he(\"v-if\", !0)\n ], 64)) : he(\"v-if\", !0),\n P(R) ? (N(), ye(P(Vt), {\n key: 1,\n class: ie([P(p).e(\"icon\"), P(p).e(\"clear\")]),\n onMousedown: ht(P(Wi), [\"prevent\"]),\n onClick: le\n }, {\n default: U(() => [\n J(P(Au))\n ]),\n _: 1\n }, 8, [\"class\", \"onMousedown\"])) : he(\"v-if\", !0),\n P(K) ? (N(), ye(P(Vt), {\n key: 2,\n class: ie([P(p).e(\"icon\"), P(p).e(\"password\")]),\n onClick: ke\n }, {\n default: U(() => [\n (N(), ye(er(P(B))))\n ]),\n _: 1\n }, 8, [\"class\"])) : he(\"v-if\", !0),\n P(H) ? (N(), Z(\"span\", {\n key: 3,\n class: ie(P(p).e(\"count\"))\n }, [\n X(\"span\", {\n class: ie(P(p).e(\"count-inner\"))\n }, Ie(P(q)) + \" / \" + Ie(S.maxlength), 3)\n ], 2)) : he(\"v-if\", !0),\n P(F) && P(L) && P(O) ? (N(), ye(P(Vt), {\n key: 4,\n class: ie([\n P(p).e(\"icon\"),\n P(p).e(\"validateIcon\"),\n P(p).is(\"loading\", P(F) === \"validating\")\n ])\n }, {\n default: U(() => [\n (N(), ye(er(P(L))))\n ]),\n _: 1\n }, 8, [\"class\"])) : he(\"v-if\", !0)\n ], 2)\n ], 2)) : he(\"v-if\", !0)\n ], 2),\n he(\" append slot \"),\n S.$slots.append ? (N(), Z(\"div\", {\n key: 1,\n class: ie(P(p).be(\"group\", \"append\"))\n }, [\n Le(S.$slots, \"append\")\n ], 2)) : he(\"v-if\", !0)\n ], 64)) : (N(), Z(Qe, { key: 1 }, [\n he(\" textarea \"),\n X(\"textarea\", Rr({\n id: P(v),\n ref_key: \"textarea\",\n ref: y,\n class: [P(m).e(\"inner\"), P(p).is(\"focus\", P(k))]\n }, P(l), {\n minlength: S.minlength,\n maxlength: S.maxlength,\n tabindex: S.tabindex,\n disabled: P(f),\n readonly: S.readonly,\n autocomplete: S.autocomplete,\n style: P(M),\n \"aria-label\": S.ariaLabel,\n placeholder: S.placeholder,\n form: S.form,\n autofocus: S.autofocus,\n rows: S.rows,\n onCompositionstart: P(fe),\n onCompositionupdate: P(me),\n onCompositionend: P(xe),\n onInput: Q,\n onFocus: P(_),\n onBlur: P(D),\n onChange: ge,\n onKeydown: Be\n }), null, 16, [\"id\", \"minlength\", \"maxlength\", \"tabindex\", \"disabled\", \"readonly\", \"autocomplete\", \"aria-label\", \"placeholder\", \"form\", \"autofocus\", \"rows\", \"onCompositionstart\", \"onCompositionupdate\", \"onCompositionend\", \"onFocus\", \"onBlur\"]),\n P(H) ? (N(), Z(\"span\", {\n key: 0,\n style: lt(C.value),\n class: ie(P(p).e(\"count\"))\n }, Ie(P(q)) + \" / \" + Ie(S.maxlength), 7)) : he(\"v-if\", !0)\n ], 64))\n ], 16, [\"role\"]));\n }\n});\nvar Px = /* @__PURE__ */ Ve(Dx, [[\"__file\", \"input.vue\"]]);\nconst Eo = $t(Px), La = 4, Ox = {\n vertical: {\n offset: \"offsetHeight\",\n scroll: \"scrollTop\",\n scrollSize: \"scrollHeight\",\n size: \"height\",\n key: \"vertical\",\n axis: \"Y\",\n client: \"clientY\",\n direction: \"top\"\n },\n horizontal: {\n offset: \"offsetWidth\",\n scroll: \"scrollLeft\",\n scrollSize: \"scrollWidth\",\n size: \"width\",\n key: \"horizontal\",\n axis: \"X\",\n client: \"clientX\",\n direction: \"left\"\n }\n}, Lx = ({\n move: t,\n size: e,\n bar: r\n}) => ({\n [r.size]: e,\n transform: `translate${r.axis}(${t}%)`\n}), Zu = Symbol(\"scrollbarContextKey\"), Ix = rt({\n vertical: Boolean,\n size: String,\n move: Number,\n ratio: {\n type: Number,\n required: !0\n },\n always: Boolean\n}), Fx = \"Thumb\", Ax = /* @__PURE__ */ de({\n __name: \"thumb\",\n props: Ix,\n setup(t) {\n const e = t, r = Ue(Zu), n = He(\"scrollbar\");\n r || jb(Fx, \"can not inject scrollbar context\");\n const a = ce(), i = ce(), o = ce({}), s = ce(!1);\n let u = !1, l = !1, c = _t ? document.onselectstart : null;\n const d = V(() => Ox[e.vertical ? \"vertical\" : \"horizontal\"]), v = V(() => Lx({\n size: e.size,\n move: e.move,\n bar: d.value\n })), h = V(() => a.value[d.value.offset] ** 2 / r.wrapElement[d.value.scrollSize] / e.ratio / i.value[d.value.offset]), f = (E) => {\n var x;\n if (E.stopPropagation(), E.ctrlKey || [1, 2].includes(E.button))\n return;\n (x = window.getSelection()) == null || x.removeAllRanges(), m(E);\n const T = E.currentTarget;\n T && (o.value[d.value.axis] = T[d.value.offset] - (E[d.value.client] - T.getBoundingClientRect()[d.value.direction]));\n }, p = (E) => {\n if (!i.value || !a.value || !r.wrapElement)\n return;\n const x = Math.abs(E.target.getBoundingClientRect()[d.value.direction] - E[d.value.client]), T = i.value[d.value.offset] / 2, k = (x - T) * 100 * h.value / a.value[d.value.offset];\n r.wrapElement[d.value.scroll] = k * r.wrapElement[d.value.scrollSize] / 100;\n }, m = (E) => {\n E.stopImmediatePropagation(), u = !0, document.addEventListener(\"mousemove\", g), document.addEventListener(\"mouseup\", y), c = document.onselectstart, document.onselectstart = () => !1;\n }, g = (E) => {\n if (!a.value || !i.value || u === !1)\n return;\n const x = o.value[d.value.axis];\n if (!x)\n return;\n const T = (a.value.getBoundingClientRect()[d.value.direction] - E[d.value.client]) * -1, k = i.value[d.value.offset] - x, _ = (T - k) * 100 * h.value / a.value[d.value.offset];\n r.wrapElement[d.value.scroll] = _ * r.wrapElement[d.value.scrollSize] / 100;\n }, y = () => {\n u = !1, o.value[d.value.axis] = 0, document.removeEventListener(\"mousemove\", g), document.removeEventListener(\"mouseup\", y), C(), l && (s.value = !1);\n }, b = () => {\n l = !1, s.value = !!e.size;\n }, w = () => {\n l = !0, s.value = u;\n };\n qr(() => {\n C(), document.removeEventListener(\"mouseup\", y);\n });\n const C = () => {\n document.onselectstart !== c && (document.onselectstart = c);\n };\n return kr($r(r, \"scrollbarElement\"), \"mousemove\", b), kr($r(r, \"scrollbarElement\"), \"mouseleave\", w), (E, x) => (N(), ye(ui, {\n name: P(n).b(\"fade\"),\n persisted: \"\"\n }, {\n default: U(() => [\n Ze(X(\"div\", {\n ref_key: \"instance\",\n ref: a,\n class: ie([P(n).e(\"bar\"), P(n).is(P(d).key)]),\n onMousedown: p\n }, [\n X(\"div\", {\n ref_key: \"thumb\",\n ref: i,\n class: ie(P(n).e(\"thumb\")),\n style: lt(P(v)),\n onMousedown: f\n }, null, 38)\n ], 34), [\n [mt, E.always || s.value]\n ])\n ]),\n _: 1\n }, 8, [\"name\"]));\n }\n});\nvar Ld = /* @__PURE__ */ Ve(Ax, [[\"__file\", \"thumb.vue\"]]);\nconst Mx = rt({\n always: {\n type: Boolean,\n default: !0\n },\n minSize: {\n type: Number,\n required: !0\n }\n}), Bx = /* @__PURE__ */ de({\n __name: \"bar\",\n props: Mx,\n setup(t, { expose: e }) {\n const r = t, n = Ue(Zu), a = ce(0), i = ce(0), o = ce(\"\"), s = ce(\"\"), u = ce(1), l = ce(1);\n return e({\n handleScroll: (v) => {\n if (v) {\n const h = v.offsetHeight - La, f = v.offsetWidth - La;\n i.value = v.scrollTop * 100 / h * u.value, a.value = v.scrollLeft * 100 / f * l.value;\n }\n },\n update: () => {\n const v = n == null ? void 0 : n.wrapElement;\n if (!v)\n return;\n const h = v.offsetHeight - La, f = v.offsetWidth - La, p = h ** 2 / v.scrollHeight, m = f ** 2 / v.scrollWidth, g = Math.max(p, r.minSize), y = Math.max(m, r.minSize);\n u.value = p / (h - p) / (g / (h - g)), l.value = m / (f - m) / (y / (f - y)), s.value = g + La < h ? `${g}px` : \"\", o.value = y + La < f ? `${y}px` : \"\";\n }\n }), (v, h) => (N(), Z(Qe, null, [\n J(Ld, {\n move: a.value,\n ratio: l.value,\n size: o.value,\n always: v.always\n }, null, 8, [\"move\", \"ratio\", \"size\", \"always\"]),\n J(Ld, {\n move: i.value,\n ratio: u.value,\n size: s.value,\n vertical: \"\",\n always: v.always\n }, null, 8, [\"move\", \"ratio\", \"size\", \"always\"])\n ], 64));\n }\n});\nvar Nx = /* @__PURE__ */ Ve(Bx, [[\"__file\", \"bar.vue\"]]);\nconst $x = rt({\n height: {\n type: [String, Number],\n default: \"\"\n },\n maxHeight: {\n type: [String, Number],\n default: \"\"\n },\n native: {\n type: Boolean,\n default: !1\n },\n wrapStyle: {\n type: $e([String, Object, Array]),\n default: \"\"\n },\n wrapClass: {\n type: [String, Array],\n default: \"\"\n },\n viewClass: {\n type: [String, Array],\n default: \"\"\n },\n viewStyle: {\n type: [String, Array, Object],\n default: \"\"\n },\n noresize: Boolean,\n tag: {\n type: String,\n default: \"div\"\n },\n always: Boolean,\n minSize: {\n type: Number,\n default: 20\n },\n tabindex: {\n type: [String, Number],\n default: void 0\n },\n id: String,\n role: String,\n ...Zn([\"ariaLabel\", \"ariaOrientation\"])\n}), Rx = {\n scroll: ({\n scrollTop: t,\n scrollLeft: e\n }) => [t, e].every(qt)\n}, tu = \"ElScrollbar\", zx = de({\n name: tu\n}), Vx = /* @__PURE__ */ de({\n ...zx,\n props: $x,\n emits: Rx,\n setup(t, { expose: e, emit: r }) {\n const n = t, a = He(\"scrollbar\");\n let i, o, s = 0, u = 0;\n const l = ce(), c = ce(), d = ce(), v = ce(), h = V(() => {\n const C = {};\n return n.height && (C.height = Ja(n.height)), n.maxHeight && (C.maxHeight = Ja(n.maxHeight)), [n.wrapStyle, C];\n }), f = V(() => [\n n.wrapClass,\n a.e(\"wrap\"),\n { [a.em(\"wrap\", \"hidden-default\")]: !n.native }\n ]), p = V(() => [a.e(\"view\"), n.viewClass]), m = () => {\n var C;\n c.value && ((C = v.value) == null || C.handleScroll(c.value), s = c.value.scrollTop, u = c.value.scrollLeft, r(\"scroll\", {\n scrollTop: c.value.scrollTop,\n scrollLeft: c.value.scrollLeft\n }));\n };\n function g(C, E) {\n Ht(C) ? c.value.scrollTo(C) : qt(C) && qt(E) && c.value.scrollTo(C, E);\n }\n const y = (C) => {\n if (!qt(C)) {\n Dt(tu, \"value must be a number\");\n return;\n }\n c.value.scrollTop = C;\n }, b = (C) => {\n if (!qt(C)) {\n Dt(tu, \"value must be a number\");\n return;\n }\n c.value.scrollLeft = C;\n }, w = () => {\n var C;\n (C = v.value) == null || C.update();\n };\n return Pe(() => n.noresize, (C) => {\n C ? (i == null || i(), o == null || o()) : ({ stop: i } = dn(d, w), o = kr(\"resize\", w));\n }, { immediate: !0 }), Pe(() => [n.maxHeight, n.height], () => {\n n.native || ot(() => {\n var C;\n w(), c.value && ((C = v.value) == null || C.handleScroll(c.value));\n });\n }), Ct(Zu, Jr({\n scrollbarElement: l,\n wrapElement: c\n })), E0(() => {\n c.value && (c.value.scrollTop = s, c.value.scrollLeft = u);\n }), Et(() => {\n n.native || ot(() => {\n w();\n });\n }), mv(() => w()), e({\n wrapRef: c,\n update: w,\n scrollTo: g,\n setScrollTop: y,\n setScrollLeft: b,\n handleScroll: m\n }), (C, E) => (N(), Z(\"div\", {\n ref_key: \"scrollbarRef\",\n ref: l,\n class: ie(P(a).b())\n }, [\n X(\"div\", {\n ref_key: \"wrapRef\",\n ref: c,\n class: ie(P(f)),\n style: lt(P(h)),\n tabindex: C.tabindex,\n onScroll: m\n }, [\n (N(), ye(er(C.tag), {\n id: C.id,\n ref_key: \"resizeRef\",\n ref: d,\n class: ie(P(p)),\n style: lt(C.viewStyle),\n role: C.role,\n \"aria-label\": C.ariaLabel,\n \"aria-orientation\": C.ariaOrientation\n }, {\n default: U(() => [\n Le(C.$slots, \"default\")\n ]),\n _: 3\n }, 8, [\"id\", \"class\", \"style\", \"role\", \"aria-label\", \"aria-orientation\"]))\n ], 46, [\"tabindex\"]),\n C.native ? he(\"v-if\", !0) : (N(), ye(Nx, {\n key: 0,\n ref_key: \"barRef\",\n ref: v,\n always: C.always,\n \"min-size\": C.minSize\n }, null, 8, [\"always\", \"min-size\"]))\n ], 2));\n }\n});\nvar Hx = /* @__PURE__ */ Ve(Vx, [[\"__file\", \"scrollbar.vue\"]]);\nconst qx = $t(Hx), Xu = Symbol(\"popper\"), mh = Symbol(\"popperContent\"), Kx = [\n \"dialog\",\n \"grid\",\n \"group\",\n \"listbox\",\n \"menu\",\n \"navigation\",\n \"tooltip\",\n \"tree\"\n], yh = rt({\n role: {\n type: String,\n values: Kx,\n default: \"tooltip\"\n }\n}), Ux = de({\n name: \"ElPopper\",\n inheritAttrs: !1\n}), Gx = /* @__PURE__ */ de({\n ...Ux,\n props: yh,\n setup(t, { expose: e }) {\n const r = t, n = ce(), a = ce(), i = ce(), o = ce(), s = V(() => r.role), u = {\n triggerRef: n,\n popperInstanceRef: a,\n contentRef: i,\n referenceRef: o,\n role: s\n };\n return e(u), Ct(Xu, u), (l, c) => Le(l.$slots, \"default\");\n }\n});\nvar Wx = /* @__PURE__ */ Ve(Gx, [[\"__file\", \"popper.vue\"]]);\nconst bh = rt({\n arrowOffset: {\n type: Number,\n default: 5\n }\n}), Yx = de({\n name: \"ElPopperArrow\",\n inheritAttrs: !1\n}), Zx = /* @__PURE__ */ de({\n ...Yx,\n props: bh,\n setup(t, { expose: e }) {\n const r = t, n = He(\"popper\"), { arrowOffset: a, arrowRef: i, arrowStyle: o } = Ue(mh, void 0);\n return Pe(() => r.arrowOffset, (s) => {\n a.value = s;\n }), qr(() => {\n i.value = void 0;\n }), e({\n arrowRef: i\n }), (s, u) => (N(), Z(\"span\", {\n ref_key: \"arrowRef\",\n ref: i,\n class: ie(P(n).e(\"arrow\")),\n style: lt(P(o)),\n \"data-popper-arrow\": \"\"\n }, null, 6));\n }\n});\nvar Xx = /* @__PURE__ */ Ve(Zx, [[\"__file\", \"arrow.vue\"]]);\nconst kl = \"ElOnlyChild\", jx = de({\n name: kl,\n setup(t, {\n slots: e,\n attrs: r\n }) {\n var n;\n const a = Ue(uh), i = ox((n = a == null ? void 0 : a.setForwardRef) != null ? n : Wi);\n return () => {\n var o;\n const s = (o = e.default) == null ? void 0 : o.call(e, r);\n if (!s)\n return null;\n if (s.length > 1)\n return Dt(kl, \"requires exact only one valid child.\"), null;\n const u = wh(s);\n return u ? Ze(k0(u, r), [[i]]) : (Dt(kl, \"no valid child node found\"), null);\n };\n }\n});\nfunction wh(t) {\n if (!t)\n return null;\n const e = t;\n for (const r of e) {\n if (Ht(r))\n switch (r.type) {\n case S0:\n continue;\n case yv:\n case \"svg\":\n return Id(r);\n case Qe:\n return wh(r.children);\n default:\n return r;\n }\n return Id(r);\n }\n return null;\n}\nfunction Id(t) {\n const e = He(\"only-child\");\n return J(\"span\", {\n class: e.e(\"content\")\n }, [t]);\n}\nconst xh = rt({\n virtualRef: {\n type: $e(Object)\n },\n virtualTriggering: Boolean,\n onMouseenter: {\n type: $e(Function)\n },\n onMouseleave: {\n type: $e(Function)\n },\n onClick: {\n type: $e(Function)\n },\n onKeydown: {\n type: $e(Function)\n },\n onFocus: {\n type: $e(Function)\n },\n onBlur: {\n type: $e(Function)\n },\n onContextmenu: {\n type: $e(Function)\n },\n id: String,\n open: Boolean\n}), Qx = de({\n name: \"ElPopperTrigger\",\n inheritAttrs: !1\n}), Jx = /* @__PURE__ */ de({\n ...Qx,\n props: xh,\n setup(t, { expose: e }) {\n const r = t, { role: n, triggerRef: a } = Ue(Xu, void 0);\n ix(a);\n const i = V(() => s.value ? r.id : void 0), o = V(() => {\n if (n && n.value === \"tooltip\")\n return r.open && r.id ? r.id : void 0;\n }), s = V(() => {\n if (n && n.value !== \"tooltip\")\n return n.value;\n }), u = V(() => s.value ? `${r.open}` : void 0);\n let l;\n const c = [\n \"onMouseenter\",\n \"onMouseleave\",\n \"onClick\",\n \"onKeydown\",\n \"onFocus\",\n \"onBlur\",\n \"onContextmenu\"\n ];\n return Et(() => {\n Pe(() => r.virtualRef, (d) => {\n d && (a.value = vn(d));\n }, {\n immediate: !0\n }), Pe(a, (d, v) => {\n l == null || l(), l = void 0, ua(d) && (c.forEach((h) => {\n var f;\n const p = r[h];\n p && (d.addEventListener(h.slice(2).toLowerCase(), p), (f = v == null ? void 0 : v.removeEventListener) == null || f.call(v, h.slice(2).toLowerCase(), p));\n }), l = Pe([i, o, s, u], (h) => {\n [\n \"aria-controls\",\n \"aria-describedby\",\n \"aria-haspopup\",\n \"aria-expanded\"\n ].forEach((f, p) => {\n $n(h[p]) ? d.removeAttribute(f) : d.setAttribute(f, h[p]);\n });\n }, { immediate: !0 })), ua(v) && [\n \"aria-controls\",\n \"aria-describedby\",\n \"aria-haspopup\",\n \"aria-expanded\"\n ].forEach((h) => v.removeAttribute(h));\n }, {\n immediate: !0\n });\n }), qr(() => {\n if (l == null || l(), l = void 0, a.value && ua(a.value)) {\n const d = a.value;\n c.forEach((v) => {\n const h = r[v];\n h && d.removeEventListener(v.slice(2).toLowerCase(), h);\n }), a.value = void 0;\n }\n }), e({\n triggerRef: a\n }), (d, v) => d.virtualTriggering ? he(\"v-if\", !0) : (N(), ye(P(jx), Rr({ key: 0 }, d.$attrs, {\n \"aria-controls\": P(i),\n \"aria-describedby\": P(o),\n \"aria-expanded\": P(u),\n \"aria-haspopup\": P(s)\n }), {\n default: U(() => [\n Le(d.$slots, \"default\")\n ]),\n _: 3\n }, 16, [\"aria-controls\", \"aria-describedby\", \"aria-expanded\", \"aria-haspopup\"]));\n }\n});\nvar eC = /* @__PURE__ */ Ve(Jx, [[\"__file\", \"trigger.vue\"]]);\nconst Sl = \"focus-trap.focus-after-trapped\", Tl = \"focus-trap.focus-after-released\", tC = \"focus-trap.focusout-prevented\", Fd = {\n cancelable: !0,\n bubbles: !1\n}, rC = {\n cancelable: !0,\n bubbles: !1\n}, Ad = \"focusAfterTrapped\", Md = \"focusAfterReleased\", nC = Symbol(\"elFocusTrap\"), ju = ce(), js = ce(0), Qu = ce(0);\nlet Ro = 0;\nconst Ch = (t) => {\n const e = [], r = document.createTreeWalker(t, NodeFilter.SHOW_ELEMENT, {\n acceptNode: (n) => {\n const a = n.tagName === \"INPUT\" && n.type === \"hidden\";\n return n.disabled || n.hidden || a ? NodeFilter.FILTER_SKIP : n.tabIndex >= 0 || n === document.activeElement ? NodeFilter.FILTER_ACCEPT : NodeFilter.FILTER_SKIP;\n }\n });\n for (; r.nextNode(); )\n e.push(r.currentNode);\n return e;\n}, Bd = (t, e) => {\n for (const r of t)\n if (!aC(r, e))\n return r;\n}, aC = (t, e) => {\n if (process.env.NODE_ENV === \"test\")\n return !1;\n if (getComputedStyle(t).visibility === \"hidden\")\n return !0;\n for (; t; ) {\n if (e && t === e)\n return !1;\n if (getComputedStyle(t).display === \"none\")\n return !0;\n t = t.parentElement;\n }\n return !1;\n}, iC = (t) => {\n const e = Ch(t), r = Bd(e, t), n = Bd(e.reverse(), t);\n return [r, n];\n}, oC = (t) => t instanceof HTMLInputElement && \"select\" in t, On = (t, e) => {\n if (t && t.focus) {\n const r = document.activeElement;\n t.focus({ preventScroll: !0 }), Qu.value = window.performance.now(), t !== r && oC(t) && e && t.select();\n }\n};\nfunction Nd(t, e) {\n const r = [...t], n = t.indexOf(e);\n return n !== -1 && r.splice(n, 1), r;\n}\nconst sC = () => {\n let t = [];\n return {\n push: (n) => {\n const a = t[0];\n a && n !== a && a.pause(), t = Nd(t, n), t.unshift(n);\n },\n remove: (n) => {\n var a, i;\n t = Nd(t, n), (i = (a = t[0]) == null ? void 0 : a.resume) == null || i.call(a);\n }\n };\n}, lC = (t, e = !1) => {\n const r = document.activeElement;\n for (const n of t)\n if (On(n, e), document.activeElement !== r)\n return;\n}, $d = sC(), uC = () => js.value > Qu.value, zo = () => {\n ju.value = \"pointer\", js.value = window.performance.now();\n}, Rd = () => {\n ju.value = \"keyboard\", js.value = window.performance.now();\n}, cC = () => (Et(() => {\n Ro === 0 && (document.addEventListener(\"mousedown\", zo), document.addEventListener(\"touchstart\", zo), document.addEventListener(\"keydown\", Rd)), Ro++;\n}), qr(() => {\n Ro--, Ro <= 0 && (document.removeEventListener(\"mousedown\", zo), document.removeEventListener(\"touchstart\", zo), document.removeEventListener(\"keydown\", Rd));\n}), {\n focusReason: ju,\n lastUserFocusTimestamp: js,\n lastAutomatedFocusTimestamp: Qu\n}), Vo = (t) => new CustomEvent(tC, {\n ...rC,\n detail: t\n}), dC = de({\n name: \"ElFocusTrap\",\n inheritAttrs: !1,\n props: {\n loop: Boolean,\n trapped: Boolean,\n focusTrapEl: Object,\n focusStartEl: {\n type: [Object, String],\n default: \"first\"\n }\n },\n emits: [\n Ad,\n Md,\n \"focusin\",\n \"focusout\",\n \"focusout-prevented\",\n \"release-requested\"\n ],\n setup(t, { emit: e }) {\n const r = ce();\n let n, a;\n const { focusReason: i } = cC();\n ex((f) => {\n t.trapped && !o.paused && e(\"release-requested\", f);\n });\n const o = {\n paused: !1,\n pause() {\n this.paused = !0;\n },\n resume() {\n this.paused = !1;\n }\n }, s = (f) => {\n if (!t.loop && !t.trapped || o.paused)\n return;\n const { key: p, altKey: m, ctrlKey: g, metaKey: y, currentTarget: b, shiftKey: w } = f, { loop: C } = t, E = p === Lt.tab && !m && !g && !y, x = document.activeElement;\n if (E && x) {\n const T = b, [k, _] = iC(T);\n if (k && _) {\n if (!w && x === _) {\n const O = Vo({\n focusReason: i.value\n });\n e(\"focusout-prevented\", O), O.defaultPrevented || (f.preventDefault(), C && On(k, !0));\n } else if (w && [k, T].includes(x)) {\n const O = Vo({\n focusReason: i.value\n });\n e(\"focusout-prevented\", O), O.defaultPrevented || (f.preventDefault(), C && On(_, !0));\n }\n } else if (x === T) {\n const O = Vo({\n focusReason: i.value\n });\n e(\"focusout-prevented\", O), O.defaultPrevented || f.preventDefault();\n }\n }\n };\n Ct(nC, {\n focusTrapRef: r,\n onKeydown: s\n }), Pe(() => t.focusTrapEl, (f) => {\n f && (r.value = f);\n }, { immediate: !0 }), Pe([r], ([f], [p]) => {\n f && (f.addEventListener(\"keydown\", s), f.addEventListener(\"focusin\", c), f.addEventListener(\"focusout\", d)), p && (p.removeEventListener(\"keydown\", s), p.removeEventListener(\"focusin\", c), p.removeEventListener(\"focusout\", d));\n });\n const u = (f) => {\n e(Ad, f);\n }, l = (f) => e(Md, f), c = (f) => {\n const p = P(r);\n if (!p)\n return;\n const m = f.target, g = f.relatedTarget, y = m && p.contains(m);\n t.trapped || g && p.contains(g) || (n = g), y && e(\"focusin\", f), !o.paused && t.trapped && (y ? a = m : On(a, !0));\n }, d = (f) => {\n const p = P(r);\n if (!(o.paused || !p))\n if (t.trapped) {\n const m = f.relatedTarget;\n !$n(m) && !p.contains(m) && setTimeout(() => {\n if (!o.paused && t.trapped) {\n const g = Vo({\n focusReason: i.value\n });\n e(\"focusout-prevented\", g), g.defaultPrevented || On(a, !0);\n }\n }, 0);\n } else {\n const m = f.target;\n m && p.contains(m) || e(\"focusout\", f);\n }\n };\n async function v() {\n await ot();\n const f = P(r);\n if (f) {\n $d.push(o);\n const p = f.contains(document.activeElement) ? n : document.activeElement;\n if (n = p, !f.contains(p)) {\n const g = new Event(Sl, Fd);\n f.addEventListener(Sl, u), f.dispatchEvent(g), g.defaultPrevented || ot(() => {\n let y = t.focusStartEl;\n tr(y) || (On(y), document.activeElement !== y && (y = \"first\")), y === \"first\" && lC(Ch(f), !0), (document.activeElement === p || y === \"container\") && On(f);\n });\n }\n }\n }\n function h() {\n const f = P(r);\n if (f) {\n f.removeEventListener(Sl, u);\n const p = new CustomEvent(Tl, {\n ...Fd,\n detail: {\n focusReason: i.value\n }\n });\n f.addEventListener(Tl, l), f.dispatchEvent(p), !p.defaultPrevented && (i.value == \"keyboard\" || !uC() || f.contains(document.activeElement)) && On(n ?? document.body), f.removeEventListener(Tl, l), $d.remove(o);\n }\n }\n return Et(() => {\n t.trapped && v(), Pe(() => t.trapped, (f) => {\n f ? v() : h();\n });\n }), qr(() => {\n t.trapped && h(), r.value && (r.value.removeEventListener(\"keydown\", s), r.value.removeEventListener(\"focusin\", c), r.value.removeEventListener(\"focusout\", d), r.value = void 0);\n }), {\n onKeydown: s\n };\n }\n});\nfunction fC(t, e, r, n, a, i) {\n return Le(t.$slots, \"default\", { handleKeydown: t.onKeydown });\n}\nvar vC = /* @__PURE__ */ Ve(dC, [[\"render\", fC], [\"__file\", \"focus-trap.vue\"]]);\nconst hC = [\"fixed\", \"absolute\"], pC = rt({\n boundariesPadding: {\n type: Number,\n default: 0\n },\n fallbackPlacements: {\n type: $e(Array),\n default: void 0\n },\n gpuAcceleration: {\n type: Boolean,\n default: !0\n },\n offset: {\n type: Number,\n default: 12\n },\n placement: {\n type: String,\n values: Ys,\n default: \"bottom\"\n },\n popperOptions: {\n type: $e(Object),\n default: () => ({})\n },\n strategy: {\n type: String,\n values: hC,\n default: \"absolute\"\n }\n}), Eh = rt({\n ...pC,\n id: String,\n style: {\n type: $e([String, Array, Object])\n },\n className: {\n type: $e([String, Array, Object])\n },\n effect: {\n type: $e(String),\n default: \"dark\"\n },\n visible: Boolean,\n enterable: {\n type: Boolean,\n default: !0\n },\n pure: Boolean,\n focusOnShow: {\n type: Boolean,\n default: !1\n },\n trapping: {\n type: Boolean,\n default: !1\n },\n popperClass: {\n type: $e([String, Array, Object])\n },\n popperStyle: {\n type: $e([String, Array, Object])\n },\n referenceEl: {\n type: $e(Object)\n },\n triggerTargetEl: {\n type: $e(Object)\n },\n stopPopperMouseEvent: {\n type: Boolean,\n default: !0\n },\n virtualTriggering: Boolean,\n zIndex: Number,\n ...Zn([\"ariaLabel\"])\n}), gC = {\n mouseenter: (t) => t instanceof MouseEvent,\n mouseleave: (t) => t instanceof MouseEvent,\n focus: () => !0,\n blur: () => !0,\n close: () => !0\n}, mC = (t, e = []) => {\n const { placement: r, strategy: n, popperOptions: a } = t, i = {\n placement: r,\n strategy: n,\n ...a,\n modifiers: [...bC(t), ...e]\n };\n return wC(i, a == null ? void 0 : a.modifiers), i;\n}, yC = (t) => {\n if (_t)\n return vn(t);\n};\nfunction bC(t) {\n const { offset: e, gpuAcceleration: r, fallbackPlacements: n } = t;\n return [\n {\n name: \"offset\",\n options: {\n offset: [0, e ?? 12]\n }\n },\n {\n name: \"preventOverflow\",\n options: {\n padding: {\n top: 2,\n bottom: 2,\n left: 5,\n right: 5\n }\n }\n },\n {\n name: \"flip\",\n options: {\n padding: 5,\n fallbackPlacements: n\n }\n },\n {\n name: \"computeStyles\",\n options: {\n gpuAcceleration: r\n }\n }\n ];\n}\nfunction wC(t, e) {\n e && (t.modifiers = [...t.modifiers, ...e ?? []]);\n}\nconst xC = 0, CC = (t) => {\n const { popperInstanceRef: e, contentRef: r, triggerRef: n, role: a } = Ue(Xu, void 0), i = ce(), o = ce(), s = V(() => ({\n name: \"eventListeners\",\n enabled: !!t.visible\n })), u = V(() => {\n var g;\n const y = P(i), b = (g = P(o)) != null ? g : xC;\n return {\n name: \"arrow\",\n enabled: !Ub(y),\n options: {\n element: y,\n padding: b\n }\n };\n }), l = V(() => ({\n onFirstUpdate: () => {\n f();\n },\n ...mC(t, [\n P(u),\n P(s)\n ])\n })), c = V(() => yC(t.referenceEl) || P(n)), { attributes: d, state: v, styles: h, update: f, forceUpdate: p, instanceRef: m } = jw(c, r, l);\n return Pe(m, (g) => e.value = g), Et(() => {\n Pe(() => {\n var g;\n return (g = P(c)) == null ? void 0 : g.getBoundingClientRect();\n }, () => {\n f();\n });\n }), {\n attributes: d,\n arrowRef: i,\n contentRef: r,\n instanceRef: m,\n state: v,\n styles: h,\n role: a,\n forceUpdate: p,\n update: f\n };\n}, EC = (t, {\n attributes: e,\n styles: r,\n role: n\n}) => {\n const { nextZIndex: a } = fh(), i = He(\"popper\"), o = V(() => P(e).popper), s = ce(qt(t.zIndex) ? t.zIndex : a()), u = V(() => [\n i.b(),\n i.is(\"pure\", t.pure),\n i.is(t.effect),\n t.popperClass\n ]), l = V(() => [\n { zIndex: P(s) },\n P(r).popper,\n t.popperStyle || {}\n ]), c = V(() => n.value === \"dialog\" ? \"false\" : void 0), d = V(() => P(r).arrow || {});\n return {\n ariaModal: c,\n arrowStyle: d,\n contentAttrs: o,\n contentClass: u,\n contentStyle: l,\n contentZIndex: s,\n updateZIndex: () => {\n s.value = qt(t.zIndex) ? t.zIndex : a();\n }\n };\n}, kC = (t, e) => {\n const r = ce(!1), n = ce();\n return {\n focusStartRef: n,\n trapped: r,\n onFocusAfterReleased: (l) => {\n var c;\n ((c = l.detail) == null ? void 0 : c.focusReason) !== \"pointer\" && (n.value = \"first\", e(\"blur\"));\n },\n onFocusAfterTrapped: () => {\n e(\"focus\");\n },\n onFocusInTrap: (l) => {\n t.visible && !r.value && (l.target && (n.value = l.target), r.value = !0);\n },\n onFocusoutPrevented: (l) => {\n t.trapping || (l.detail.focusReason === \"pointer\" && l.preventDefault(), r.value = !1);\n },\n onReleaseRequested: () => {\n r.value = !1, e(\"close\");\n }\n };\n}, SC = de({\n name: \"ElPopperContent\"\n}), TC = /* @__PURE__ */ de({\n ...SC,\n props: Eh,\n emits: gC,\n setup(t, { expose: e, emit: r }) {\n const n = t, {\n focusStartRef: a,\n trapped: i,\n onFocusAfterReleased: o,\n onFocusAfterTrapped: s,\n onFocusInTrap: u,\n onFocusoutPrevented: l,\n onReleaseRequested: c\n } = kC(n, r), { attributes: d, arrowRef: v, contentRef: h, styles: f, instanceRef: p, role: m, update: g } = CC(n), {\n ariaModal: y,\n arrowStyle: b,\n contentAttrs: w,\n contentClass: C,\n contentStyle: E,\n updateZIndex: x\n } = EC(n, {\n styles: f,\n attributes: d,\n role: m\n }), T = Ue(Qi, void 0), k = ce();\n Ct(mh, {\n arrowStyle: b,\n arrowRef: v,\n arrowOffset: k\n }), T && Ct(Qi, {\n ...T,\n addInputId: Wi,\n removeInputId: Wi\n });\n let _;\n const D = (F = !0) => {\n g(), F && x();\n }, O = () => {\n D(!1), n.visible && n.focusOnShow ? i.value = !0 : n.visible === !1 && (i.value = !1);\n };\n return Et(() => {\n Pe(() => n.triggerTargetEl, (F, L) => {\n _ == null || _(), _ = void 0;\n const B = P(F || h.value), I = P(L || h.value);\n ua(B) && (_ = Pe([m, () => n.ariaLabel, y, () => n.id], (M) => {\n [\"role\", \"aria-label\", \"aria-modal\", \"id\"].forEach((A, R) => {\n $n(M[R]) ? B.removeAttribute(A) : B.setAttribute(A, M[R]);\n });\n }, { immediate: !0 })), I !== B && ua(I) && [\"role\", \"aria-label\", \"aria-modal\", \"id\"].forEach((M) => {\n I.removeAttribute(M);\n });\n }, { immediate: !0 }), Pe(() => n.visible, O, { immediate: !0 });\n }), qr(() => {\n _ == null || _(), _ = void 0;\n }), e({\n popperContentRef: h,\n popperInstanceRef: p,\n updatePopper: D,\n contentStyle: E\n }), (F, L) => (N(), Z(\"div\", Rr({\n ref_key: \"contentRef\",\n ref: h\n }, P(w), {\n style: P(E),\n class: P(C),\n tabindex: \"-1\",\n onMouseenter: (B) => F.$emit(\"mouseenter\", B),\n onMouseleave: (B) => F.$emit(\"mouseleave\", B)\n }), [\n J(P(vC), {\n trapped: P(i),\n \"trap-on-focus-in\": !0,\n \"focus-trap-el\": P(h),\n \"focus-start-el\": P(a),\n onFocusAfterTrapped: P(s),\n onFocusAfterReleased: P(o),\n onFocusin: P(u),\n onFocusoutPrevented: P(l),\n onReleaseRequested: P(c)\n }, {\n default: U(() => [\n Le(F.$slots, \"default\")\n ]),\n _: 3\n }, 8, [\"trapped\", \"focus-trap-el\", \"focus-start-el\", \"onFocusAfterTrapped\", \"onFocusAfterReleased\", \"onFocusin\", \"onFocusoutPrevented\", \"onReleaseRequested\"])\n ], 16, [\"onMouseenter\", \"onMouseleave\"]));\n }\n});\nvar _C = /* @__PURE__ */ Ve(TC, [[\"__file\", \"content.vue\"]]);\nconst DC = $t(Wx), Ju = Symbol(\"elTooltip\"), cr = rt({\n ...nx,\n ...Eh,\n appendTo: {\n type: $e([String, Object])\n },\n content: {\n type: String,\n default: \"\"\n },\n rawContent: Boolean,\n persistent: Boolean,\n visible: {\n type: $e(Boolean),\n default: null\n },\n transition: String,\n teleported: {\n type: Boolean,\n default: !0\n },\n disabled: Boolean,\n ...Zn([\"ariaLabel\"])\n}), Ji = rt({\n ...xh,\n disabled: Boolean,\n trigger: {\n type: $e([String, Array]),\n default: \"hover\"\n },\n triggerKeys: {\n type: $e(Array),\n default: () => [Lt.enter, Lt.space]\n }\n}), {\n useModelToggleProps: PC,\n useModelToggleEmits: OC,\n useModelToggle: LC\n} = Y2(\"visible\"), IC = rt({\n ...yh,\n ...PC,\n ...cr,\n ...Ji,\n ...bh,\n showArrow: {\n type: Boolean,\n default: !0\n }\n}), FC = [\n ...OC,\n \"before-show\",\n \"before-hide\",\n \"show\",\n \"hide\",\n \"open\",\n \"close\"\n], AC = (t, e) => fr(t) ? t.includes(e) : t === e, Ia = (t, e, r) => (n) => {\n AC(P(t), e) && r(n);\n}, MC = de({\n name: \"ElTooltipTrigger\"\n}), BC = /* @__PURE__ */ de({\n ...MC,\n props: Ji,\n setup(t, { expose: e }) {\n const r = t, n = He(\"tooltip\"), { controlled: a, id: i, open: o, onOpen: s, onClose: u, onToggle: l } = Ue(Ju, void 0), c = ce(null), d = () => {\n if (P(a) || r.disabled)\n return !0;\n }, v = $r(r, \"trigger\"), h = cn(d, Ia(v, \"hover\", s)), f = cn(d, Ia(v, \"hover\", u)), p = cn(d, Ia(v, \"click\", (w) => {\n w.button === 0 && l(w);\n })), m = cn(d, Ia(v, \"focus\", s)), g = cn(d, Ia(v, \"focus\", u)), y = cn(d, Ia(v, \"contextmenu\", (w) => {\n w.preventDefault(), l(w);\n })), b = cn(d, (w) => {\n const { code: C } = w;\n r.triggerKeys.includes(C) && (w.preventDefault(), l(w));\n });\n return e({\n triggerRef: c\n }), (w, C) => (N(), ye(P(eC), {\n id: P(i),\n \"virtual-ref\": w.virtualRef,\n open: P(o),\n \"virtual-triggering\": w.virtualTriggering,\n class: ie(P(n).e(\"trigger\")),\n onBlur: P(g),\n onClick: P(p),\n onContextmenu: P(y),\n onFocus: P(m),\n onMouseenter: P(h),\n onMouseleave: P(f),\n onKeydown: P(b)\n }, {\n default: U(() => [\n Le(w.$slots, \"default\")\n ]),\n _: 3\n }, 8, [\"id\", \"virtual-ref\", \"open\", \"virtual-triggering\", \"class\", \"onBlur\", \"onClick\", \"onContextmenu\", \"onFocus\", \"onMouseenter\", \"onMouseleave\", \"onKeydown\"]));\n }\n});\nvar NC = /* @__PURE__ */ Ve(BC, [[\"__file\", \"trigger.vue\"]]);\nconst $C = rt({\n to: {\n type: $e([String, Object]),\n required: !0\n },\n disabled: Boolean\n}), RC = /* @__PURE__ */ de({\n __name: \"teleport\",\n props: $C,\n setup(t) {\n return (e, r) => e.disabled ? Le(e.$slots, \"default\", { key: 0 }) : (N(), ye(T0, {\n key: 1,\n to: e.to\n }, [\n Le(e.$slots, \"default\")\n ], 8, [\"to\"]));\n }\n});\nvar zC = /* @__PURE__ */ Ve(RC, [[\"__file\", \"teleport.vue\"]]);\nconst VC = $t(zC), HC = de({\n name: \"ElTooltipContent\",\n inheritAttrs: !1\n}), qC = /* @__PURE__ */ de({\n ...HC,\n props: cr,\n setup(t, { expose: e }) {\n const r = t, { selector: n } = lh(), a = He(\"tooltip\"), i = ce(null);\n let o;\n const {\n controlled: s,\n id: u,\n open: l,\n trigger: c,\n onClose: d,\n onOpen: v,\n onShow: h,\n onHide: f,\n onBeforeShow: p,\n onBeforeHide: m\n } = Ue(Ju, void 0), g = V(() => r.transition || `${a.namespace.value}-fade-in-linear`), y = V(() => process.env.NODE_ENV === \"test\" ? !0 : r.persistent);\n qr(() => {\n o == null || o();\n });\n const b = V(() => P(y) ? !0 : P(l)), w = V(() => r.disabled ? !1 : P(l)), C = V(() => r.appendTo || n.value), E = V(() => {\n var I;\n return (I = r.style) != null ? I : {};\n }), x = ce(!0), T = () => {\n f(), x.value = !0;\n }, k = () => {\n if (P(s))\n return !0;\n }, _ = cn(k, () => {\n r.enterable && P(c) === \"hover\" && v();\n }), D = cn(k, () => {\n P(c) === \"hover\" && d();\n }), O = () => {\n var I, M;\n (M = (I = i.value) == null ? void 0 : I.updatePopper) == null || M.call(I), p == null || p();\n }, F = () => {\n m == null || m();\n }, L = () => {\n h(), o = $0(V(() => {\n var I;\n return (I = i.value) == null ? void 0 : I.popperContentRef;\n }), () => {\n if (P(s))\n return;\n P(c) !== \"hover\" && d();\n });\n }, B = () => {\n r.virtualTriggering || d();\n };\n return Pe(() => P(l), (I) => {\n I ? x.value = !1 : o == null || o();\n }, {\n flush: \"post\"\n }), Pe(() => r.content, () => {\n var I, M;\n (M = (I = i.value) == null ? void 0 : I.updatePopper) == null || M.call(I);\n }), e({\n contentRef: i\n }), (I, M) => (N(), ye(P(VC), {\n disabled: !I.teleported,\n to: P(C)\n }, {\n default: U(() => [\n J(ui, {\n name: P(g),\n onAfterLeave: T,\n onBeforeEnter: O,\n onAfterEnter: L,\n onBeforeLeave: F\n }, {\n default: U(() => [\n P(b) ? Ze((N(), ye(P(_C), Rr({\n key: 0,\n id: P(u),\n ref_key: \"contentRef\",\n ref: i\n }, I.$attrs, {\n \"aria-label\": I.ariaLabel,\n \"aria-hidden\": x.value,\n \"boundaries-padding\": I.boundariesPadding,\n \"fallback-placements\": I.fallbackPlacements,\n \"gpu-acceleration\": I.gpuAcceleration,\n offset: I.offset,\n placement: I.placement,\n \"popper-options\": I.popperOptions,\n strategy: I.strategy,\n effect: I.effect,\n enterable: I.enterable,\n pure: I.pure,\n \"popper-class\": I.popperClass,\n \"popper-style\": [I.popperStyle, P(E)],\n \"reference-el\": I.referenceEl,\n \"trigger-target-el\": I.triggerTargetEl,\n visible: P(w),\n \"z-index\": I.zIndex,\n onMouseenter: P(_),\n onMouseleave: P(D),\n onBlur: B,\n onClose: P(d)\n }), {\n default: U(() => [\n Le(I.$slots, \"default\")\n ]),\n _: 3\n }, 16, [\"id\", \"aria-label\", \"aria-hidden\", \"boundaries-padding\", \"fallback-placements\", \"gpu-acceleration\", \"offset\", \"placement\", \"popper-options\", \"strategy\", \"effect\", \"enterable\", \"pure\", \"popper-class\", \"popper-style\", \"reference-el\", \"trigger-target-el\", \"visible\", \"z-index\", \"onMouseenter\", \"onMouseleave\", \"onClose\"])), [\n [mt, P(w)]\n ]) : he(\"v-if\", !0)\n ]),\n _: 3\n }, 8, [\"name\"])\n ]),\n _: 3\n }, 8, [\"disabled\", \"to\"]));\n }\n});\nvar KC = /* @__PURE__ */ Ve(qC, [[\"__file\", \"content.vue\"]]);\nconst UC = de({\n name: \"ElTooltip\"\n}), GC = /* @__PURE__ */ de({\n ...UC,\n props: IC,\n emits: FC,\n setup(t, { expose: e, emit: r }) {\n const n = t;\n rx();\n const a = Xs(), i = ce(), o = ce(), s = () => {\n var g;\n const y = P(i);\n y && ((g = y.popperInstanceRef) == null || g.update());\n }, u = ce(!1), l = ce(), { show: c, hide: d, hasUpdateHandler: v } = LC({\n indicator: u,\n toggleReason: l\n }), { onOpen: h, onClose: f } = ax({\n showAfter: $r(n, \"showAfter\"),\n hideAfter: $r(n, \"hideAfter\"),\n autoClose: $r(n, \"autoClose\"),\n open: c,\n close: d\n }), p = V(() => Qa(n.visible) && !v.value);\n Ct(Ju, {\n controlled: p,\n id: a,\n open: _0(u),\n trigger: $r(n, \"trigger\"),\n onOpen: (g) => {\n h(g);\n },\n onClose: (g) => {\n f(g);\n },\n onToggle: (g) => {\n P(u) ? f(g) : h(g);\n },\n onShow: () => {\n r(\"show\", l.value);\n },\n onHide: () => {\n r(\"hide\", l.value);\n },\n onBeforeShow: () => {\n r(\"before-show\", l.value);\n },\n onBeforeHide: () => {\n r(\"before-hide\", l.value);\n },\n updatePopper: s\n }), Pe(() => n.disabled, (g) => {\n g && u.value && (u.value = !1);\n });\n const m = (g) => {\n var y, b;\n const w = (b = (y = o.value) == null ? void 0 : y.contentRef) == null ? void 0 : b.popperContentRef, C = (g == null ? void 0 : g.relatedTarget) || document.activeElement;\n return w && w.contains(C);\n };\n return D0(() => u.value && d()), e({\n popperRef: i,\n contentRef: o,\n isFocusInsideContent: m,\n updatePopper: s,\n onOpen: h,\n onClose: f,\n hide: d\n }), (g, y) => (N(), ye(P(DC), {\n ref_key: \"popperRef\",\n ref: i,\n role: g.role\n }, {\n default: U(() => [\n J(NC, {\n disabled: g.disabled,\n trigger: g.trigger,\n \"trigger-keys\": g.triggerKeys,\n \"virtual-ref\": g.virtualRef,\n \"virtual-triggering\": g.virtualTriggering\n }, {\n default: U(() => [\n g.$slots.default ? Le(g.$slots, \"default\", { key: 0 }) : he(\"v-if\", !0)\n ]),\n _: 3\n }, 8, [\"disabled\", \"trigger\", \"trigger-keys\", \"virtual-ref\", \"virtual-triggering\"]),\n J(KC, {\n ref_key: \"contentRef\",\n ref: o,\n \"aria-label\": g.ariaLabel,\n \"boundaries-padding\": g.boundariesPadding,\n content: g.content,\n disabled: g.disabled,\n effect: g.effect,\n enterable: g.enterable,\n \"fallback-placements\": g.fallbackPlacements,\n \"hide-after\": g.hideAfter,\n \"gpu-acceleration\": g.gpuAcceleration,\n offset: g.offset,\n persistent: g.persistent,\n \"popper-class\": g.popperClass,\n \"popper-style\": g.popperStyle,\n placement: g.placement,\n \"popper-options\": g.popperOptions,\n pure: g.pure,\n \"raw-content\": g.rawContent,\n \"reference-el\": g.referenceEl,\n \"trigger-target-el\": g.triggerTargetEl,\n \"show-after\": g.showAfter,\n strategy: g.strategy,\n teleported: g.teleported,\n transition: g.transition,\n \"virtual-triggering\": g.virtualTriggering,\n \"z-index\": g.zIndex,\n \"append-to\": g.appendTo\n }, {\n default: U(() => [\n Le(g.$slots, \"content\", {}, () => [\n g.rawContent ? (N(), Z(\"span\", {\n key: 0,\n innerHTML: g.content\n }, null, 8, [\"innerHTML\"])) : (N(), Z(\"span\", { key: 1 }, Ie(g.content), 1))\n ]),\n g.showArrow ? (N(), ye(P(Xx), {\n key: 0,\n \"arrow-offset\": g.arrowOffset\n }, null, 8, [\"arrow-offset\"])) : he(\"v-if\", !0)\n ]),\n _: 3\n }, 8, [\"aria-label\", \"boundaries-padding\", \"content\", \"disabled\", \"effect\", \"enterable\", \"fallback-placements\", \"hide-after\", \"gpu-acceleration\", \"offset\", \"persistent\", \"popper-class\", \"popper-style\", \"placement\", \"popper-options\", \"pure\", \"raw-content\", \"reference-el\", \"trigger-target-el\", \"show-after\", \"strategy\", \"teleported\", \"transition\", \"virtual-triggering\", \"z-index\", \"append-to\"])\n ]),\n _: 3\n }, 8, [\"role\"]));\n }\n});\nvar WC = /* @__PURE__ */ Ve(GC, [[\"__file\", \"tooltip.vue\"]]);\nconst ko = $t(WC), kh = Symbol(\"buttonGroupContextKey\"), YC = (t, e) => {\n as({\n from: \"type.text\",\n replacement: \"link\",\n version: \"3.0.0\",\n scope: \"props\",\n ref: \"https://element-plus.org/en-US/component/button.html#button-attributes\"\n }, V(() => t.type === \"text\"));\n const r = Ue(kh, void 0), n = Wu(\"button\"), { form: a } = Ta(), i = pa(V(() => r == null ? void 0 : r.size)), o = xo(), s = ce(), u = vo(), l = V(() => t.type || (r == null ? void 0 : r.type) || \"\"), c = V(() => {\n var f, p, m;\n return (m = (p = t.autoInsertSpace) != null ? p : (f = n.value) == null ? void 0 : f.autoInsertSpace) != null ? m : !1;\n }), d = V(() => t.tag === \"button\" ? {\n ariaDisabled: o.value || t.loading,\n disabled: o.value || t.loading,\n autofocus: t.autofocus,\n type: t.nativeType\n } : {}), v = V(() => {\n var f;\n const p = (f = u.default) == null ? void 0 : f.call(u);\n if (c.value && (p == null ? void 0 : p.length) === 1) {\n const m = p[0];\n if ((m == null ? void 0 : m.type) === yv) {\n const g = m.children;\n return new RegExp(\"^\\\\p{Unified_Ideograph}{2}$\", \"u\").test(g.trim());\n }\n }\n return !1;\n });\n return {\n _disabled: o,\n _size: i,\n _type: l,\n _ref: s,\n _props: d,\n shouldAddSpace: v,\n handleClick: (f) => {\n if (o.value || t.loading) {\n f.stopPropagation();\n return;\n }\n t.nativeType === \"reset\" && (a == null || a.resetFields()), e(\"click\", f);\n }\n };\n}, ZC = [\n \"default\",\n \"primary\",\n \"success\",\n \"warning\",\n \"info\",\n \"danger\",\n \"text\",\n \"\"\n], XC = [\"button\", \"submit\", \"reset\"], ru = rt({\n size: di,\n disabled: Boolean,\n type: {\n type: String,\n values: ZC,\n default: \"\"\n },\n icon: {\n type: Hn\n },\n nativeType: {\n type: String,\n values: XC,\n default: \"button\"\n },\n loading: Boolean,\n loadingIcon: {\n type: Hn,\n default: () => Mu\n },\n plain: Boolean,\n text: Boolean,\n link: Boolean,\n bg: Boolean,\n autofocus: Boolean,\n round: Boolean,\n circle: Boolean,\n color: String,\n dark: Boolean,\n autoInsertSpace: {\n type: Boolean,\n default: void 0\n },\n tag: {\n type: $e([String, Object]),\n default: \"button\"\n }\n}), jC = {\n click: (t) => t instanceof MouseEvent\n};\nfunction Kt(t, e) {\n QC(t) && (t = \"100%\");\n var r = JC(t);\n return t = e === 360 ? t : Math.min(e, Math.max(0, parseFloat(t))), r && (t = parseInt(String(t * e), 10) / 100), Math.abs(t - e) < 1e-6 ? 1 : (e === 360 ? t = (t < 0 ? t % e + e : t % e) / parseFloat(String(e)) : t = t % e / parseFloat(String(e)), t);\n}\nfunction Ho(t) {\n return Math.min(1, Math.max(0, t));\n}\nfunction QC(t) {\n return typeof t == \"string\" && t.indexOf(\".\") !== -1 && parseFloat(t) === 1;\n}\nfunction JC(t) {\n return typeof t == \"string\" && t.indexOf(\"%\") !== -1;\n}\nfunction Sh(t) {\n return t = parseFloat(t), (isNaN(t) || t < 0 || t > 1) && (t = 1), t;\n}\nfunction qo(t) {\n return t <= 1 ? \"\".concat(Number(t) * 100, \"%\") : t;\n}\nfunction sa(t) {\n return t.length === 1 ? \"0\" + t : String(t);\n}\nfunction eE(t, e, r) {\n return {\n r: Kt(t, 255) * 255,\n g: Kt(e, 255) * 255,\n b: Kt(r, 255) * 255\n };\n}\nfunction zd(t, e, r) {\n t = Kt(t, 255), e = Kt(e, 255), r = Kt(r, 255);\n var n = Math.max(t, e, r), a = Math.min(t, e, r), i = 0, o = 0, s = (n + a) / 2;\n if (n === a)\n o = 0, i = 0;\n else {\n var u = n - a;\n switch (o = s > 0.5 ? u / (2 - n - a) : u / (n + a), n) {\n case t:\n i = (e - r) / u + (e < r ? 6 : 0);\n break;\n case e:\n i = (r - t) / u + 2;\n break;\n case r:\n i = (t - e) / u + 4;\n break;\n }\n i /= 6;\n }\n return { h: i, s: o, l: s };\n}\nfunction _l(t, e, r) {\n return r < 0 && (r += 1), r > 1 && (r -= 1), r < 1 / 6 ? t + (e - t) * (6 * r) : r < 1 / 2 ? e : r < 2 / 3 ? t + (e - t) * (2 / 3 - r) * 6 : t;\n}\nfunction tE(t, e, r) {\n var n, a, i;\n if (t = Kt(t, 360), e = Kt(e, 100), r = Kt(r, 100), e === 0)\n a = r, i = r, n = r;\n else {\n var o = r < 0.5 ? r * (1 + e) : r + e - r * e, s = 2 * r - o;\n n = _l(s, o, t + 1 / 3), a = _l(s, o, t), i = _l(s, o, t - 1 / 3);\n }\n return { r: n * 255, g: a * 255, b: i * 255 };\n}\nfunction Vd(t, e, r) {\n t = Kt(t, 255), e = Kt(e, 255), r = Kt(r, 255);\n var n = Math.max(t, e, r), a = Math.min(t, e, r), i = 0, o = n, s = n - a, u = n === 0 ? 0 : s / n;\n if (n === a)\n i = 0;\n else {\n switch (n) {\n case t:\n i = (e - r) / s + (e < r ? 6 : 0);\n break;\n case e:\n i = (r - t) / s + 2;\n break;\n case r:\n i = (t - e) / s + 4;\n break;\n }\n i /= 6;\n }\n return { h: i, s: u, v: o };\n}\nfunction rE(t, e, r) {\n t = Kt(t, 360) * 6, e = Kt(e, 100), r = Kt(r, 100);\n var n = Math.floor(t), a = t - n, i = r * (1 - e), o = r * (1 - a * e), s = r * (1 - (1 - a) * e), u = n % 6, l = [r, o, i, i, s, r][u], c = [s, r, r, o, i, i][u], d = [i, i, s, r, r, o][u];\n return { r: l * 255, g: c * 255, b: d * 255 };\n}\nfunction Hd(t, e, r, n) {\n var a = [\n sa(Math.round(t).toString(16)),\n sa(Math.round(e).toString(16)),\n sa(Math.round(r).toString(16))\n ];\n return n && a[0].startsWith(a[0].charAt(1)) && a[1].startsWith(a[1].charAt(1)) && a[2].startsWith(a[2].charAt(1)) ? a[0].charAt(0) + a[1].charAt(0) + a[2].charAt(0) : a.join(\"\");\n}\nfunction nE(t, e, r, n, a) {\n var i = [\n sa(Math.round(t).toString(16)),\n sa(Math.round(e).toString(16)),\n sa(Math.round(r).toString(16)),\n sa(aE(n))\n ];\n return a && i[0].startsWith(i[0].charAt(1)) && i[1].startsWith(i[1].charAt(1)) && i[2].startsWith(i[2].charAt(1)) && i[3].startsWith(i[3].charAt(1)) ? i[0].charAt(0) + i[1].charAt(0) + i[2].charAt(0) + i[3].charAt(0) : i.join(\"\");\n}\nfunction aE(t) {\n return Math.round(parseFloat(t) * 255).toString(16);\n}\nfunction qd(t) {\n return mr(t) / 255;\n}\nfunction mr(t) {\n return parseInt(t, 16);\n}\nfunction iE(t) {\n return {\n r: t >> 16,\n g: (t & 65280) >> 8,\n b: t & 255\n };\n}\nvar nu = {\n aliceblue: \"#f0f8ff\",\n antiquewhite: \"#faebd7\",\n aqua: \"#00ffff\",\n aquamarine: \"#7fffd4\",\n azure: \"#f0ffff\",\n beige: \"#f5f5dc\",\n bisque: \"#ffe4c4\",\n black: \"#000000\",\n blanchedalmond: \"#ffebcd\",\n blue: \"#0000ff\",\n blueviolet: \"#8a2be2\",\n brown: \"#a52a2a\",\n burlywood: \"#deb887\",\n cadetblue: \"#5f9ea0\",\n chartreuse: \"#7fff00\",\n chocolate: \"#d2691e\",\n coral: \"#ff7f50\",\n cornflowerblue: \"#6495ed\",\n cornsilk: \"#fff8dc\",\n crimson: \"#dc143c\",\n cyan: \"#00ffff\",\n darkblue: \"#00008b\",\n darkcyan: \"#008b8b\",\n darkgoldenrod: \"#b8860b\",\n darkgray: \"#a9a9a9\",\n darkgreen: \"#006400\",\n darkgrey: \"#a9a9a9\",\n darkkhaki: \"#bdb76b\",\n darkmagenta: \"#8b008b\",\n darkolivegreen: \"#556b2f\",\n darkorange: \"#ff8c00\",\n darkorchid: \"#9932cc\",\n darkred: \"#8b0000\",\n darksalmon: \"#e9967a\",\n darkseagreen: \"#8fbc8f\",\n darkslateblue: \"#483d8b\",\n darkslategray: \"#2f4f4f\",\n darkslategrey: \"#2f4f4f\",\n darkturquoise: \"#00ced1\",\n darkviolet: \"#9400d3\",\n deeppink: \"#ff1493\",\n deepskyblue: \"#00bfff\",\n dimgray: \"#696969\",\n dimgrey: \"#696969\",\n dodgerblue: \"#1e90ff\",\n firebrick: \"#b22222\",\n floralwhite: \"#fffaf0\",\n forestgreen: \"#228b22\",\n fuchsia: \"#ff00ff\",\n gainsboro: \"#dcdcdc\",\n ghostwhite: \"#f8f8ff\",\n goldenrod: \"#daa520\",\n gold: \"#ffd700\",\n gray: \"#808080\",\n green: \"#008000\",\n greenyellow: \"#adff2f\",\n grey: \"#808080\",\n honeydew: \"#f0fff0\",\n hotpink: \"#ff69b4\",\n indianred: \"#cd5c5c\",\n indigo: \"#4b0082\",\n ivory: \"#fffff0\",\n khaki: \"#f0e68c\",\n lavenderblush: \"#fff0f5\",\n lavender: \"#e6e6fa\",\n lawngreen: \"#7cfc00\",\n lemonchiffon: \"#fffacd\",\n lightblue: \"#add8e6\",\n lightcoral: \"#f08080\",\n lightcyan: \"#e0ffff\",\n lightgoldenrodyellow: \"#fafad2\",\n lightgray: \"#d3d3d3\",\n lightgreen: \"#90ee90\",\n lightgrey: \"#d3d3d3\",\n lightpink: \"#ffb6c1\",\n lightsalmon: \"#ffa07a\",\n lightseagreen: \"#20b2aa\",\n lightskyblue: \"#87cefa\",\n lightslategray: \"#778899\",\n lightslategrey: \"#778899\",\n lightsteelblue: \"#b0c4de\",\n lightyellow: \"#ffffe0\",\n lime: \"#00ff00\",\n limegreen: \"#32cd32\",\n linen: \"#faf0e6\",\n magenta: \"#ff00ff\",\n maroon: \"#800000\",\n mediumaquamarine: \"#66cdaa\",\n mediumblue: \"#0000cd\",\n mediumorchid: \"#ba55d3\",\n mediumpurple: \"#9370db\",\n mediumseagreen: \"#3cb371\",\n mediumslateblue: \"#7b68ee\",\n mediumspringgreen: \"#00fa9a\",\n mediumturquoise: \"#48d1cc\",\n mediumvioletred: \"#c71585\",\n midnightblue: \"#191970\",\n mintcream: \"#f5fffa\",\n mistyrose: \"#ffe4e1\",\n moccasin: \"#ffe4b5\",\n navajowhite: \"#ffdead\",\n navy: \"#000080\",\n oldlace: \"#fdf5e6\",\n olive: \"#808000\",\n olivedrab: \"#6b8e23\",\n orange: \"#ffa500\",\n orangered: \"#ff4500\",\n orchid: \"#da70d6\",\n palegoldenrod: \"#eee8aa\",\n palegreen: \"#98fb98\",\n paleturquoise: \"#afeeee\",\n palevioletred: \"#db7093\",\n papayawhip: \"#ffefd5\",\n peachpuff: \"#ffdab9\",\n peru: \"#cd853f\",\n pink: \"#ffc0cb\",\n plum: \"#dda0dd\",\n powderblue: \"#b0e0e6\",\n purple: \"#800080\",\n rebeccapurple: \"#663399\",\n red: \"#ff0000\",\n rosybrown: \"#bc8f8f\",\n royalblue: \"#4169e1\",\n saddlebrown: \"#8b4513\",\n salmon: \"#fa8072\",\n sandybrown: \"#f4a460\",\n seagreen: \"#2e8b57\",\n seashell: \"#fff5ee\",\n sienna: \"#a0522d\",\n silver: \"#c0c0c0\",\n skyblue: \"#87ceeb\",\n slateblue: \"#6a5acd\",\n slategray: \"#708090\",\n slategrey: \"#708090\",\n snow: \"#fffafa\",\n springgreen: \"#00ff7f\",\n steelblue: \"#4682b4\",\n tan: \"#d2b48c\",\n teal: \"#008080\",\n thistle: \"#d8bfd8\",\n tomato: \"#ff6347\",\n turquoise: \"#40e0d0\",\n violet: \"#ee82ee\",\n wheat: \"#f5deb3\",\n white: \"#ffffff\",\n whitesmoke: \"#f5f5f5\",\n yellow: \"#ffff00\",\n yellowgreen: \"#9acd32\"\n};\nfunction oE(t) {\n var e = { r: 0, g: 0, b: 0 }, r = 1, n = null, a = null, i = null, o = !1, s = !1;\n return typeof t == \"string\" && (t = uE(t)), typeof t == \"object\" && (ln(t.r) && ln(t.g) && ln(t.b) ? (e = eE(t.r, t.g, t.b), o = !0, s = String(t.r).substr(-1) === \"%\" ? \"prgb\" : \"rgb\") : ln(t.h) && ln(t.s) && ln(t.v) ? (n = qo(t.s), a = qo(t.v), e = rE(t.h, n, a), o = !0, s = \"hsv\") : ln(t.h) && ln(t.s) && ln(t.l) && (n = qo(t.s), i = qo(t.l), e = tE(t.h, n, i), o = !0, s = \"hsl\"), Object.prototype.hasOwnProperty.call(t, \"a\") && (r = t.a)), r = Sh(r), {\n ok: o,\n format: t.format || s,\n r: Math.min(255, Math.max(e.r, 0)),\n g: Math.min(255, Math.max(e.g, 0)),\n b: Math.min(255, Math.max(e.b, 0)),\n a: r\n };\n}\nvar sE = \"[-\\\\+]?\\\\d+%?\", lE = \"[-\\\\+]?\\\\d*\\\\.\\\\d+%?\", Bn = \"(?:\".concat(lE, \")|(?:\").concat(sE, \")\"), Dl = \"[\\\\s|\\\\(]+(\".concat(Bn, \")[,|\\\\s]+(\").concat(Bn, \")[,|\\\\s]+(\").concat(Bn, \")\\\\s*\\\\)?\"), Pl = \"[\\\\s|\\\\(]+(\".concat(Bn, \")[,|\\\\s]+(\").concat(Bn, \")[,|\\\\s]+(\").concat(Bn, \")[,|\\\\s]+(\").concat(Bn, \")\\\\s*\\\\)?\"), Ar = {\n CSS_UNIT: new RegExp(Bn),\n rgb: new RegExp(\"rgb\" + Dl),\n rgba: new RegExp(\"rgba\" + Pl),\n hsl: new RegExp(\"hsl\" + Dl),\n hsla: new RegExp(\"hsla\" + Pl),\n hsv: new RegExp(\"hsv\" + Dl),\n hsva: new RegExp(\"hsva\" + Pl),\n hex3: /^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,\n hex6: /^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/,\n hex4: /^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,\n hex8: /^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/\n};\nfunction uE(t) {\n if (t = t.trim().toLowerCase(), t.length === 0)\n return !1;\n var e = !1;\n if (nu[t])\n t = nu[t], e = !0;\n else if (t === \"transparent\")\n return { r: 0, g: 0, b: 0, a: 0, format: \"name\" };\n var r = Ar.rgb.exec(t);\n return r ? { r: r[1], g: r[2], b: r[3] } : (r = Ar.rgba.exec(t), r ? { r: r[1], g: r[2], b: r[3], a: r[4] } : (r = Ar.hsl.exec(t), r ? { h: r[1], s: r[2], l: r[3] } : (r = Ar.hsla.exec(t), r ? { h: r[1], s: r[2], l: r[3], a: r[4] } : (r = Ar.hsv.exec(t), r ? { h: r[1], s: r[2], v: r[3] } : (r = Ar.hsva.exec(t), r ? { h: r[1], s: r[2], v: r[3], a: r[4] } : (r = Ar.hex8.exec(t), r ? {\n r: mr(r[1]),\n g: mr(r[2]),\n b: mr(r[3]),\n a: qd(r[4]),\n format: e ? \"name\" : \"hex8\"\n } : (r = Ar.hex6.exec(t), r ? {\n r: mr(r[1]),\n g: mr(r[2]),\n b: mr(r[3]),\n format: e ? \"name\" : \"hex\"\n } : (r = Ar.hex4.exec(t), r ? {\n r: mr(r[1] + r[1]),\n g: mr(r[2] + r[2]),\n b: mr(r[3] + r[3]),\n a: qd(r[4] + r[4]),\n format: e ? \"name\" : \"hex8\"\n } : (r = Ar.hex3.exec(t), r ? {\n r: mr(r[1] + r[1]),\n g: mr(r[2] + r[2]),\n b: mr(r[3] + r[3]),\n format: e ? \"name\" : \"hex\"\n } : !1)))))))));\n}\nfunction ln(t) {\n return !!Ar.CSS_UNIT.exec(String(t));\n}\nvar cE = (\n /** @class */\n function() {\n function t(e, r) {\n e === void 0 && (e = \"\"), r === void 0 && (r = {});\n var n;\n if (e instanceof t)\n return e;\n typeof e == \"number\" && (e = iE(e)), this.originalInput = e;\n var a = oE(e);\n this.originalInput = e, this.r = a.r, this.g = a.g, this.b = a.b, this.a = a.a, this.roundA = Math.round(100 * this.a) / 100, this.format = (n = r.format) !== null && n !== void 0 ? n : a.format, this.gradientType = r.gradientType, this.r < 1 && (this.r = Math.round(this.r)), this.g < 1 && (this.g = Math.round(this.g)), this.b < 1 && (this.b = Math.round(this.b)), this.isValid = a.ok;\n }\n return t.prototype.isDark = function() {\n return this.getBrightness() < 128;\n }, t.prototype.isLight = function() {\n return !this.isDark();\n }, t.prototype.getBrightness = function() {\n var e = this.toRgb();\n return (e.r * 299 + e.g * 587 + e.b * 114) / 1e3;\n }, t.prototype.getLuminance = function() {\n var e = this.toRgb(), r, n, a, i = e.r / 255, o = e.g / 255, s = e.b / 255;\n return i <= 0.03928 ? r = i / 12.92 : r = Math.pow((i + 0.055) / 1.055, 2.4), o <= 0.03928 ? n = o / 12.92 : n = Math.pow((o + 0.055) / 1.055, 2.4), s <= 0.03928 ? a = s / 12.92 : a = Math.pow((s + 0.055) / 1.055, 2.4), 0.2126 * r + 0.7152 * n + 0.0722 * a;\n }, t.prototype.getAlpha = function() {\n return this.a;\n }, t.prototype.setAlpha = function(e) {\n return this.a = Sh(e), this.roundA = Math.round(100 * this.a) / 100, this;\n }, t.prototype.isMonochrome = function() {\n var e = this.toHsl().s;\n return e === 0;\n }, t.prototype.toHsv = function() {\n var e = Vd(this.r, this.g, this.b);\n return { h: e.h * 360, s: e.s, v: e.v, a: this.a };\n }, t.prototype.toHsvString = function() {\n var e = Vd(this.r, this.g, this.b), r = Math.round(e.h * 360), n = Math.round(e.s * 100), a = Math.round(e.v * 100);\n return this.a === 1 ? \"hsv(\".concat(r, \", \").concat(n, \"%, \").concat(a, \"%)\") : \"hsva(\".concat(r, \", \").concat(n, \"%, \").concat(a, \"%, \").concat(this.roundA, \")\");\n }, t.prototype.toHsl = function() {\n var e = zd(this.r, this.g, this.b);\n return { h: e.h * 360, s: e.s, l: e.l, a: this.a };\n }, t.prototype.toHslString = function() {\n var e = zd(this.r, this.g, this.b), r = Math.round(e.h * 360), n = Math.round(e.s * 100), a = Math.round(e.l * 100);\n return this.a === 1 ? \"hsl(\".concat(r, \", \").concat(n, \"%, \").concat(a, \"%)\") : \"hsla(\".concat(r, \", \").concat(n, \"%, \").concat(a, \"%, \").concat(this.roundA, \")\");\n }, t.prototype.toHex = function(e) {\n return e === void 0 && (e = !1), Hd(this.r, this.g, this.b, e);\n }, t.prototype.toHexString = function(e) {\n return e === void 0 && (e = !1), \"#\" + this.toHex(e);\n }, t.prototype.toHex8 = function(e) {\n return e === void 0 && (e = !1), nE(this.r, this.g, this.b, this.a, e);\n }, t.prototype.toHex8String = function(e) {\n return e === void 0 && (e = !1), \"#\" + this.toHex8(e);\n }, t.prototype.toHexShortString = function(e) {\n return e === void 0 && (e = !1), this.a === 1 ? this.toHexString(e) : this.toHex8String(e);\n }, t.prototype.toRgb = function() {\n return {\n r: Math.round(this.r),\n g: Math.round(this.g),\n b: Math.round(this.b),\n a: this.a\n };\n }, t.prototype.toRgbString = function() {\n var e = Math.round(this.r), r = Math.round(this.g), n = Math.round(this.b);\n return this.a === 1 ? \"rgb(\".concat(e, \", \").concat(r, \", \").concat(n, \")\") : \"rgba(\".concat(e, \", \").concat(r, \", \").concat(n, \", \").concat(this.roundA, \")\");\n }, t.prototype.toPercentageRgb = function() {\n var e = function(r) {\n return \"\".concat(Math.round(Kt(r, 255) * 100), \"%\");\n };\n return {\n r: e(this.r),\n g: e(this.g),\n b: e(this.b),\n a: this.a\n };\n }, t.prototype.toPercentageRgbString = function() {\n var e = function(r) {\n return Math.round(Kt(r, 255) * 100);\n };\n return this.a === 1 ? \"rgb(\".concat(e(this.r), \"%, \").concat(e(this.g), \"%, \").concat(e(this.b), \"%)\") : \"rgba(\".concat(e(this.r), \"%, \").concat(e(this.g), \"%, \").concat(e(this.b), \"%, \").concat(this.roundA, \")\");\n }, t.prototype.toName = function() {\n if (this.a === 0)\n return \"transparent\";\n if (this.a < 1)\n return !1;\n for (var e = \"#\" + Hd(this.r, this.g, this.b, !1), r = 0, n = Object.entries(nu); r < n.length; r++) {\n var a = n[r], i = a[0], o = a[1];\n if (e === o)\n return i;\n }\n return !1;\n }, t.prototype.toString = function(e) {\n var r = !!e;\n e = e ?? this.format;\n var n = !1, a = this.a < 1 && this.a >= 0, i = !r && a && (e.startsWith(\"hex\") || e === \"name\");\n return i ? e === \"name\" && this.a === 0 ? this.toName() : this.toRgbString() : (e === \"rgb\" && (n = this.toRgbString()), e === \"prgb\" && (n = this.toPercentageRgbString()), (e === \"hex\" || e === \"hex6\") && (n = this.toHexString()), e === \"hex3\" && (n = this.toHexString(!0)), e === \"hex4\" && (n = this.toHex8String(!0)), e === \"hex8\" && (n = this.toHex8String()), e === \"name\" && (n = this.toName()), e === \"hsl\" && (n = this.toHslString()), e === \"hsv\" && (n = this.toHsvString()), n || this.toHexString());\n }, t.prototype.toNumber = function() {\n return (Math.round(this.r) << 16) + (Math.round(this.g) << 8) + Math.round(this.b);\n }, t.prototype.clone = function() {\n return new t(this.toString());\n }, t.prototype.lighten = function(e) {\n e === void 0 && (e = 10);\n var r = this.toHsl();\n return r.l += e / 100, r.l = Ho(r.l), new t(r);\n }, t.prototype.brighten = function(e) {\n e === void 0 && (e = 10);\n var r = this.toRgb();\n return r.r = Math.max(0, Math.min(255, r.r - Math.round(255 * -(e / 100)))), r.g = Math.max(0, Math.min(255, r.g - Math.round(255 * -(e / 100)))), r.b = Math.max(0, Math.min(255, r.b - Math.round(255 * -(e / 100)))), new t(r);\n }, t.prototype.darken = function(e) {\n e === void 0 && (e = 10);\n var r = this.toHsl();\n return r.l -= e / 100, r.l = Ho(r.l), new t(r);\n }, t.prototype.tint = function(e) {\n return e === void 0 && (e = 10), this.mix(\"white\", e);\n }, t.prototype.shade = function(e) {\n return e === void 0 && (e = 10), this.mix(\"black\", e);\n }, t.prototype.desaturate = function(e) {\n e === void 0 && (e = 10);\n var r = this.toHsl();\n return r.s -= e / 100, r.s = Ho(r.s), new t(r);\n }, t.prototype.saturate = function(e) {\n e === void 0 && (e = 10);\n var r = this.toHsl();\n return r.s += e / 100, r.s = Ho(r.s), new t(r);\n }, t.prototype.greyscale = function() {\n return this.desaturate(100);\n }, t.prototype.spin = function(e) {\n var r = this.toHsl(), n = (r.h + e) % 360;\n return r.h = n < 0 ? 360 + n : n, new t(r);\n }, t.prototype.mix = function(e, r) {\n r === void 0 && (r = 50);\n var n = this.toRgb(), a = new t(e).toRgb(), i = r / 100, o = {\n r: (a.r - n.r) * i + n.r,\n g: (a.g - n.g) * i + n.g,\n b: (a.b - n.b) * i + n.b,\n a: (a.a - n.a) * i + n.a\n };\n return new t(o);\n }, t.prototype.analogous = function(e, r) {\n e === void 0 && (e = 6), r === void 0 && (r = 30);\n var n = this.toHsl(), a = 360 / r, i = [this];\n for (n.h = (n.h - (a * e >> 1) + 720) % 360; --e; )\n n.h = (n.h + a) % 360, i.push(new t(n));\n return i;\n }, t.prototype.complement = function() {\n var e = this.toHsl();\n return e.h = (e.h + 180) % 360, new t(e);\n }, t.prototype.monochromatic = function(e) {\n e === void 0 && (e = 6);\n for (var r = this.toHsv(), n = r.h, a = r.s, i = r.v, o = [], s = 1 / e; e--; )\n o.push(new t({ h: n, s: a, v: i })), i = (i + s) % 1;\n return o;\n }, t.prototype.splitcomplement = function() {\n var e = this.toHsl(), r = e.h;\n return [\n this,\n new t({ h: (r + 72) % 360, s: e.s, l: e.l }),\n new t({ h: (r + 216) % 360, s: e.s, l: e.l })\n ];\n }, t.prototype.onBackground = function(e) {\n var r = this.toRgb(), n = new t(e).toRgb(), a = r.a + n.a * (1 - r.a);\n return new t({\n r: (r.r * r.a + n.r * n.a * (1 - r.a)) / a,\n g: (r.g * r.a + n.g * n.a * (1 - r.a)) / a,\n b: (r.b * r.a + n.b * n.a * (1 - r.a)) / a,\n a\n });\n }, t.prototype.triad = function() {\n return this.polyad(3);\n }, t.prototype.tetrad = function() {\n return this.polyad(4);\n }, t.prototype.polyad = function(e) {\n for (var r = this.toHsl(), n = r.h, a = [this], i = 360 / e, o = 1; o < e; o++)\n a.push(new t({ h: (n + o * i) % 360, s: r.s, l: r.l }));\n return a;\n }, t.prototype.equals = function(e) {\n return this.toRgbString() === new t(e).toRgbString();\n }, t;\n }()\n);\nfunction _n(t, e = 20) {\n return t.mix(\"#141414\", e).toString();\n}\nfunction dE(t) {\n const e = xo(), r = He(\"button\");\n return V(() => {\n let n = {}, a = t.color;\n if (a) {\n const i = a.match(/var\\((.*?)\\)/);\n i && (a = window.getComputedStyle(window.document.documentElement).getPropertyValue(i[1]));\n const o = new cE(a), s = t.dark ? o.tint(20).toString() : _n(o, 20);\n if (t.plain)\n n = r.cssVarBlock({\n \"bg-color\": t.dark ? _n(o, 90) : o.tint(90).toString(),\n \"text-color\": a,\n \"border-color\": t.dark ? _n(o, 50) : o.tint(50).toString(),\n \"hover-text-color\": `var(${r.cssVarName(\"color-white\")})`,\n \"hover-bg-color\": a,\n \"hover-border-color\": a,\n \"active-bg-color\": s,\n \"active-text-color\": `var(${r.cssVarName(\"color-white\")})`,\n \"active-border-color\": s\n }), e.value && (n[r.cssVarBlockName(\"disabled-bg-color\")] = t.dark ? _n(o, 90) : o.tint(90).toString(), n[r.cssVarBlockName(\"disabled-text-color\")] = t.dark ? _n(o, 50) : o.tint(50).toString(), n[r.cssVarBlockName(\"disabled-border-color\")] = t.dark ? _n(o, 80) : o.tint(80).toString());\n else {\n const u = t.dark ? _n(o, 30) : o.tint(30).toString(), l = o.isDark() ? `var(${r.cssVarName(\"color-white\")})` : `var(${r.cssVarName(\"color-black\")})`;\n if (n = r.cssVarBlock({\n \"bg-color\": a,\n \"text-color\": l,\n \"border-color\": a,\n \"hover-bg-color\": u,\n \"hover-text-color\": l,\n \"hover-border-color\": u,\n \"active-bg-color\": s,\n \"active-border-color\": s\n }), e.value) {\n const c = t.dark ? _n(o, 50) : o.tint(50).toString();\n n[r.cssVarBlockName(\"disabled-bg-color\")] = c, n[r.cssVarBlockName(\"disabled-text-color\")] = t.dark ? \"rgba(255, 255, 255, 0.5)\" : `var(${r.cssVarName(\"color-white\")})`, n[r.cssVarBlockName(\"disabled-border-color\")] = c;\n }\n }\n }\n return n;\n });\n}\nconst fE = de({\n name: \"ElButton\"\n}), vE = /* @__PURE__ */ de({\n ...fE,\n props: ru,\n emits: jC,\n setup(t, { expose: e, emit: r }) {\n const n = t, a = dE(n), i = He(\"button\"), { _ref: o, _size: s, _type: u, _disabled: l, _props: c, shouldAddSpace: d, handleClick: v } = YC(n, r), h = V(() => [\n i.b(),\n i.m(u.value),\n i.m(s.value),\n i.is(\"disabled\", l.value),\n i.is(\"loading\", n.loading),\n i.is(\"plain\", n.plain),\n i.is(\"round\", n.round),\n i.is(\"circle\", n.circle),\n i.is(\"text\", n.text),\n i.is(\"link\", n.link),\n i.is(\"has-bg\", n.bg)\n ]);\n return e({\n ref: o,\n size: s,\n type: u,\n disabled: l,\n shouldAddSpace: d\n }), (f, p) => (N(), ye(er(f.tag), Rr({\n ref_key: \"_ref\",\n ref: o\n }, P(c), {\n class: P(h),\n style: P(a),\n onClick: P(v)\n }), {\n default: U(() => [\n f.loading ? (N(), Z(Qe, { key: 0 }, [\n f.$slots.loading ? Le(f.$slots, \"loading\", { key: 0 }) : (N(), ye(P(Vt), {\n key: 1,\n class: ie(P(i).is(\"loading\"))\n }, {\n default: U(() => [\n (N(), ye(er(f.loadingIcon)))\n ]),\n _: 1\n }, 8, [\"class\"]))\n ], 64)) : f.icon || f.$slots.icon ? (N(), ye(P(Vt), { key: 1 }, {\n default: U(() => [\n f.icon ? (N(), ye(er(f.icon), { key: 0 })) : Le(f.$slots, \"icon\", { key: 1 })\n ]),\n _: 3\n })) : he(\"v-if\", !0),\n f.$slots.default ? (N(), Z(\"span\", {\n key: 2,\n class: ie({ [P(i).em(\"text\", \"expand\")]: P(d) })\n }, [\n Le(f.$slots, \"default\")\n ], 2)) : he(\"v-if\", !0)\n ]),\n _: 3\n }, 16, [\"class\", \"style\", \"onClick\"]));\n }\n});\nvar hE = /* @__PURE__ */ Ve(vE, [[\"__file\", \"button.vue\"]]);\nconst pE = {\n size: ru.size,\n type: ru.type\n}, gE = de({\n name: \"ElButtonGroup\"\n}), mE = /* @__PURE__ */ de({\n ...gE,\n props: pE,\n setup(t) {\n const e = t;\n Ct(kh, Jr({\n size: $r(e, \"size\"),\n type: $r(e, \"type\")\n }));\n const r = He(\"button\");\n return (n, a) => (N(), Z(\"div\", {\n class: ie(P(r).b(\"group\"))\n }, [\n Le(n.$slots, \"default\")\n ], 2));\n }\n});\nvar Th = /* @__PURE__ */ Ve(mE, [[\"__file\", \"button-group.vue\"]]);\nconst Hr = $t(hE, {\n ButtonGroup: Th\n}), yE = xn(Th), Ln = /* @__PURE__ */ new Map();\nif (_t) {\n let t;\n document.addEventListener(\"mousedown\", (e) => t = e), document.addEventListener(\"mouseup\", (e) => {\n if (t) {\n for (const r of Ln.values())\n for (const { documentHandler: n } of r)\n n(e, t);\n t = void 0;\n }\n });\n}\nfunction Kd(t, e) {\n let r = [];\n return Array.isArray(e.arg) ? r = e.arg : ua(e.arg) && r.push(e.arg), function(n, a) {\n const i = e.instance.popperRef, o = n.target, s = a == null ? void 0 : a.target, u = !e || !e.instance, l = !o || !s, c = t.contains(o) || t.contains(s), d = t === o, v = r.length && r.some((f) => f == null ? void 0 : f.contains(o)) || r.length && r.includes(s), h = i && (i.contains(o) || i.contains(s));\n u || l || c || d || v || h || e.value(n, a);\n };\n}\nconst _h = {\n beforeMount(t, e) {\n Ln.has(t) || Ln.set(t, []), Ln.get(t).push({\n documentHandler: Kd(t, e),\n bindingFn: e.value\n });\n },\n updated(t, e) {\n Ln.has(t) || Ln.set(t, []);\n const r = Ln.get(t), n = r.findIndex((i) => i.bindingFn === e.oldValue), a = {\n documentHandler: Kd(t, e),\n bindingFn: e.value\n };\n n >= 0 ? r.splice(n, 1, a) : r.push(a);\n },\n unmounted(t) {\n Ln.delete(t);\n }\n}, bE = rt({\n header: {\n type: String,\n default: \"\"\n },\n footer: {\n type: String,\n default: \"\"\n },\n bodyStyle: {\n type: $e([String, Object, Array]),\n default: \"\"\n },\n bodyClass: String,\n shadow: {\n type: String,\n values: [\"always\", \"hover\", \"never\"],\n default: \"always\"\n }\n}), wE = de({\n name: \"ElCard\"\n}), xE = /* @__PURE__ */ de({\n ...wE,\n props: bE,\n setup(t) {\n const e = He(\"card\");\n return (r, n) => (N(), Z(\"div\", {\n class: ie([P(e).b(), P(e).is(`${r.shadow}-shadow`)])\n }, [\n r.$slots.header || r.header ? (N(), Z(\"div\", {\n key: 0,\n class: ie(P(e).e(\"header\"))\n }, [\n Le(r.$slots, \"header\", {}, () => [\n ze(Ie(r.header), 1)\n ])\n ], 2)) : he(\"v-if\", !0),\n X(\"div\", {\n class: ie([P(e).e(\"body\"), r.bodyClass]),\n style: lt(r.bodyStyle)\n }, [\n Le(r.$slots, \"default\")\n ], 6),\n r.$slots.footer || r.footer ? (N(), Z(\"div\", {\n key: 1,\n class: ie(P(e).e(\"footer\"))\n }, [\n Le(r.$slots, \"footer\", {}, () => [\n ze(Ie(r.footer), 1)\n ])\n ], 2)) : he(\"v-if\", !0)\n ], 2));\n }\n});\nvar CE = /* @__PURE__ */ Ve(xE, [[\"__file\", \"card.vue\"]]);\nconst EE = $t(CE), Dh = {\n modelValue: {\n type: [Number, String, Boolean],\n default: void 0\n },\n label: {\n type: [String, Boolean, Number, Object],\n default: void 0\n },\n value: {\n type: [String, Boolean, Number, Object],\n default: void 0\n },\n indeterminate: Boolean,\n disabled: Boolean,\n checked: Boolean,\n name: {\n type: String,\n default: void 0\n },\n trueValue: {\n type: [String, Number],\n default: void 0\n },\n falseValue: {\n type: [String, Number],\n default: void 0\n },\n trueLabel: {\n type: [String, Number],\n default: void 0\n },\n falseLabel: {\n type: [String, Number],\n default: void 0\n },\n id: {\n type: String,\n default: void 0\n },\n border: Boolean,\n size: di,\n tabindex: [String, Number],\n validateEvent: {\n type: Boolean,\n default: !0\n },\n ...Zn([\"ariaControls\"])\n}, Ph = {\n [zt]: (t) => tr(t) || qt(t) || Qa(t),\n change: (t) => tr(t) || qt(t) || Qa(t)\n}, fi = Symbol(\"checkboxGroupContextKey\"), kE = ({\n model: t,\n isChecked: e\n}) => {\n const r = Ue(fi, void 0), n = V(() => {\n var i, o;\n const s = (i = r == null ? void 0 : r.max) == null ? void 0 : i.value, u = (o = r == null ? void 0 : r.min) == null ? void 0 : o.value;\n return !Mn(s) && t.value.length >= s && !e.value || !Mn(u) && t.value.length <= u && e.value;\n });\n return {\n isDisabled: xo(V(() => (r == null ? void 0 : r.disabled.value) || n.value)),\n isLimitDisabled: n\n };\n}, SE = (t, {\n model: e,\n isLimitExceeded: r,\n hasOwnLabel: n,\n isDisabled: a,\n isLabeledByFormItem: i\n}) => {\n const o = Ue(fi, void 0), { formItem: s } = Ta(), { emit: u } = gt();\n function l(f) {\n var p, m, g, y;\n return [!0, t.trueValue, t.trueLabel].includes(f) ? (m = (p = t.trueValue) != null ? p : t.trueLabel) != null ? m : !0 : (y = (g = t.falseValue) != null ? g : t.falseLabel) != null ? y : !1;\n }\n function c(f, p) {\n u(\"change\", l(f), p);\n }\n function d(f) {\n if (r.value)\n return;\n const p = f.target;\n u(\"change\", l(p.checked), f);\n }\n async function v(f) {\n r.value || !n.value && !a.value && i.value && (f.composedPath().some((g) => g.tagName === \"LABEL\") || (e.value = l([!1, t.falseValue, t.falseLabel].includes(e.value)), await ot(), c(e.value, f)));\n }\n const h = V(() => (o == null ? void 0 : o.validateEvent) || t.validateEvent);\n return Pe(() => t.modelValue, () => {\n h.value && (s == null || s.validate(\"change\").catch((f) => Dt(f)));\n }), {\n handleChange: d,\n onClickRoot: v\n };\n}, TE = (t) => {\n const e = ce(!1), { emit: r } = gt(), n = Ue(fi, void 0), a = V(() => Mn(n) === !1), i = ce(!1), o = V({\n get() {\n var s, u;\n return a.value ? (s = n == null ? void 0 : n.modelValue) == null ? void 0 : s.value : (u = t.modelValue) != null ? u : e.value;\n },\n set(s) {\n var u, l;\n a.value && fr(s) ? (i.value = ((u = n == null ? void 0 : n.max) == null ? void 0 : u.value) !== void 0 && s.length > (n == null ? void 0 : n.max.value) && s.length > o.value.length, i.value === !1 && ((l = n == null ? void 0 : n.changeEvent) == null || l.call(n, s))) : (r(zt, s), e.value = s);\n }\n });\n return {\n model: o,\n isGroup: a,\n isLimitExceeded: i\n };\n}, _E = (t, e, { model: r }) => {\n const n = Ue(fi, void 0), a = ce(!1), i = V(() => ks(t.value) ? t.label : t.value), o = V(() => {\n const c = r.value;\n return Qa(c) ? c : fr(c) ? Ht(i.value) ? c.map(ys).some((d) => Es(d, i.value)) : c.map(ys).includes(i.value) : c != null ? c === t.trueValue || c === t.trueLabel : !!c;\n }), s = pa(V(() => {\n var c;\n return (c = n == null ? void 0 : n.size) == null ? void 0 : c.value;\n }), {\n prop: !0\n }), u = pa(V(() => {\n var c;\n return (c = n == null ? void 0 : n.size) == null ? void 0 : c.value;\n })), l = V(() => !!e.default || !ks(i.value));\n return {\n checkboxButtonSize: s,\n isChecked: o,\n isFocused: a,\n checkboxSize: u,\n hasOwnLabel: l,\n actualValue: i\n };\n}, Oh = (t, e) => {\n const { formItem: r } = Ta(), { model: n, isGroup: a, isLimitExceeded: i } = TE(t), {\n isFocused: o,\n isChecked: s,\n checkboxButtonSize: u,\n checkboxSize: l,\n hasOwnLabel: c,\n actualValue: d\n } = _E(t, e, { model: n }), { isDisabled: v } = kE({ model: n, isChecked: s }), { inputId: h, isLabeledByFormItem: f } = Co(t, {\n formItemContext: r,\n disableIdGeneration: c,\n disableIdManagement: a\n }), { handleChange: p, onClickRoot: m } = SE(t, {\n model: n,\n isLimitExceeded: i,\n hasOwnLabel: c,\n isDisabled: v,\n isLabeledByFormItem: f\n });\n return (() => {\n function y() {\n var b, w;\n fr(n.value) && !n.value.includes(d.value) ? n.value.push(d.value) : n.value = (w = (b = t.trueValue) != null ? b : t.trueLabel) != null ? w : !0;\n }\n t.checked && y();\n })(), as({\n from: \"label act as value\",\n replacement: \"value\",\n version: \"3.0.0\",\n scope: \"el-checkbox\",\n ref: \"https://element-plus.org/en-US/component/checkbox.html\"\n }, V(() => a.value && ks(t.value))), as({\n from: \"true-label\",\n replacement: \"true-value\",\n version: \"3.0.0\",\n scope: \"el-checkbox\",\n ref: \"https://element-plus.org/en-US/component/checkbox.html\"\n }, V(() => !!t.trueLabel)), as({\n from: \"false-label\",\n replacement: \"false-value\",\n version: \"3.0.0\",\n scope: \"el-checkbox\",\n ref: \"https://element-plus.org/en-US/component/checkbox.html\"\n }, V(() => !!t.falseLabel)), {\n inputId: h,\n isLabeledByFormItem: f,\n isChecked: s,\n isDisabled: v,\n isFocused: o,\n checkboxButtonSize: u,\n checkboxSize: l,\n hasOwnLabel: c,\n model: n,\n actualValue: d,\n handleChange: p,\n onClickRoot: m\n };\n}, DE = de({\n name: \"ElCheckbox\"\n}), PE = /* @__PURE__ */ de({\n ...DE,\n props: Dh,\n emits: Ph,\n setup(t) {\n const e = t, r = vo(), {\n inputId: n,\n isLabeledByFormItem: a,\n isChecked: i,\n isDisabled: o,\n isFocused: s,\n checkboxSize: u,\n hasOwnLabel: l,\n model: c,\n actualValue: d,\n handleChange: v,\n onClickRoot: h\n } = Oh(e, r), f = He(\"checkbox\"), p = V(() => [\n f.b(),\n f.m(u.value),\n f.is(\"disabled\", o.value),\n f.is(\"bordered\", e.border),\n f.is(\"checked\", i.value)\n ]), m = V(() => [\n f.e(\"input\"),\n f.is(\"disabled\", o.value),\n f.is(\"checked\", i.value),\n f.is(\"indeterminate\", e.indeterminate),\n f.is(\"focus\", s.value)\n ]);\n return (g, y) => (N(), ye(er(!P(l) && P(a) ? \"span\" : \"label\"), {\n class: ie(P(p)),\n \"aria-controls\": g.indeterminate ? g.ariaControls : null,\n onClick: P(h)\n }, {\n default: U(() => {\n var b, w, C, E;\n return [\n X(\"span\", {\n class: ie(P(m))\n }, [\n g.trueValue || g.falseValue || g.trueLabel || g.falseLabel ? Ze((N(), Z(\"input\", {\n key: 0,\n id: P(n),\n \"onUpdate:modelValue\": (x) => Xa(c) ? c.value = x : null,\n class: ie(P(f).e(\"original\")),\n type: \"checkbox\",\n indeterminate: g.indeterminate,\n name: g.name,\n tabindex: g.tabindex,\n disabled: P(o),\n \"true-value\": (w = (b = g.trueValue) != null ? b : g.trueLabel) != null ? w : !0,\n \"false-value\": (E = (C = g.falseValue) != null ? C : g.falseLabel) != null ? E : !1,\n onChange: P(v),\n onFocus: (x) => s.value = !0,\n onBlur: (x) => s.value = !1,\n onClick: ht(() => {\n }, [\"stop\"])\n }, null, 42, [\"id\", \"onUpdate:modelValue\", \"indeterminate\", \"name\", \"tabindex\", \"disabled\", \"true-value\", \"false-value\", \"onChange\", \"onFocus\", \"onBlur\", \"onClick\"])), [\n [bs, P(c)]\n ]) : Ze((N(), Z(\"input\", {\n key: 1,\n id: P(n),\n \"onUpdate:modelValue\": (x) => Xa(c) ? c.value = x : null,\n class: ie(P(f).e(\"original\")),\n type: \"checkbox\",\n indeterminate: g.indeterminate,\n disabled: P(o),\n value: P(d),\n name: g.name,\n tabindex: g.tabindex,\n onChange: P(v),\n onFocus: (x) => s.value = !0,\n onBlur: (x) => s.value = !1,\n onClick: ht(() => {\n }, [\"stop\"])\n }, null, 42, [\"id\", \"onUpdate:modelValue\", \"indeterminate\", \"disabled\", \"value\", \"name\", \"tabindex\", \"onChange\", \"onFocus\", \"onBlur\", \"onClick\"])), [\n [bs, P(c)]\n ]),\n X(\"span\", {\n class: ie(P(f).e(\"inner\"))\n }, null, 2)\n ], 2),\n P(l) ? (N(), Z(\"span\", {\n key: 0,\n class: ie(P(f).e(\"label\"))\n }, [\n Le(g.$slots, \"default\"),\n g.$slots.default ? he(\"v-if\", !0) : (N(), Z(Qe, { key: 0 }, [\n ze(Ie(g.label), 1)\n ], 64))\n ], 2)) : he(\"v-if\", !0)\n ];\n }),\n _: 3\n }, 8, [\"class\", \"aria-controls\", \"onClick\"]));\n }\n});\nvar OE = /* @__PURE__ */ Ve(PE, [[\"__file\", \"checkbox.vue\"]]);\nconst LE = de({\n name: \"ElCheckboxButton\"\n}), IE = /* @__PURE__ */ de({\n ...LE,\n props: Dh,\n emits: Ph,\n setup(t) {\n const e = t, r = vo(), {\n isFocused: n,\n isChecked: a,\n isDisabled: i,\n checkboxButtonSize: o,\n model: s,\n actualValue: u,\n handleChange: l\n } = Oh(e, r), c = Ue(fi, void 0), d = He(\"checkbox\"), v = V(() => {\n var f, p, m, g;\n const y = (p = (f = c == null ? void 0 : c.fill) == null ? void 0 : f.value) != null ? p : \"\";\n return {\n backgroundColor: y,\n borderColor: y,\n color: (g = (m = c == null ? void 0 : c.textColor) == null ? void 0 : m.value) != null ? g : \"\",\n boxShadow: y ? `-1px 0 0 0 ${y}` : void 0\n };\n }), h = V(() => [\n d.b(\"button\"),\n d.bm(\"button\", o.value),\n d.is(\"disabled\", i.value),\n d.is(\"checked\", a.value),\n d.is(\"focus\", n.value)\n ]);\n return (f, p) => {\n var m, g, y, b;\n return N(), Z(\"label\", {\n class: ie(P(h))\n }, [\n f.trueValue || f.falseValue || f.trueLabel || f.falseLabel ? Ze((N(), Z(\"input\", {\n key: 0,\n \"onUpdate:modelValue\": (w) => Xa(s) ? s.value = w : null,\n class: ie(P(d).be(\"button\", \"original\")),\n type: \"checkbox\",\n name: f.name,\n tabindex: f.tabindex,\n disabled: P(i),\n \"true-value\": (g = (m = f.trueValue) != null ? m : f.trueLabel) != null ? g : !0,\n \"false-value\": (b = (y = f.falseValue) != null ? y : f.falseLabel) != null ? b : !1,\n onChange: P(l),\n onFocus: (w) => n.value = !0,\n onBlur: (w) => n.value = !1,\n onClick: ht(() => {\n }, [\"stop\"])\n }, null, 42, [\"onUpdate:modelValue\", \"name\", \"tabindex\", \"disabled\", \"true-value\", \"false-value\", \"onChange\", \"onFocus\", \"onBlur\", \"onClick\"])), [\n [bs, P(s)]\n ]) : Ze((N(), Z(\"input\", {\n key: 1,\n \"onUpdate:modelValue\": (w) => Xa(s) ? s.value = w : null,\n class: ie(P(d).be(\"button\", \"original\")),\n type: \"checkbox\",\n name: f.name,\n tabindex: f.tabindex,\n disabled: P(i),\n value: P(u),\n onChange: P(l),\n onFocus: (w) => n.value = !0,\n onBlur: (w) => n.value = !1,\n onClick: ht(() => {\n }, [\"stop\"])\n }, null, 42, [\"onUpdate:modelValue\", \"name\", \"tabindex\", \"disabled\", \"value\", \"onChange\", \"onFocus\", \"onBlur\", \"onClick\"])), [\n [bs, P(s)]\n ]),\n f.$slots.default || f.label ? (N(), Z(\"span\", {\n key: 2,\n class: ie(P(d).be(\"button\", \"inner\")),\n style: lt(P(a) ? P(v) : void 0)\n }, [\n Le(f.$slots, \"default\", {}, () => [\n ze(Ie(f.label), 1)\n ])\n ], 6)) : he(\"v-if\", !0)\n ], 2);\n };\n }\n});\nvar Lh = /* @__PURE__ */ Ve(IE, [[\"__file\", \"checkbox-button.vue\"]]);\nconst FE = rt({\n modelValue: {\n type: $e(Array),\n default: () => []\n },\n disabled: Boolean,\n min: Number,\n max: Number,\n size: di,\n fill: String,\n textColor: String,\n tag: {\n type: String,\n default: \"div\"\n },\n validateEvent: {\n type: Boolean,\n default: !0\n },\n ...Zn([\"ariaLabel\"])\n}), AE = {\n [zt]: (t) => fr(t),\n change: (t) => fr(t)\n}, ME = de({\n name: \"ElCheckboxGroup\"\n}), BE = /* @__PURE__ */ de({\n ...ME,\n props: FE,\n emits: AE,\n setup(t, { emit: e }) {\n const r = t, n = He(\"checkbox\"), { formItem: a } = Ta(), { inputId: i, isLabeledByFormItem: o } = Co(r, {\n formItemContext: a\n }), s = async (l) => {\n e(zt, l), await ot(), e(\"change\", l);\n }, u = V({\n get() {\n return r.modelValue;\n },\n set(l) {\n s(l);\n }\n });\n return Ct(fi, {\n ...zv(ho(r), [\n \"size\",\n \"min\",\n \"max\",\n \"disabled\",\n \"validateEvent\",\n \"fill\",\n \"textColor\"\n ]),\n modelValue: u,\n changeEvent: s\n }), Pe(() => r.modelValue, () => {\n r.validateEvent && (a == null || a.validate(\"change\").catch((l) => Dt(l)));\n }), (l, c) => {\n var d;\n return N(), ye(er(l.tag), {\n id: P(i),\n class: ie(P(n).b(\"group\")),\n role: \"group\",\n \"aria-label\": P(o) ? void 0 : l.ariaLabel || \"checkbox-group\",\n \"aria-labelledby\": P(o) ? (d = P(a)) == null ? void 0 : d.labelId : void 0\n }, {\n default: U(() => [\n Le(l.$slots, \"default\")\n ]),\n _: 3\n }, 8, [\"id\", \"class\", \"aria-label\", \"aria-labelledby\"]);\n };\n }\n});\nvar Ih = /* @__PURE__ */ Ve(BE, [[\"__file\", \"checkbox-group.vue\"]]);\nconst NE = $t(OE, {\n CheckboxButton: Lh,\n CheckboxGroup: Ih\n});\nxn(Lh);\nxn(Ih);\nconst au = rt({\n type: {\n type: String,\n values: [\"primary\", \"success\", \"info\", \"warning\", \"danger\"],\n default: \"primary\"\n },\n closable: Boolean,\n disableTransitions: Boolean,\n hit: Boolean,\n color: String,\n size: {\n type: String,\n values: Gv\n },\n effect: {\n type: String,\n values: [\"dark\", \"light\", \"plain\"],\n default: \"light\"\n },\n round: Boolean\n}), $E = {\n close: (t) => t instanceof MouseEvent,\n click: (t) => t instanceof MouseEvent\n}, RE = de({\n name: \"ElTag\"\n}), zE = /* @__PURE__ */ de({\n ...RE,\n props: au,\n emits: $E,\n setup(t, { emit: e }) {\n const r = t, n = pa(), a = He(\"tag\"), i = V(() => {\n const { type: l, hit: c, effect: d, closable: v, round: h } = r;\n return [\n a.b(),\n a.is(\"closable\", v),\n a.m(l || \"primary\"),\n a.m(n.value),\n a.m(d),\n a.is(\"hit\", c),\n a.is(\"round\", h)\n ];\n }), o = (l) => {\n e(\"close\", l);\n }, s = (l) => {\n e(\"click\", l);\n }, u = (l) => {\n l.component.subTree.component.bum = null;\n };\n return (l, c) => l.disableTransitions ? (N(), Z(\"span\", {\n key: 0,\n class: ie(P(i)),\n style: lt({ backgroundColor: l.color }),\n onClick: s\n }, [\n X(\"span\", {\n class: ie(P(a).e(\"content\"))\n }, [\n Le(l.$slots, \"default\")\n ], 2),\n l.closable ? (N(), ye(P(Vt), {\n key: 0,\n class: ie(P(a).e(\"close\")),\n onClick: ht(o, [\"stop\"])\n }, {\n default: U(() => [\n J(P(Ss))\n ]),\n _: 1\n }, 8, [\"class\", \"onClick\"])) : he(\"v-if\", !0)\n ], 6)) : (N(), ye(ui, {\n key: 1,\n name: `${P(a).namespace.value}-zoom-in-center`,\n appear: \"\",\n onVnodeMounted: u\n }, {\n default: U(() => [\n X(\"span\", {\n class: ie(P(i)),\n style: lt({ backgroundColor: l.color }),\n onClick: s\n }, [\n X(\"span\", {\n class: ie(P(a).e(\"content\"))\n }, [\n Le(l.$slots, \"default\")\n ], 2),\n l.closable ? (N(), ye(P(Vt), {\n key: 0,\n class: ie(P(a).e(\"close\")),\n onClick: ht(o, [\"stop\"])\n }, {\n default: U(() => [\n J(P(Ss))\n ]),\n _: 1\n }, 8, [\"class\", \"onClick\"])) : he(\"v-if\", !0)\n ], 6)\n ]),\n _: 3\n }, 8, [\"name\"]));\n }\n});\nvar VE = /* @__PURE__ */ Ve(zE, [[\"__file\", \"tag.vue\"]]);\nconst HE = $t(VE), Fh = Symbol(\"rowContextKey\"), qE = [\n \"start\",\n \"center\",\n \"end\",\n \"space-around\",\n \"space-between\",\n \"space-evenly\"\n], KE = [\"top\", \"middle\", \"bottom\"], UE = rt({\n tag: {\n type: String,\n default: \"div\"\n },\n gutter: {\n type: Number,\n default: 0\n },\n justify: {\n type: String,\n values: qE,\n default: \"start\"\n },\n align: {\n type: String,\n values: KE\n }\n}), GE = de({\n name: \"ElRow\"\n}), WE = /* @__PURE__ */ de({\n ...GE,\n props: UE,\n setup(t) {\n const e = t, r = He(\"row\"), n = V(() => e.gutter);\n Ct(Fh, {\n gutter: n\n });\n const a = V(() => {\n const o = {};\n return e.gutter && (o.marginRight = o.marginLeft = `-${e.gutter / 2}px`), o;\n }), i = V(() => [\n r.b(),\n r.is(`justify-${e.justify}`, e.justify !== \"start\"),\n r.is(`align-${e.align}`, !!e.align)\n ]);\n return (o, s) => (N(), ye(er(o.tag), {\n class: ie(P(i)),\n style: lt(P(a))\n }, {\n default: U(() => [\n Le(o.$slots, \"default\")\n ]),\n _: 3\n }, 8, [\"class\", \"style\"]));\n }\n});\nvar YE = /* @__PURE__ */ Ve(WE, [[\"__file\", \"row.vue\"]]);\nconst Qs = $t(YE), ZE = rt({\n tag: {\n type: String,\n default: \"div\"\n },\n span: {\n type: Number,\n default: 24\n },\n offset: {\n type: Number,\n default: 0\n },\n pull: {\n type: Number,\n default: 0\n },\n push: {\n type: Number,\n default: 0\n },\n xs: {\n type: $e([Number, Object]),\n default: () => Ra({})\n },\n sm: {\n type: $e([Number, Object]),\n default: () => Ra({})\n },\n md: {\n type: $e([Number, Object]),\n default: () => Ra({})\n },\n lg: {\n type: $e([Number, Object]),\n default: () => Ra({})\n },\n xl: {\n type: $e([Number, Object]),\n default: () => Ra({})\n }\n}), XE = de({\n name: \"ElCol\"\n}), jE = /* @__PURE__ */ de({\n ...XE,\n props: ZE,\n setup(t) {\n const e = t, { gutter: r } = Ue(Fh, { gutter: V(() => 0) }), n = He(\"col\"), a = V(() => {\n const o = {};\n return r.value && (o.paddingLeft = o.paddingRight = `${r.value / 2}px`), o;\n }), i = V(() => {\n const o = [];\n return [\"span\", \"offset\", \"pull\", \"push\"].forEach((l) => {\n const c = e[l];\n qt(c) && (l === \"span\" ? o.push(n.b(`${e[l]}`)) : c > 0 && o.push(n.b(`${l}-${e[l]}`)));\n }), [\"xs\", \"sm\", \"md\", \"lg\", \"xl\"].forEach((l) => {\n qt(e[l]) ? o.push(n.b(`${l}-${e[l]}`)) : Ht(e[l]) && Object.entries(e[l]).forEach(([c, d]) => {\n o.push(c !== \"span\" ? n.b(`${l}-${c}-${d}`) : n.b(`${l}-${d}`));\n });\n }), r.value && o.push(n.is(\"guttered\")), [n.b(), o];\n });\n return (o, s) => (N(), ye(er(o.tag), {\n class: ie(P(i)),\n style: lt(P(a))\n }, {\n default: U(() => [\n Le(o.$slots, \"default\")\n ]),\n _: 3\n }, 8, [\"class\", \"style\"]));\n }\n});\nvar QE = /* @__PURE__ */ Ve(jE, [[\"__file\", \"col.vue\"]]);\nconst So = $t(QE), JE = de({\n name: \"ElCollapseTransition\"\n}), ek = /* @__PURE__ */ de({\n ...JE,\n setup(t) {\n const e = He(\"collapse-transition\"), r = (a) => {\n a.style.maxHeight = \"\", a.style.overflow = a.dataset.oldOverflow, a.style.paddingTop = a.dataset.oldPaddingTop, a.style.paddingBottom = a.dataset.oldPaddingBottom;\n }, n = {\n beforeEnter(a) {\n a.dataset || (a.dataset = {}), a.dataset.oldPaddingTop = a.style.paddingTop, a.dataset.oldPaddingBottom = a.style.paddingBottom, a.style.height && (a.dataset.elExistsHeight = a.style.height), a.style.maxHeight = 0, a.style.paddingTop = 0, a.style.paddingBottom = 0;\n },\n enter(a) {\n requestAnimationFrame(() => {\n a.dataset.oldOverflow = a.style.overflow, a.dataset.elExistsHeight ? a.style.maxHeight = a.dataset.elExistsHeight : a.scrollHeight !== 0 ? a.style.maxHeight = `${a.scrollHeight}px` : a.style.maxHeight = 0, a.style.paddingTop = a.dataset.oldPaddingTop, a.style.paddingBottom = a.dataset.oldPaddingBottom, a.style.overflow = \"hidden\";\n });\n },\n afterEnter(a) {\n a.style.maxHeight = \"\", a.style.overflow = a.dataset.oldOverflow;\n },\n enterCancelled(a) {\n r(a);\n },\n beforeLeave(a) {\n a.dataset || (a.dataset = {}), a.dataset.oldPaddingTop = a.style.paddingTop, a.dataset.oldPaddingBottom = a.style.paddingBottom, a.dataset.oldOverflow = a.style.overflow, a.style.maxHeight = `${a.scrollHeight}px`, a.style.overflow = \"hidden\";\n },\n leave(a) {\n a.scrollHeight !== 0 && (a.style.maxHeight = 0, a.style.paddingTop = 0, a.style.paddingBottom = 0);\n },\n afterLeave(a) {\n r(a);\n },\n leaveCancelled(a) {\n r(a);\n }\n };\n return (a, i) => (N(), ye(ui, Rr({\n name: P(e).b()\n }, P0(n)), {\n default: U(() => [\n Le(a.$slots, \"default\")\n ]),\n _: 3\n }, 16, [\"name\"]));\n }\n});\nvar tk = /* @__PURE__ */ Ve(ek, [[\"__file\", \"collapse-transition.vue\"]]);\nconst rk = $t(tk), nk = rt({\n color: {\n type: $e(Object),\n required: !0\n },\n vertical: {\n type: Boolean,\n default: !1\n }\n});\nlet Ol = !1;\nfunction eo(t, e) {\n if (!_t)\n return;\n const r = function(i) {\n var o;\n (o = e.drag) == null || o.call(e, i);\n }, n = function(i) {\n var o;\n document.removeEventListener(\"mousemove\", r), document.removeEventListener(\"mouseup\", n), document.removeEventListener(\"touchmove\", r), document.removeEventListener(\"touchend\", n), document.onselectstart = null, document.ondragstart = null, Ol = !1, (o = e.end) == null || o.call(e, i);\n }, a = function(i) {\n var o;\n Ol || (i.preventDefault(), document.onselectstart = () => !1, document.ondragstart = () => !1, document.addEventListener(\"mousemove\", r), document.addEventListener(\"mouseup\", n), document.addEventListener(\"touchmove\", r), document.addEventListener(\"touchend\", n), Ol = !0, (o = e.start) == null || o.call(e, i));\n };\n t.addEventListener(\"mousedown\", a), t.addEventListener(\"touchstart\", a, { passive: !1 });\n}\nconst ak = (t) => {\n const e = gt(), { t: r } = yo(), n = jr(), a = jr(), i = V(() => t.color.get(\"alpha\")), o = V(() => r(\"el.colorpicker.alphaLabel\"));\n function s(d) {\n var v;\n d.target !== n.value && u(d), (v = n.value) == null || v.focus();\n }\n function u(d) {\n if (!a.value || !n.value)\n return;\n const h = e.vnode.el.getBoundingClientRect(), { clientX: f, clientY: p } = Tu(d);\n if (t.vertical) {\n let m = p - h.top;\n m = Math.max(n.value.offsetHeight / 2, m), m = Math.min(m, h.height - n.value.offsetHeight / 2), t.color.set(\"alpha\", Math.round((m - n.value.offsetHeight / 2) / (h.height - n.value.offsetHeight) * 100));\n } else {\n let m = f - h.left;\n m = Math.max(n.value.offsetWidth / 2, m), m = Math.min(m, h.width - n.value.offsetWidth / 2), t.color.set(\"alpha\", Math.round((m - n.value.offsetWidth / 2) / (h.width - n.value.offsetWidth) * 100));\n }\n }\n function l(d) {\n const { code: v, shiftKey: h } = d, f = h ? 10 : 1;\n switch (v) {\n case Lt.left:\n case Lt.down:\n d.preventDefault(), d.stopPropagation(), c(-f);\n break;\n case Lt.right:\n case Lt.up:\n d.preventDefault(), d.stopPropagation(), c(f);\n break;\n }\n }\n function c(d) {\n let v = i.value + d;\n v = v < 0 ? 0 : v > 100 ? 100 : v, t.color.set(\"alpha\", v);\n }\n return {\n thumb: n,\n bar: a,\n alpha: i,\n alphaLabel: o,\n handleDrag: u,\n handleClick: s,\n handleKeydown: l\n };\n}, ik = (t, {\n bar: e,\n thumb: r,\n handleDrag: n\n}) => {\n const a = gt(), i = He(\"color-alpha-slider\"), o = ce(0), s = ce(0), u = ce();\n function l() {\n if (!r.value || t.vertical)\n return 0;\n const y = a.vnode.el, b = t.color.get(\"alpha\");\n return y ? Math.round(b * (y.offsetWidth - r.value.offsetWidth / 2) / 100) : 0;\n }\n function c() {\n if (!r.value)\n return 0;\n const y = a.vnode.el;\n if (!t.vertical)\n return 0;\n const b = t.color.get(\"alpha\");\n return y ? Math.round(b * (y.offsetHeight - r.value.offsetHeight / 2) / 100) : 0;\n }\n function d() {\n if (t.color && t.color.value) {\n const { r: y, g: b, b: w } = t.color.toRgb();\n return `linear-gradient(to right, rgba(${y}, ${b}, ${w}, 0) 0%, rgba(${y}, ${b}, ${w}, 1) 100%)`;\n }\n return \"\";\n }\n function v() {\n o.value = l(), s.value = c(), u.value = d();\n }\n Et(() => {\n if (!e.value || !r.value)\n return;\n const y = {\n drag: (b) => {\n n(b);\n },\n end: (b) => {\n n(b);\n }\n };\n eo(e.value, y), eo(r.value, y), v();\n }), Pe(() => t.color.get(\"alpha\"), () => v()), Pe(() => t.color.value, () => v());\n const h = V(() => [i.b(), i.is(\"vertical\", t.vertical)]), f = V(() => i.e(\"bar\")), p = V(() => i.e(\"thumb\")), m = V(() => ({ background: u.value })), g = V(() => ({\n left: Ja(o.value),\n top: Ja(s.value)\n }));\n return { rootKls: h, barKls: f, barStyle: m, thumbKls: p, thumbStyle: g, update: v };\n}, ok = \"ElColorAlphaSlider\", sk = de({\n name: ok\n}), lk = /* @__PURE__ */ de({\n ...sk,\n props: nk,\n setup(t, { expose: e }) {\n const r = t, {\n alpha: n,\n alphaLabel: a,\n bar: i,\n thumb: o,\n handleDrag: s,\n handleClick: u,\n handleKeydown: l\n } = ak(r), { rootKls: c, barKls: d, barStyle: v, thumbKls: h, thumbStyle: f, update: p } = ik(r, {\n bar: i,\n thumb: o,\n handleDrag: s\n });\n return e({\n update: p,\n bar: i,\n thumb: o\n }), (m, g) => (N(), Z(\"div\", {\n class: ie(P(c))\n }, [\n X(\"div\", {\n ref_key: \"bar\",\n ref: i,\n class: ie(P(d)),\n style: lt(P(v)),\n onClick: P(u)\n }, null, 14, [\"onClick\"]),\n X(\"div\", {\n ref_key: \"thumb\",\n ref: o,\n class: ie(P(h)),\n style: lt(P(f)),\n \"aria-label\": P(a),\n \"aria-valuenow\": P(n),\n \"aria-orientation\": m.vertical ? \"vertical\" : \"horizontal\",\n \"aria-valuemin\": \"0\",\n \"aria-valuemax\": \"100\",\n role: \"slider\",\n tabindex: \"0\",\n onKeydown: P(l)\n }, null, 46, [\"aria-label\", \"aria-valuenow\", \"aria-orientation\", \"onKeydown\"])\n ], 2));\n }\n});\nvar uk = /* @__PURE__ */ Ve(lk, [[\"__file\", \"alpha-slider.vue\"]]);\nconst ck = de({\n name: \"ElColorHueSlider\",\n props: {\n color: {\n type: Object,\n required: !0\n },\n vertical: Boolean\n },\n setup(t) {\n const e = He(\"color-hue-slider\"), r = gt(), n = ce(), a = ce(), i = ce(0), o = ce(0), s = V(() => t.color.get(\"hue\"));\n Pe(() => s.value, () => {\n v();\n });\n function u(h) {\n h.target !== n.value && l(h);\n }\n function l(h) {\n if (!a.value || !n.value)\n return;\n const p = r.vnode.el.getBoundingClientRect(), { clientX: m, clientY: g } = Tu(h);\n let y;\n if (t.vertical) {\n let b = g - p.top;\n b = Math.min(b, p.height - n.value.offsetHeight / 2), b = Math.max(n.value.offsetHeight / 2, b), y = Math.round((b - n.value.offsetHeight / 2) / (p.height - n.value.offsetHeight) * 360);\n } else {\n let b = m - p.left;\n b = Math.min(b, p.width - n.value.offsetWidth / 2), b = Math.max(n.value.offsetWidth / 2, b), y = Math.round((b - n.value.offsetWidth / 2) / (p.width - n.value.offsetWidth) * 360);\n }\n t.color.set(\"hue\", y);\n }\n function c() {\n if (!n.value)\n return 0;\n const h = r.vnode.el;\n if (t.vertical)\n return 0;\n const f = t.color.get(\"hue\");\n return h ? Math.round(f * (h.offsetWidth - n.value.offsetWidth / 2) / 360) : 0;\n }\n function d() {\n if (!n.value)\n return 0;\n const h = r.vnode.el;\n if (!t.vertical)\n return 0;\n const f = t.color.get(\"hue\");\n return h ? Math.round(f * (h.offsetHeight - n.value.offsetHeight / 2) / 360) : 0;\n }\n function v() {\n i.value = c(), o.value = d();\n }\n return Et(() => {\n if (!a.value || !n.value)\n return;\n const h = {\n drag: (f) => {\n l(f);\n },\n end: (f) => {\n l(f);\n }\n };\n eo(a.value, h), eo(n.value, h), v();\n }), {\n bar: a,\n thumb: n,\n thumbLeft: i,\n thumbTop: o,\n hueValue: s,\n handleClick: u,\n update: v,\n ns: e\n };\n }\n});\nfunction dk(t, e, r, n, a, i) {\n return N(), Z(\"div\", {\n class: ie([t.ns.b(), t.ns.is(\"vertical\", t.vertical)])\n }, [\n X(\"div\", {\n ref: \"bar\",\n class: ie(t.ns.e(\"bar\")),\n onClick: t.handleClick\n }, null, 10, [\"onClick\"]),\n X(\"div\", {\n ref: \"thumb\",\n class: ie(t.ns.e(\"thumb\")),\n style: lt({\n left: t.thumbLeft + \"px\",\n top: t.thumbTop + \"px\"\n })\n }, null, 6)\n ], 2);\n}\nvar fk = /* @__PURE__ */ Ve(ck, [[\"render\", dk], [\"__file\", \"hue-slider.vue\"]]);\nconst vk = rt({\n modelValue: String,\n id: String,\n showAlpha: Boolean,\n colorFormat: String,\n disabled: Boolean,\n size: di,\n popperClass: {\n type: String,\n default: \"\"\n },\n tabindex: {\n type: [String, Number],\n default: 0\n },\n teleported: cr.teleported,\n predefine: {\n type: $e(Array)\n },\n validateEvent: {\n type: Boolean,\n default: !0\n },\n ...Zn([\"ariaLabel\"])\n}), hk = {\n [zt]: (t) => tr(t) || $n(t),\n [Bu]: (t) => tr(t) || $n(t),\n activeChange: (t) => tr(t) || $n(t),\n focus: (t) => t instanceof FocusEvent,\n blur: (t) => t instanceof FocusEvent\n}, Ah = Symbol(\"colorPickerContextKey\"), Ud = function(t, e, r) {\n return [\n t,\n e * r / ((t = (2 - e) * r) < 1 ? t : 2 - t) || 0,\n t / 2\n ];\n}, pk = function(t) {\n return typeof t == \"string\" && t.includes(\".\") && Number.parseFloat(t) === 1;\n}, gk = function(t) {\n return typeof t == \"string\" && t.includes(\"%\");\n}, Ka = function(t, e) {\n pk(t) && (t = \"100%\");\n const r = gk(t);\n return t = Math.min(e, Math.max(0, Number.parseFloat(`${t}`))), r && (t = Number.parseInt(`${t * e}`, 10) / 100), Math.abs(t - e) < 1e-6 ? 1 : t % e / Number.parseFloat(e);\n}, Gd = {\n 10: \"A\",\n 11: \"B\",\n 12: \"C\",\n 13: \"D\",\n 14: \"E\",\n 15: \"F\"\n}, ss = (t) => {\n t = Math.min(Math.round(t), 255);\n const e = Math.floor(t / 16), r = t % 16;\n return `${Gd[e] || e}${Gd[r] || r}`;\n}, Wd = function({ r: t, g: e, b: r }) {\n return Number.isNaN(+t) || Number.isNaN(+e) || Number.isNaN(+r) ? \"\" : `#${ss(t)}${ss(e)}${ss(r)}`;\n}, Ll = {\n A: 10,\n B: 11,\n C: 12,\n D: 13,\n E: 14,\n F: 15\n}, Jn = function(t) {\n return t.length === 2 ? (Ll[t[0].toUpperCase()] || +t[0]) * 16 + (Ll[t[1].toUpperCase()] || +t[1]) : Ll[t[1].toUpperCase()] || +t[1];\n}, mk = function(t, e, r) {\n e = e / 100, r = r / 100;\n let n = e;\n const a = Math.max(r, 0.01);\n r *= 2, e *= r <= 1 ? r : 2 - r, n *= a <= 1 ? a : 2 - a;\n const i = (r + e) / 2, o = r === 0 ? 2 * n / (a + n) : 2 * e / (r + e);\n return {\n h: t,\n s: o * 100,\n v: i * 100\n };\n}, Yd = (t, e, r) => {\n t = Ka(t, 255), e = Ka(e, 255), r = Ka(r, 255);\n const n = Math.max(t, e, r), a = Math.min(t, e, r);\n let i;\n const o = n, s = n - a, u = n === 0 ? 0 : s / n;\n if (n === a)\n i = 0;\n else {\n switch (n) {\n case t: {\n i = (e - r) / s + (e < r ? 6 : 0);\n break;\n }\n case e: {\n i = (r - t) / s + 2;\n break;\n }\n case r: {\n i = (t - e) / s + 4;\n break;\n }\n }\n i /= 6;\n }\n return { h: i * 360, s: u * 100, v: o * 100 };\n}, Di = function(t, e, r) {\n t = Ka(t, 360) * 6, e = Ka(e, 100), r = Ka(r, 100);\n const n = Math.floor(t), a = t - n, i = r * (1 - e), o = r * (1 - a * e), s = r * (1 - (1 - a) * e), u = n % 6, l = [r, o, i, i, s, r][u], c = [s, r, r, o, i, i][u], d = [i, i, s, r, r, o][u];\n return {\n r: Math.round(l * 255),\n g: Math.round(c * 255),\n b: Math.round(d * 255)\n };\n};\nclass qi {\n constructor(e = {}) {\n this._hue = 0, this._saturation = 100, this._value = 100, this._alpha = 100, this.enableAlpha = !1, this.format = \"hex\", this.value = \"\";\n for (const r in e)\n va(e, r) && (this[r] = e[r]);\n e.value ? this.fromString(e.value) : this.doOnChange();\n }\n set(e, r) {\n if (arguments.length === 1 && typeof e == \"object\") {\n for (const n in e)\n va(e, n) && this.set(n, e[n]);\n return;\n }\n this[`_${e}`] = r, this.doOnChange();\n }\n get(e) {\n return e === \"alpha\" ? Math.floor(this[`_${e}`]) : this[`_${e}`];\n }\n toRgb() {\n return Di(this._hue, this._saturation, this._value);\n }\n fromString(e) {\n if (!e) {\n this._hue = 0, this._saturation = 100, this._value = 100, this.doOnChange();\n return;\n }\n const r = (n, a, i) => {\n this._hue = Math.max(0, Math.min(360, n)), this._saturation = Math.max(0, Math.min(100, a)), this._value = Math.max(0, Math.min(100, i)), this.doOnChange();\n };\n if (e.includes(\"hsl\")) {\n const n = e.replace(/hsla|hsl|\\(|\\)/gm, \"\").split(/\\s|,/g).filter((a) => a !== \"\").map((a, i) => i > 2 ? Number.parseFloat(a) : Number.parseInt(a, 10));\n if (n.length === 4 ? this._alpha = Number.parseFloat(n[3]) * 100 : n.length === 3 && (this._alpha = 100), n.length >= 3) {\n const { h: a, s: i, v: o } = mk(n[0], n[1], n[2]);\n r(a, i, o);\n }\n } else if (e.includes(\"hsv\")) {\n const n = e.replace(/hsva|hsv|\\(|\\)/gm, \"\").split(/\\s|,/g).filter((a) => a !== \"\").map((a, i) => i > 2 ? Number.parseFloat(a) : Number.parseInt(a, 10));\n n.length === 4 ? this._alpha = Number.parseFloat(n[3]) * 100 : n.length === 3 && (this._alpha = 100), n.length >= 3 && r(n[0], n[1], n[2]);\n } else if (e.includes(\"rgb\")) {\n const n = e.replace(/rgba|rgb|\\(|\\)/gm, \"\").split(/\\s|,/g).filter((a) => a !== \"\").map((a, i) => i > 2 ? Number.parseFloat(a) : Number.parseInt(a, 10));\n if (n.length === 4 ? this._alpha = Number.parseFloat(n[3]) * 100 : n.length === 3 && (this._alpha = 100), n.length >= 3) {\n const { h: a, s: i, v: o } = Yd(n[0], n[1], n[2]);\n r(a, i, o);\n }\n } else if (e.includes(\"#\")) {\n const n = e.replace(\"#\", \"\").trim();\n if (!/^[0-9a-fA-F]{3}$|^[0-9a-fA-F]{6}$|^[0-9a-fA-F]{8}$/.test(n))\n return;\n let a, i, o;\n n.length === 3 ? (a = Jn(n[0] + n[0]), i = Jn(n[1] + n[1]), o = Jn(n[2] + n[2])) : (n.length === 6 || n.length === 8) && (a = Jn(n.slice(0, 2)), i = Jn(n.slice(2, 4)), o = Jn(n.slice(4, 6))), n.length === 8 ? this._alpha = Jn(n.slice(6)) / 255 * 100 : (n.length === 3 || n.length === 6) && (this._alpha = 100);\n const { h: s, s: u, v: l } = Yd(a, i, o);\n r(s, u, l);\n }\n }\n compare(e) {\n return Math.abs(e._hue - this._hue) < 2 && Math.abs(e._saturation - this._saturation) < 1 && Math.abs(e._value - this._value) < 1 && Math.abs(e._alpha - this._alpha) < 1;\n }\n doOnChange() {\n const { _hue: e, _saturation: r, _value: n, _alpha: a, format: i } = this;\n if (this.enableAlpha)\n switch (i) {\n case \"hsl\": {\n const o = Ud(e, r / 100, n / 100);\n this.value = `hsla(${e}, ${Math.round(o[1] * 100)}%, ${Math.round(o[2] * 100)}%, ${this.get(\"alpha\") / 100})`;\n break;\n }\n case \"hsv\": {\n this.value = `hsva(${e}, ${Math.round(r)}%, ${Math.round(n)}%, ${this.get(\"alpha\") / 100})`;\n break;\n }\n case \"hex\": {\n this.value = `${Wd(Di(e, r, n))}${ss(a * 255 / 100)}`;\n break;\n }\n default: {\n const { r: o, g: s, b: u } = Di(e, r, n);\n this.value = `rgba(${o}, ${s}, ${u}, ${this.get(\"alpha\") / 100})`;\n }\n }\n else\n switch (i) {\n case \"hsl\": {\n const o = Ud(e, r / 100, n / 100);\n this.value = `hsl(${e}, ${Math.round(o[1] * 100)}%, ${Math.round(o[2] * 100)}%)`;\n break;\n }\n case \"hsv\": {\n this.value = `hsv(${e}, ${Math.round(r)}%, ${Math.round(n)}%)`;\n break;\n }\n case \"rgb\": {\n const { r: o, g: s, b: u } = Di(e, r, n);\n this.value = `rgb(${o}, ${s}, ${u})`;\n break;\n }\n default:\n this.value = Wd(Di(e, r, n));\n }\n }\n}\nconst yk = de({\n props: {\n colors: {\n type: Array,\n required: !0\n },\n color: {\n type: Object,\n required: !0\n },\n enableAlpha: {\n type: Boolean,\n required: !0\n }\n },\n setup(t) {\n const e = He(\"color-predefine\"), { currentColor: r } = Ue(Ah), n = ce(i(t.colors, t.color));\n Pe(() => r.value, (o) => {\n const s = new qi();\n s.fromString(o), n.value.forEach((u) => {\n u.selected = s.compare(u);\n });\n }), bv(() => {\n n.value = i(t.colors, t.color);\n });\n function a(o) {\n t.color.fromString(t.colors[o]);\n }\n function i(o, s) {\n return o.map((u) => {\n const l = new qi();\n return l.enableAlpha = t.enableAlpha, l.format = \"rgba\", l.fromString(u), l.selected = l.value === s.value, l;\n });\n }\n return {\n rgbaColors: n,\n handleSelect: a,\n ns: e\n };\n }\n});\nfunction bk(t, e, r, n, a, i) {\n return N(), Z(\"div\", {\n class: ie(t.ns.b())\n }, [\n X(\"div\", {\n class: ie(t.ns.e(\"colors\"))\n }, [\n (N(!0), Z(Qe, null, Jt(t.rgbaColors, (o, s) => (N(), Z(\"div\", {\n key: t.colors[s],\n class: ie([\n t.ns.e(\"color-selector\"),\n t.ns.is(\"alpha\", o._alpha < 100),\n { selected: o.selected }\n ]),\n onClick: (u) => t.handleSelect(s)\n }, [\n X(\"div\", {\n style: lt({ backgroundColor: o.value })\n }, null, 4)\n ], 10, [\"onClick\"]))), 128))\n ], 2)\n ], 2);\n}\nvar wk = /* @__PURE__ */ Ve(yk, [[\"render\", bk], [\"__file\", \"predefine.vue\"]]);\nconst xk = de({\n name: \"ElSlPanel\",\n props: {\n color: {\n type: Object,\n required: !0\n }\n },\n setup(t) {\n const e = He(\"color-svpanel\"), r = gt(), n = ce(0), a = ce(0), i = ce(\"hsl(0, 100%, 50%)\"), o = V(() => {\n const l = t.color.get(\"hue\"), c = t.color.get(\"value\");\n return { hue: l, value: c };\n });\n function s() {\n const l = t.color.get(\"saturation\"), c = t.color.get(\"value\"), d = r.vnode.el, { clientWidth: v, clientHeight: h } = d;\n a.value = l * v / 100, n.value = (100 - c) * h / 100, i.value = `hsl(${t.color.get(\"hue\")}, 100%, 50%)`;\n }\n function u(l) {\n const d = r.vnode.el.getBoundingClientRect(), { clientX: v, clientY: h } = Tu(l);\n let f = v - d.left, p = h - d.top;\n f = Math.max(0, f), f = Math.min(f, d.width), p = Math.max(0, p), p = Math.min(p, d.height), a.value = f, n.value = p, t.color.set({\n saturation: f / d.width * 100,\n value: 100 - p / d.height * 100\n });\n }\n return Pe(() => o.value, () => {\n s();\n }), Et(() => {\n eo(r.vnode.el, {\n drag: (l) => {\n u(l);\n },\n end: (l) => {\n u(l);\n }\n }), s();\n }), {\n cursorTop: n,\n cursorLeft: a,\n background: i,\n colorValue: o,\n handleDrag: u,\n update: s,\n ns: e\n };\n }\n});\nfunction Ck(t, e, r, n, a, i) {\n return N(), Z(\"div\", {\n class: ie(t.ns.b()),\n style: lt({\n backgroundColor: t.background\n })\n }, [\n X(\"div\", {\n class: ie(t.ns.e(\"white\"))\n }, null, 2),\n X(\"div\", {\n class: ie(t.ns.e(\"black\"))\n }, null, 2),\n X(\"div\", {\n class: ie(t.ns.e(\"cursor\")),\n style: lt({\n top: t.cursorTop + \"px\",\n left: t.cursorLeft + \"px\"\n })\n }, [\n X(\"div\")\n ], 6)\n ], 6);\n}\nvar Ek = /* @__PURE__ */ Ve(xk, [[\"render\", Ck], [\"__file\", \"sv-panel.vue\"]]);\nconst kk = de({\n name: \"ElColorPicker\"\n}), Sk = /* @__PURE__ */ de({\n ...kk,\n props: vk,\n emits: hk,\n setup(t, { expose: e, emit: r }) {\n const n = t, { t: a } = yo(), i = He(\"color\"), { formItem: o } = Ta(), s = pa(), u = xo(), { inputId: l, isLabeledByFormItem: c } = Co(n, {\n formItemContext: o\n }), d = ce(), v = ce(), h = ce(), f = ce(), p = ce(), m = ce(), { isFocused: g, handleFocus: y, handleBlur: b } = Gu(p, {\n beforeFocus() {\n return u.value;\n },\n beforeBlur($) {\n var G;\n return (G = f.value) == null ? void 0 : G.isFocusInsideContent($);\n },\n afterBlur() {\n B(!1), R();\n }\n });\n let w = !0;\n const C = Jr(new qi({\n enableAlpha: n.showAlpha,\n format: n.colorFormat || \"\",\n value: n.modelValue\n })), E = ce(!1), x = ce(!1), T = ce(\"\"), k = V(() => !n.modelValue && !x.value ? \"transparent\" : L(C, n.showAlpha)), _ = V(() => !n.modelValue && !x.value ? \"\" : C.value), D = V(() => c.value ? void 0 : n.ariaLabel || a(\"el.colorpicker.defaultLabel\")), O = V(() => c.value ? o == null ? void 0 : o.labelId : void 0), F = V(() => [\n i.b(\"picker\"),\n i.is(\"disabled\", u.value),\n i.bm(\"picker\", s.value),\n i.is(\"focused\", g.value)\n ]);\n function L($, G) {\n if (!($ instanceof qi))\n throw new TypeError(\"color should be instance of _color Class\");\n const { r: Q, g: ge, b: Ee } = $.toRgb();\n return G ? `rgba(${Q}, ${ge}, ${Ee}, ${$.get(\"alpha\") / 100})` : `rgb(${Q}, ${ge}, ${Ee})`;\n }\n function B($) {\n E.value = $;\n }\n const I = Rv(B, 100, { leading: !0 });\n function M() {\n u.value || B(!0);\n }\n function A() {\n I(!1), R();\n }\n function R() {\n ot(() => {\n n.modelValue ? C.fromString(n.modelValue) : (C.value = \"\", ot(() => {\n x.value = !1;\n }));\n });\n }\n function K() {\n u.value || I(!E.value);\n }\n function H() {\n C.fromString(T.value);\n }\n function q() {\n const $ = C.value;\n r(zt, $), r(\"change\", $), n.validateEvent && (o == null || o.validate(\"change\").catch((G) => Dt(G))), I(!1), ot(() => {\n const G = new qi({\n enableAlpha: n.showAlpha,\n format: n.colorFormat || \"\",\n value: n.modelValue\n });\n C.compare(G) || R();\n });\n }\n function ee() {\n I(!1), r(zt, null), r(\"change\", null), n.modelValue !== null && n.validateEvent && (o == null || o.validate(\"change\").catch(($) => Dt($))), R();\n }\n function se() {\n E.value && (A(), g.value && ue());\n }\n function oe($) {\n $.preventDefault(), $.stopPropagation(), B(!1), R();\n }\n function ne($) {\n switch ($.code) {\n case Lt.enter:\n case Lt.space:\n $.preventDefault(), $.stopPropagation(), M(), m.value.focus();\n break;\n case Lt.esc:\n oe($);\n break;\n }\n }\n function ue() {\n p.value.focus();\n }\n function te() {\n p.value.blur();\n }\n return Et(() => {\n n.modelValue && (T.value = _.value);\n }), Pe(() => n.modelValue, ($) => {\n $ ? $ && $ !== C.value && (w = !1, C.fromString($)) : x.value = !1;\n }), Pe(() => [n.colorFormat, n.showAlpha], () => {\n C.enableAlpha = n.showAlpha, C.format = n.colorFormat || C.format, C.doOnChange(), r(zt, C.value);\n }), Pe(() => _.value, ($) => {\n T.value = $, w && r(\"activeChange\", $), w = !0;\n }), Pe(() => C.value, () => {\n !n.modelValue && !x.value && (x.value = !0);\n }), Pe(() => E.value, () => {\n ot(() => {\n var $, G, Q;\n ($ = d.value) == null || $.update(), (G = v.value) == null || G.update(), (Q = h.value) == null || Q.update();\n });\n }), Ct(Ah, {\n currentColor: _\n }), e({\n color: C,\n show: M,\n hide: A,\n focus: ue,\n blur: te\n }), ($, G) => (N(), ye(P(ko), {\n ref_key: \"popper\",\n ref: f,\n visible: E.value,\n \"show-arrow\": !1,\n \"fallback-placements\": [\"bottom\", \"top\", \"right\", \"left\"],\n offset: 0,\n \"gpu-acceleration\": !1,\n \"popper-class\": [P(i).be(\"picker\", \"panel\"), P(i).b(\"dropdown\"), $.popperClass],\n \"stop-popper-mouse-event\": !1,\n effect: \"light\",\n trigger: \"click\",\n teleported: $.teleported,\n transition: `${P(i).namespace.value}-zoom-in-top`,\n persistent: \"\",\n onHide: (Q) => B(!1)\n }, {\n content: U(() => [\n Ze((N(), Z(\"div\", {\n onKeydown: aa(oe, [\"esc\"])\n }, [\n X(\"div\", {\n class: ie(P(i).be(\"dropdown\", \"main-wrapper\"))\n }, [\n J(fk, {\n ref_key: \"hue\",\n ref: d,\n class: \"hue-slider\",\n color: P(C),\n vertical: \"\"\n }, null, 8, [\"color\"]),\n J(Ek, {\n ref_key: \"sv\",\n ref: v,\n color: P(C)\n }, null, 8, [\"color\"])\n ], 2),\n $.showAlpha ? (N(), ye(uk, {\n key: 0,\n ref_key: \"alpha\",\n ref: h,\n color: P(C)\n }, null, 8, [\"color\"])) : he(\"v-if\", !0),\n $.predefine ? (N(), ye(wk, {\n key: 1,\n ref: \"predefine\",\n \"enable-alpha\": $.showAlpha,\n color: P(C),\n colors: $.predefine\n }, null, 8, [\"enable-alpha\", \"color\", \"colors\"])) : he(\"v-if\", !0),\n X(\"div\", {\n class: ie(P(i).be(\"dropdown\", \"btns\"))\n }, [\n X(\"span\", {\n class: ie(P(i).be(\"dropdown\", \"value\"))\n }, [\n J(P(Eo), {\n ref_key: \"inputRef\",\n ref: m,\n modelValue: T.value,\n \"onUpdate:modelValue\": (Q) => T.value = Q,\n \"validate-event\": !1,\n size: \"small\",\n onKeyup: aa(H, [\"enter\"]),\n onBlur: H\n }, null, 8, [\"modelValue\", \"onUpdate:modelValue\", \"onKeyup\"])\n ], 2),\n J(P(Hr), {\n class: ie(P(i).be(\"dropdown\", \"link-btn\")),\n text: \"\",\n size: \"small\",\n onClick: ee\n }, {\n default: U(() => [\n ze(Ie(P(a)(\"el.colorpicker.clear\")), 1)\n ]),\n _: 1\n }, 8, [\"class\"]),\n J(P(Hr), {\n plain: \"\",\n size: \"small\",\n class: ie(P(i).be(\"dropdown\", \"btn\")),\n onClick: q\n }, {\n default: U(() => [\n ze(Ie(P(a)(\"el.colorpicker.confirm\")), 1)\n ]),\n _: 1\n }, 8, [\"class\"])\n ], 2)\n ], 40, [\"onKeydown\"])), [\n [P(_h), se]\n ])\n ]),\n default: U(() => [\n X(\"div\", Rr({\n id: P(l),\n ref_key: \"triggerRef\",\n ref: p\n }, $.$attrs, {\n class: P(F),\n role: \"button\",\n \"aria-label\": P(D),\n \"aria-labelledby\": P(O),\n \"aria-description\": P(a)(\"el.colorpicker.description\", { color: $.modelValue || \"\" }),\n \"aria-disabled\": P(u),\n tabindex: P(u) ? -1 : $.tabindex,\n onKeydown: ne,\n onFocus: P(y),\n onBlur: P(b)\n }), [\n P(u) ? (N(), Z(\"div\", {\n key: 0,\n class: ie(P(i).be(\"picker\", \"mask\"))\n }, null, 2)) : he(\"v-if\", !0),\n X(\"div\", {\n class: ie(P(i).be(\"picker\", \"trigger\")),\n onClick: K\n }, [\n X(\"span\", {\n class: ie([P(i).be(\"picker\", \"color\"), P(i).is(\"alpha\", $.showAlpha)])\n }, [\n X(\"span\", {\n class: ie(P(i).be(\"picker\", \"color-inner\")),\n style: lt({\n backgroundColor: P(k)\n })\n }, [\n Ze(J(P(Vt), {\n class: ie([P(i).be(\"picker\", \"icon\"), P(i).is(\"icon-arrow-down\")])\n }, {\n default: U(() => [\n J(P(Gs))\n ]),\n _: 1\n }, 8, [\"class\"]), [\n [mt, $.modelValue || x.value]\n ]),\n Ze(J(P(Vt), {\n class: ie([P(i).be(\"picker\", \"empty\"), P(i).is(\"icon-close\")])\n }, {\n default: U(() => [\n J(P(Ss))\n ]),\n _: 1\n }, 8, [\"class\"]), [\n [mt, !$.modelValue && !x.value]\n ])\n ], 6)\n ], 2)\n ], 2)\n ], 16, [\"id\", \"aria-label\", \"aria-labelledby\", \"aria-description\", \"aria-disabled\", \"tabindex\", \"onFocus\", \"onBlur\"])\n ]),\n _: 1\n }, 8, [\"visible\", \"popper-class\", \"teleported\", \"transition\", \"onHide\"]));\n }\n});\nvar Tk = /* @__PURE__ */ Ve(Sk, [[\"__file\", \"color-picker.vue\"]]);\nconst _k = $t(Tk), Dk = de({\n name: \"ElContainer\"\n}), Pk = /* @__PURE__ */ de({\n ...Dk,\n props: {\n direction: {\n type: String\n }\n },\n setup(t) {\n const e = t, r = vo(), n = He(\"container\"), a = V(() => e.direction === \"vertical\" ? !0 : e.direction === \"horizontal\" ? !1 : r && r.default ? r.default().some((o) => {\n const s = o.type.name;\n return s === \"ElHeader\" || s === \"ElFooter\";\n }) : !1);\n return (i, o) => (N(), Z(\"section\", {\n class: ie([P(n).b(), P(n).is(\"vertical\", P(a))])\n }, [\n Le(i.$slots, \"default\")\n ], 2));\n }\n});\nvar Ok = /* @__PURE__ */ Ve(Pk, [[\"__file\", \"container.vue\"]]);\nconst Lk = de({\n name: \"ElAside\"\n}), Ik = /* @__PURE__ */ de({\n ...Lk,\n props: {\n width: {\n type: String,\n default: null\n }\n },\n setup(t) {\n const e = t, r = He(\"aside\"), n = V(() => e.width ? r.cssVarBlock({ width: e.width }) : {});\n return (a, i) => (N(), Z(\"aside\", {\n class: ie(P(r).b()),\n style: lt(P(n))\n }, [\n Le(a.$slots, \"default\")\n ], 6));\n }\n});\nvar Mh = /* @__PURE__ */ Ve(Ik, [[\"__file\", \"aside.vue\"]]);\nconst Fk = de({\n name: \"ElFooter\"\n}), Ak = /* @__PURE__ */ de({\n ...Fk,\n props: {\n height: {\n type: String,\n default: null\n }\n },\n setup(t) {\n const e = t, r = He(\"footer\"), n = V(() => e.height ? r.cssVarBlock({ height: e.height }) : {});\n return (a, i) => (N(), Z(\"footer\", {\n class: ie(P(r).b()),\n style: lt(P(n))\n }, [\n Le(a.$slots, \"default\")\n ], 6));\n }\n});\nvar Bh = /* @__PURE__ */ Ve(Ak, [[\"__file\", \"footer.vue\"]]);\nconst Mk = de({\n name: \"ElHeader\"\n}), Bk = /* @__PURE__ */ de({\n ...Mk,\n props: {\n height: {\n type: String,\n default: null\n }\n },\n setup(t) {\n const e = t, r = He(\"header\"), n = V(() => e.height ? r.cssVarBlock({\n height: e.height\n }) : {});\n return (a, i) => (N(), Z(\"header\", {\n class: ie(P(r).b()),\n style: lt(P(n))\n }, [\n Le(a.$slots, \"default\")\n ], 6));\n }\n});\nvar Nh = /* @__PURE__ */ Ve(Bk, [[\"__file\", \"header.vue\"]]);\nconst Nk = de({\n name: \"ElMain\"\n}), $k = /* @__PURE__ */ de({\n ...Nk,\n setup(t) {\n const e = He(\"main\");\n return (r, n) => (N(), Z(\"main\", {\n class: ie(P(e).b())\n }, [\n Le(r.$slots, \"default\")\n ], 2));\n }\n});\nvar $h = /* @__PURE__ */ Ve($k, [[\"__file\", \"main.vue\"]]);\nconst Rh = $t(Ok, {\n Aside: Mh,\n Footer: Bh,\n Header: Nh,\n Main: $h\n});\nxn(Mh);\nxn(Bh);\nconst zh = xn(Nh), ec = xn($h), Rk = /* @__PURE__ */ de({\n inheritAttrs: !1\n});\nfunction zk(t, e, r, n, a, i) {\n return Le(t.$slots, \"default\");\n}\nvar Vk = /* @__PURE__ */ Ve(Rk, [[\"render\", zk], [\"__file\", \"collection.vue\"]]);\nconst Hk = /* @__PURE__ */ de({\n name: \"ElCollectionItem\",\n inheritAttrs: !1\n});\nfunction qk(t, e, r, n, a, i) {\n return Le(t.$slots, \"default\");\n}\nvar Kk = /* @__PURE__ */ Ve(Hk, [[\"render\", qk], [\"__file\", \"collection-item.vue\"]]);\nconst Uk = \"data-el-collection-item\", Gk = (t) => {\n const e = `El${t}Collection`, r = `${e}Item`, n = Symbol(e), a = Symbol(r), i = {\n ...Vk,\n name: e,\n setup() {\n const s = ce(null), u = /* @__PURE__ */ new Map();\n Ct(n, {\n itemMap: u,\n getItems: () => {\n const c = P(s);\n if (!c)\n return [];\n const d = Array.from(c.querySelectorAll(`[${Uk}]`));\n return [...u.values()].sort((h, f) => d.indexOf(h.ref) - d.indexOf(f.ref));\n },\n collectionRef: s\n });\n }\n }, o = {\n ...Kk,\n name: r,\n setup(s, { attrs: u }) {\n const l = ce(null), c = Ue(n, void 0);\n Ct(a, {\n collectionItemRef: l\n }), Et(() => {\n const d = P(l);\n d && c.itemMap.set(d, {\n ref: d,\n ...u\n });\n }), qr(() => {\n const d = P(l);\n c.itemMap.delete(d);\n });\n }\n };\n return {\n COLLECTION_INJECTION_KEY: n,\n COLLECTION_ITEM_INJECTION_KEY: a,\n ElCollection: i,\n ElCollectionItem: o\n };\n}, Il = rt({\n trigger: Ji.trigger,\n effect: {\n ...cr.effect,\n default: \"light\"\n },\n type: {\n type: $e(String)\n },\n placement: {\n type: $e(String),\n default: \"bottom\"\n },\n popperOptions: {\n type: $e(Object),\n default: () => ({})\n },\n id: String,\n size: {\n type: String,\n default: \"\"\n },\n splitButton: Boolean,\n hideOnClick: {\n type: Boolean,\n default: !0\n },\n loop: {\n type: Boolean,\n default: !0\n },\n showTimeout: {\n type: Number,\n default: 150\n },\n hideTimeout: {\n type: Number,\n default: 150\n },\n tabindex: {\n type: $e([Number, String]),\n default: 0\n },\n maxHeight: {\n type: $e([Number, String]),\n default: \"\"\n },\n popperClass: {\n type: String,\n default: \"\"\n },\n disabled: Boolean,\n role: {\n type: String,\n default: \"menu\"\n },\n buttonProps: {\n type: $e(Object)\n },\n teleported: cr.teleported\n});\nrt({\n command: {\n type: [Object, String, Number],\n default: () => ({})\n },\n disabled: Boolean,\n divided: Boolean,\n textValue: String,\n icon: {\n type: Hn\n }\n});\nrt({\n onKeydown: { type: $e(Function) }\n});\nGk(\"Dropdown\");\nconst Vh = Symbol(\"ElSelectGroup\"), To = Symbol(\"ElSelect\");\nfunction Wk(t, e) {\n const r = Ue(To), n = Ue(Vh, { disabled: !1 }), a = V(() => c(Fn(r.props.modelValue), t.value)), i = V(() => {\n var h;\n if (r.props.multiple) {\n const f = Fn((h = r.props.modelValue) != null ? h : []);\n return !a.value && f.length >= r.props.multipleLimit && r.props.multipleLimit > 0;\n } else\n return !1;\n }), o = V(() => t.label || (Ht(t.value) ? \"\" : t.value)), s = V(() => t.value || t.label || \"\"), u = V(() => t.disabled || e.groupDisabled || i.value), l = gt(), c = (h = [], f) => {\n if (Ht(t.value)) {\n const p = r.props.valueKey;\n return h && h.some((m) => ys(fn(m, p)) === fn(f, p));\n } else\n return h && h.includes(f);\n }, d = () => {\n !t.disabled && !n.disabled && (r.states.hoveringIndex = r.optionsArray.indexOf(l.proxy));\n }, v = (h) => {\n const f = new RegExp(Xb(h), \"i\");\n e.visible = f.test(o.value) || t.created;\n };\n return Pe(() => o.value, () => {\n !t.created && !r.props.remote && r.setSelected();\n }), Pe(() => t.value, (h, f) => {\n const { remote: p, valueKey: m } = r.props;\n if (h !== f && (r.onOptionDestroy(f, l.proxy), r.onOptionCreate(l.proxy)), !t.created && !p) {\n if (m && Ht(h) && Ht(f) && h[m] === f[m])\n return;\n r.setSelected();\n }\n }), Pe(() => n.disabled, () => {\n e.groupDisabled = n.disabled;\n }, { immediate: !0 }), {\n select: r,\n currentLabel: o,\n currentValue: s,\n itemSelected: a,\n isDisabled: u,\n hoverItem: d,\n updateOption: v\n };\n}\nconst Yk = de({\n name: \"ElOption\",\n componentName: \"ElOption\",\n props: {\n value: {\n required: !0,\n type: [String, Number, Boolean, Object]\n },\n label: [String, Number],\n created: Boolean,\n disabled: Boolean\n },\n setup(t) {\n const e = He(\"select\"), r = Xs(), n = V(() => [\n e.be(\"dropdown\", \"item\"),\n e.is(\"disabled\", P(s)),\n e.is(\"selected\", P(o)),\n e.is(\"hovering\", P(v))\n ]), a = Jr({\n index: -1,\n groupDisabled: !1,\n visible: !0,\n hover: !1\n }), {\n currentLabel: i,\n itemSelected: o,\n isDisabled: s,\n select: u,\n hoverItem: l,\n updateOption: c\n } = Wk(t, a), { visible: d, hover: v } = ho(a), h = gt().proxy;\n u.onOptionCreate(h), qr(() => {\n const p = h.value, { selected: m } = u.states, y = (u.props.multiple ? m : [m]).some((b) => b.value === h.value);\n ot(() => {\n u.states.cachedOptions.get(p) === h && !y && u.states.cachedOptions.delete(p);\n }), u.onOptionDestroy(p, h);\n });\n function f() {\n s.value || u.handleOptionSelect(h);\n }\n return {\n ns: e,\n id: r,\n containerKls: n,\n currentLabel: i,\n itemSelected: o,\n isDisabled: s,\n select: u,\n hoverItem: l,\n updateOption: c,\n visible: d,\n hover: v,\n selectOptionClick: f,\n states: a\n };\n }\n});\nfunction Zk(t, e, r, n, a, i) {\n return Ze((N(), Z(\"li\", {\n id: t.id,\n class: ie(t.containerKls),\n role: \"option\",\n \"aria-disabled\": t.isDisabled || void 0,\n \"aria-selected\": t.itemSelected,\n onMouseenter: t.hoverItem,\n onClick: ht(t.selectOptionClick, [\"stop\"])\n }, [\n Le(t.$slots, \"default\", {}, () => [\n X(\"span\", null, Ie(t.currentLabel), 1)\n ])\n ], 42, [\"id\", \"aria-disabled\", \"aria-selected\", \"onMouseenter\", \"onClick\"])), [\n [mt, t.visible]\n ]);\n}\nvar tc = /* @__PURE__ */ Ve(Yk, [[\"render\", Zk], [\"__file\", \"option.vue\"]]);\nconst Xk = de({\n name: \"ElSelectDropdown\",\n componentName: \"ElSelectDropdown\",\n setup() {\n const t = Ue(To), e = He(\"select\"), r = V(() => t.props.popperClass), n = V(() => t.props.multiple), a = V(() => t.props.fitInputWidth), i = ce(\"\");\n function o() {\n var s;\n i.value = `${(s = t.selectRef) == null ? void 0 : s.offsetWidth}px`;\n }\n return Et(() => {\n o(), dn(t.selectRef, o);\n }), {\n ns: e,\n minWidth: i,\n popperClass: r,\n isMultiple: n,\n isFitInputWidth: a\n };\n }\n});\nfunction jk(t, e, r, n, a, i) {\n return N(), Z(\"div\", {\n class: ie([t.ns.b(\"dropdown\"), t.ns.is(\"multiple\", t.isMultiple), t.popperClass]),\n style: lt({ [t.isFitInputWidth ? \"width\" : \"minWidth\"]: t.minWidth })\n }, [\n t.$slots.header ? (N(), Z(\"div\", {\n key: 0,\n class: ie(t.ns.be(\"dropdown\", \"header\"))\n }, [\n Le(t.$slots, \"header\")\n ], 2)) : he(\"v-if\", !0),\n Le(t.$slots, \"default\"),\n t.$slots.footer ? (N(), Z(\"div\", {\n key: 1,\n class: ie(t.ns.be(\"dropdown\", \"footer\"))\n }, [\n Le(t.$slots, \"footer\")\n ], 2)) : he(\"v-if\", !0)\n ], 6);\n}\nvar Qk = /* @__PURE__ */ Ve(Xk, [[\"render\", jk], [\"__file\", \"select-dropdown.vue\"]]);\nconst Jk = 11, eS = (t, e) => {\n const { t: r } = yo(), n = Xs(), a = He(\"select\"), i = He(\"input\"), o = Jr({\n inputValue: \"\",\n options: /* @__PURE__ */ new Map(),\n cachedOptions: /* @__PURE__ */ new Map(),\n disabledOptions: /* @__PURE__ */ new Map(),\n optionValues: [],\n selected: [],\n selectionWidth: 0,\n calculatorWidth: 0,\n collapseItemWidth: 0,\n selectedLabel: \"\",\n hoveringIndex: -1,\n previousQuery: null,\n inputHovering: !1,\n menuVisibleOnFocus: !1,\n isBeforeHide: !1\n }), s = ce(null), u = ce(null), l = ce(null), c = ce(null), d = ce(null), v = ce(null), h = ce(null), f = ce(null), p = ce(null), m = ce(null), g = ce(null), y = ce(null), {\n isComposing: b,\n handleCompositionStart: w,\n handleCompositionUpdate: C,\n handleCompositionEnd: E\n } = hh({\n afterComposition: (W) => ae(W)\n }), { wrapperRef: x, isFocused: T } = Gu(d, {\n beforeFocus() {\n return I.value;\n },\n afterFocus() {\n t.automaticDropdown && !k.value && (k.value = !0, o.menuVisibleOnFocus = !0);\n },\n beforeBlur(W) {\n var we, We;\n return ((we = l.value) == null ? void 0 : we.isFocusInsideContent(W)) || ((We = c.value) == null ? void 0 : We.isFocusInsideContent(W));\n },\n afterBlur() {\n k.value = !1, o.menuVisibleOnFocus = !1;\n }\n }), k = ce(!1), _ = ce(), { form: D, formItem: O } = Ta(), { inputId: F } = Co(t, {\n formItemContext: O\n }), { valueOnClear: L, isEmptyValue: B } = vx(t), I = V(() => t.disabled || (D == null ? void 0 : D.disabled)), M = V(() => fr(t.modelValue) ? t.modelValue.length > 0 : !B(t.modelValue)), A = V(() => t.clearable && !I.value && o.inputHovering && M.value), R = V(() => t.remote && t.filterable && !t.remoteShowSuffix ? \"\" : t.suffixIcon), K = V(() => a.is(\"reverse\", R.value && k.value)), H = V(() => (O == null ? void 0 : O.validateState) || \"\"), q = V(() => Uv[H.value]), ee = V(() => t.remote ? 300 : 0), se = V(() => t.loading ? t.loadingText || r(\"el.select.loading\") : t.remote && !o.inputValue && o.options.size === 0 ? !1 : t.filterable && o.inputValue && o.options.size > 0 && oe.value === 0 ? t.noMatchText || r(\"el.select.noMatch\") : o.options.size === 0 ? t.noDataText || r(\"el.select.noData\") : null), oe = V(() => ne.value.filter((W) => W.visible).length), ne = V(() => {\n const W = Array.from(o.options.values()), we = [];\n return o.optionValues.forEach((We) => {\n const at = W.findIndex((Gr) => Gr.value === We);\n at > -1 && we.push(W[at]);\n }), we.length >= W.length ? we : W;\n }), ue = V(() => Array.from(o.cachedOptions.values())), te = V(() => {\n const W = ne.value.filter((we) => !we.created).some((we) => we.currentLabel === o.inputValue);\n return t.filterable && t.allowCreate && o.inputValue !== \"\" && !W;\n }), $ = () => {\n t.filterable && lr(t.filterMethod) || t.filterable && t.remote && lr(t.remoteMethod) || ne.value.forEach((W) => {\n var we;\n (we = W.updateOption) == null || we.call(W, o.inputValue);\n });\n }, G = pa(), Q = V(() => [\"small\"].includes(G.value) ? \"small\" : \"default\"), ge = V({\n get() {\n return k.value && se.value !== !1;\n },\n set(W) {\n k.value = W;\n }\n }), Ee = V(() => {\n if (t.multiple && !Mn(t.modelValue))\n return Fn(t.modelValue).length === 0 && !o.inputValue;\n const W = fr(t.modelValue) ? t.modelValue[0] : t.modelValue;\n return t.filterable || Mn(W) ? !o.inputValue : !0;\n }), fe = V(() => {\n var W;\n const we = (W = t.placeholder) != null ? W : r(\"el.select.placeholder\");\n return t.multiple || !M.value ? we : o.selectedLabel;\n }), me = V(() => Gl ? null : \"mouseenter\");\n Pe(() => t.modelValue, (W, we) => {\n t.multiple && t.filterable && !t.reserveKeyword && (o.inputValue = \"\", xe(\"\")), Ce(), !Es(W, we) && t.validateEvent && (O == null || O.validate(\"change\").catch((We) => Dt(We)));\n }, {\n flush: \"post\",\n deep: !0\n }), Pe(() => k.value, (W) => {\n W ? xe(o.inputValue) : (o.inputValue = \"\", o.previousQuery = null, o.isBeforeHide = !0), e(\"visible-change\", W);\n }), Pe(() => o.options.entries(), () => {\n var W;\n if (!_t)\n return;\n const we = ((W = s.value) == null ? void 0 : W.querySelectorAll(\"input\")) || [];\n (!t.filterable && !t.defaultFirstOption && !Mn(t.modelValue) || !Array.from(we).includes(document.activeElement)) && Ce(), t.defaultFirstOption && (t.filterable || t.remote) && oe.value && ke();\n }, {\n flush: \"post\"\n }), Pe(() => o.hoveringIndex, (W) => {\n qt(W) && W > -1 ? _.value = ne.value[W] || {} : _.value = {}, ne.value.forEach((we) => {\n we.hover = _.value === we;\n });\n }), bv(() => {\n o.isBeforeHide || $();\n });\n const xe = (W) => {\n o.previousQuery === W || b.value || (o.previousQuery = W, t.filterable && lr(t.filterMethod) ? t.filterMethod(W) : t.filterable && t.remote && lr(t.remoteMethod) && t.remoteMethod(W), t.defaultFirstOption && (t.filterable || t.remote) && oe.value ? ot(ke) : ot(qe));\n }, ke = () => {\n const W = ne.value.filter((at) => at.visible && !at.disabled && !at.states.groupDisabled), we = W.find((at) => at.created), We = W[0];\n o.hoveringIndex = _e(ne.value, we || We);\n }, Ce = () => {\n if (t.multiple)\n o.selectedLabel = \"\";\n else {\n const we = fr(t.modelValue) ? t.modelValue[0] : t.modelValue, We = De(we);\n o.selectedLabel = We.currentLabel, o.selected = [We];\n return;\n }\n const W = [];\n Mn(t.modelValue) || Fn(t.modelValue).forEach((we) => {\n W.push(De(we));\n }), o.selected = W;\n }, De = (W) => {\n let we;\n const We = bl(W).toLowerCase() === \"object\", at = bl(W).toLowerCase() === \"null\", Gr = bl(W).toLowerCase() === \"undefined\";\n for (let sn = o.cachedOptions.size - 1; sn >= 0; sn--) {\n const xr = ue.value[sn];\n if (We ? fn(xr.value, t.valueKey) === fn(W, t.valueKey) : xr.value === W) {\n we = {\n value: W,\n currentLabel: xr.currentLabel,\n get isDisabled() {\n return xr.isDisabled;\n }\n };\n break;\n }\n }\n if (we)\n return we;\n const Sn = We ? W.label : !at && !Gr ? W : \"\";\n return {\n value: W,\n currentLabel: Sn\n };\n }, qe = () => {\n o.hoveringIndex = ne.value.findIndex((W) => o.selected.some((we) => Xt(we) === Xt(W)));\n }, Ke = () => {\n o.selectionWidth = u.value.getBoundingClientRect().width;\n }, Be = () => {\n o.calculatorWidth = v.value.getBoundingClientRect().width;\n }, Ge = () => {\n o.collapseItemWidth = g.value.getBoundingClientRect().width;\n }, le = () => {\n var W, we;\n (we = (W = l.value) == null ? void 0 : W.updatePopper) == null || we.call(W);\n }, S = () => {\n var W, we;\n (we = (W = c.value) == null ? void 0 : W.updatePopper) == null || we.call(W);\n }, z = () => {\n o.inputValue.length > 0 && !k.value && (k.value = !0), xe(o.inputValue);\n }, ae = (W) => {\n if (o.inputValue = W.target.value, t.remote)\n j();\n else\n return z();\n }, j = Rv(() => {\n z();\n }, ee.value), Y = (W) => {\n Es(t.modelValue, W) || e(Bu, W);\n }, pe = (W) => Kb(W, (we) => !o.disabledOptions.has(we)), re = (W) => {\n if (t.multiple && W.code !== Lt.delete && W.target.value.length <= 0) {\n const we = Fn(t.modelValue).slice(), We = pe(we);\n if (We < 0)\n return;\n const at = we[We];\n we.splice(We, 1), e(zt, we), Y(we), e(\"remove-tag\", at);\n }\n }, ve = (W, we) => {\n const We = o.selected.indexOf(we);\n if (We > -1 && !I.value) {\n const at = Fn(t.modelValue).slice();\n at.splice(We, 1), e(zt, at), Y(at), e(\"remove-tag\", we.value);\n }\n W.stopPropagation(), kt();\n }, Ae = (W) => {\n W.stopPropagation();\n const we = t.multiple ? [] : L.value;\n if (t.multiple)\n for (const We of o.selected)\n We.isDisabled && we.push(We.value);\n e(zt, we), Y(we), o.hoveringIndex = -1, k.value = !1, e(\"clear\"), kt();\n }, Me = (W) => {\n var we;\n if (t.multiple) {\n const We = Fn((we = t.modelValue) != null ? we : []).slice(), at = _e(We, W.value);\n at > -1 ? We.splice(at, 1) : (t.multipleLimit <= 0 || We.length < t.multipleLimit) && We.push(W.value), e(zt, We), Y(We), W.created && xe(\"\"), t.filterable && !t.reserveKeyword && (o.inputValue = \"\");\n } else\n e(zt, W.value), Y(W.value), k.value = !1;\n kt(), !k.value && ot(() => {\n Ne(W);\n });\n }, _e = (W = [], we) => {\n if (!Ht(we))\n return W.indexOf(we);\n const We = t.valueKey;\n let at = -1;\n return W.some((Gr, Sn) => ys(fn(Gr, We)) === fn(we, We) ? (at = Sn, !0) : !1), at;\n }, Ne = (W) => {\n var we, We, at, Gr, Sn;\n const Oa = fr(W) ? W[0] : W;\n let sn = null;\n if (Oa != null && Oa.value) {\n const xr = ne.value.filter((Tn) => Tn.value === Oa.value);\n xr.length > 0 && (sn = xr[0].$el);\n }\n if (l.value && sn) {\n const xr = (Gr = (at = (We = (we = l.value) == null ? void 0 : we.popperRef) == null ? void 0 : We.contentRef) == null ? void 0 : at.querySelector) == null ? void 0 : Gr.call(at, `.${a.be(\"dropdown\", \"wrap\")}`);\n xr && Jb(xr, sn);\n }\n (Sn = y.value) == null || Sn.handleScroll();\n }, Te = (W) => {\n o.options.set(W.value, W), o.cachedOptions.set(W.value, W), W.disabled && o.disabledOptions.set(W.value, W);\n }, Oe = (W, we) => {\n o.options.get(W) === we && o.options.delete(W);\n }, ut = V(() => {\n var W, we;\n return (we = (W = l.value) == null ? void 0 : W.popperRef) == null ? void 0 : we.contentRef;\n }), nt = () => {\n o.isBeforeHide = !1, ot(() => Ne(o.selected));\n }, kt = () => {\n var W;\n (W = d.value) == null || W.focus();\n }, St = () => {\n var W;\n (W = d.value) == null || W.blur();\n }, wt = (W) => {\n Ae(W);\n }, Zt = () => {\n k.value = !1, T.value && St();\n }, Pt = () => {\n o.inputValue.length > 0 ? o.inputValue = \"\" : k.value = !1;\n }, Mt = () => {\n I.value || (Gl && (o.inputHovering = !0), o.menuVisibleOnFocus ? o.menuVisibleOnFocus = !1 : k.value = !k.value);\n }, gr = () => {\n k.value ? ne.value[o.hoveringIndex] && Me(ne.value[o.hoveringIndex]) : Mt();\n }, Xt = (W) => Ht(W.value) ? fn(W.value, t.valueKey) : W.value, jt = V(() => ne.value.filter((W) => W.visible).every((W) => W.disabled)), wr = V(() => t.multiple ? t.collapseTags ? o.selected.slice(0, t.maxCollapseTags) : o.selected : []), Pr = V(() => t.multiple ? t.collapseTags ? o.selected.slice(t.maxCollapseTags) : [] : []), ur = (W) => {\n if (!k.value) {\n k.value = !0;\n return;\n }\n if (!(o.options.size === 0 || o.filteredOptionsCount === 0 || b.value) && !jt.value) {\n W === \"next\" ? (o.hoveringIndex++, o.hoveringIndex === o.options.size && (o.hoveringIndex = 0)) : W === \"prev\" && (o.hoveringIndex--, o.hoveringIndex < 0 && (o.hoveringIndex = o.options.size - 1));\n const we = ne.value[o.hoveringIndex];\n (we.disabled === !0 || we.states.groupDisabled === !0 || !we.visible) && ur(W), ot(() => Ne(_.value));\n }\n }, xt = () => {\n if (!u.value)\n return 0;\n const W = window.getComputedStyle(u.value);\n return Number.parseFloat(W.gap || \"6px\");\n }, Tt = V(() => {\n const W = xt();\n return { maxWidth: `${g.value && t.maxCollapseTags === 1 ? o.selectionWidth - o.collapseItemWidth - W : o.selectionWidth}px` };\n }), Bt = V(() => ({ maxWidth: `${o.selectionWidth}px` })), kn = V(() => ({\n width: `${Math.max(o.calculatorWidth, Jk)}px`\n }));\n return dn(u, Ke), dn(v, Be), dn(p, le), dn(x, le), dn(m, S), dn(g, Ge), Et(() => {\n Ce();\n }), {\n inputId: F,\n contentId: n,\n nsSelect: a,\n nsInput: i,\n states: o,\n isFocused: T,\n expanded: k,\n optionsArray: ne,\n hoverOption: _,\n selectSize: G,\n filteredOptionsCount: oe,\n resetCalculatorWidth: Be,\n updateTooltip: le,\n updateTagTooltip: S,\n debouncedOnInputChange: j,\n onInput: ae,\n deletePrevTag: re,\n deleteTag: ve,\n deleteSelected: Ae,\n handleOptionSelect: Me,\n scrollToOption: Ne,\n hasModelValue: M,\n shouldShowPlaceholder: Ee,\n currentPlaceholder: fe,\n mouseEnterEventName: me,\n showClose: A,\n iconComponent: R,\n iconReverse: K,\n validateState: H,\n validateIcon: q,\n showNewOption: te,\n updateOptions: $,\n collapseTagSize: Q,\n setSelected: Ce,\n selectDisabled: I,\n emptyText: se,\n handleCompositionStart: w,\n handleCompositionUpdate: C,\n handleCompositionEnd: E,\n onOptionCreate: Te,\n onOptionDestroy: Oe,\n handleMenuEnter: nt,\n focus: kt,\n blur: St,\n handleClearClick: wt,\n handleClickOutside: Zt,\n handleEsc: Pt,\n toggleMenu: Mt,\n selectOption: gr,\n getValueKey: Xt,\n navigateOptions: ur,\n dropdownMenuVisible: ge,\n showTagList: wr,\n collapseTagList: Pr,\n tagStyle: Tt,\n collapseTagStyle: Bt,\n inputStyle: kn,\n popperRef: ut,\n inputRef: d,\n tooltipRef: l,\n tagTooltipRef: c,\n calculatorRef: v,\n prefixRef: h,\n suffixRef: f,\n selectRef: s,\n wrapperRef: x,\n selectionRef: u,\n scrollbarRef: y,\n menuRef: p,\n tagMenuRef: m,\n collapseItemRef: g\n };\n};\nvar tS = de({\n name: \"ElOptions\",\n setup(t, { slots: e }) {\n const r = Ue(To);\n let n = [];\n return () => {\n var a, i;\n const o = (a = e.default) == null ? void 0 : a.call(e), s = [];\n function u(l) {\n fr(l) && l.forEach((c) => {\n var d, v, h, f;\n const p = (d = (c == null ? void 0 : c.type) || {}) == null ? void 0 : d.name;\n p === \"ElOptionGroup\" ? u(!tr(c.children) && !fr(c.children) && lr((v = c.children) == null ? void 0 : v.default) ? (h = c.children) == null ? void 0 : h.default() : c.children) : p === \"ElOption\" ? s.push((f = c.props) == null ? void 0 : f.value) : fr(c.children) && u(c.children);\n });\n }\n return o.length && u((i = o[0]) == null ? void 0 : i.children), Es(s, n) || (n = s, r && (r.states.optionValues = s)), o;\n };\n }\n});\nconst rS = rt({\n name: String,\n id: String,\n modelValue: {\n type: [Array, String, Number, Boolean, Object],\n default: void 0\n },\n autocomplete: {\n type: String,\n default: \"off\"\n },\n automaticDropdown: Boolean,\n size: di,\n effect: {\n type: $e(String),\n default: \"light\"\n },\n disabled: Boolean,\n clearable: Boolean,\n filterable: Boolean,\n allowCreate: Boolean,\n loading: Boolean,\n popperClass: {\n type: String,\n default: \"\"\n },\n popperOptions: {\n type: $e(Object),\n default: () => ({})\n },\n remote: Boolean,\n loadingText: String,\n noMatchText: String,\n noDataText: String,\n remoteMethod: Function,\n filterMethod: Function,\n multiple: Boolean,\n multipleLimit: {\n type: Number,\n default: 0\n },\n placeholder: {\n type: String\n },\n defaultFirstOption: Boolean,\n reserveKeyword: {\n type: Boolean,\n default: !0\n },\n valueKey: {\n type: String,\n default: \"value\"\n },\n collapseTags: Boolean,\n collapseTagsTooltip: Boolean,\n maxCollapseTags: {\n type: Number,\n default: 1\n },\n teleported: cr.teleported,\n persistent: {\n type: Boolean,\n default: !0\n },\n clearIcon: {\n type: Hn,\n default: Au\n },\n fitInputWidth: Boolean,\n suffixIcon: {\n type: Hn,\n default: Gs\n },\n tagType: { ...au.type, default: \"info\" },\n tagEffect: { ...au.effect, default: \"light\" },\n validateEvent: {\n type: Boolean,\n default: !0\n },\n remoteShowSuffix: Boolean,\n placement: {\n type: $e(String),\n values: Ys,\n default: \"bottom-start\"\n },\n fallbackPlacements: {\n type: $e(Array),\n default: [\"bottom-start\", \"top-start\", \"right\", \"left\"]\n },\n appendTo: String,\n ...fx,\n ...Zn([\"ariaLabel\"])\n}), Zd = \"ElSelect\", nS = de({\n name: Zd,\n componentName: Zd,\n components: {\n ElSelectMenu: Qk,\n ElOption: tc,\n ElOptions: tS,\n ElTag: HE,\n ElScrollbar: qx,\n ElTooltip: ko,\n ElIcon: Vt\n },\n directives: { ClickOutside: _h },\n props: rS,\n emits: [\n zt,\n Bu,\n \"remove-tag\",\n \"clear\",\n \"visible-change\",\n \"focus\",\n \"blur\"\n ],\n setup(t, { emit: e }) {\n const r = V(() => {\n const { modelValue: i, multiple: o } = t, s = o ? [] : void 0;\n return fr(i) ? o ? i : s : o ? s : i;\n }), n = Jr({\n ...ho(t),\n modelValue: r\n }), a = eS(n, e);\n return Ct(To, Jr({\n props: n,\n states: a.states,\n optionsArray: a.optionsArray,\n handleOptionSelect: a.handleOptionSelect,\n onOptionCreate: a.onOptionCreate,\n onOptionDestroy: a.onOptionDestroy,\n selectRef: a.selectRef,\n setSelected: a.setSelected\n })), {\n ...a,\n modelValue: r\n };\n }\n});\nfunction aS(t, e, r, n, a, i) {\n const o = Qt(\"el-tag\"), s = Qt(\"el-tooltip\"), u = Qt(\"el-icon\"), l = Qt(\"el-option\"), c = Qt(\"el-options\"), d = Qt(\"el-scrollbar\"), v = Qt(\"el-select-menu\"), h = O0(\"click-outside\");\n return Ze((N(), Z(\"div\", {\n ref: \"selectRef\",\n class: ie([t.nsSelect.b(), t.nsSelect.m(t.selectSize)]),\n [L0(t.mouseEnterEventName)]: (f) => t.states.inputHovering = !0,\n onMouseleave: (f) => t.states.inputHovering = !1\n }, [\n J(s, {\n ref: \"tooltipRef\",\n visible: t.dropdownMenuVisible,\n placement: t.placement,\n teleported: t.teleported,\n \"popper-class\": [t.nsSelect.e(\"popper\"), t.popperClass],\n \"popper-options\": t.popperOptions,\n \"fallback-placements\": t.fallbackPlacements,\n effect: t.effect,\n pure: \"\",\n trigger: \"click\",\n transition: `${t.nsSelect.namespace.value}-zoom-in-top`,\n \"stop-popper-mouse-event\": !1,\n \"gpu-acceleration\": !1,\n persistent: t.persistent,\n \"append-to\": t.appendTo,\n onBeforeShow: t.handleMenuEnter,\n onHide: (f) => t.states.isBeforeHide = !1\n }, {\n default: U(() => {\n var f;\n return [\n X(\"div\", {\n ref: \"wrapperRef\",\n class: ie([\n t.nsSelect.e(\"wrapper\"),\n t.nsSelect.is(\"focused\", t.isFocused),\n t.nsSelect.is(\"hovering\", t.states.inputHovering),\n t.nsSelect.is(\"filterable\", t.filterable),\n t.nsSelect.is(\"disabled\", t.selectDisabled)\n ]),\n onClick: ht(t.toggleMenu, [\"prevent\"])\n }, [\n t.$slots.prefix ? (N(), Z(\"div\", {\n key: 0,\n ref: \"prefixRef\",\n class: ie(t.nsSelect.e(\"prefix\"))\n }, [\n Le(t.$slots, \"prefix\")\n ], 2)) : he(\"v-if\", !0),\n X(\"div\", {\n ref: \"selectionRef\",\n class: ie([\n t.nsSelect.e(\"selection\"),\n t.nsSelect.is(\"near\", t.multiple && !t.$slots.prefix && !!t.states.selected.length)\n ])\n }, [\n t.multiple ? Le(t.$slots, \"tag\", { key: 0 }, () => [\n (N(!0), Z(Qe, null, Jt(t.showTagList, (p) => (N(), Z(\"div\", {\n key: t.getValueKey(p),\n class: ie(t.nsSelect.e(\"selected-item\"))\n }, [\n J(o, {\n closable: !t.selectDisabled && !p.isDisabled,\n size: t.collapseTagSize,\n type: t.tagType,\n effect: t.tagEffect,\n \"disable-transitions\": \"\",\n style: lt(t.tagStyle),\n onClose: (m) => t.deleteTag(m, p)\n }, {\n default: U(() => [\n X(\"span\", {\n class: ie(t.nsSelect.e(\"tags-text\"))\n }, [\n Le(t.$slots, \"label\", {\n label: p.currentLabel,\n value: p.value\n }, () => [\n ze(Ie(p.currentLabel), 1)\n ])\n ], 2)\n ]),\n _: 2\n }, 1032, [\"closable\", \"size\", \"type\", \"effect\", \"style\", \"onClose\"])\n ], 2))), 128)),\n t.collapseTags && t.states.selected.length > t.maxCollapseTags ? (N(), ye(s, {\n key: 0,\n ref: \"tagTooltipRef\",\n disabled: t.dropdownMenuVisible || !t.collapseTagsTooltip,\n \"fallback-placements\": [\"bottom\", \"top\", \"right\", \"left\"],\n effect: t.effect,\n placement: \"bottom\",\n teleported: t.teleported\n }, {\n default: U(() => [\n X(\"div\", {\n ref: \"collapseItemRef\",\n class: ie(t.nsSelect.e(\"selected-item\"))\n }, [\n J(o, {\n closable: !1,\n size: t.collapseTagSize,\n type: t.tagType,\n effect: t.tagEffect,\n \"disable-transitions\": \"\",\n style: lt(t.collapseTagStyle)\n }, {\n default: U(() => [\n X(\"span\", {\n class: ie(t.nsSelect.e(\"tags-text\"))\n }, \" + \" + Ie(t.states.selected.length - t.maxCollapseTags), 3)\n ]),\n _: 1\n }, 8, [\"size\", \"type\", \"effect\", \"style\"])\n ], 2)\n ]),\n content: U(() => [\n X(\"div\", {\n ref: \"tagMenuRef\",\n class: ie(t.nsSelect.e(\"selection\"))\n }, [\n (N(!0), Z(Qe, null, Jt(t.collapseTagList, (p) => (N(), Z(\"div\", {\n key: t.getValueKey(p),\n class: ie(t.nsSelect.e(\"selected-item\"))\n }, [\n J(o, {\n class: \"in-tooltip\",\n closable: !t.selectDisabled && !p.isDisabled,\n size: t.collapseTagSize,\n type: t.tagType,\n effect: t.tagEffect,\n \"disable-transitions\": \"\",\n onClose: (m) => t.deleteTag(m, p)\n }, {\n default: U(() => [\n X(\"span\", {\n class: ie(t.nsSelect.e(\"tags-text\"))\n }, [\n Le(t.$slots, \"label\", {\n label: p.currentLabel,\n value: p.value\n }, () => [\n ze(Ie(p.currentLabel), 1)\n ])\n ], 2)\n ]),\n _: 2\n }, 1032, [\"closable\", \"size\", \"type\", \"effect\", \"onClose\"])\n ], 2))), 128))\n ], 2)\n ]),\n _: 3\n }, 8, [\"disabled\", \"effect\", \"teleported\"])) : he(\"v-if\", !0)\n ]) : he(\"v-if\", !0),\n t.selectDisabled ? he(\"v-if\", !0) : (N(), Z(\"div\", {\n key: 1,\n class: ie([\n t.nsSelect.e(\"selected-item\"),\n t.nsSelect.e(\"input-wrapper\"),\n t.nsSelect.is(\"hidden\", !t.filterable)\n ])\n }, [\n Ze(X(\"input\", {\n id: t.inputId,\n ref: \"inputRef\",\n \"onUpdate:modelValue\": (p) => t.states.inputValue = p,\n type: \"text\",\n name: t.name,\n class: ie([t.nsSelect.e(\"input\"), t.nsSelect.is(t.selectSize)]),\n disabled: t.selectDisabled,\n autocomplete: t.autocomplete,\n style: lt(t.inputStyle),\n role: \"combobox\",\n readonly: !t.filterable,\n spellcheck: \"false\",\n \"aria-activedescendant\": ((f = t.hoverOption) == null ? void 0 : f.id) || \"\",\n \"aria-controls\": t.contentId,\n \"aria-expanded\": t.dropdownMenuVisible,\n \"aria-label\": t.ariaLabel,\n \"aria-autocomplete\": \"none\",\n \"aria-haspopup\": \"listbox\",\n onKeydown: [\n aa(ht((p) => t.navigateOptions(\"next\"), [\"stop\", \"prevent\"]), [\"down\"]),\n aa(ht((p) => t.navigateOptions(\"prev\"), [\"stop\", \"prevent\"]), [\"up\"]),\n aa(ht(t.handleEsc, [\"stop\", \"prevent\"]), [\"esc\"]),\n aa(ht(t.selectOption, [\"stop\", \"prevent\"]), [\"enter\"]),\n aa(ht(t.deletePrevTag, [\"stop\"]), [\"delete\"])\n ],\n onCompositionstart: t.handleCompositionStart,\n onCompositionupdate: t.handleCompositionUpdate,\n onCompositionend: t.handleCompositionEnd,\n onInput: t.onInput,\n onClick: ht(t.toggleMenu, [\"stop\"])\n }, null, 46, [\"id\", \"onUpdate:modelValue\", \"name\", \"disabled\", \"autocomplete\", \"readonly\", \"aria-activedescendant\", \"aria-controls\", \"aria-expanded\", \"aria-label\", \"onKeydown\", \"onCompositionstart\", \"onCompositionupdate\", \"onCompositionend\", \"onInput\", \"onClick\"]), [\n [I0, t.states.inputValue]\n ]),\n t.filterable ? (N(), Z(\"span\", {\n key: 0,\n ref: \"calculatorRef\",\n \"aria-hidden\": \"true\",\n class: ie(t.nsSelect.e(\"input-calculator\")),\n textContent: Ie(t.states.inputValue)\n }, null, 10, [\"textContent\"])) : he(\"v-if\", !0)\n ], 2)),\n t.shouldShowPlaceholder ? (N(), Z(\"div\", {\n key: 2,\n class: ie([\n t.nsSelect.e(\"selected-item\"),\n t.nsSelect.e(\"placeholder\"),\n t.nsSelect.is(\"transparent\", !t.hasModelValue || t.expanded && !t.states.inputValue)\n ])\n }, [\n t.hasModelValue ? Le(t.$slots, \"label\", {\n key: 0,\n label: t.currentPlaceholder,\n value: t.modelValue\n }, () => [\n X(\"span\", null, Ie(t.currentPlaceholder), 1)\n ]) : (N(), Z(\"span\", { key: 1 }, Ie(t.currentPlaceholder), 1))\n ], 2)) : he(\"v-if\", !0)\n ], 2),\n X(\"div\", {\n ref: \"suffixRef\",\n class: ie(t.nsSelect.e(\"suffix\"))\n }, [\n t.iconComponent && !t.showClose ? (N(), ye(u, {\n key: 0,\n class: ie([t.nsSelect.e(\"caret\"), t.nsSelect.e(\"icon\"), t.iconReverse])\n }, {\n default: U(() => [\n (N(), ye(er(t.iconComponent)))\n ]),\n _: 1\n }, 8, [\"class\"])) : he(\"v-if\", !0),\n t.showClose && t.clearIcon ? (N(), ye(u, {\n key: 1,\n class: ie([\n t.nsSelect.e(\"caret\"),\n t.nsSelect.e(\"icon\"),\n t.nsSelect.e(\"clear\")\n ]),\n onClick: t.handleClearClick\n }, {\n default: U(() => [\n (N(), ye(er(t.clearIcon)))\n ]),\n _: 1\n }, 8, [\"class\", \"onClick\"])) : he(\"v-if\", !0),\n t.validateState && t.validateIcon ? (N(), ye(u, {\n key: 2,\n class: ie([t.nsInput.e(\"icon\"), t.nsInput.e(\"validateIcon\")])\n }, {\n default: U(() => [\n (N(), ye(er(t.validateIcon)))\n ]),\n _: 1\n }, 8, [\"class\"])) : he(\"v-if\", !0)\n ], 2)\n ], 10, [\"onClick\"])\n ];\n }),\n content: U(() => [\n J(v, { ref: \"menuRef\" }, {\n default: U(() => [\n t.$slots.header ? (N(), Z(\"div\", {\n key: 0,\n class: ie(t.nsSelect.be(\"dropdown\", \"header\")),\n onClick: ht(() => {\n }, [\"stop\"])\n }, [\n Le(t.$slots, \"header\")\n ], 10, [\"onClick\"])) : he(\"v-if\", !0),\n Ze(J(d, {\n id: t.contentId,\n ref: \"scrollbarRef\",\n tag: \"ul\",\n \"wrap-class\": t.nsSelect.be(\"dropdown\", \"wrap\"),\n \"view-class\": t.nsSelect.be(\"dropdown\", \"list\"),\n class: ie([t.nsSelect.is(\"empty\", t.filteredOptionsCount === 0)]),\n role: \"listbox\",\n \"aria-label\": t.ariaLabel,\n \"aria-orientation\": \"vertical\"\n }, {\n default: U(() => [\n t.showNewOption ? (N(), ye(l, {\n key: 0,\n value: t.states.inputValue,\n created: !0\n }, null, 8, [\"value\"])) : he(\"v-if\", !0),\n J(c, null, {\n default: U(() => [\n Le(t.$slots, \"default\")\n ]),\n _: 3\n })\n ]),\n _: 3\n }, 8, [\"id\", \"wrap-class\", \"view-class\", \"class\", \"aria-label\"]), [\n [mt, t.states.options.size > 0 && !t.loading]\n ]),\n t.$slots.loading && t.loading ? (N(), Z(\"div\", {\n key: 1,\n class: ie(t.nsSelect.be(\"dropdown\", \"loading\"))\n }, [\n Le(t.$slots, \"loading\")\n ], 2)) : t.loading || t.filteredOptionsCount === 0 ? (N(), Z(\"div\", {\n key: 2,\n class: ie(t.nsSelect.be(\"dropdown\", \"empty\"))\n }, [\n Le(t.$slots, \"empty\", {}, () => [\n X(\"span\", null, Ie(t.emptyText), 1)\n ])\n ], 2)) : he(\"v-if\", !0),\n t.$slots.footer ? (N(), Z(\"div\", {\n key: 3,\n class: ie(t.nsSelect.be(\"dropdown\", \"footer\")),\n onClick: ht(() => {\n }, [\"stop\"])\n }, [\n Le(t.$slots, \"footer\")\n ], 10, [\"onClick\"])) : he(\"v-if\", !0)\n ]),\n _: 3\n }, 512)\n ]),\n _: 3\n }, 8, [\"visible\", \"placement\", \"teleported\", \"popper-class\", \"popper-options\", \"fallback-placements\", \"effect\", \"transition\", \"persistent\", \"append-to\", \"onBeforeShow\", \"onHide\"])\n ], 16, [\"onMouseleave\"])), [\n [h, t.handleClickOutside, t.popperRef]\n ]);\n}\nvar iS = /* @__PURE__ */ Ve(nS, [[\"render\", aS], [\"__file\", \"select.vue\"]]);\nconst oS = de({\n name: \"ElOptionGroup\",\n componentName: \"ElOptionGroup\",\n props: {\n label: String,\n disabled: Boolean\n },\n setup(t) {\n const e = He(\"select\"), r = ce(null), n = gt(), a = ce([]);\n Ct(Vh, Jr({\n ...ho(t)\n }));\n const i = V(() => a.value.some((l) => l.visible === !0)), o = (l) => {\n var c, d;\n return ((c = l.type) == null ? void 0 : c.name) === \"ElOption\" && !!((d = l.component) != null && d.proxy);\n }, s = (l) => {\n const c = Fn(l), d = [];\n return c.forEach((v) => {\n var h, f;\n o(v) ? d.push(v.component.proxy) : (h = v.children) != null && h.length ? d.push(...s(v.children)) : (f = v.component) != null && f.subTree && d.push(...s(v.component.subTree));\n }), d;\n }, u = () => {\n a.value = s(n.subTree);\n };\n return Et(() => {\n u();\n }), U0(r, u, {\n attributes: !0,\n subtree: !0,\n childList: !0\n }), {\n groupRef: r,\n visible: i,\n ns: e\n };\n }\n});\nfunction sS(t, e, r, n, a, i) {\n return Ze((N(), Z(\"ul\", {\n ref: \"groupRef\",\n class: ie(t.ns.be(\"group\", \"wrap\"))\n }, [\n X(\"li\", {\n class: ie(t.ns.be(\"group\", \"title\"))\n }, Ie(t.label), 3),\n X(\"li\", null, [\n X(\"ul\", {\n class: ie(t.ns.b(\"group\"))\n }, [\n Le(t.$slots, \"default\")\n ], 2)\n ])\n ], 2)), [\n [mt, t.visible]\n ]);\n}\nvar Hh = /* @__PURE__ */ Ve(oS, [[\"render\", sS], [\"__file\", \"option-group.vue\"]]);\nconst lS = $t(iS, {\n Option: tc,\n OptionGroup: Hh\n}), uS = xn(tc);\nxn(Hh);\nconst cS = rt({\n trigger: Ji.trigger,\n placement: Il.placement,\n disabled: Ji.disabled,\n visible: cr.visible,\n transition: cr.transition,\n popperOptions: Il.popperOptions,\n tabindex: Il.tabindex,\n content: cr.content,\n popperStyle: cr.popperStyle,\n popperClass: cr.popperClass,\n enterable: {\n ...cr.enterable,\n default: !0\n },\n effect: {\n ...cr.effect,\n default: \"light\"\n },\n teleported: cr.teleported,\n title: String,\n width: {\n type: [String, Number],\n default: 150\n },\n offset: {\n type: Number,\n default: void 0\n },\n showAfter: {\n type: Number,\n default: 0\n },\n hideAfter: {\n type: Number,\n default: 200\n },\n autoClose: {\n type: Number,\n default: 0\n },\n showArrow: {\n type: Boolean,\n default: !0\n },\n persistent: {\n type: Boolean,\n default: !0\n },\n \"onUpdate:visible\": {\n type: Function\n }\n}), dS = {\n \"update:visible\": (t) => Qa(t),\n \"before-enter\": () => !0,\n \"before-leave\": () => !0,\n \"after-enter\": () => !0,\n \"after-leave\": () => !0\n}, fS = \"onUpdate:visible\", vS = de({\n name: \"ElPopover\"\n}), hS = /* @__PURE__ */ de({\n ...vS,\n props: cS,\n emits: dS,\n setup(t, { expose: e, emit: r }) {\n const n = t, a = V(() => n[fS]), i = He(\"popover\"), o = ce(), s = V(() => {\n var m;\n return (m = P(o)) == null ? void 0 : m.popperRef;\n }), u = V(() => [\n {\n width: Ja(n.width)\n },\n n.popperStyle\n ]), l = V(() => [i.b(), n.popperClass, { [i.m(\"plain\")]: !!n.content }]), c = V(() => n.transition === `${i.namespace.value}-fade-in-linear`), d = () => {\n var m;\n (m = o.value) == null || m.hide();\n }, v = () => {\n r(\"before-enter\");\n }, h = () => {\n r(\"before-leave\");\n }, f = () => {\n r(\"after-enter\");\n }, p = () => {\n r(\"update:visible\", !1), r(\"after-leave\");\n };\n return e({\n popperRef: s,\n hide: d\n }), (m, g) => (N(), ye(P(ko), Rr({\n ref_key: \"tooltipRef\",\n ref: o\n }, m.$attrs, {\n trigger: m.trigger,\n placement: m.placement,\n disabled: m.disabled,\n visible: m.visible,\n transition: m.transition,\n \"popper-options\": m.popperOptions,\n tabindex: m.tabindex,\n content: m.content,\n offset: m.offset,\n \"show-after\": m.showAfter,\n \"hide-after\": m.hideAfter,\n \"auto-close\": m.autoClose,\n \"show-arrow\": m.showArrow,\n \"aria-label\": m.title,\n effect: m.effect,\n enterable: m.enterable,\n \"popper-class\": P(l),\n \"popper-style\": P(u),\n teleported: m.teleported,\n persistent: m.persistent,\n \"gpu-acceleration\": P(c),\n \"onUpdate:visible\": P(a),\n onBeforeShow: v,\n onBeforeHide: h,\n onShow: f,\n onHide: p\n }), {\n content: U(() => [\n m.title ? (N(), Z(\"div\", {\n key: 0,\n class: ie(P(i).e(\"title\")),\n role: \"title\"\n }, Ie(m.title), 3)) : he(\"v-if\", !0),\n Le(m.$slots, \"default\", {}, () => [\n ze(Ie(m.content), 1)\n ])\n ]),\n default: U(() => [\n m.$slots.reference ? Le(m.$slots, \"reference\", { key: 0 }) : he(\"v-if\", !0)\n ]),\n _: 3\n }, 16, [\"trigger\", \"placement\", \"disabled\", \"visible\", \"transition\", \"popper-options\", \"tabindex\", \"content\", \"offset\", \"show-after\", \"hide-after\", \"auto-close\", \"show-arrow\", \"aria-label\", \"effect\", \"enterable\", \"popper-class\", \"popper-style\", \"teleported\", \"persistent\", \"gpu-acceleration\", \"onUpdate:visible\"]));\n }\n});\nvar pS = /* @__PURE__ */ Ve(hS, [[\"__file\", \"popover.vue\"]]);\nconst Xd = (t, e) => {\n const r = e.arg || e.value, n = r == null ? void 0 : r.popperRef;\n n && (n.triggerRef = t);\n};\nvar gS = {\n mounted(t, e) {\n Xd(t, e);\n },\n updated(t, e) {\n Xd(t, e);\n }\n};\nconst mS = \"popover\", yS = B2(gS, mS), rc = $t(pS, {\n directive: yS\n}), Ua = \"$treeNodeId\", jd = function(t, e) {\n !e || e[Ua] || Object.defineProperty(e, Ua, {\n value: t.id,\n enumerable: !1,\n configurable: !1,\n writable: !1\n });\n}, nc = function(t, e) {\n return t ? e[t] : e[Ua];\n}, iu = (t, e, r) => {\n const n = t.value.currentNode;\n r();\n const a = t.value.currentNode;\n n !== a && e(\"current-change\", a ? a.data : null, a);\n}, ou = (t) => {\n let e = !0, r = !0, n = !0;\n for (let a = 0, i = t.length; a < i; a++) {\n const o = t[a];\n (o.checked !== !0 || o.indeterminate) && (e = !1, o.disabled || (n = !1)), (o.checked !== !1 || o.indeterminate) && (r = !1);\n }\n return { all: e, none: r, allWithoutDisable: n, half: !e && !r };\n}, Ai = function(t) {\n if (t.childNodes.length === 0 || t.loading)\n return;\n const { all: e, none: r, half: n } = ou(t.childNodes);\n e ? (t.checked = !0, t.indeterminate = !1) : n ? (t.checked = !1, t.indeterminate = !0) : r && (t.checked = !1, t.indeterminate = !1);\n const a = t.parent;\n !a || a.level === 0 || t.store.checkStrictly || Ai(a);\n}, Ko = function(t, e) {\n const r = t.store.props, n = t.data || {}, a = r[e];\n if (typeof a == \"function\")\n return a(n, t);\n if (typeof a == \"string\")\n return n[a];\n if (typeof a > \"u\") {\n const i = n[e];\n return i === void 0 ? \"\" : i;\n }\n};\nlet bS = 0;\nclass fa {\n constructor(e) {\n this.id = bS++, this.text = null, this.checked = !1, this.indeterminate = !1, this.data = null, this.expanded = !1, this.parent = null, this.visible = !0, this.isCurrent = !1, this.canFocus = !1;\n for (const r in e)\n va(e, r) && (this[r] = e[r]);\n this.level = 0, this.loaded = !1, this.childNodes = [], this.loading = !1, this.parent && (this.level = this.parent.level + 1);\n }\n initialize() {\n const e = this.store;\n if (!e)\n throw new Error(\"[Node]store is required!\");\n e.registerNode(this);\n const r = e.props;\n if (r && typeof r.isLeaf < \"u\") {\n const i = Ko(this, \"isLeaf\");\n typeof i == \"boolean\" && (this.isLeafByUser = i);\n }\n if (e.lazy !== !0 && this.data ? (this.setData(this.data), e.defaultExpandAll && (this.expanded = !0, this.canFocus = !0)) : this.level > 0 && e.lazy && e.defaultExpandAll && !this.isLeafByUser && this.expand(), Array.isArray(this.data) || jd(this, this.data), !this.data)\n return;\n const n = e.defaultExpandedKeys, a = e.key;\n a && n && n.includes(this.key) && this.expand(null, e.autoExpandParent), a && e.currentNodeKey !== void 0 && this.key === e.currentNodeKey && (e.currentNode = this, e.currentNode.isCurrent = !0), e.lazy && e._initDefaultCheckedNode(this), this.updateLeafState(), this.parent && (this.level === 1 || this.parent.expanded === !0) && (this.canFocus = !0);\n }\n setData(e) {\n Array.isArray(e) || jd(this, e), this.data = e, this.childNodes = [];\n let r;\n this.level === 0 && Array.isArray(this.data) ? r = this.data : r = Ko(this, \"children\") || [];\n for (let n = 0, a = r.length; n < a; n++)\n this.insertChild({ data: r[n] });\n }\n get label() {\n return Ko(this, \"label\");\n }\n get key() {\n const e = this.store.key;\n return this.data ? this.data[e] : null;\n }\n get disabled() {\n return Ko(this, \"disabled\");\n }\n get nextSibling() {\n const e = this.parent;\n if (e) {\n const r = e.childNodes.indexOf(this);\n if (r > -1)\n return e.childNodes[r + 1];\n }\n return null;\n }\n get previousSibling() {\n const e = this.parent;\n if (e) {\n const r = e.childNodes.indexOf(this);\n if (r > -1)\n return r > 0 ? e.childNodes[r - 1] : null;\n }\n return null;\n }\n contains(e, r = !0) {\n return (this.childNodes || []).some((n) => n === e || r && n.contains(e));\n }\n remove() {\n const e = this.parent;\n e && e.removeChild(this);\n }\n insertChild(e, r, n) {\n if (!e)\n throw new Error(\"InsertChild error: child is required.\");\n if (!(e instanceof fa)) {\n if (!n) {\n const a = this.getChildren(!0);\n a.includes(e.data) || (typeof r > \"u\" || r < 0 ? a.push(e.data) : a.splice(r, 0, e.data));\n }\n Object.assign(e, {\n parent: this,\n store: this.store\n }), e = Jr(new fa(e)), e instanceof fa && e.initialize();\n }\n e.level = this.level + 1, typeof r > \"u\" || r < 0 ? this.childNodes.push(e) : this.childNodes.splice(r, 0, e), this.updateLeafState();\n }\n insertBefore(e, r) {\n let n;\n r && (n = this.childNodes.indexOf(r)), this.insertChild(e, n);\n }\n insertAfter(e, r) {\n let n;\n r && (n = this.childNodes.indexOf(r), n !== -1 && (n += 1)), this.insertChild(e, n);\n }\n removeChild(e) {\n const r = this.getChildren() || [], n = r.indexOf(e.data);\n n > -1 && r.splice(n, 1);\n const a = this.childNodes.indexOf(e);\n a > -1 && (this.store && this.store.deregisterNode(e), e.parent = null, this.childNodes.splice(a, 1)), this.updateLeafState();\n }\n removeChildByData(e) {\n let r = null;\n for (let n = 0; n < this.childNodes.length; n++)\n if (this.childNodes[n].data === e) {\n r = this.childNodes[n];\n break;\n }\n r && this.removeChild(r);\n }\n expand(e, r) {\n const n = () => {\n if (r) {\n let a = this.parent;\n for (; a.level > 0; )\n a.expanded = !0, a = a.parent;\n }\n this.expanded = !0, e && e(), this.childNodes.forEach((a) => {\n a.canFocus = !0;\n });\n };\n this.shouldLoadData() ? this.loadData((a) => {\n Array.isArray(a) && (this.checked ? this.setChecked(!0, !0) : this.store.checkStrictly || Ai(this), n());\n }) : n();\n }\n doCreateChildren(e, r = {}) {\n e.forEach((n) => {\n this.insertChild(Object.assign({ data: n }, r), void 0, !0);\n });\n }\n collapse() {\n this.expanded = !1, this.childNodes.forEach((e) => {\n e.canFocus = !1;\n });\n }\n shouldLoadData() {\n return this.store.lazy === !0 && this.store.load && !this.loaded;\n }\n updateLeafState() {\n if (this.store.lazy === !0 && this.loaded !== !0 && typeof this.isLeafByUser < \"u\") {\n this.isLeaf = this.isLeafByUser;\n return;\n }\n const e = this.childNodes;\n if (!this.store.lazy || this.store.lazy === !0 && this.loaded === !0) {\n this.isLeaf = !e || e.length === 0;\n return;\n }\n this.isLeaf = !1;\n }\n setChecked(e, r, n, a) {\n if (this.indeterminate = e === \"half\", this.checked = e === !0, this.store.checkStrictly)\n return;\n if (!(this.shouldLoadData() && !this.store.checkDescendants)) {\n const { all: o, allWithoutDisable: s } = ou(this.childNodes);\n !this.isLeaf && !o && s && (this.checked = !1, e = !1);\n const u = () => {\n if (r) {\n const l = this.childNodes;\n for (let v = 0, h = l.length; v < h; v++) {\n const f = l[v];\n a = a || e !== !1;\n const p = f.disabled ? f.checked : a;\n f.setChecked(p, r, !0, a);\n }\n const { half: c, all: d } = ou(l);\n d || (this.checked = d, this.indeterminate = c);\n }\n };\n if (this.shouldLoadData()) {\n this.loadData(() => {\n u(), Ai(this);\n }, {\n checked: e !== !1\n });\n return;\n } else\n u();\n }\n const i = this.parent;\n !i || i.level === 0 || n || Ai(i);\n }\n getChildren(e = !1) {\n if (this.level === 0)\n return this.data;\n const r = this.data;\n if (!r)\n return null;\n const n = this.store.props;\n let a = \"children\";\n return n && (a = n.children || \"children\"), r[a] === void 0 && (r[a] = null), e && !r[a] && (r[a] = []), r[a];\n }\n updateChildren() {\n const e = this.getChildren() || [], r = this.childNodes.map((i) => i.data), n = {}, a = [];\n e.forEach((i, o) => {\n const s = i[Ua];\n !!s && r.findIndex((l) => l[Ua] === s) >= 0 ? n[s] = { index: o, data: i } : a.push({ index: o, data: i });\n }), this.store.lazy || r.forEach((i) => {\n n[i[Ua]] || this.removeChildByData(i);\n }), a.forEach(({ index: i, data: o }) => {\n this.insertChild({ data: o }, i);\n }), this.updateLeafState();\n }\n loadData(e, r = {}) {\n if (this.store.lazy === !0 && this.store.load && !this.loaded && (!this.loading || Object.keys(r).length)) {\n this.loading = !0;\n const n = (i) => {\n this.childNodes = [], this.doCreateChildren(i, r), this.loaded = !0, this.loading = !1, this.updateLeafState(), e && e.call(this, i);\n }, a = () => {\n this.loading = !1;\n };\n this.store.load(this, n, a);\n } else\n e && e.call(this);\n }\n eachNode(e) {\n const r = [this];\n for (; r.length; ) {\n const n = r.shift();\n r.unshift(...n.childNodes), e(n);\n }\n }\n reInitChecked() {\n this.store.checkStrictly || Ai(this);\n }\n}\nclass wS {\n constructor(e) {\n this.currentNode = null, this.currentNodeKey = null;\n for (const r in e)\n va(e, r) && (this[r] = e[r]);\n this.nodesMap = {};\n }\n initialize() {\n if (this.root = new fa({\n data: this.data,\n store: this\n }), this.root.initialize(), this.lazy && this.load) {\n const e = this.load;\n e(this.root, (r) => {\n this.root.doCreateChildren(r), this._initDefaultCheckedNodes();\n });\n } else\n this._initDefaultCheckedNodes();\n }\n filter(e) {\n const r = this.filterNodeMethod, n = this.lazy, a = function(i) {\n const o = i.root ? i.root.childNodes : i.childNodes;\n if (o.forEach((s) => {\n s.visible = r.call(s, e, s.data, s), a(s);\n }), !i.visible && o.length) {\n let s = !0;\n s = !o.some((u) => u.visible), i.root ? i.root.visible = s === !1 : i.visible = s === !1;\n }\n e && i.visible && !i.isLeaf && (!n || i.loaded) && i.expand();\n };\n a(this);\n }\n setData(e) {\n e !== this.root.data ? (this.nodesMap = {}, this.root.setData(e), this._initDefaultCheckedNodes()) : this.root.updateChildren();\n }\n getNode(e) {\n if (e instanceof fa)\n return e;\n const r = Ht(e) ? nc(this.key, e) : e;\n return this.nodesMap[r] || null;\n }\n insertBefore(e, r) {\n const n = this.getNode(r);\n n.parent.insertBefore({ data: e }, n);\n }\n insertAfter(e, r) {\n const n = this.getNode(r);\n n.parent.insertAfter({ data: e }, n);\n }\n remove(e) {\n const r = this.getNode(e);\n r && r.parent && (r === this.currentNode && (this.currentNode = null), r.parent.removeChild(r));\n }\n append(e, r) {\n const n = ks(r) ? this.root : this.getNode(r);\n n && n.insertChild({ data: e });\n }\n _initDefaultCheckedNodes() {\n const e = this.defaultCheckedKeys || [], r = this.nodesMap;\n e.forEach((n) => {\n const a = r[n];\n a && a.setChecked(!0, !this.checkStrictly);\n });\n }\n _initDefaultCheckedNode(e) {\n (this.defaultCheckedKeys || []).includes(e.key) && e.setChecked(!0, !this.checkStrictly);\n }\n setDefaultCheckedKey(e) {\n e !== this.defaultCheckedKeys && (this.defaultCheckedKeys = e, this._initDefaultCheckedNodes());\n }\n registerNode(e) {\n const r = this.key;\n !e || !e.data || (r ? e.key !== void 0 && (this.nodesMap[e.key] = e) : this.nodesMap[e.id] = e);\n }\n deregisterNode(e) {\n !this.key || !e || !e.data || (e.childNodes.forEach((n) => {\n this.deregisterNode(n);\n }), delete this.nodesMap[e.key]);\n }\n getCheckedNodes(e = !1, r = !1) {\n const n = [], a = function(i) {\n (i.root ? i.root.childNodes : i.childNodes).forEach((s) => {\n (s.checked || r && s.indeterminate) && (!e || e && s.isLeaf) && n.push(s.data), a(s);\n });\n };\n return a(this), n;\n }\n getCheckedKeys(e = !1) {\n return this.getCheckedNodes(e).map((r) => (r || {})[this.key]);\n }\n getHalfCheckedNodes() {\n const e = [], r = function(n) {\n (n.root ? n.root.childNodes : n.childNodes).forEach((i) => {\n i.indeterminate && e.push(i.data), r(i);\n });\n };\n return r(this), e;\n }\n getHalfCheckedKeys() {\n return this.getHalfCheckedNodes().map((e) => (e || {})[this.key]);\n }\n _getAllNodes() {\n const e = [], r = this.nodesMap;\n for (const n in r)\n va(r, n) && e.push(r[n]);\n return e;\n }\n updateChildren(e, r) {\n const n = this.nodesMap[e];\n if (!n)\n return;\n const a = n.childNodes;\n for (let i = a.length - 1; i >= 0; i--) {\n const o = a[i];\n this.remove(o.data);\n }\n for (let i = 0, o = r.length; i < o; i++) {\n const s = r[i];\n this.append(s, n.data);\n }\n }\n _setCheckedKeys(e, r = !1, n) {\n const a = this._getAllNodes().sort((u, l) => u.level - l.level), i = /* @__PURE__ */ Object.create(null), o = Object.keys(n);\n a.forEach((u) => u.setChecked(!1, !1));\n const s = (u) => {\n u.childNodes.forEach((l) => {\n var c;\n i[l.data[e]] = !0, (c = l.childNodes) != null && c.length && s(l);\n });\n };\n for (let u = 0, l = a.length; u < l; u++) {\n const c = a[u], d = c.data[e].toString();\n if (!o.includes(d)) {\n c.checked && !i[d] && c.setChecked(!1, !1);\n continue;\n }\n if (c.childNodes.length && s(c), c.isLeaf || this.checkStrictly) {\n c.setChecked(!0, !1);\n continue;\n }\n if (c.setChecked(!0, !0), r) {\n c.setChecked(!1, !1);\n const h = function(f) {\n f.childNodes.forEach((m) => {\n m.isLeaf || m.setChecked(!1, !1), h(m);\n });\n };\n h(c);\n }\n }\n }\n setCheckedNodes(e, r = !1) {\n const n = this.key, a = {};\n e.forEach((i) => {\n a[(i || {})[n]] = !0;\n }), this._setCheckedKeys(n, r, a);\n }\n setCheckedKeys(e, r = !1) {\n this.defaultCheckedKeys = e;\n const n = this.key, a = {};\n e.forEach((i) => {\n a[i] = !0;\n }), this._setCheckedKeys(n, r, a);\n }\n setDefaultExpandedKeys(e) {\n e = e || [], this.defaultExpandedKeys = e, e.forEach((r) => {\n const n = this.getNode(r);\n n && n.expand(null, this.autoExpandParent);\n });\n }\n setChecked(e, r, n) {\n const a = this.getNode(e);\n a && a.setChecked(!!r, n);\n }\n getCurrentNode() {\n return this.currentNode;\n }\n setCurrentNode(e) {\n const r = this.currentNode;\n r && (r.isCurrent = !1), this.currentNode = e, this.currentNode.isCurrent = !0;\n }\n setUserCurrentNode(e, r = !0) {\n const n = e[this.key], a = this.nodesMap[n];\n this.setCurrentNode(a), r && this.currentNode.level > 1 && this.currentNode.parent.expand(null, !0);\n }\n setCurrentNodeKey(e, r = !0) {\n if (e == null) {\n this.currentNode && (this.currentNode.isCurrent = !1), this.currentNode = null;\n return;\n }\n const n = this.getNode(e);\n n && (this.setCurrentNode(n), r && this.currentNode.level > 1 && this.currentNode.parent.expand(null, !0));\n }\n}\nconst xS = de({\n name: \"ElTreeNodeContent\",\n props: {\n node: {\n type: Object,\n required: !0\n },\n renderContent: Function\n },\n setup(t) {\n const e = He(\"tree\"), r = Ue(\"NodeInstance\"), n = Ue(\"RootTree\");\n return () => {\n const a = t.node, { data: i, store: o } = a;\n return t.renderContent ? t.renderContent(ia, { _self: r, node: a, data: i, store: o }) : Le(n.ctx.slots, \"default\", { node: a, data: i }, () => [\n ia(\"span\", { class: e.be(\"node\", \"label\") }, [a.label])\n ]);\n };\n }\n});\nvar CS = /* @__PURE__ */ Ve(xS, [[\"__file\", \"tree-node-content.vue\"]]);\nfunction qh(t) {\n const e = Ue(\"TreeNodeMap\", null), r = {\n treeNodeExpand: (n) => {\n t.node !== n && t.node.collapse();\n },\n children: []\n };\n return e && e.children.push(r), Ct(\"TreeNodeMap\", r), {\n broadcastExpanded: (n) => {\n if (t.accordion)\n for (const a of r.children)\n a.treeNodeExpand(n);\n }\n };\n}\nconst Kh = Symbol(\"dragEvents\");\nfunction ES({ props: t, ctx: e, el$: r, dropIndicator$: n, store: a }) {\n const i = He(\"tree\"), o = ce({\n showDropIndicator: !1,\n draggingNode: null,\n dropNode: null,\n allowDrop: !0,\n dropType: null\n });\n return Ct(Kh, {\n treeNodeDragStart: ({ event: c, treeNode: d }) => {\n if (typeof t.allowDrag == \"function\" && !t.allowDrag(d.node))\n return c.preventDefault(), !1;\n c.dataTransfer.effectAllowed = \"move\";\n try {\n c.dataTransfer.setData(\"text/plain\", \"\");\n } catch {\n }\n o.value.draggingNode = d, e.emit(\"node-drag-start\", d.node, c);\n },\n treeNodeDragOver: ({ event: c, treeNode: d }) => {\n const v = d, h = o.value.dropNode;\n h && h.node.id !== v.node.id && ca(h.$el, i.is(\"drop-inner\"));\n const f = o.value.draggingNode;\n if (!f || !v)\n return;\n let p = !0, m = !0, g = !0, y = !0;\n typeof t.allowDrop == \"function\" && (p = t.allowDrop(f.node, v.node, \"prev\"), y = m = t.allowDrop(f.node, v.node, \"inner\"), g = t.allowDrop(f.node, v.node, \"next\")), c.dataTransfer.dropEffect = m || p || g ? \"move\" : \"none\", (p || m || g) && (h == null ? void 0 : h.node.id) !== v.node.id && (h && e.emit(\"node-drag-leave\", f.node, h.node, c), e.emit(\"node-drag-enter\", f.node, v.node, c)), p || m || g ? o.value.dropNode = v : o.value.dropNode = null, v.node.nextSibling === f.node && (g = !1), v.node.previousSibling === f.node && (p = !1), v.node.contains(f.node, !1) && (m = !1), (f.node === v.node || f.node.contains(v.node)) && (p = !1, m = !1, g = !1);\n const b = v.$el.querySelector(`.${i.be(\"node\", \"content\")}`).getBoundingClientRect(), w = r.value.getBoundingClientRect();\n let C;\n const E = p ? m ? 0.25 : g ? 0.45 : 1 : -1, x = g ? m ? 0.75 : p ? 0.55 : 0 : 1;\n let T = -9999;\n const k = c.clientY - b.top;\n k < b.height * E ? C = \"before\" : k > b.height * x ? C = \"after\" : m ? C = \"inner\" : C = \"none\";\n const _ = v.$el.querySelector(`.${i.be(\"node\", \"expand-icon\")}`).getBoundingClientRect(), D = n.value;\n C === \"before\" ? T = _.top - w.top : C === \"after\" && (T = _.bottom - w.top), D.style.top = `${T}px`, D.style.left = `${_.right - w.left}px`, C === \"inner\" ? Ql(v.$el, i.is(\"drop-inner\")) : ca(v.$el, i.is(\"drop-inner\")), o.value.showDropIndicator = C === \"before\" || C === \"after\", o.value.allowDrop = o.value.showDropIndicator || y, o.value.dropType = C, e.emit(\"node-drag-over\", f.node, v.node, c);\n },\n treeNodeDragEnd: (c) => {\n const { draggingNode: d, dropType: v, dropNode: h } = o.value;\n if (c.preventDefault(), c.dataTransfer && (c.dataTransfer.dropEffect = \"move\"), d && h) {\n const f = { data: d.node.data };\n v !== \"none\" && d.node.remove(), v === \"before\" ? h.node.parent.insertBefore(f, h.node) : v === \"after\" ? h.node.parent.insertAfter(f, h.node) : v === \"inner\" && h.node.insertChild(f), v !== \"none\" && (a.value.registerNode(f), a.value.key && d.node.eachNode((p) => {\n var m;\n (m = a.value.nodesMap[p.data[a.value.key]]) == null || m.setChecked(p.checked, !a.value.checkStrictly);\n })), ca(h.$el, i.is(\"drop-inner\")), e.emit(\"node-drag-end\", d.node, h.node, v, c), v !== \"none\" && e.emit(\"node-drop\", d.node, h.node, v, c);\n }\n d && !h && e.emit(\"node-drag-end\", d.node, null, v, c), o.value.showDropIndicator = !1, o.value.draggingNode = null, o.value.dropNode = null, o.value.allowDrop = !0;\n }\n }), {\n dragState: o\n };\n}\nconst kS = de({\n name: \"ElTreeNode\",\n components: {\n ElCollapseTransition: rk,\n ElCheckbox: NE,\n NodeContent: CS,\n ElIcon: Vt,\n Loading: Mu\n },\n props: {\n node: {\n type: fa,\n default: () => ({})\n },\n props: {\n type: Object,\n default: () => ({})\n },\n accordion: Boolean,\n renderContent: Function,\n renderAfterExpand: Boolean,\n showCheckbox: {\n type: Boolean,\n default: !1\n }\n },\n emits: [\"node-expand\"],\n setup(t, e) {\n const r = He(\"tree\"), { broadcastExpanded: n } = qh(t), a = Ue(\"RootTree\"), i = ce(!1), o = ce(!1), s = ce(null), u = ce(null), l = ce(null), c = Ue(Kh), d = gt();\n Ct(\"NodeInstance\", d), a || Dt(\"Tree\", \"Can not find node's tree.\"), t.node.expanded && (i.value = !0, o.value = !0);\n const v = a.props.props.children || \"children\";\n Pe(() => {\n const k = t.node.data[v];\n return k && [...k];\n }, () => {\n t.node.updateChildren();\n }), Pe(() => t.node.indeterminate, (k) => {\n p(t.node.checked, k);\n }), Pe(() => t.node.checked, (k) => {\n p(k, t.node.indeterminate);\n }), Pe(() => t.node.childNodes.length, () => t.node.reInitChecked()), Pe(() => t.node.expanded, (k) => {\n ot(() => i.value = k), k && (o.value = !0);\n });\n const h = (k) => nc(a.props.nodeKey, k.data), f = (k) => {\n const _ = t.props.class;\n if (!_)\n return {};\n let D;\n if (lr(_)) {\n const { data: O } = k;\n D = _(O, k);\n } else\n D = _;\n return tr(D) ? { [D]: !0 } : D;\n }, p = (k, _) => {\n (s.value !== k || u.value !== _) && a.ctx.emit(\"check-change\", t.node.data, k, _), s.value = k, u.value = _;\n }, m = (k) => {\n iu(a.store, a.ctx.emit, () => a.store.value.setCurrentNode(t.node)), a.currentNode.value = t.node, a.props.expandOnClickNode && y(), a.props.checkOnClickNode && !t.node.disabled && b(null, {\n target: { checked: !t.node.checked }\n }), a.ctx.emit(\"node-click\", t.node.data, t.node, d, k);\n }, g = (k) => {\n a.instance.vnode.props.onNodeContextmenu && (k.stopPropagation(), k.preventDefault()), a.ctx.emit(\"node-contextmenu\", k, t.node.data, t.node, d);\n }, y = () => {\n t.node.isLeaf || (i.value ? (a.ctx.emit(\"node-collapse\", t.node.data, t.node, d), t.node.collapse()) : t.node.expand(() => {\n e.emit(\"node-expand\", t.node.data, t.node, d);\n }));\n }, b = (k, _) => {\n t.node.setChecked(_.target.checked, !a.props.checkStrictly), ot(() => {\n const D = a.store.value;\n a.ctx.emit(\"check\", t.node.data, {\n checkedNodes: D.getCheckedNodes(),\n checkedKeys: D.getCheckedKeys(),\n halfCheckedNodes: D.getHalfCheckedNodes(),\n halfCheckedKeys: D.getHalfCheckedKeys()\n });\n });\n };\n return {\n ns: r,\n node$: l,\n tree: a,\n expanded: i,\n childNodeRendered: o,\n oldChecked: s,\n oldIndeterminate: u,\n getNodeKey: h,\n getNodeClass: f,\n handleSelectChange: p,\n handleClick: m,\n handleContextMenu: g,\n handleExpandIconClick: y,\n handleCheckChange: b,\n handleChildNodeExpand: (k, _, D) => {\n n(_), a.ctx.emit(\"node-expand\", k, _, D);\n },\n handleDragStart: (k) => {\n a.props.draggable && c.treeNodeDragStart({ event: k, treeNode: t });\n },\n handleDragOver: (k) => {\n k.preventDefault(), a.props.draggable && c.treeNodeDragOver({\n event: k,\n treeNode: { $el: l.value, node: t.node }\n });\n },\n handleDrop: (k) => {\n k.preventDefault();\n },\n handleDragEnd: (k) => {\n a.props.draggable && c.treeNodeDragEnd(k);\n },\n CaretRight: i2\n };\n }\n});\nfunction SS(t, e, r, n, a, i) {\n const o = Qt(\"el-icon\"), s = Qt(\"el-checkbox\"), u = Qt(\"loading\"), l = Qt(\"node-content\"), c = Qt(\"el-tree-node\"), d = Qt(\"el-collapse-transition\");\n return Ze((N(), Z(\"div\", {\n ref: \"node$\",\n class: ie([\n t.ns.b(\"node\"),\n t.ns.is(\"expanded\", t.expanded),\n t.ns.is(\"current\", t.node.isCurrent),\n t.ns.is(\"hidden\", !t.node.visible),\n t.ns.is(\"focusable\", !t.node.disabled),\n t.ns.is(\"checked\", !t.node.disabled && t.node.checked),\n t.getNodeClass(t.node)\n ]),\n role: \"treeitem\",\n tabindex: \"-1\",\n \"aria-expanded\": t.expanded,\n \"aria-disabled\": t.node.disabled,\n \"aria-checked\": t.node.checked,\n draggable: t.tree.props.draggable,\n \"data-key\": t.getNodeKey(t.node),\n onClick: ht(t.handleClick, [\"stop\"]),\n onContextmenu: t.handleContextMenu,\n onDragstart: ht(t.handleDragStart, [\"stop\"]),\n onDragover: ht(t.handleDragOver, [\"stop\"]),\n onDragend: ht(t.handleDragEnd, [\"stop\"]),\n onDrop: ht(t.handleDrop, [\"stop\"])\n }, [\n X(\"div\", {\n class: ie(t.ns.be(\"node\", \"content\")),\n style: lt({ paddingLeft: (t.node.level - 1) * t.tree.props.indent + \"px\" })\n }, [\n t.tree.props.icon || t.CaretRight ? (N(), ye(o, {\n key: 0,\n class: ie([\n t.ns.be(\"node\", \"expand-icon\"),\n t.ns.is(\"leaf\", t.node.isLeaf),\n {\n expanded: !t.node.isLeaf && t.expanded\n }\n ]),\n onClick: ht(t.handleExpandIconClick, [\"stop\"])\n }, {\n default: U(() => [\n (N(), ye(er(t.tree.props.icon || t.CaretRight)))\n ]),\n _: 1\n }, 8, [\"class\", \"onClick\"])) : he(\"v-if\", !0),\n t.showCheckbox ? (N(), ye(s, {\n key: 1,\n \"model-value\": t.node.checked,\n indeterminate: t.node.indeterminate,\n disabled: !!t.node.disabled,\n onClick: ht(() => {\n }, [\"stop\"]),\n onChange: t.handleCheckChange\n }, null, 8, [\"model-value\", \"indeterminate\", \"disabled\", \"onClick\", \"onChange\"])) : he(\"v-if\", !0),\n t.node.loading ? (N(), ye(o, {\n key: 2,\n class: ie([t.ns.be(\"node\", \"loading-icon\"), t.ns.is(\"loading\")])\n }, {\n default: U(() => [\n J(u)\n ]),\n _: 1\n }, 8, [\"class\"])) : he(\"v-if\", !0),\n J(l, {\n node: t.node,\n \"render-content\": t.renderContent\n }, null, 8, [\"node\", \"render-content\"])\n ], 6),\n J(d, null, {\n default: U(() => [\n !t.renderAfterExpand || t.childNodeRendered ? Ze((N(), Z(\"div\", {\n key: 0,\n class: ie(t.ns.be(\"node\", \"children\")),\n role: \"group\",\n \"aria-expanded\": t.expanded\n }, [\n (N(!0), Z(Qe, null, Jt(t.node.childNodes, (v) => (N(), ye(c, {\n key: t.getNodeKey(v),\n \"render-content\": t.renderContent,\n \"render-after-expand\": t.renderAfterExpand,\n \"show-checkbox\": t.showCheckbox,\n node: v,\n accordion: t.accordion,\n props: t.props,\n onNodeExpand: t.handleChildNodeExpand\n }, null, 8, [\"render-content\", \"render-after-expand\", \"show-checkbox\", \"node\", \"accordion\", \"props\", \"onNodeExpand\"]))), 128))\n ], 10, [\"aria-expanded\"])), [\n [mt, t.expanded]\n ]) : he(\"v-if\", !0)\n ]),\n _: 1\n })\n ], 42, [\"aria-expanded\", \"aria-disabled\", \"aria-checked\", \"draggable\", \"data-key\", \"onClick\", \"onContextmenu\", \"onDragstart\", \"onDragover\", \"onDragend\", \"onDrop\"])), [\n [mt, t.node.visible]\n ]);\n}\nvar TS = /* @__PURE__ */ Ve(kS, [[\"render\", SS], [\"__file\", \"tree-node.vue\"]]);\nfunction _S({ el$: t }, e) {\n const r = He(\"tree\"), n = jr([]), a = jr([]);\n Et(() => {\n o();\n }), mv(() => {\n n.value = Array.from(t.value.querySelectorAll(\"[role=treeitem]\")), a.value = Array.from(t.value.querySelectorAll(\"input[type=checkbox]\"));\n }), Pe(a, (s) => {\n s.forEach((u) => {\n u.setAttribute(\"tabindex\", \"-1\");\n });\n }), kr(t, \"keydown\", (s) => {\n const u = s.target;\n if (!u.className.includes(r.b(\"node\")))\n return;\n const l = s.code;\n n.value = Array.from(t.value.querySelectorAll(`.${r.is(\"focusable\")}[role=treeitem]`));\n const c = n.value.indexOf(u);\n let d;\n if ([Lt.up, Lt.down].includes(l)) {\n if (s.preventDefault(), l === Lt.up) {\n d = c === -1 ? 0 : c !== 0 ? c - 1 : n.value.length - 1;\n const h = d;\n for (; !e.value.getNode(n.value[d].dataset.key).canFocus; ) {\n if (d--, d === h) {\n d = -1;\n break;\n }\n d < 0 && (d = n.value.length - 1);\n }\n } else {\n d = c === -1 ? 0 : c < n.value.length - 1 ? c + 1 : 0;\n const h = d;\n for (; !e.value.getNode(n.value[d].dataset.key).canFocus; ) {\n if (d++, d === h) {\n d = -1;\n break;\n }\n d >= n.value.length && (d = 0);\n }\n }\n d !== -1 && n.value[d].focus();\n }\n [Lt.left, Lt.right].includes(l) && (s.preventDefault(), u.click());\n const v = u.querySelector('[type=\"checkbox\"]');\n [Lt.enter, Lt.space].includes(l) && v && (s.preventDefault(), v.click());\n });\n const o = () => {\n var s;\n n.value = Array.from(t.value.querySelectorAll(`.${r.is(\"focusable\")}[role=treeitem]`)), a.value = Array.from(t.value.querySelectorAll(\"input[type=checkbox]\"));\n const u = t.value.querySelectorAll(`.${r.is(\"checked\")}[role=treeitem]`);\n if (u.length) {\n u[0].setAttribute(\"tabindex\", \"0\");\n return;\n }\n (s = n.value[0]) == null || s.setAttribute(\"tabindex\", \"0\");\n };\n}\nconst DS = de({\n name: \"ElTree\",\n components: { ElTreeNode: TS },\n props: {\n data: {\n type: Array,\n default: () => []\n },\n emptyText: {\n type: String\n },\n renderAfterExpand: {\n type: Boolean,\n default: !0\n },\n nodeKey: String,\n checkStrictly: Boolean,\n defaultExpandAll: Boolean,\n expandOnClickNode: {\n type: Boolean,\n default: !0\n },\n checkOnClickNode: Boolean,\n checkDescendants: {\n type: Boolean,\n default: !1\n },\n autoExpandParent: {\n type: Boolean,\n default: !0\n },\n defaultCheckedKeys: Array,\n defaultExpandedKeys: Array,\n currentNodeKey: [String, Number],\n renderContent: Function,\n showCheckbox: {\n type: Boolean,\n default: !1\n },\n draggable: {\n type: Boolean,\n default: !1\n },\n allowDrag: Function,\n allowDrop: Function,\n props: {\n type: Object,\n default: () => ({\n children: \"children\",\n label: \"label\",\n disabled: \"disabled\"\n })\n },\n lazy: {\n type: Boolean,\n default: !1\n },\n highlightCurrent: Boolean,\n load: Function,\n filterNodeMethod: Function,\n accordion: Boolean,\n indent: {\n type: Number,\n default: 18\n },\n icon: {\n type: Hn\n }\n },\n emits: [\n \"check-change\",\n \"current-change\",\n \"node-click\",\n \"node-contextmenu\",\n \"node-collapse\",\n \"node-expand\",\n \"check\",\n \"node-drag-start\",\n \"node-drag-end\",\n \"node-drop\",\n \"node-drag-leave\",\n \"node-drag-enter\",\n \"node-drag-over\"\n ],\n setup(t, e) {\n const { t: r } = yo(), n = He(\"tree\"), a = Ue(To, null), i = ce(new wS({\n key: t.nodeKey,\n data: t.data,\n lazy: t.lazy,\n props: t.props,\n load: t.load,\n currentNodeKey: t.currentNodeKey,\n checkStrictly: t.checkStrictly,\n checkDescendants: t.checkDescendants,\n defaultCheckedKeys: t.defaultCheckedKeys,\n defaultExpandedKeys: t.defaultExpandedKeys,\n autoExpandParent: t.autoExpandParent,\n defaultExpandAll: t.defaultExpandAll,\n filterNodeMethod: t.filterNodeMethod\n }));\n i.value.initialize();\n const o = ce(i.value.root), s = ce(null), u = ce(null), l = ce(null), { broadcastExpanded: c } = qh(t), { dragState: d } = ES({\n props: t,\n ctx: e,\n el$: u,\n dropIndicator$: l,\n store: i\n });\n _S({ el$: u }, i);\n const v = V(() => {\n const { childNodes: A } = o.value, R = a ? a.hasFilteredOptions !== 0 : !1;\n return (!A || A.length === 0 || A.every(({ visible: K }) => !K)) && !R;\n });\n Pe(() => t.currentNodeKey, (A) => {\n i.value.setCurrentNodeKey(A);\n }), Pe(() => t.defaultCheckedKeys, (A) => {\n i.value.setDefaultCheckedKey(A);\n }), Pe(() => t.defaultExpandedKeys, (A) => {\n i.value.setDefaultExpandedKeys(A);\n }), Pe(() => t.data, (A) => {\n i.value.setData(A);\n }, { deep: !0 }), Pe(() => t.checkStrictly, (A) => {\n i.value.checkStrictly = A;\n });\n const h = (A) => {\n if (!t.filterNodeMethod)\n throw new Error(\"[Tree] filterNodeMethod is required when filter\");\n i.value.filter(A);\n }, f = (A) => nc(t.nodeKey, A.data), p = (A) => {\n if (!t.nodeKey)\n throw new Error(\"[Tree] nodeKey is required in getNodePath\");\n const R = i.value.getNode(A);\n if (!R)\n return [];\n const K = [R.data];\n let H = R.parent;\n for (; H && H !== o.value; )\n K.push(H.data), H = H.parent;\n return K.reverse();\n }, m = (A, R) => i.value.getCheckedNodes(A, R), g = (A) => i.value.getCheckedKeys(A), y = () => {\n const A = i.value.getCurrentNode();\n return A ? A.data : null;\n }, b = () => {\n if (!t.nodeKey)\n throw new Error(\"[Tree] nodeKey is required in getCurrentKey\");\n const A = y();\n return A ? A[t.nodeKey] : null;\n }, w = (A, R) => {\n if (!t.nodeKey)\n throw new Error(\"[Tree] nodeKey is required in setCheckedNodes\");\n i.value.setCheckedNodes(A, R);\n }, C = (A, R) => {\n if (!t.nodeKey)\n throw new Error(\"[Tree] nodeKey is required in setCheckedKeys\");\n i.value.setCheckedKeys(A, R);\n }, E = (A, R, K) => {\n i.value.setChecked(A, R, K);\n }, x = () => i.value.getHalfCheckedNodes(), T = () => i.value.getHalfCheckedKeys(), k = (A, R = !0) => {\n if (!t.nodeKey)\n throw new Error(\"[Tree] nodeKey is required in setCurrentNode\");\n iu(i, e.emit, () => {\n c(A), i.value.setUserCurrentNode(A, R);\n });\n }, _ = (A, R = !0) => {\n if (!t.nodeKey)\n throw new Error(\"[Tree] nodeKey is required in setCurrentKey\");\n iu(i, e.emit, () => {\n c(), i.value.setCurrentNodeKey(A, R);\n });\n }, D = (A) => i.value.getNode(A), O = (A) => {\n i.value.remove(A);\n }, F = (A, R) => {\n i.value.append(A, R);\n }, L = (A, R) => {\n i.value.insertBefore(A, R);\n }, B = (A, R) => {\n i.value.insertAfter(A, R);\n }, I = (A, R, K) => {\n c(R), e.emit(\"node-expand\", A, R, K);\n }, M = (A, R) => {\n if (!t.nodeKey)\n throw new Error(\"[Tree] nodeKey is required in updateKeyChild\");\n i.value.updateChildren(A, R);\n };\n return Ct(\"RootTree\", {\n ctx: e,\n props: t,\n store: i,\n root: o,\n currentNode: s,\n instance: gt()\n }), Ct(Qi, void 0), {\n ns: n,\n store: i,\n root: o,\n currentNode: s,\n dragState: d,\n el$: u,\n dropIndicator$: l,\n isEmpty: v,\n filter: h,\n getNodeKey: f,\n getNodePath: p,\n getCheckedNodes: m,\n getCheckedKeys: g,\n getCurrentNode: y,\n getCurrentKey: b,\n setCheckedNodes: w,\n setCheckedKeys: C,\n setChecked: E,\n getHalfCheckedNodes: x,\n getHalfCheckedKeys: T,\n setCurrentNode: k,\n setCurrentKey: _,\n t: r,\n getNode: D,\n remove: O,\n append: F,\n insertBefore: L,\n insertAfter: B,\n handleNodeExpand: I,\n updateKeyChildren: M\n };\n }\n});\nfunction PS(t, e, r, n, a, i) {\n const o = Qt(\"el-tree-node\");\n return N(), Z(\"div\", {\n ref: \"el$\",\n class: ie([\n t.ns.b(),\n t.ns.is(\"dragging\", !!t.dragState.draggingNode),\n t.ns.is(\"drop-not-allow\", !t.dragState.allowDrop),\n t.ns.is(\"drop-inner\", t.dragState.dropType === \"inner\"),\n { [t.ns.m(\"highlight-current\")]: t.highlightCurrent }\n ]),\n role: \"tree\"\n }, [\n (N(!0), Z(Qe, null, Jt(t.root.childNodes, (s) => (N(), ye(o, {\n key: t.getNodeKey(s),\n node: s,\n props: t.props,\n accordion: t.accordion,\n \"render-after-expand\": t.renderAfterExpand,\n \"show-checkbox\": t.showCheckbox,\n \"render-content\": t.renderContent,\n onNodeExpand: t.handleNodeExpand\n }, null, 8, [\"node\", \"props\", \"accordion\", \"render-after-expand\", \"show-checkbox\", \"render-content\", \"onNodeExpand\"]))), 128)),\n t.isEmpty ? (N(), Z(\"div\", {\n key: 0,\n class: ie(t.ns.e(\"empty-block\"))\n }, [\n Le(t.$slots, \"empty\", {}, () => {\n var s;\n return [\n X(\"span\", {\n class: ie(t.ns.e(\"empty-text\"))\n }, Ie((s = t.emptyText) != null ? s : t.t(\"el.tree.emptyText\")), 3)\n ];\n })\n ], 2)) : he(\"v-if\", !0),\n Ze(X(\"div\", {\n ref: \"dropIndicator$\",\n class: ie(t.ns.e(\"drop-indicator\"))\n }, null, 2), [\n [mt, t.dragState.showDropIndicator]\n ])\n ], 2);\n}\nvar OS = /* @__PURE__ */ Ve(DS, [[\"render\", PS], [\"__file\", \"tree.vue\"]]);\nconst LS = $t(OS);\nfunction IS(t) {\n let e;\n const r = ce(!1), n = Jr({\n ...t,\n originalPosition: \"\",\n originalOverflow: \"\",\n visible: !1\n });\n function a(v) {\n n.text = v;\n }\n function i() {\n const v = n.parent, h = d.ns;\n if (!v.vLoadingAddClassList) {\n let f = v.getAttribute(\"loading-number\");\n f = Number.parseInt(f) - 1, f ? v.setAttribute(\"loading-number\", f.toString()) : (ca(v, h.bm(\"parent\", \"relative\")), v.removeAttribute(\"loading-number\")), ca(v, h.bm(\"parent\", \"hidden\"));\n }\n o(), c.unmount();\n }\n function o() {\n var v, h;\n (h = (v = d.$el) == null ? void 0 : v.parentNode) == null || h.removeChild(d.$el);\n }\n function s() {\n var v;\n t.beforeClose && !t.beforeClose() || (r.value = !0, clearTimeout(e), e = setTimeout(u, 400), n.visible = !1, (v = t.closed) == null || v.call(t));\n }\n function u() {\n if (!r.value)\n return;\n const v = n.parent;\n r.value = !1, v.vLoadingAddClassList = void 0, i();\n }\n const l = de({\n name: \"ElLoading\",\n setup(v, { expose: h }) {\n const { ns: f, zIndex: p } = px(\"loading\");\n return h({\n ns: f,\n zIndex: p\n }), () => {\n const m = n.spinner || n.svg, g = ia(\"svg\", {\n class: \"circular\",\n viewBox: n.svgViewBox ? n.svgViewBox : \"0 0 50 50\",\n ...m ? { innerHTML: m } : {}\n }, [\n ia(\"circle\", {\n class: \"path\",\n cx: \"25\",\n cy: \"25\",\n r: \"20\",\n fill: \"none\"\n })\n ]), y = n.text ? ia(\"p\", { class: f.b(\"text\") }, [n.text]) : void 0;\n return ia(ui, {\n name: f.b(\"fade\"),\n onAfterLeave: u\n }, {\n default: U(() => [\n Ze(J(\"div\", {\n style: {\n backgroundColor: n.background || \"\"\n },\n class: [\n f.b(\"mask\"),\n n.customClass,\n n.fullscreen ? \"is-fullscreen\" : \"\"\n ]\n }, [\n ia(\"div\", {\n class: f.b(\"spinner\")\n }, [g, y])\n ]), [[mt, n.visible]])\n ])\n });\n };\n }\n }), c = F0(l), d = c.mount(document.createElement(\"div\"));\n return {\n ...ho(n),\n setText: a,\n removeElLoadingChild: o,\n close: s,\n handleAfterLeave: u,\n vm: d,\n get $el() {\n return d.$el;\n }\n };\n}\nlet Uo;\nconst FS = function(t = {}) {\n if (!_t)\n return;\n const e = AS(t);\n if (e.fullscreen && Uo)\n return Uo;\n const r = IS({\n ...e,\n closed: () => {\n var a;\n (a = e.closed) == null || a.call(e), e.fullscreen && (Uo = void 0);\n }\n });\n MS(e, e.parent, r), Qd(e, e.parent, r), e.parent.vLoadingAddClassList = () => Qd(e, e.parent, r);\n let n = e.parent.getAttribute(\"loading-number\");\n return n ? n = `${Number.parseInt(n) + 1}` : n = \"1\", e.parent.setAttribute(\"loading-number\", n), e.parent.appendChild(r.$el), ot(() => r.visible.value = e.visible), e.fullscreen && (Uo = r), r;\n}, AS = (t) => {\n var e, r, n, a;\n let i;\n return tr(t.target) ? i = (e = document.querySelector(t.target)) != null ? e : document.body : i = t.target || document.body, {\n parent: i === document.body || t.body ? document.body : i,\n background: t.background || \"\",\n svg: t.svg || \"\",\n svgViewBox: t.svgViewBox || \"\",\n spinner: t.spinner || !1,\n text: t.text || \"\",\n fullscreen: i === document.body && ((r = t.fullscreen) != null ? r : !0),\n lock: (n = t.lock) != null ? n : !1,\n customClass: t.customClass || \"\",\n visible: (a = t.visible) != null ? a : !0,\n beforeClose: t.beforeClose,\n closed: t.closed,\n target: i\n };\n}, MS = async (t, e, r) => {\n const { nextZIndex: n } = r.vm.zIndex || r.vm._.exposed.zIndex, a = {};\n if (t.fullscreen)\n r.originalPosition.value = Ti(document.body, \"position\"), r.originalOverflow.value = Ti(document.body, \"overflow\"), a.zIndex = n();\n else if (t.parent === document.body) {\n r.originalPosition.value = Ti(document.body, \"position\"), await ot();\n for (const i of [\"top\", \"left\"]) {\n const o = i === \"top\" ? \"scrollTop\" : \"scrollLeft\";\n a[i] = `${t.target.getBoundingClientRect()[i] + document.body[o] + document.documentElement[o] - Number.parseInt(Ti(document.body, `margin-${i}`), 10)}px`;\n }\n for (const i of [\"height\", \"width\"])\n a[i] = `${t.target.getBoundingClientRect()[i]}px`;\n } else\n r.originalPosition.value = Ti(e, \"position\");\n for (const [i, o] of Object.entries(a))\n r.$el.style[i] = o;\n}, Qd = (t, e, r) => {\n const n = r.vm.ns || r.vm._.exposed.ns;\n [\"absolute\", \"fixed\", \"sticky\"].includes(r.originalPosition.value) ? ca(e, n.bm(\"parent\", \"relative\")) : Ql(e, n.bm(\"parent\", \"relative\")), t.fullscreen && t.lock ? Ql(e, n.bm(\"parent\", \"hidden\")) : ca(e, n.bm(\"parent\", \"hidden\"));\n}, ls = Symbol(\"ElLoading\"), Jd = (t, e) => {\n var r, n, a, i;\n const o = e.instance, s = (v) => Ht(e.value) ? e.value[v] : void 0, u = (v) => {\n const h = tr(v) && (o == null ? void 0 : o[v]) || v;\n return h && ce(h);\n }, l = (v) => u(s(v) || t.getAttribute(`element-loading-${am(v)}`)), c = (r = s(\"fullscreen\")) != null ? r : e.modifiers.fullscreen, d = {\n text: l(\"text\"),\n svg: l(\"svg\"),\n svgViewBox: l(\"svgViewBox\"),\n spinner: l(\"spinner\"),\n background: l(\"background\"),\n customClass: l(\"customClass\"),\n fullscreen: c,\n target: (n = s(\"target\")) != null ? n : c ? void 0 : t,\n body: (a = s(\"body\")) != null ? a : e.modifiers.body,\n lock: (i = s(\"lock\")) != null ? i : e.modifiers.lock\n };\n t[ls] = {\n options: d,\n instance: FS(d)\n };\n}, BS = (t, e) => {\n for (const r of Object.keys(e))\n Xa(e[r]) && (e[r].value = t[r]);\n}, ac = {\n mounted(t, e) {\n e.value && Jd(t, e);\n },\n updated(t, e) {\n const r = t[ls];\n e.oldValue !== e.value && (e.value && !e.oldValue ? Jd(t, e) : e.value && e.oldValue ? Ht(e.value) && BS(e.value, r.options) : r == null || r.instance.close());\n },\n unmounted(t) {\n var e;\n (e = t[ls]) == null || e.instance.close(), t[ls] = null;\n }\n}, Ur = (t, e) => {\n const r = t.__vccOpts || t;\n for (const [n, a] of e)\n r[n] = a;\n return r;\n}, NS = {\n name: \"AnnotationPopup\",\n props: {\n annotationEntry: {\n type: Object\n }\n },\n inject: [\"$annotator\", \"userApiKey\"],\n data: function() {\n return {\n displayPair: {\n \"Feature ID\": \"featureId\",\n Tooltip: \"label\",\n Models: \"models\",\n Name: \"name\",\n Resource: \"resourceId\"\n },\n editing: !1,\n evidencePrefixes: [\"\", \"DOI:\", \"PMID:\"],\n evidencePrefix: \"\",\n evidence: [],\n authenticated: !1,\n newEvidence: \"\",\n comment: \"\",\n prevSubs: [],\n showSubmissions: !0,\n errorMessage: \"\",\n creator: void 0\n };\n },\n computed: {\n isEditable: function() {\n return this.annotationEntry.resourceId && this.annotationEntry.featureId;\n },\n isPositionUpdated: function() {\n return this.annotationEntry.resourceId && this.annotationEntry.type === \"updated\" && this.annotationEntry.positionUpdated;\n },\n isDeleted: function() {\n return this.annotationEntry.resourceId && this.annotationEntry.type === \"deleted\";\n }\n },\n methods: {\n evidenceEntered: function(t) {\n t && (this.evidence.push(this.evidencePrefix + t), this.newEvidence = \"\");\n },\n formatTime: function(t) {\n const e = {\n year: \"numeric\",\n month: \"long\",\n day: \"numeric\",\n hour: \"numeric\",\n minute: \"numeric\",\n second: \"numeric\"\n };\n return new Date(t).toLocaleDateString(void 0, e);\n },\n updatePrevSubmissions: function() {\n var t;\n this.$annotator && this.authenticated && this.annotationEntry.resourceId && this.annotationEntry.featureId && ((t = this.$annotator) == null || t.itemAnnotations(\n this.userApiKey,\n this.annotationEntry.resourceId,\n this.annotationEntry.featureId\n ).then((e) => {\n this.prevSubs = e;\n }).catch((e) => {\n console.log(e);\n }));\n },\n submit: function() {\n var t;\n if (this.annotationEntry.type === \"updated\" && this.annotationEntry.positionUpdated ? this.comment = this.comment ? `Position Updated: ${this.comment}` : \"Position Updated\" : this.annotationEntry.type === \"deleted\" && (this.comment = this.comment ? `Feature Deleted: ${this.comment}` : \"Feature Deleted\"), (this.evidence.length > 0 || this.comment) && this.annotationEntry.resourceId && this.annotationEntry.featureId) {\n const e = [];\n this.evidence.forEach((n) => {\n if (n.includes(\"DOI:\")) {\n const a = n.replace(\"DOI:\", \"https://doi.org/\");\n e.push(new URL(a));\n } else if (n.includes(\"PMID:\")) {\n const a = n.replace(\n \"PMID:\",\n \"https://pubmed.ncbi.nlm.nih.gov/\"\n );\n e.push(new URL(a));\n } else\n e.push(n);\n });\n const r = {\n resource: this.annotationEntry.resourceId,\n item: Object.assign(\n { id: this.annotationEntry.featureId },\n Object.fromEntries(\n Object.entries(this.annotationEntry).filter(\n ([n]) => [\"label\", \"models\"].includes(n)\n )\n )\n ),\n body: {\n evidence: e,\n comment: this.comment\n },\n feature: this.annotationEntry.feature\n };\n Object.assign(r.body, this.annotationEntry.body), this.annotationEntry.type === \"deleted\" && (r.feature = void 0), this.creator && (r.creator = this.creator), (t = this.$annotator) == null || t.addAnnotation(this.userApiKey, r).then(() => {\n this.$emit(\"annotation\", r), this.errorMessage = \"\", this.resetSubmission(), this.updatePrevSubmissions();\n }).catch(() => {\n this.errorMessage = \"There is a problem with the submission, please try again later\";\n });\n }\n },\n removeEvidence: function(t) {\n this.evidence.splice(t, 1);\n },\n resetSubmission: function() {\n this.editing = !1, this.evidence = [], this.newFeature = \"\", this.comment = \"\";\n }\n },\n watch: {\n annotationEntry: {\n handler: function(t, e) {\n t !== e && (this.resetSubmission(), this.updatePrevSubmissions());\n },\n immediate: !1,\n deep: !1\n }\n },\n mounted: function() {\n var t;\n (t = this.$annotator) == null || t.authenticate(this.userApiKey).then((e) => {\n e.name && e.email && e.canUpdate ? (this.creator = e, e.orcid || (this.creator.orcid = \"0000-0000-0000-0000\"), this.authenticated = !0, this.updatePrevSubmissions()) : this.errorMessage = \"\";\n });\n }\n}, _a = (t) => (po(\"data-v-9930ef40\"), t = t(), go(), t), $S = { class: \"block\" }, RS = /* @__PURE__ */ _a(() => /* @__PURE__ */ X(\"div\", { class: \"title\" }, \"Feature Annotations\", -1)), zS = /* @__PURE__ */ _a(() => /* @__PURE__ */ X(\"strong\", { class: \"sub-title\" }, \"Previous submissions:\", -1)), VS = /* @__PURE__ */ _a(() => /* @__PURE__ */ X(\"strong\", null, \"Evidence: \", -1)), HS = [\"href\"], qS = /* @__PURE__ */ _a(() => /* @__PURE__ */ X(\"strong\", null, \"Comment: \", -1)), KS = /* @__PURE__ */ _a(() => /* @__PURE__ */ X(\"strong\", { class: \"sub-title\" }, \"Suggest changes:\", -1)), US = /* @__PURE__ */ _a(() => /* @__PURE__ */ X(\"strong\", null, \"Evidence:\", -1)), GS = /* @__PURE__ */ _a(() => /* @__PURE__ */ X(\"strong\", null, \"Comment:\", -1)), WS = { class: \"sub-title\" };\nfunction YS(t, e, r, n, a, i) {\n const o = Qs, s = qv, u = Vt, l = Gs, c = p2, d = v2, v = m2, h = So, f = Ss, p = uS, m = lS, g = Eo, y = Hr, b = ec;\n return N(), ye(b, { class: \"main\" }, {\n default: U(() => [\n X(\"div\", $S, [\n J(o, { class: \"info-field\" }, {\n default: U(() => [\n RS\n ]),\n _: 1\n }),\n r.annotationEntry ? (N(), Z(Qe, { key: 0 }, [\n (N(!0), Z(Qe, null, Jt(t.displayPair, (w, C) => Ze((N(), ye(o, {\n class: \"dialog-text\",\n key: w\n }, {\n default: U(() => [\n X(\"strong\", null, Ie(C) + \": \", 1),\n ze(\" \" + Ie(r.annotationEntry[w]), 1)\n ]),\n _: 2\n }, 1024)), [\n [mt, r.annotationEntry[w]]\n ])), 128)),\n t.prevSubs.length > 0 ? (N(), Z(Qe, { key: 0 }, [\n Ze(X(\"div\", {\n class: \"hide\",\n onClick: e[0] || (e[0] = (w) => t.showSubmissions = !1)\n }, [\n ze(\" Hide previous submissions \"),\n J(u, null, {\n default: U(() => [\n J(s)\n ]),\n _: 1\n })\n ], 512), [\n [mt, t.showSubmissions]\n ]),\n Ze(X(\"div\", {\n class: \"hide\",\n onClick: e[1] || (e[1] = (w) => t.showSubmissions = !0)\n }, [\n ze(\" Show previous \" + Ie(t.prevSubs.length) + \" submission(s) \", 1),\n J(u, null, {\n default: U(() => [\n J(l)\n ]),\n _: 1\n })\n ], 512), [\n [mt, !t.showSubmissions]\n ]),\n t.showSubmissions ? (N(), Z(Qe, { key: 0 }, [\n J(o, { class: \"dialog-spacer\" }),\n J(o, { class: \"dialog-text\" }, {\n default: U(() => [\n zS\n ]),\n _: 1\n }),\n (N(!0), Z(Qe, null, Jt(t.prevSubs, (w, C) => (N(), Z(\"div\", {\n class: \"entry\",\n key: C\n }, [\n J(o, { class: \"dialog-text\" }, {\n default: U(() => [\n X(\"strong\", null, Ie(i.formatTime(w.created)), 1),\n ze(\" \" + Ie(w.creator.name), 1)\n ]),\n _: 2\n }, 1024),\n J(o, { class: \"dialog-text\" }, {\n default: U(() => [\n VS,\n (N(!0), Z(Qe, null, Jt(w.body.evidence, (E) => (N(), ye(o, {\n key: E,\n class: \"dialog-text\"\n }, {\n default: U(() => [\n X(\"a\", {\n href: E,\n target: \"_blank\"\n }, Ie(E), 9, HS)\n ]),\n _: 2\n }, 1024))), 128))\n ]),\n _: 2\n }, 1024),\n J(o, { class: \"dialog-text\" }, {\n default: U(() => [\n qS,\n ze(\" \" + Ie(w.body.comment), 1)\n ]),\n _: 2\n }, 1024)\n ]))), 128))\n ], 64)) : he(\"\", !0)\n ], 64)) : he(\"\", !0),\n t.authenticated ? (N(), Z(Qe, { key: 1 }, [\n i.isEditable ? (N(), Z(Qe, { key: 0 }, [\n J(o, { class: \"dialog-spacer\" }),\n t.editing ? (N(), Z(Qe, { key: 1 }, [\n J(o, { class: \"dialog-text\" }, {\n default: U(() => [\n KS\n ]),\n _: 1\n }),\n i.isDeleted ? he(\"\", !0) : (N(), Z(Qe, { key: 0 }, [\n J(o, { class: \"dialog-text\" }, {\n default: U(() => [\n US\n ]),\n _: 1\n }),\n (N(!0), Z(Qe, null, Jt(t.evidence, (w, C) => (N(), ye(o, { key: w }, {\n default: U(() => [\n J(h, { span: 20 }, {\n default: U(() => [\n ze(Ie(t.evidence[C]), 1)\n ]),\n _: 2\n }, 1024),\n J(h, { span: 4 }, {\n default: U(() => [\n J(u, { class: \"standard-icon\" }, {\n default: U(() => [\n J(f, {\n onClick: (E) => i.removeEvidence(C)\n }, null, 8, [\"onClick\"])\n ]),\n _: 2\n }, 1024)\n ]),\n _: 2\n }, 1024)\n ]),\n _: 2\n }, 1024))), 128)),\n J(o, null, {\n default: U(() => [\n J(g, {\n size: \"small\",\n placeholder: \"Enter\",\n modelValue: t.newEvidence,\n \"onUpdate:modelValue\": e[4] || (e[4] = (w) => t.newEvidence = w),\n onChange: e[5] || (e[5] = (w) => i.evidenceEntered(w))\n }, {\n prepend: U(() => [\n J(m, {\n teleported: !1,\n modelValue: t.evidencePrefix,\n \"onUpdate:modelValue\": e[3] || (e[3] = (w) => t.evidencePrefix = w),\n placeholder: \"No Prefix\",\n class: \"select-box\",\n \"popper-class\": \"flatmap_dropdown\"\n }, {\n default: U(() => [\n (N(!0), Z(Qe, null, Jt(t.evidencePrefixes, (w) => (N(), ye(p, {\n key: w,\n label: w,\n value: w\n }, {\n default: U(() => [\n J(o, null, {\n default: U(() => [\n J(h, { span: 12 }, {\n default: U(() => [\n ze(Ie(w), 1)\n ]),\n _: 2\n }, 1024)\n ]),\n _: 2\n }, 1024)\n ]),\n _: 2\n }, 1032, [\"label\", \"value\"]))), 128))\n ]),\n _: 1\n }, 8, [\"modelValue\"])\n ]),\n _: 1\n }, 8, [\"modelValue\"])\n ]),\n _: 1\n })\n ], 64)),\n J(o, null, {\n default: U(() => [\n GS\n ]),\n _: 1\n }),\n J(o, { class: \"dialog-text\" }, {\n default: U(() => [\n J(g, {\n type: \"textarea\",\n autosize: { minRows: 2, maxRows: 4 },\n placeholder: \"Enter\",\n modelValue: t.comment,\n \"onUpdate:modelValue\": e[6] || (e[6] = (w) => t.comment = w)\n }, null, 8, [\"modelValue\"])\n ]),\n _: 1\n }),\n J(o, { class: \"dialog-text\" }, {\n default: U(() => [\n J(y, {\n class: \"button\",\n type: \"primary\",\n plain: \"\",\n onClick: i.submit\n }, {\n default: U(() => [\n ze(\" Submit \")\n ]),\n _: 1\n }, 8, [\"onClick\"])\n ]),\n _: 1\n })\n ], 64)) : (N(), ye(o, { key: 0 }, {\n default: U(() => [\n J(u, { class: \"standard-icon\" }, {\n default: U(() => [\n J(c, {\n onClick: e[2] || (e[2] = (w) => t.editing = !0)\n })\n ]),\n _: 1\n }),\n i.isDeleted ? (N(), ye(u, {\n key: 0,\n class: \"standard-icon\"\n }, {\n default: U(() => [\n J(d, { onClick: i.submit }, null, 8, [\"onClick\"])\n ]),\n _: 1\n })) : i.isPositionUpdated ? (N(), ye(u, {\n key: 1,\n class: \"standard-icon\"\n }, {\n default: U(() => [\n J(v, { onClick: i.submit }, null, 8, [\"onClick\"])\n ]),\n _: 1\n })) : he(\"\", !0)\n ]),\n _: 1\n })),\n t.errorMessage ? (N(), ye(o, {\n key: 2,\n class: \"dialog-text\"\n }, {\n default: U(() => [\n X(\"strong\", WS, Ie(t.errorMessage), 1)\n ]),\n _: 1\n })) : he(\"\", !0)\n ], 64)) : he(\"\", !0)\n ], 64)) : he(\"\", !0)\n ], 64)) : he(\"\", !0)\n ])\n ]),\n _: 1\n });\n}\nconst ZS = /* @__PURE__ */ Ur(NS, [[\"render\", YS], [\"__scopeId\", \"data-v-9930ef40\"]]), XS = {\n name: \"CreateTooltipContent\",\n components: {\n Button: Hr,\n Col: So,\n Container: Rh,\n Header: zh,\n Input: Eo,\n Main: ec\n },\n props: {\n createData: {\n type: Object\n }\n },\n watch: {\n \"createData.shape\": {\n handler: function(t, e) {\n this.group = t, e !== void 0 && this.$emit(\"cancel-create\");\n },\n immediate: !0\n }\n },\n computed: {\n confirmText: function() {\n return this.createData.editingIndex > -1 ? \"Edit\" : \"Confirm\";\n }\n },\n data: function() {\n return {\n group: \"default\",\n region: \"\",\n showPoint: !1\n };\n },\n methods: {\n confirm: function() {\n this.$emit(\n \"confirm-create\",\n {\n region: \"__annotation/\" + this.region,\n group: this.group,\n shape: this.createData.shape,\n editingIndex: this.createData.editingIndex\n }\n ), this.group = this.createData.shape;\n },\n cancel: function() {\n this.$emit(\"cancel-create\");\n }\n }\n}, jS = (t) => (po(\"data-v-d61c5879\"), t = t(), go(), t), QS = /* @__PURE__ */ jS(() => /* @__PURE__ */ X(\"span\", { class: \"create-text\" }, \" Primitives will be created in the __annotation region \", -1));\nfunction JS(t, e, r, n, a, i) {\n const o = zh, s = So, u = Qs, l = Eo, c = Hr, d = ec, v = Rh;\n return N(), ye(v, { class: \"create-container\" }, {\n default: U(() => [\n J(o, {\n height: \"30px\",\n class: \"header\"\n }, {\n default: U(() => [\n X(\"div\", null, \"Create \" + Ie(r.createData.shape), 1)\n ]),\n _: 1\n }),\n J(d, { class: \"slides-block\" }, {\n default: U(() => [\n QS,\n Ze(J(u, { class: \"row\" }, {\n default: U(() => [\n J(s, {\n offset: 0,\n span: 8\n }, {\n default: U(() => [\n ze(\" Position: \")\n ]),\n _: 1\n }),\n J(s, {\n offset: 0,\n span: 16\n }, {\n default: U(() => [\n (N(!0), Z(Qe, null, Jt(r.createData.points, ({ value: h, i: f }) => (N(), ye(u, {\n key: f,\n class: \"value\"\n }, {\n default: U(() => [\n ze(Ie(f), 1)\n ]),\n _: 2\n }, 1024))), 128))\n ]),\n _: 1\n })\n ]),\n _: 1\n }, 512), [\n [mt, t.showPoint]\n ]),\n J(u, { class: \"row\" }, {\n default: U(() => [\n J(s, {\n offset: 0,\n span: 8\n }, {\n default: U(() => [\n ze(\" Region: \")\n ]),\n _: 1\n }),\n J(s, {\n offset: 0,\n span: 16\n }, {\n default: U(() => [\n J(l, {\n modelValue: t.region,\n \"onUpdate:modelValue\": e[0] || (e[0] = (h) => t.region = h),\n placeholder: \"__annotation\",\n size: \"small\"\n }, null, 8, [\"modelValue\"])\n ]),\n _: 1\n })\n ]),\n _: 1\n }),\n J(u, { class: \"row\" }, {\n default: U(() => [\n J(s, {\n offset: 0,\n span: 8\n }, {\n default: U(() => [\n ze(\" Group: \")\n ]),\n _: 1\n }),\n J(s, {\n offset: 0,\n span: 16\n }, {\n default: U(() => [\n J(l, {\n modelValue: t.group,\n \"onUpdate:modelValue\": e[1] || (e[1] = (h) => t.group = h),\n placeholder: r.createData.shape,\n size: \"small\"\n }, null, 8, [\"modelValue\", \"placeholder\"])\n ]),\n _: 1\n })\n ]),\n _: 1\n }),\n J(u, null, {\n default: U(() => [\n J(s, {\n offset: 0,\n span: 12\n }, {\n default: U(() => [\n J(c, {\n type: \"primary\",\n plain: \"\",\n onClick: i.confirm\n }, {\n default: U(() => [\n ze(Ie(i.confirmText), 1)\n ]),\n _: 1\n }, 8, [\"onClick\"])\n ]),\n _: 1\n }),\n J(s, {\n offset: 0,\n span: 12\n }, {\n default: U(() => [\n J(c, {\n type: \"primary\",\n plain: \"\",\n onClick: i.cancel\n }, {\n default: U(() => [\n ze(\" Cancel \")\n ]),\n _: 1\n }, 8, [\"onClick\"])\n ]),\n _: 1\n })\n ]),\n _: 1\n })\n ]),\n _: 1\n })\n ]),\n _: 1\n });\n}\nconst RI = /* @__PURE__ */ Ur(XS, [[\"render\", JS], [\"__scopeId\", \"data-v-d61c5879\"]]);\nfunction Ft(t) {\n \"@babel/helpers - typeof\";\n return Ft = typeof Symbol == \"function\" && typeof Symbol.iterator == \"symbol\" ? function(e) {\n return typeof e;\n } : function(e) {\n return e && typeof Symbol == \"function\" && e.constructor === Symbol && e !== Symbol.prototype ? \"symbol\" : typeof e;\n }, Ft(t);\n}\nfunction ic(t, e) {\n if (!(t instanceof e))\n throw new TypeError(\"Cannot call a class as a function\");\n}\nfunction eT(t, e) {\n for (var r = 0; r < e.length; r++) {\n var n = e[r];\n n.enumerable = n.enumerable || !1, n.configurable = !0, \"value\" in n && (n.writable = !0), Object.defineProperty(t, n.key, n);\n }\n}\nfunction oc(t, e, r) {\n return e && eT(t.prototype, e), Object.defineProperty(t, \"prototype\", {\n writable: !1\n }), t;\n}\nfunction Uh(t, e, r) {\n return e in t ? Object.defineProperty(t, e, {\n value: r,\n enumerable: !0,\n configurable: !0,\n writable: !0\n }) : t[e] = r, t;\n}\nfunction Mr(t, e) {\n return tT(t) || rT(t, e) || Gh(t, e) || nT();\n}\nfunction tT(t) {\n if (Array.isArray(t)) return t;\n}\nfunction rT(t, e) {\n var r = t == null ? null : typeof Symbol < \"u\" && t[Symbol.iterator] || t[\"@@iterator\"];\n if (r != null) {\n var n = [], a = !0, i = !1, o, s;\n try {\n for (r = r.call(t); !(a = (o = r.next()).done) && (n.push(o.value), !(e && n.length === e)); a = !0)\n ;\n } catch (u) {\n i = !0, s = u;\n } finally {\n try {\n !a && r.return != null && r.return();\n } finally {\n if (i) throw s;\n }\n }\n return n;\n }\n}\nfunction Gh(t, e) {\n if (t) {\n if (typeof t == \"string\") return ef(t, e);\n var r = Object.prototype.toString.call(t).slice(8, -1);\n if (r === \"Object\" && t.constructor && (r = t.constructor.name), r === \"Map\" || r === \"Set\") return Array.from(t);\n if (r === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)) return ef(t, e);\n }\n}\nfunction ef(t, e) {\n (e == null || e > t.length) && (e = t.length);\n for (var r = 0, n = new Array(e); r < e; r++) n[r] = t[r];\n return n;\n}\nfunction nT() {\n throw new TypeError(`Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.`);\n}\nfunction Wh(t, e) {\n var r = typeof Symbol < \"u\" && t[Symbol.iterator] || t[\"@@iterator\"];\n if (!r) {\n if (Array.isArray(t) || (r = Gh(t)) || e) {\n r && (t = r);\n var n = 0, a = function() {\n };\n return {\n s: a,\n n: function() {\n return n >= t.length ? {\n done: !0\n } : {\n done: !1,\n value: t[n++]\n };\n },\n e: function(u) {\n throw u;\n },\n f: a\n };\n }\n throw new TypeError(`Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.`);\n }\n var i = !0, o = !1, s;\n return {\n s: function() {\n r = r.call(t);\n },\n n: function() {\n var u = r.next();\n return i = u.done, u;\n },\n e: function(u) {\n o = !0, s = u;\n },\n f: function() {\n try {\n !i && r.return != null && r.return();\n } finally {\n if (o) throw s;\n }\n }\n };\n}\nvar Ot = typeof window > \"u\" ? null : window, tf = Ot ? Ot.navigator : null;\nOt && Ot.document;\nvar aT = Ft(\"\"), Yh = Ft({}), iT = Ft(function() {\n}), oT = typeof HTMLElement > \"u\" ? \"undefined\" : Ft(HTMLElement), _o = function(e) {\n return e && e.instanceString && pt(e.instanceString) ? e.instanceString() : null;\n}, Fe = function(e) {\n return e != null && Ft(e) == aT;\n}, pt = function(e) {\n return e != null && Ft(e) === iT;\n}, st = function(e) {\n return !yr(e) && (Array.isArray ? Array.isArray(e) : e != null && e instanceof Array);\n}, Xe = function(e) {\n return e != null && Ft(e) === Yh && !st(e) && e.constructor === Object;\n}, sT = function(e) {\n return e != null && Ft(e) === Yh;\n}, be = function(e) {\n return e != null && Ft(e) === Ft(1) && !isNaN(e);\n}, lT = function(e) {\n return be(e) && Math.floor(e) === e;\n}, Ds = function(e) {\n if (oT !== \"undefined\")\n return e != null && e instanceof HTMLElement;\n}, yr = function(e) {\n return Do(e) || Zh(e);\n}, Do = function(e) {\n return _o(e) === \"collection\" && e._private.single;\n}, Zh = function(e) {\n return _o(e) === \"collection\" && !e._private.single;\n}, sc = function(e) {\n return _o(e) === \"core\";\n}, Xh = function(e) {\n return _o(e) === \"stylesheet\";\n}, uT = function(e) {\n return _o(e) === \"event\";\n}, qn = function(e) {\n return e == null ? !0 : !!(e === \"\" || e.match(/^\\s+$/));\n}, cT = function(e) {\n return typeof HTMLElement > \"u\" ? !1 : e instanceof HTMLElement;\n}, dT = function(e) {\n return Xe(e) && be(e.x1) && be(e.x2) && be(e.y1) && be(e.y2);\n}, fT = function(e) {\n return sT(e) && pt(e.then);\n}, vT = function() {\n return tf && tf.userAgent.match(/msie|trident|edge/i);\n}, to = function(e, r) {\n r || (r = function() {\n if (arguments.length === 1)\n return arguments[0];\n if (arguments.length === 0)\n return \"undefined\";\n for (var i = [], o = 0; o < arguments.length; o++)\n i.push(arguments[o]);\n return i.join(\"$\");\n });\n var n = function a() {\n var i = this, o = arguments, s, u = r.apply(i, o), l = a.cache;\n return (s = l[u]) || (s = l[u] = e.apply(i, o)), s;\n };\n return n.cache = {}, n;\n}, lc = to(function(t) {\n return t.replace(/([A-Z])/g, function(e) {\n return \"-\" + e.toLowerCase();\n });\n}), Js = to(function(t) {\n return t.replace(/(-\\w)/g, function(e) {\n return e[1].toUpperCase();\n });\n}), jh = to(function(t, e) {\n return t + e[0].toUpperCase() + e.substring(1);\n}, function(t, e) {\n return t + \"$\" + e;\n}), rf = function(e) {\n return qn(e) ? e : e.charAt(0).toUpperCase() + e.substring(1);\n}, It = \"(?:[-+]?(?:(?:\\\\d+|\\\\d*\\\\.\\\\d+)(?:[Ee][+-]?\\\\d+)?))\", hT = \"rgb[a]?\\\\((\" + It + \"[%]?)\\\\s*,\\\\s*(\" + It + \"[%]?)\\\\s*,\\\\s*(\" + It + \"[%]?)(?:\\\\s*,\\\\s*(\" + It + \"))?\\\\)\", pT = \"rgb[a]?\\\\((?:\" + It + \"[%]?)\\\\s*,\\\\s*(?:\" + It + \"[%]?)\\\\s*,\\\\s*(?:\" + It + \"[%]?)(?:\\\\s*,\\\\s*(?:\" + It + \"))?\\\\)\", gT = \"hsl[a]?\\\\((\" + It + \")\\\\s*,\\\\s*(\" + It + \"[%])\\\\s*,\\\\s*(\" + It + \"[%])(?:\\\\s*,\\\\s*(\" + It + \"))?\\\\)\", mT = \"hsl[a]?\\\\((?:\" + It + \")\\\\s*,\\\\s*(?:\" + It + \"[%])\\\\s*,\\\\s*(?:\" + It + \"[%])(?:\\\\s*,\\\\s*(?:\" + It + \"))?\\\\)\", yT = \"\\\\#[0-9a-fA-F]{3}\", bT = \"\\\\#[0-9a-fA-F]{6}\", Qh = function(e, r) {\n return e < r ? -1 : e > r ? 1 : 0;\n}, wT = function(e, r) {\n return -1 * Qh(e, r);\n}, Re = Object.assign != null ? Object.assign.bind(Object) : function(t) {\n for (var e = arguments, r = 1; r < e.length; r++) {\n var n = e[r];\n if (n != null)\n for (var a = Object.keys(n), i = 0; i < a.length; i++) {\n var o = a[i];\n t[o] = n[o];\n }\n }\n return t;\n}, xT = function(e) {\n if (!(!(e.length === 4 || e.length === 7) || e[0] !== \"#\")) {\n var r = e.length === 4, n, a, i, o = 16;\n return r ? (n = parseInt(e[1] + e[1], o), a = parseInt(e[2] + e[2], o), i = parseInt(e[3] + e[3], o)) : (n = parseInt(e[1] + e[2], o), a = parseInt(e[3] + e[4], o), i = parseInt(e[5] + e[6], o)), [n, a, i];\n }\n}, CT = function(e) {\n var r, n, a, i, o, s, u, l;\n function c(f, p, m) {\n return m < 0 && (m += 1), m > 1 && (m -= 1), m < 1 / 6 ? f + (p - f) * 6 * m : m < 1 / 2 ? p : m < 2 / 3 ? f + (p - f) * (2 / 3 - m) * 6 : f;\n }\n var d = new RegExp(\"^\" + gT + \"$\").exec(e);\n if (d) {\n if (n = parseInt(d[1]), n < 0 ? n = (360 - -1 * n % 360) % 360 : n > 360 && (n = n % 360), n /= 360, a = parseFloat(d[2]), a < 0 || a > 100 || (a = a / 100, i = parseFloat(d[3]), i < 0 || i > 100) || (i = i / 100, o = d[4], o !== void 0 && (o = parseFloat(o), o < 0 || o > 1)))\n return;\n if (a === 0)\n s = u = l = Math.round(i * 255);\n else {\n var v = i < 0.5 ? i * (1 + a) : i + a - i * a, h = 2 * i - v;\n s = Math.round(255 * c(h, v, n + 1 / 3)), u = Math.round(255 * c(h, v, n)), l = Math.round(255 * c(h, v, n - 1 / 3));\n }\n r = [s, u, l, o];\n }\n return r;\n}, ET = function(e) {\n var r, n = new RegExp(\"^\" + hT + \"$\").exec(e);\n if (n) {\n r = [];\n for (var a = [], i = 1; i <= 3; i++) {\n var o = n[i];\n if (o[o.length - 1] === \"%\" && (a[i] = !0), o = parseFloat(o), a[i] && (o = o / 100 * 255), o < 0 || o > 255)\n return;\n r.push(Math.floor(o));\n }\n var s = a[1] || a[2] || a[3], u = a[1] && a[2] && a[3];\n if (s && !u)\n return;\n var l = n[4];\n if (l !== void 0) {\n if (l = parseFloat(l), l < 0 || l > 1)\n return;\n r.push(l);\n }\n }\n return r;\n}, kT = function(e) {\n return TT[e.toLowerCase()];\n}, ST = function(e) {\n return (st(e) ? e : null) || kT(e) || xT(e) || ET(e) || CT(e);\n}, TT = {\n // special colour names\n transparent: [0, 0, 0, 0],\n // NB alpha === 0\n // regular colours\n aliceblue: [240, 248, 255],\n antiquewhite: [250, 235, 215],\n aqua: [0, 255, 255],\n aquamarine: [127, 255, 212],\n azure: [240, 255, 255],\n beige: [245, 245, 220],\n bisque: [255, 228, 196],\n black: [0, 0, 0],\n blanchedalmond: [255, 235, 205],\n blue: [0, 0, 255],\n blueviolet: [138, 43, 226],\n brown: [165, 42, 42],\n burlywood: [222, 184, 135],\n cadetblue: [95, 158, 160],\n chartreuse: [127, 255, 0],\n chocolate: [210, 105, 30],\n coral: [255, 127, 80],\n cornflowerblue: [100, 149, 237],\n cornsilk: [255, 248, 220],\n crimson: [220, 20, 60],\n cyan: [0, 255, 255],\n darkblue: [0, 0, 139],\n darkcyan: [0, 139, 139],\n darkgoldenrod: [184, 134, 11],\n darkgray: [169, 169, 169],\n darkgreen: [0, 100, 0],\n darkgrey: [169, 169, 169],\n darkkhaki: [189, 183, 107],\n darkmagenta: [139, 0, 139],\n darkolivegreen: [85, 107, 47],\n darkorange: [255, 140, 0],\n darkorchid: [153, 50, 204],\n darkred: [139, 0, 0],\n darksalmon: [233, 150, 122],\n darkseagreen: [143, 188, 143],\n darkslateblue: [72, 61, 139],\n darkslategray: [47, 79, 79],\n darkslategrey: [47, 79, 79],\n darkturquoise: [0, 206, 209],\n darkviolet: [148, 0, 211],\n deeppink: [255, 20, 147],\n deepskyblue: [0, 191, 255],\n dimgray: [105, 105, 105],\n dimgrey: [105, 105, 105],\n dodgerblue: [30, 144, 255],\n firebrick: [178, 34, 34],\n floralwhite: [255, 250, 240],\n forestgreen: [34, 139, 34],\n fuchsia: [255, 0, 255],\n gainsboro: [220, 220, 220],\n ghostwhite: [248, 248, 255],\n gold: [255, 215, 0],\n goldenrod: [218, 165, 32],\n gray: [128, 128, 128],\n grey: [128, 128, 128],\n green: [0, 128, 0],\n greenyellow: [173, 255, 47],\n honeydew: [240, 255, 240],\n hotpink: [255, 105, 180],\n indianred: [205, 92, 92],\n indigo: [75, 0, 130],\n ivory: [255, 255, 240],\n khaki: [240, 230, 140],\n lavender: [230, 230, 250],\n lavenderblush: [255, 240, 245],\n lawngreen: [124, 252, 0],\n lemonchiffon: [255, 250, 205],\n lightblue: [173, 216, 230],\n lightcoral: [240, 128, 128],\n lightcyan: [224, 255, 255],\n lightgoldenrodyellow: [250, 250, 210],\n lightgray: [211, 211, 211],\n lightgreen: [144, 238, 144],\n lightgrey: [211, 211, 211],\n lightpink: [255, 182, 193],\n lightsalmon: [255, 160, 122],\n lightseagreen: [32, 178, 170],\n lightskyblue: [135, 206, 250],\n lightslategray: [119, 136, 153],\n lightslategrey: [119, 136, 153],\n lightsteelblue: [176, 196, 222],\n lightyellow: [255, 255, 224],\n lime: [0, 255, 0],\n limegreen: [50, 205, 50],\n linen: [250, 240, 230],\n magenta: [255, 0, 255],\n maroon: [128, 0, 0],\n mediumaquamarine: [102, 205, 170],\n mediumblue: [0, 0, 205],\n mediumorchid: [186, 85, 211],\n mediumpurple: [147, 112, 219],\n mediumseagreen: [60, 179, 113],\n mediumslateblue: [123, 104, 238],\n mediumspringgreen: [0, 250, 154],\n mediumturquoise: [72, 209, 204],\n mediumvioletred: [199, 21, 133],\n midnightblue: [25, 25, 112],\n mintcream: [245, 255, 250],\n mistyrose: [255, 228, 225],\n moccasin: [255, 228, 181],\n navajowhite: [255, 222, 173],\n navy: [0, 0, 128],\n oldlace: [253, 245, 230],\n olive: [128, 128, 0],\n olivedrab: [107, 142, 35],\n orange: [255, 165, 0],\n orangered: [255, 69, 0],\n orchid: [218, 112, 214],\n palegoldenrod: [238, 232, 170],\n palegreen: [152, 251, 152],\n paleturquoise: [175, 238, 238],\n palevioletred: [219, 112, 147],\n papayawhip: [255, 239, 213],\n peachpuff: [255, 218, 185],\n peru: [205, 133, 63],\n pink: [255, 192, 203],\n plum: [221, 160, 221],\n powderblue: [176, 224, 230],\n purple: [128, 0, 128],\n red: [255, 0, 0],\n rosybrown: [188, 143, 143],\n royalblue: [65, 105, 225],\n saddlebrown: [139, 69, 19],\n salmon: [250, 128, 114],\n sandybrown: [244, 164, 96],\n seagreen: [46, 139, 87],\n seashell: [255, 245, 238],\n sienna: [160, 82, 45],\n silver: [192, 192, 192],\n skyblue: [135, 206, 235],\n slateblue: [106, 90, 205],\n slategray: [112, 128, 144],\n slategrey: [112, 128, 144],\n snow: [255, 250, 250],\n springgreen: [0, 255, 127],\n steelblue: [70, 130, 180],\n tan: [210, 180, 140],\n teal: [0, 128, 128],\n thistle: [216, 191, 216],\n tomato: [255, 99, 71],\n turquoise: [64, 224, 208],\n violet: [238, 130, 238],\n wheat: [245, 222, 179],\n white: [255, 255, 255],\n whitesmoke: [245, 245, 245],\n yellow: [255, 255, 0],\n yellowgreen: [154, 205, 50]\n}, Jh = function(e) {\n for (var r = e.map, n = e.keys, a = n.length, i = 0; i < a; i++) {\n var o = n[i];\n if (Xe(o))\n throw Error(\"Tried to set map with object key\");\n i < n.length - 1 ? (r[o] == null && (r[o] = {}), r = r[o]) : r[o] = e.value;\n }\n}, ep = function(e) {\n for (var r = e.map, n = e.keys, a = n.length, i = 0; i < a; i++) {\n var o = n[i];\n if (Xe(o))\n throw Error(\"Tried to get map with object key\");\n if (r = r[o], r == null)\n return r;\n }\n return r;\n};\nfunction _T(t) {\n var e = typeof t;\n return t != null && (e == \"object\" || e == \"function\");\n}\nvar ga = _T, Mi = typeof globalThis < \"u\" ? globalThis : typeof window < \"u\" ? window : typeof global < \"u\" ? global : typeof self < \"u\" ? self : {};\nfunction DT(t, e) {\n return e = { exports: {} }, t(e, e.exports), e.exports;\n}\nvar PT = typeof Mi == \"object\" && Mi && Mi.Object === Object && Mi, OT = PT, LT = typeof self == \"object\" && self && self.Object === Object && self, IT = OT || LT || Function(\"return this\")(), el = IT, FT = function() {\n return el.Date.now();\n}, Fl = FT, AT = /\\s/;\nfunction MT(t) {\n for (var e = t.length; e-- && AT.test(t.charAt(e)); )\n ;\n return e;\n}\nvar BT = MT, NT = /^\\s+/;\nfunction $T(t) {\n return t && t.slice(0, BT(t) + 1).replace(NT, \"\");\n}\nvar RT = $T, zT = el.Symbol, ii = zT, tp = Object.prototype, VT = tp.hasOwnProperty, HT = tp.toString, Pi = ii ? ii.toStringTag : void 0;\nfunction qT(t) {\n var e = VT.call(t, Pi), r = t[Pi];\n try {\n t[Pi] = void 0;\n var n = !0;\n } catch {\n }\n var a = HT.call(t);\n return n && (e ? t[Pi] = r : delete t[Pi]), a;\n}\nvar KT = qT, UT = Object.prototype, GT = UT.toString;\nfunction WT(t) {\n return GT.call(t);\n}\nvar YT = WT, ZT = \"[object Null]\", XT = \"[object Undefined]\", nf = ii ? ii.toStringTag : void 0;\nfunction jT(t) {\n return t == null ? t === void 0 ? XT : ZT : nf && nf in Object(t) ? KT(t) : YT(t);\n}\nvar rp = jT;\nfunction QT(t) {\n return t != null && typeof t == \"object\";\n}\nvar JT = QT, e5 = \"[object Symbol]\";\nfunction t5(t) {\n return typeof t == \"symbol\" || JT(t) && rp(t) == e5;\n}\nvar Po = t5, af = NaN, r5 = /^[-+]0x[0-9a-f]+$/i, n5 = /^0b[01]+$/i, a5 = /^0o[0-7]+$/i, i5 = parseInt;\nfunction o5(t) {\n if (typeof t == \"number\")\n return t;\n if (Po(t))\n return af;\n if (ga(t)) {\n var e = typeof t.valueOf == \"function\" ? t.valueOf() : t;\n t = ga(e) ? e + \"\" : e;\n }\n if (typeof t != \"string\")\n return t === 0 ? t : +t;\n t = RT(t);\n var r = n5.test(t);\n return r || a5.test(t) ? i5(t.slice(2), r ? 2 : 8) : r5.test(t) ? af : +t;\n}\nvar of = o5, s5 = \"Expected a function\", l5 = Math.max, u5 = Math.min;\nfunction c5(t, e, r) {\n var n, a, i, o, s, u, l = 0, c = !1, d = !1, v = !0;\n if (typeof t != \"function\")\n throw new TypeError(s5);\n e = of(e) || 0, ga(r) && (c = !!r.leading, d = \"maxWait\" in r, i = d ? l5(of(r.maxWait) || 0, e) : i, v = \"trailing\" in r ? !!r.trailing : v);\n function h(E) {\n var x = n, T = a;\n return n = a = void 0, l = E, o = t.apply(T, x), o;\n }\n function f(E) {\n return l = E, s = setTimeout(g, e), c ? h(E) : o;\n }\n function p(E) {\n var x = E - u, T = E - l, k = e - x;\n return d ? u5(k, i - T) : k;\n }\n function m(E) {\n var x = E - u, T = E - l;\n return u === void 0 || x >= e || x < 0 || d && T >= i;\n }\n function g() {\n var E = Fl();\n if (m(E))\n return y(E);\n s = setTimeout(g, p(E));\n }\n function y(E) {\n return s = void 0, v && n ? h(E) : (n = a = void 0, o);\n }\n function b() {\n s !== void 0 && clearTimeout(s), l = 0, n = u = a = s = void 0;\n }\n function w() {\n return s === void 0 ? o : y(Fl());\n }\n function C() {\n var E = Fl(), x = m(E);\n if (n = arguments, a = this, u = E, x) {\n if (s === void 0)\n return f(u);\n if (d)\n return clearTimeout(s), s = setTimeout(g, e), h(u);\n }\n return s === void 0 && (s = setTimeout(g, e)), o;\n }\n return C.cancel = b, C.flush = w, C;\n}\nvar tl = c5, Al = Ot ? Ot.performance : null, np = Al && Al.now ? function() {\n return Al.now();\n} : function() {\n return Date.now();\n}, d5 = function() {\n if (Ot) {\n if (Ot.requestAnimationFrame)\n return function(t) {\n Ot.requestAnimationFrame(t);\n };\n if (Ot.mozRequestAnimationFrame)\n return function(t) {\n Ot.mozRequestAnimationFrame(t);\n };\n if (Ot.webkitRequestAnimationFrame)\n return function(t) {\n Ot.webkitRequestAnimationFrame(t);\n };\n if (Ot.msRequestAnimationFrame)\n return function(t) {\n Ot.msRequestAnimationFrame(t);\n };\n }\n return function(t) {\n t && setTimeout(function() {\n t(np());\n }, 1e3 / 60);\n };\n}(), Ps = function(e) {\n return d5(e);\n}, gn = np, Va = 9261, ap = 65599, Bi = 5381, ip = function(e) {\n for (var r = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : Va, n = r, a; a = e.next(), !a.done; )\n n = n * ap + a.value | 0;\n return n;\n}, ro = function(e) {\n var r = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : Va;\n return r * ap + e | 0;\n}, no = function(e) {\n var r = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : Bi;\n return (r << 5) + r + e | 0;\n}, f5 = function(e, r) {\n return e * 2097152 + r;\n}, Dn = function(e) {\n return e[0] * 2097152 + e[1];\n}, Go = function(e, r) {\n return [ro(e[0], r[0]), no(e[1], r[1])];\n}, v5 = function(e, r) {\n var n = {\n value: 0,\n done: !1\n }, a = 0, i = e.length, o = {\n next: function() {\n return a < i ? n.value = e[a++] : n.done = !0, n;\n }\n };\n return ip(o, r);\n}, ma = function(e, r) {\n var n = {\n value: 0,\n done: !1\n }, a = 0, i = e.length, o = {\n next: function() {\n return a < i ? n.value = e.charCodeAt(a++) : n.done = !0, n;\n }\n };\n return ip(o, r);\n}, op = function() {\n return h5(arguments);\n}, h5 = function(e) {\n for (var r, n = 0; n < e.length; n++) {\n var a = e[n];\n n === 0 ? r = ma(a) : r = ma(a, r);\n }\n return r;\n}, sf = !0, p5 = console.warn != null, g5 = console.trace != null, uc = Number.MAX_SAFE_INTEGER || 9007199254740991, sp = function() {\n return !0;\n}, Os = function() {\n return !1;\n}, lf = function() {\n return 0;\n}, cc = function() {\n}, yt = function(e) {\n throw new Error(e);\n}, lp = function(e) {\n if (e !== void 0)\n sf = !!e;\n else\n return sf;\n}, tt = function(e) {\n lp() && (p5 ? console.warn(e) : (console.log(e), g5 && console.trace()));\n}, m5 = function(e) {\n return Re({}, e);\n}, Zr = function(e) {\n return e == null ? e : st(e) ? e.slice() : Xe(e) ? m5(e) : e;\n}, y5 = function(e) {\n return e.slice();\n}, up = function(e, r) {\n for (\n // loop :)\n r = e = \"\";\n // b - result , a - numeric letiable\n e++ < 36;\n //\n r += e * 51 & 52 ? (\n // return a random number or 4\n (e ^ 15 ? (\n // generate a random number from 0 to 15\n 8 ^ Math.random() * (e ^ 20 ? 16 : 4)\n ) : 4).toString(16)\n ) : \"-\"\n )\n ;\n return r;\n}, b5 = {}, cp = function() {\n return b5;\n}, Wt = function(e) {\n var r = Object.keys(e);\n return function(n) {\n for (var a = {}, i = 0; i < r.length; i++) {\n var o = r[i], s = n == null ? void 0 : n[o];\n a[o] = s === void 0 ? e[o] : s;\n }\n return a;\n };\n}, Kn = function(e, r, n) {\n for (var a = e.length - 1; a >= 0; a--)\n e[a] === r && e.splice(a, 1);\n}, dc = function(e) {\n e.splice(0, e.length);\n}, w5 = function(e, r) {\n for (var n = 0; n < r.length; n++) {\n var a = r[n];\n e.push(a);\n }\n}, Nr = function(e, r, n) {\n return n && (r = jh(n, r)), e[r];\n}, An = function(e, r, n, a) {\n n && (r = jh(n, r)), e[r] = a;\n}, x5 = /* @__PURE__ */ function() {\n function t() {\n ic(this, t), this._obj = {};\n }\n return oc(t, [{\n key: \"set\",\n value: function(r, n) {\n return this._obj[r] = n, this;\n }\n }, {\n key: \"delete\",\n value: function(r) {\n return this._obj[r] = void 0, this;\n }\n }, {\n key: \"clear\",\n value: function() {\n this._obj = {};\n }\n }, {\n key: \"has\",\n value: function(r) {\n return this._obj[r] !== void 0;\n }\n }, {\n key: \"get\",\n value: function(r) {\n return this._obj[r];\n }\n }]), t;\n}(), Xr = typeof Map < \"u\" ? Map : x5, C5 = \"undefined\", E5 = /* @__PURE__ */ function() {\n function t(e) {\n if (ic(this, t), this._obj = /* @__PURE__ */ Object.create(null), this.size = 0, e != null) {\n var r;\n e.instanceString != null && e.instanceString() === this.instanceString() ? r = e.toArray() : r = e;\n for (var n = 0; n < r.length; n++)\n this.add(r[n]);\n }\n }\n return oc(t, [{\n key: \"instanceString\",\n value: function() {\n return \"set\";\n }\n }, {\n key: \"add\",\n value: function(r) {\n var n = this._obj;\n n[r] !== 1 && (n[r] = 1, this.size++);\n }\n }, {\n key: \"delete\",\n value: function(r) {\n var n = this._obj;\n n[r] === 1 && (n[r] = 0, this.size--);\n }\n }, {\n key: \"clear\",\n value: function() {\n this._obj = /* @__PURE__ */ Object.create(null);\n }\n }, {\n key: \"has\",\n value: function(r) {\n return this._obj[r] === 1;\n }\n }, {\n key: \"toArray\",\n value: function() {\n var r = this;\n return Object.keys(this._obj).filter(function(n) {\n return r.has(n);\n });\n }\n }, {\n key: \"forEach\",\n value: function(r, n) {\n return this.toArray().forEach(r, n);\n }\n }]), t;\n}(), vi = (typeof Set > \"u\" ? \"undefined\" : Ft(Set)) !== C5 ? Set : E5, rl = function(e, r) {\n var n = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : !0;\n if (e === void 0 || r === void 0 || !sc(e)) {\n yt(\"An element must have a core reference and parameters set\");\n return;\n }\n var a = r.group;\n if (a == null && (r.data && r.data.source != null && r.data.target != null ? a = \"edges\" : a = \"nodes\"), a !== \"nodes\" && a !== \"edges\") {\n yt(\"An element must be of type `nodes` or `edges`; you specified `\" + a + \"`\");\n return;\n }\n this.length = 1, this[0] = this;\n var i = this._private = {\n cy: e,\n single: !0,\n // indicates this is an element\n data: r.data || {},\n // data object\n position: r.position || {\n x: 0,\n y: 0\n },\n // (x, y) position pair\n autoWidth: void 0,\n // width and height of nodes calculated by the renderer when set to special 'auto' value\n autoHeight: void 0,\n autoPadding: void 0,\n compoundBoundsClean: !1,\n // whether the compound dimensions need to be recalculated the next time dimensions are read\n listeners: [],\n // array of bound listeners\n group: a,\n // string; 'nodes' or 'edges'\n style: {},\n // properties as set by the style\n rstyle: {},\n // properties for style sent from the renderer to the core\n styleCxts: [],\n // applied style contexts from the styler\n styleKeys: {},\n // per-group keys of style property values\n removed: !0,\n // whether it's inside the vis; true if removed (set true here since we call restore)\n selected: !!r.selected,\n // whether it's selected\n selectable: r.selectable === void 0 ? !0 : !!r.selectable,\n // whether it's selectable\n locked: !!r.locked,\n // whether the element is locked (cannot be moved)\n grabbed: !1,\n // whether the element is grabbed by the mouse; renderer sets this privately\n grabbable: r.grabbable === void 0 ? !0 : !!r.grabbable,\n // whether the element can be grabbed\n pannable: r.pannable === void 0 ? a === \"edges\" : !!r.pannable,\n // whether the element has passthrough panning enabled\n active: !1,\n // whether the element is active from user interaction\n classes: new vi(),\n // map ( className => true )\n animation: {\n // object for currently-running animations\n current: [],\n queue: []\n },\n rscratch: {},\n // object in which the renderer can store information\n scratch: r.scratch || {},\n // scratch objects\n edges: [],\n // array of connected edges\n children: [],\n // array of children\n parent: r.parent && r.parent.isNode() ? r.parent : null,\n // parent ref\n traversalCache: {},\n // cache of output of traversal functions\n backgrounding: !1,\n // whether background images are loading\n bbCache: null,\n // cache of the current bounding box\n bbCacheShift: {\n x: 0,\n y: 0\n },\n // shift applied to cached bb to be applied on next get\n bodyBounds: null,\n // bounds cache of element body, w/o overlay\n overlayBounds: null,\n // bounds cache of element body, including overlay\n labelBounds: {\n // bounds cache of labels\n all: null,\n source: null,\n target: null,\n main: null\n },\n arrowBounds: {\n // bounds cache of edge arrows\n source: null,\n target: null,\n \"mid-source\": null,\n \"mid-target\": null\n }\n };\n if (i.position.x == null && (i.position.x = 0), i.position.y == null && (i.position.y = 0), r.renderedPosition) {\n var o = r.renderedPosition, s = e.pan(), u = e.zoom();\n i.position = {\n x: (o.x - s.x) / u,\n y: (o.y - s.y) / u\n };\n }\n var l = [];\n st(r.classes) ? l = r.classes : Fe(r.classes) && (l = r.classes.split(/\\s+/));\n for (var c = 0, d = l.length; c < d; c++) {\n var v = l[c];\n !v || v === \"\" || i.classes.add(v);\n }\n this.createEmitter();\n var h = r.style || r.css;\n h && (tt(\"Setting a `style` bypass at element creation should be done only when absolutely necessary. Try to use the stylesheet instead.\"), this.style(h)), (n === void 0 || n) && this.restore();\n}, uf = function(e) {\n return e = {\n bfs: e.bfs || !e.dfs,\n dfs: e.dfs || !e.bfs\n }, function(n, a, i) {\n var o;\n Xe(n) && !yr(n) && (o = n, n = o.roots || o.root, a = o.visit, i = o.directed), i = arguments.length === 2 && !pt(a) ? a : i, a = pt(a) ? a : function() {\n };\n for (var s = this._private.cy, u = n = Fe(n) ? this.filter(n) : n, l = [], c = [], d = {}, v = {}, h = {}, f = 0, p, m = this.byGroup(), g = m.nodes, y = m.edges, b = 0; b < u.length; b++) {\n var w = u[b], C = w.id();\n w.isNode() && (l.unshift(w), e.bfs && (h[C] = !0, c.push(w)), v[C] = 0);\n }\n for (var E = function() {\n var F = e.bfs ? l.shift() : l.pop(), L = F.id();\n if (e.dfs) {\n if (h[L])\n return \"continue\";\n h[L] = !0, c.push(F);\n }\n var B = v[L], I = d[L], M = I != null ? I.source() : null, A = I != null ? I.target() : null, R = I == null ? void 0 : F.same(M) ? A[0] : M[0], K = void 0;\n if (K = a(F, I, R, f++, B), K === !0)\n return p = F, \"break\";\n if (K === !1)\n return \"break\";\n for (var H = F.connectedEdges().filter(function(ne) {\n return (!i || ne.source().same(F)) && y.has(ne);\n }), q = 0; q < H.length; q++) {\n var ee = H[q], se = ee.connectedNodes().filter(function(ne) {\n return !ne.same(F) && g.has(ne);\n }), oe = se.id();\n se.length !== 0 && !h[oe] && (se = se[0], l.push(se), e.bfs && (h[oe] = !0, c.push(se)), d[oe] = ee, v[oe] = v[L] + 1);\n }\n }; l.length !== 0; ) {\n var x = E();\n if (x !== \"continue\" && x === \"break\")\n break;\n }\n for (var T = s.collection(), k = 0; k < c.length; k++) {\n var _ = c[k], D = d[_.id()];\n D != null && T.push(D), T.push(_);\n }\n return {\n path: s.collection(T),\n found: s.collection(p)\n };\n };\n}, ao = {\n breadthFirstSearch: uf({\n bfs: !0\n }),\n depthFirstSearch: uf({\n dfs: !0\n })\n};\nao.bfs = ao.breadthFirstSearch;\nao.dfs = ao.depthFirstSearch;\nvar k5 = DT(function(t, e) {\n (function() {\n var r, n, a, i, o, s, u, l, c, d, v, h, f, p, m;\n a = Math.floor, d = Math.min, n = function(g, y) {\n return g < y ? -1 : g > y ? 1 : 0;\n }, c = function(g, y, b, w, C) {\n var E;\n if (b == null && (b = 0), C == null && (C = n), b < 0)\n throw new Error(\"lo must be non-negative\");\n for (w == null && (w = g.length); b < w; )\n E = a((b + w) / 2), C(y, g[E]) < 0 ? w = E : b = E + 1;\n return [].splice.apply(g, [b, b - b].concat(y)), y;\n }, s = function(g, y, b) {\n return b == null && (b = n), g.push(y), p(g, 0, g.length - 1, b);\n }, o = function(g, y) {\n var b, w;\n return y == null && (y = n), b = g.pop(), g.length ? (w = g[0], g[0] = b, m(g, 0, y)) : w = b, w;\n }, l = function(g, y, b) {\n var w;\n return b == null && (b = n), w = g[0], g[0] = y, m(g, 0, b), w;\n }, u = function(g, y, b) {\n var w;\n return b == null && (b = n), g.length && b(g[0], y) < 0 && (w = [g[0], y], y = w[0], g[0] = w[1], m(g, 0, b)), y;\n }, i = function(g, y) {\n var b, w, C, E, x, T;\n for (y == null && (y = n), E = (function() {\n T = [];\n for (var k = 0, _ = a(g.length / 2); 0 <= _ ? k < _ : k > _; 0 <= _ ? k++ : k--)\n T.push(k);\n return T;\n }).apply(this).reverse(), x = [], w = 0, C = E.length; w < C; w++)\n b = E[w], x.push(m(g, b, y));\n return x;\n }, f = function(g, y, b) {\n var w;\n if (b == null && (b = n), w = g.indexOf(y), w !== -1)\n return p(g, 0, w, b), m(g, w, b);\n }, v = function(g, y, b) {\n var w, C, E, x, T;\n if (b == null && (b = n), C = g.slice(0, y), !C.length)\n return C;\n for (i(C, b), T = g.slice(y), E = 0, x = T.length; E < x; E++)\n w = T[E], u(C, w, b);\n return C.sort(b).reverse();\n }, h = function(g, y, b) {\n var w, C, E, x, T, k, _, D, O;\n if (b == null && (b = n), y * 10 <= g.length) {\n if (E = g.slice(0, y).sort(b), !E.length)\n return E;\n for (C = E[E.length - 1], _ = g.slice(y), x = 0, k = _.length; x < k; x++)\n w = _[x], b(w, C) < 0 && (c(E, w, 0, null, b), E.pop(), C = E[E.length - 1]);\n return E;\n }\n for (i(g, b), O = [], T = 0, D = d(y, g.length); 0 <= D ? T < D : T > D; 0 <= D ? ++T : --T)\n O.push(o(g, b));\n return O;\n }, p = function(g, y, b, w) {\n var C, E, x;\n for (w == null && (w = n), C = g[b]; b > y; ) {\n if (x = b - 1 >> 1, E = g[x], w(C, E) < 0) {\n g[b] = E, b = x;\n continue;\n }\n break;\n }\n return g[b] = C;\n }, m = function(g, y, b) {\n var w, C, E, x, T;\n for (b == null && (b = n), C = g.length, T = y, E = g[y], w = 2 * y + 1; w < C; )\n x = w + 1, x < C && !(b(g[w], g[x]) < 0) && (w = x), g[y] = g[w], y = w, w = 2 * y + 1;\n return g[y] = E, p(g, T, y, b);\n }, r = function() {\n g.push = s, g.pop = o, g.replace = l, g.pushpop = u, g.heapify = i, g.updateItem = f, g.nlargest = v, g.nsmallest = h;\n function g(y) {\n this.cmp = y ?? n, this.nodes = [];\n }\n return g.prototype.push = function(y) {\n return s(this.nodes, y, this.cmp);\n }, g.prototype.pop = function() {\n return o(this.nodes, this.cmp);\n }, g.prototype.peek = function() {\n return this.nodes[0];\n }, g.prototype.contains = function(y) {\n return this.nodes.indexOf(y) !== -1;\n }, g.prototype.replace = function(y) {\n return l(this.nodes, y, this.cmp);\n }, g.prototype.pushpop = function(y) {\n return u(this.nodes, y, this.cmp);\n }, g.prototype.heapify = function() {\n return i(this.nodes, this.cmp);\n }, g.prototype.updateItem = function(y) {\n return f(this.nodes, y, this.cmp);\n }, g.prototype.clear = function() {\n return this.nodes = [];\n }, g.prototype.empty = function() {\n return this.nodes.length === 0;\n }, g.prototype.size = function() {\n return this.nodes.length;\n }, g.prototype.clone = function() {\n var y;\n return y = new g(), y.nodes = this.nodes.slice(0), y;\n }, g.prototype.toArray = function() {\n return this.nodes.slice(0);\n }, g.prototype.insert = g.prototype.push, g.prototype.top = g.prototype.peek, g.prototype.front = g.prototype.peek, g.prototype.has = g.prototype.contains, g.prototype.copy = g.prototype.clone, g;\n }(), function(g, y) {\n return t.exports = y();\n }(this, function() {\n return r;\n });\n }).call(Mi);\n}), Oo = k5, S5 = Wt({\n root: null,\n weight: function(e) {\n return 1;\n },\n directed: !1\n}), T5 = {\n dijkstra: function(e) {\n if (!Xe(e)) {\n var r = arguments;\n e = {\n root: r[0],\n weight: r[1],\n directed: r[2]\n };\n }\n var n = S5(e), a = n.root, i = n.weight, o = n.directed, s = this, u = i, l = Fe(a) ? this.filter(a)[0] : a[0], c = {}, d = {}, v = {}, h = this.byGroup(), f = h.nodes, p = h.edges;\n p.unmergeBy(function(B) {\n return B.isLoop();\n });\n for (var m = function(I) {\n return c[I.id()];\n }, g = function(I, M) {\n c[I.id()] = M, y.updateItem(I);\n }, y = new Oo(function(B, I) {\n return m(B) - m(I);\n }), b = 0; b < f.length; b++) {\n var w = f[b];\n c[w.id()] = w.same(l) ? 0 : 1 / 0, y.push(w);\n }\n for (var C = function(I, M) {\n for (var A = (o ? I.edgesTo(M) : I.edgesWith(M)).intersect(p), R = 1 / 0, K, H = 0; H < A.length; H++) {\n var q = A[H], ee = u(q);\n (ee < R || !K) && (R = ee, K = q);\n }\n return {\n edge: K,\n dist: R\n };\n }; y.size() > 0; ) {\n var E = y.pop(), x = m(E), T = E.id();\n if (v[T] = x, x !== 1 / 0)\n for (var k = E.neighborhood().intersect(f), _ = 0; _ < k.length; _++) {\n var D = k[_], O = D.id(), F = C(E, D), L = x + F.dist;\n L < m(D) && (g(D, L), d[O] = {\n node: E,\n edge: F.edge\n });\n }\n }\n return {\n distanceTo: function(I) {\n var M = Fe(I) ? f.filter(I)[0] : I[0];\n return v[M.id()];\n },\n pathTo: function(I) {\n var M = Fe(I) ? f.filter(I)[0] : I[0], A = [], R = M, K = R.id();\n if (M.length > 0)\n for (A.unshift(M); d[K]; ) {\n var H = d[K];\n A.unshift(H.edge), A.unshift(H.node), R = H.node, K = R.id();\n }\n return s.spawn(A);\n }\n };\n }\n}, _5 = {\n // kruskal's algorithm (finds min spanning tree, assuming undirected graph)\n // implemented from pseudocode from wikipedia\n kruskal: function(e) {\n e = e || function(b) {\n return 1;\n };\n for (var r = this.byGroup(), n = r.nodes, a = r.edges, i = n.length, o = new Array(i), s = n, u = function(w) {\n for (var C = 0; C < o.length; C++) {\n var E = o[C];\n if (E.has(w))\n return C;\n }\n }, l = 0; l < i; l++)\n o[l] = this.spawn(n[l]);\n for (var c = a.sort(function(b, w) {\n return e(b) - e(w);\n }), d = 0; d < c.length; d++) {\n var v = c[d], h = v.source()[0], f = v.target()[0], p = u(h), m = u(f), g = o[p], y = o[m];\n p !== m && (s.merge(v), g.merge(y), o.splice(m, 1));\n }\n return s;\n }\n}, D5 = Wt({\n root: null,\n goal: null,\n weight: function(e) {\n return 1;\n },\n heuristic: function(e) {\n return 0;\n },\n directed: !1\n}), P5 = {\n // Implemented from pseudocode from wikipedia\n aStar: function(e) {\n var r = this.cy(), n = D5(e), a = n.root, i = n.goal, o = n.heuristic, s = n.directed, u = n.weight;\n a = r.collection(a)[0], i = r.collection(i)[0];\n var l = a.id(), c = i.id(), d = {}, v = {}, h = {}, f = new Oo(function(K, H) {\n return v[K.id()] - v[H.id()];\n }), p = new vi(), m = {}, g = {}, y = function(H, q) {\n f.push(H), p.add(q);\n }, b, w, C = function() {\n b = f.pop(), w = b.id(), p.delete(w);\n }, E = function(H) {\n return p.has(H);\n };\n y(a, l), d[l] = 0, v[l] = o(a);\n for (var x = 0; f.size() > 0; ) {\n if (C(), x++, w === c) {\n for (var T = [], k = i, _ = c, D = g[_]; T.unshift(k), D != null && T.unshift(D), k = m[_], k != null; )\n _ = k.id(), D = g[_];\n return {\n found: !0,\n distance: d[w],\n path: this.spawn(T),\n steps: x\n };\n }\n h[w] = !0;\n for (var O = b._private.edges, F = 0; F < O.length; F++) {\n var L = O[F];\n if (this.hasElementWithId(L.id()) && !(s && L.data(\"source\") !== w)) {\n var B = L.source(), I = L.target(), M = B.id() !== w ? B : I, A = M.id();\n if (this.hasElementWithId(A) && !h[A]) {\n var R = d[w] + u(L);\n if (!E(A)) {\n d[A] = R, v[A] = R + o(M), y(M, A), m[A] = b, g[A] = L;\n continue;\n }\n R < d[A] && (d[A] = R, v[A] = R + o(M), m[A] = b, g[A] = L);\n }\n }\n }\n }\n return {\n found: !1,\n distance: void 0,\n path: void 0,\n steps: x\n };\n }\n}, O5 = Wt({\n weight: function(e) {\n return 1;\n },\n directed: !1\n}), L5 = {\n // Implemented from pseudocode from wikipedia\n floydWarshall: function(e) {\n for (var r = this.cy(), n = O5(e), a = n.weight, i = n.directed, o = a, s = this.byGroup(), u = s.nodes, l = s.edges, c = u.length, d = c * c, v = function(ee) {\n return u.indexOf(ee);\n }, h = function(ee) {\n return u[ee];\n }, f = new Array(d), p = 0; p < d; p++) {\n var m = p % c, g = (p - m) / c;\n g === m ? f[p] = 0 : f[p] = 1 / 0;\n }\n for (var y = new Array(d), b = new Array(d), w = 0; w < l.length; w++) {\n var C = l[w], E = C.source()[0], x = C.target()[0];\n if (E !== x) {\n var T = v(E), k = v(x), _ = T * c + k, D = o(C);\n if (f[_] > D && (f[_] = D, y[_] = k, b[_] = C), !i) {\n var O = k * c + T;\n !i && f[O] > D && (f[O] = D, y[O] = T, b[O] = C);\n }\n }\n }\n for (var F = 0; F < c; F++)\n for (var L = 0; L < c; L++)\n for (var B = L * c + F, I = 0; I < c; I++) {\n var M = L * c + I, A = F * c + I;\n f[B] + f[A] < f[M] && (f[M] = f[B] + f[A], y[M] = y[B]);\n }\n var R = function(ee) {\n return (Fe(ee) ? r.filter(ee) : ee)[0];\n }, K = function(ee) {\n return v(R(ee));\n }, H = {\n distance: function(ee, se) {\n var oe = K(ee), ne = K(se);\n return f[oe * c + ne];\n },\n path: function(ee, se) {\n var oe = K(ee), ne = K(se), ue = h(oe);\n if (oe === ne)\n return ue.collection();\n if (y[oe * c + ne] == null)\n return r.collection();\n var te = r.collection(), $ = oe, G;\n for (te.merge(ue); oe !== ne; )\n $ = oe, oe = y[oe * c + ne], G = b[$ * c + oe], te.merge(G), te.merge(h(oe));\n return te;\n }\n };\n return H;\n }\n // floydWarshall\n}, I5 = Wt({\n weight: function(e) {\n return 1;\n },\n directed: !1,\n root: null\n}), F5 = {\n // Implemented from pseudocode from wikipedia\n bellmanFord: function(e) {\n var r = this, n = I5(e), a = n.weight, i = n.directed, o = n.root, s = a, u = this, l = this.cy(), c = this.byGroup(), d = c.edges, v = c.nodes, h = v.length, f = new Xr(), p = !1, m = [];\n o = l.collection(o)[0], d.unmergeBy(function(ke) {\n return ke.isLoop();\n });\n for (var g = d.length, y = function(Ce) {\n var De = f.get(Ce.id());\n return De || (De = {}, f.set(Ce.id(), De)), De;\n }, b = function(Ce) {\n return (Fe(Ce) ? l.$(Ce) : Ce)[0];\n }, w = function(Ce) {\n return y(b(Ce)).dist;\n }, C = function(Ce) {\n for (var De = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : o, qe = b(Ce), Ke = [], Be = qe; ; ) {\n if (Be == null)\n return r.spawn();\n var Ge = y(Be), le = Ge.edge, S = Ge.pred;\n if (Ke.unshift(Be[0]), Be.same(De) && Ke.length > 0)\n break;\n le != null && Ke.unshift(le), Be = S;\n }\n return u.spawn(Ke);\n }, E = 0; E < h; E++) {\n var x = v[E], T = y(x);\n x.same(o) ? T.dist = 0 : T.dist = 1 / 0, T.pred = null, T.edge = null;\n }\n for (var k = !1, _ = function(Ce, De, qe, Ke, Be, Ge) {\n var le = Ke.dist + Ge;\n le < Be.dist && !qe.same(Ke.edge) && (Be.dist = le, Be.pred = Ce, Be.edge = qe, k = !0);\n }, D = 1; D < h; D++) {\n k = !1;\n for (var O = 0; O < g; O++) {\n var F = d[O], L = F.source(), B = F.target(), I = s(F), M = y(L), A = y(B);\n _(L, B, F, M, A, I), i || _(B, L, F, A, M, I);\n }\n if (!k)\n break;\n }\n if (k)\n for (var R = [], K = 0; K < g; K++) {\n var H = d[K], q = H.source(), ee = H.target(), se = s(H), oe = y(q).dist, ne = y(ee).dist;\n if (oe + se < ne || !i && ne + se < oe)\n if (p || (tt(\"Graph contains a negative weight cycle for Bellman-Ford\"), p = !0), e.findNegativeWeightCycles !== !1) {\n var ue = [];\n oe + se < ne && ue.push(q), !i && ne + se < oe && ue.push(ee);\n for (var te = ue.length, $ = 0; $ < te; $++) {\n var G = ue[$], Q = [G];\n Q.push(y(G).edge);\n for (var ge = y(G).pred; Q.indexOf(ge) === -1; )\n Q.push(ge), Q.push(y(ge).edge), ge = y(ge).pred;\n Q = Q.slice(Q.indexOf(ge));\n for (var Ee = Q[0].id(), fe = 0, me = 2; me < Q.length; me += 2)\n Q[me].id() < Ee && (Ee = Q[me].id(), fe = me);\n Q = Q.slice(fe).concat(Q.slice(0, fe)), Q.push(Q[0]);\n var xe = Q.map(function(ke) {\n return ke.id();\n }).join(\",\");\n R.indexOf(xe) === -1 && (m.push(u.spawn(Q)), R.push(xe));\n }\n } else\n break;\n }\n return {\n distanceTo: w,\n pathTo: C,\n hasNegativeWeightCycle: p,\n negativeWeightCycles: m\n };\n }\n // bellmanFord\n}, A5 = Math.sqrt(2), M5 = function(e, r, n) {\n n.length === 0 && yt(\"Karger-Stein must be run on a connected (sub)graph\");\n for (var a = n[e], i = a[1], o = a[2], s = r[i], u = r[o], l = n, c = l.length - 1; c >= 0; c--) {\n var d = l[c], v = d[1], h = d[2];\n (r[v] === s && r[h] === u || r[v] === u && r[h] === s) && l.splice(c, 1);\n }\n for (var f = 0; f < l.length; f++) {\n var p = l[f];\n p[1] === u ? (l[f] = p.slice(), l[f][1] = s) : p[2] === u && (l[f] = p.slice(), l[f][2] = s);\n }\n for (var m = 0; m < r.length; m++)\n r[m] === u && (r[m] = s);\n return l;\n}, Ml = function(e, r, n, a) {\n for (; n > a; ) {\n var i = Math.floor(Math.random() * r.length);\n r = M5(i, e, r), n--;\n }\n return r;\n}, B5 = {\n // Computes the minimum cut of an undirected graph\n // Returns the correct answer with high probability\n kargerStein: function() {\n var e = this, r = this.byGroup(), n = r.nodes, a = r.edges;\n a.unmergeBy(function(A) {\n return A.isLoop();\n });\n var i = n.length, o = a.length, s = Math.ceil(Math.pow(Math.log(i) / Math.LN2, 2)), u = Math.floor(i / A5);\n if (i < 2) {\n yt(\"At least 2 nodes are required for Karger-Stein algorithm\");\n return;\n }\n for (var l = [], c = 0; c < o; c++) {\n var d = a[c];\n l.push([c, n.indexOf(d.source()), n.indexOf(d.target())]);\n }\n for (var v = 1 / 0, h = [], f = new Array(i), p = new Array(i), m = new Array(i), g = function(R, K) {\n for (var H = 0; H < i; H++)\n K[H] = R[H];\n }, y = 0; y <= s; y++) {\n for (var b = 0; b < i; b++)\n p[b] = b;\n var w = Ml(p, l.slice(), i, u), C = w.slice();\n g(p, m);\n var E = Ml(p, w, u, 2), x = Ml(m, C, u, 2);\n E.length <= x.length && E.length < v ? (v = E.length, h = E, g(p, f)) : x.length <= E.length && x.length < v && (v = x.length, h = x, g(m, f));\n }\n for (var T = this.spawn(h.map(function(A) {\n return a[A[0]];\n })), k = this.spawn(), _ = this.spawn(), D = f[0], O = 0; O < f.length; O++) {\n var F = f[O], L = n[O];\n F === D ? k.merge(L) : _.merge(L);\n }\n var B = function(R) {\n var K = e.spawn();\n return R.forEach(function(H) {\n K.merge(H), H.connectedEdges().forEach(function(q) {\n e.contains(q) && !T.contains(q) && K.merge(q);\n });\n }), K;\n }, I = [B(k), B(_)], M = {\n cut: T,\n components: I,\n // n.b. partitions are included to be compatible with the old api spec\n // (could be removed in a future major version)\n partition1: k,\n partition2: _\n };\n return M;\n }\n}, N5 = function(e) {\n return {\n x: e.x,\n y: e.y\n };\n}, nl = function(e, r, n) {\n return {\n x: e.x * r + n.x,\n y: e.y * r + n.y\n };\n}, dp = function(e, r, n) {\n return {\n x: (e.x - n.x) / r,\n y: (e.y - n.y) / r\n };\n}, Ha = function(e) {\n return {\n x: e[0],\n y: e[1]\n };\n}, $5 = function(e) {\n for (var r = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : 0, n = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : e.length, a = 1 / 0, i = r; i < n; i++) {\n var o = e[i];\n isFinite(o) && (a = Math.min(o, a));\n }\n return a;\n}, R5 = function(e) {\n for (var r = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : 0, n = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : e.length, a = -1 / 0, i = r; i < n; i++) {\n var o = e[i];\n isFinite(o) && (a = Math.max(o, a));\n }\n return a;\n}, z5 = function(e) {\n for (var r = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : 0, n = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : e.length, a = 0, i = 0, o = r; o < n; o++) {\n var s = e[o];\n isFinite(s) && (a += s, i++);\n }\n return a / i;\n}, V5 = function(e) {\n var r = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : 0, n = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : e.length, a = arguments.length > 3 && arguments[3] !== void 0 ? arguments[3] : !0, i = arguments.length > 4 && arguments[4] !== void 0 ? arguments[4] : !0, o = arguments.length > 5 && arguments[5] !== void 0 ? arguments[5] : !0;\n a ? e = e.slice(r, n) : (n < e.length && e.splice(n, e.length - n), r > 0 && e.splice(0, r));\n for (var s = 0, u = e.length - 1; u >= 0; u--) {\n var l = e[u];\n o ? isFinite(l) || (e[u] = -1 / 0, s++) : e.splice(u, 1);\n }\n i && e.sort(function(v, h) {\n return v - h;\n });\n var c = e.length, d = Math.floor(c / 2);\n return c % 2 !== 0 ? e[d + 1 + s] : (e[d - 1 + s] + e[d + s]) / 2;\n}, H5 = function(e) {\n return Math.PI * e / 180;\n}, Wo = function(e, r) {\n return Math.atan2(r, e) - Math.PI / 2;\n}, fc = Math.log2 || function(t) {\n return Math.log(t) / Math.log(2);\n}, fp = function(e) {\n return e > 0 ? 1 : e < 0 ? -1 : 0;\n}, ya = function(e, r) {\n return Math.sqrt(ta(e, r));\n}, ta = function(e, r) {\n var n = r.x - e.x, a = r.y - e.y;\n return n * n + a * a;\n}, q5 = function(e) {\n for (var r = e.length, n = 0, a = 0; a < r; a++)\n n += e[a];\n for (var i = 0; i < r; i++)\n e[i] = e[i] / n;\n return e;\n}, Nt = function(e, r, n, a) {\n return (1 - a) * (1 - a) * e + 2 * (1 - a) * a * r + a * a * n;\n}, Ga = function(e, r, n, a) {\n return {\n x: Nt(e.x, r.x, n.x, a),\n y: Nt(e.y, r.y, n.y, a)\n };\n}, K5 = function(e, r, n, a) {\n var i = {\n x: r.x - e.x,\n y: r.y - e.y\n }, o = ya(e, r), s = {\n x: i.x / o,\n y: i.y / o\n };\n return n = n ?? 0, a = a ?? n * o, {\n x: e.x + s.x * a,\n y: e.y + s.y * a\n };\n}, io = function(e, r, n) {\n return Math.max(e, Math.min(n, r));\n}, pr = function(e) {\n if (e == null)\n return {\n x1: 1 / 0,\n y1: 1 / 0,\n x2: -1 / 0,\n y2: -1 / 0,\n w: 0,\n h: 0\n };\n if (e.x1 != null && e.y1 != null) {\n if (e.x2 != null && e.y2 != null && e.x2 >= e.x1 && e.y2 >= e.y1)\n return {\n x1: e.x1,\n y1: e.y1,\n x2: e.x2,\n y2: e.y2,\n w: e.x2 - e.x1,\n h: e.y2 - e.y1\n };\n if (e.w != null && e.h != null && e.w >= 0 && e.h >= 0)\n return {\n x1: e.x1,\n y1: e.y1,\n x2: e.x1 + e.w,\n y2: e.y1 + e.h,\n w: e.w,\n h: e.h\n };\n }\n}, U5 = function(e) {\n return {\n x1: e.x1,\n x2: e.x2,\n w: e.w,\n y1: e.y1,\n y2: e.y2,\n h: e.h\n };\n}, G5 = function(e) {\n e.x1 = 1 / 0, e.y1 = 1 / 0, e.x2 = -1 / 0, e.y2 = -1 / 0, e.w = 0, e.h = 0;\n}, W5 = function(e, r, n) {\n return {\n x1: e.x1 + r,\n x2: e.x2 + r,\n y1: e.y1 + n,\n y2: e.y2 + n,\n w: e.w,\n h: e.h\n };\n}, vp = function(e, r) {\n e.x1 = Math.min(e.x1, r.x1), e.x2 = Math.max(e.x2, r.x2), e.w = e.x2 - e.x1, e.y1 = Math.min(e.y1, r.y1), e.y2 = Math.max(e.y2, r.y2), e.h = e.y2 - e.y1;\n}, Y5 = function(e, r, n) {\n e.x1 = Math.min(e.x1, r), e.x2 = Math.max(e.x2, r), e.w = e.x2 - e.x1, e.y1 = Math.min(e.y1, n), e.y2 = Math.max(e.y2, n), e.h = e.y2 - e.y1;\n}, us = function(e) {\n var r = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : 0;\n return e.x1 -= r, e.x2 += r, e.y1 -= r, e.y2 += r, e.w = e.x2 - e.x1, e.h = e.y2 - e.y1, e;\n}, cs = function(e) {\n var r = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : [0], n, a, i, o;\n if (r.length === 1)\n n = a = i = o = r[0];\n else if (r.length === 2)\n n = i = r[0], o = a = r[1];\n else if (r.length === 4) {\n var s = Mr(r, 4);\n n = s[0], a = s[1], i = s[2], o = s[3];\n }\n return e.x1 -= o, e.x2 += a, e.y1 -= n, e.y2 += i, e.w = e.x2 - e.x1, e.h = e.y2 - e.y1, e;\n}, cf = function(e, r) {\n e.x1 = r.x1, e.y1 = r.y1, e.x2 = r.x2, e.y2 = r.y2, e.w = e.x2 - e.x1, e.h = e.y2 - e.y1;\n}, vc = function(e, r) {\n return !(e.x1 > r.x2 || r.x1 > e.x2 || e.x2 < r.x1 || r.x2 < e.x1 || e.y2 < r.y1 || r.y2 < e.y1 || e.y1 > r.y2 || r.y1 > e.y2);\n}, oi = function(e, r, n) {\n return e.x1 <= r && r <= e.x2 && e.y1 <= n && n <= e.y2;\n}, Z5 = function(e, r) {\n return oi(e, r.x, r.y);\n}, hp = function(e, r) {\n return oi(e, r.x1, r.y1) && oi(e, r.x2, r.y2);\n}, pp = function(e, r, n, a, i, o, s) {\n var u = arguments.length > 7 && arguments[7] !== void 0 ? arguments[7] : \"auto\", l = u === \"auto\" ? ba(i, o) : u, c = i / 2, d = o / 2;\n l = Math.min(l, c, d);\n var v = l !== c, h = l !== d, f;\n if (v) {\n var p = n - c + l - s, m = a - d - s, g = n + c - l + s, y = m;\n if (f = Nn(e, r, n, a, p, m, g, y, !1), f.length > 0)\n return f;\n }\n if (h) {\n var b = n + c + s, w = a - d + l - s, C = b, E = a + d - l + s;\n if (f = Nn(e, r, n, a, b, w, C, E, !1), f.length > 0)\n return f;\n }\n if (v) {\n var x = n - c + l - s, T = a + d + s, k = n + c - l + s, _ = T;\n if (f = Nn(e, r, n, a, x, T, k, _, !1), f.length > 0)\n return f;\n }\n if (h) {\n var D = n - c - s, O = a - d + l - s, F = D, L = a + d - l + s;\n if (f = Nn(e, r, n, a, D, O, F, L, !1), f.length > 0)\n return f;\n }\n var B;\n {\n var I = n - c + l, M = a - d + l;\n if (B = Ni(e, r, n, a, I, M, l + s), B.length > 0 && B[0] <= I && B[1] <= M)\n return [B[0], B[1]];\n }\n {\n var A = n + c - l, R = a - d + l;\n if (B = Ni(e, r, n, a, A, R, l + s), B.length > 0 && B[0] >= A && B[1] <= R)\n return [B[0], B[1]];\n }\n {\n var K = n + c - l, H = a + d - l;\n if (B = Ni(e, r, n, a, K, H, l + s), B.length > 0 && B[0] >= K && B[1] >= H)\n return [B[0], B[1]];\n }\n {\n var q = n - c + l, ee = a + d - l;\n if (B = Ni(e, r, n, a, q, ee, l + s), B.length > 0 && B[0] <= q && B[1] >= ee)\n return [B[0], B[1]];\n }\n return [];\n}, X5 = function(e, r, n, a, i, o, s) {\n var u = s, l = Math.min(n, i), c = Math.max(n, i), d = Math.min(a, o), v = Math.max(a, o);\n return l - u <= e && e <= c + u && d - u <= r && r <= v + u;\n}, j5 = function(e, r, n, a, i, o, s, u, l) {\n var c = {\n x1: Math.min(n, s, i) - l,\n x2: Math.max(n, s, i) + l,\n y1: Math.min(a, u, o) - l,\n y2: Math.max(a, u, o) + l\n };\n return !(e < c.x1 || e > c.x2 || r < c.y1 || r > c.y2);\n}, Q5 = function(e, r, n, a) {\n n -= a;\n var i = r * r - 4 * e * n;\n if (i < 0)\n return [];\n var o = Math.sqrt(i), s = 2 * e, u = (-r + o) / s, l = (-r - o) / s;\n return [u, l];\n}, J5 = function(e, r, n, a, i) {\n var o = 1e-5;\n e === 0 && (e = o), r /= e, n /= e, a /= e;\n var s, u, l, c, d, v, h, f;\n if (u = (3 * n - r * r) / 9, l = -(27 * a) + r * (9 * n - 2 * (r * r)), l /= 54, s = u * u * u + l * l, i[1] = 0, h = r / 3, s > 0) {\n d = l + Math.sqrt(s), d = d < 0 ? -Math.pow(-d, 1 / 3) : Math.pow(d, 1 / 3), v = l - Math.sqrt(s), v = v < 0 ? -Math.pow(-v, 1 / 3) : Math.pow(v, 1 / 3), i[0] = -h + d + v, h += (d + v) / 2, i[4] = i[2] = -h, h = Math.sqrt(3) * (-v + d) / 2, i[3] = h, i[5] = -h;\n return;\n }\n if (i[5] = i[3] = 0, s === 0) {\n f = l < 0 ? -Math.pow(-l, 1 / 3) : Math.pow(l, 1 / 3), i[0] = -h + 2 * f, i[4] = i[2] = -(f + h);\n return;\n }\n u = -u, c = u * u * u, c = Math.acos(l / Math.sqrt(c)), f = 2 * Math.sqrt(u), i[0] = -h + f * Math.cos(c / 3), i[2] = -h + f * Math.cos((c + 2 * Math.PI) / 3), i[4] = -h + f * Math.cos((c + 4 * Math.PI) / 3);\n}, e4 = function(e, r, n, a, i, o, s, u) {\n var l = 1 * n * n - 4 * n * i + 2 * n * s + 4 * i * i - 4 * i * s + s * s + a * a - 4 * a * o + 2 * a * u + 4 * o * o - 4 * o * u + u * u, c = 1 * 9 * n * i - 3 * n * n - 3 * n * s - 6 * i * i + 3 * i * s + 9 * a * o - 3 * a * a - 3 * a * u - 6 * o * o + 3 * o * u, d = 1 * 3 * n * n - 6 * n * i + n * s - n * e + 2 * i * i + 2 * i * e - s * e + 3 * a * a - 6 * a * o + a * u - a * r + 2 * o * o + 2 * o * r - u * r, v = 1 * n * i - n * n + n * e - i * e + a * o - a * a + a * r - o * r, h = [];\n J5(l, c, d, v, h);\n for (var f = 1e-7, p = [], m = 0; m < 6; m += 2)\n Math.abs(h[m + 1]) < f && h[m] >= 0 && h[m] <= 1 && p.push(h[m]);\n p.push(1), p.push(0);\n for (var g = -1, y, b, w, C = 0; C < p.length; C++)\n y = Math.pow(1 - p[C], 2) * n + 2 * (1 - p[C]) * p[C] * i + p[C] * p[C] * s, b = Math.pow(1 - p[C], 2) * a + 2 * (1 - p[C]) * p[C] * o + p[C] * p[C] * u, w = Math.pow(y - e, 2) + Math.pow(b - r, 2), g >= 0 ? w < g && (g = w) : g = w;\n return g;\n}, t4 = function(e, r, n, a, i, o) {\n var s = [e - n, r - a], u = [i - n, o - a], l = u[0] * u[0] + u[1] * u[1], c = s[0] * s[0] + s[1] * s[1], d = s[0] * u[0] + s[1] * u[1], v = d * d / l;\n return d < 0 ? c : v > l ? (e - i) * (e - i) + (r - o) * (r - o) : c - v;\n}, dr = function(e, r, n) {\n for (var a, i, o, s, u, l = 0, c = 0; c < n.length / 2; c++)\n if (a = n[c * 2], i = n[c * 2 + 1], c + 1 < n.length / 2 ? (o = n[(c + 1) * 2], s = n[(c + 1) * 2 + 1]) : (o = n[(c + 1 - n.length / 2) * 2], s = n[(c + 1 - n.length / 2) * 2 + 1]), !(a == e && o == e)) if (a >= e && e >= o || a <= e && e <= o)\n u = (e - a) / (o - a) * (s - i) + i, u > r && l++;\n else\n continue;\n return l % 2 !== 0;\n}, mn = function(e, r, n, a, i, o, s, u, l) {\n var c = new Array(n.length), d;\n u[0] != null ? (d = Math.atan(u[1] / u[0]), u[0] < 0 ? d = d + Math.PI / 2 : d = -d - Math.PI / 2) : d = u;\n for (var v = Math.cos(-d), h = Math.sin(-d), f = 0; f < c.length / 2; f++)\n c[f * 2] = o / 2 * (n[f * 2] * v - n[f * 2 + 1] * h), c[f * 2 + 1] = s / 2 * (n[f * 2 + 1] * v + n[f * 2] * h), c[f * 2] += a, c[f * 2 + 1] += i;\n var p;\n if (l > 0) {\n var m = Is(c, -l);\n p = Ls(m);\n } else\n p = c;\n return dr(e, r, p);\n}, r4 = function(e, r, n, a, i, o, s, u) {\n for (var l = new Array(n.length * 2), c = 0; c < u.length; c++) {\n var d = u[c];\n l[c * 4 + 0] = d.startX, l[c * 4 + 1] = d.startY, l[c * 4 + 2] = d.stopX, l[c * 4 + 3] = d.stopY;\n var v = Math.pow(d.cx - e, 2) + Math.pow(d.cy - r, 2);\n if (v <= Math.pow(d.radius, 2))\n return !0;\n }\n return dr(e, r, l);\n}, Ls = function(e) {\n for (var r = new Array(e.length / 2), n, a, i, o, s, u, l, c, d = 0; d < e.length / 4; d++) {\n n = e[d * 4], a = e[d * 4 + 1], i = e[d * 4 + 2], o = e[d * 4 + 3], d < e.length / 4 - 1 ? (s = e[(d + 1) * 4], u = e[(d + 1) * 4 + 1], l = e[(d + 1) * 4 + 2], c = e[(d + 1) * 4 + 3]) : (s = e[0], u = e[1], l = e[2], c = e[3]);\n var v = Nn(n, a, i, o, s, u, l, c, !0);\n r[d * 2] = v[0], r[d * 2 + 1] = v[1];\n }\n return r;\n}, Is = function(e, r) {\n for (var n = new Array(e.length * 2), a, i, o, s, u = 0; u < e.length / 2; u++) {\n a = e[u * 2], i = e[u * 2 + 1], u < e.length / 2 - 1 ? (o = e[(u + 1) * 2], s = e[(u + 1) * 2 + 1]) : (o = e[0], s = e[1]);\n var l = s - i, c = -(o - a), d = Math.sqrt(l * l + c * c), v = l / d, h = c / d;\n n[u * 4] = a + v * r, n[u * 4 + 1] = i + h * r, n[u * 4 + 2] = o + v * r, n[u * 4 + 3] = s + h * r;\n }\n return n;\n}, n4 = function(e, r, n, a, i, o) {\n var s = n - e, u = a - r;\n s /= i, u /= o;\n var l = Math.sqrt(s * s + u * u), c = l - 1;\n if (c < 0)\n return [];\n var d = c / l;\n return [(n - e) * d + e, (a - r) * d + r];\n}, la = function(e, r, n, a, i, o, s) {\n return e -= i, r -= o, e /= n / 2 + s, r /= a / 2 + s, e * e + r * r <= 1;\n}, Ni = function(e, r, n, a, i, o, s) {\n var u = [n - e, a - r], l = [e - i, r - o], c = u[0] * u[0] + u[1] * u[1], d = 2 * (l[0] * u[0] + l[1] * u[1]), v = l[0] * l[0] + l[1] * l[1] - s * s, h = d * d - 4 * c * v;\n if (h < 0)\n return [];\n var f = (-d + Math.sqrt(h)) / (2 * c), p = (-d - Math.sqrt(h)) / (2 * c), m = Math.min(f, p), g = Math.max(f, p), y = [];\n if (m >= 0 && m <= 1 && y.push(m), g >= 0 && g <= 1 && y.push(g), y.length === 0)\n return [];\n var b = y[0] * u[0] + e, w = y[0] * u[1] + r;\n if (y.length > 1) {\n if (y[0] == y[1])\n return [b, w];\n var C = y[1] * u[0] + e, E = y[1] * u[1] + r;\n return [b, w, C, E];\n } else\n return [b, w];\n}, Bl = function(e, r, n) {\n return r <= e && e <= n || n <= e && e <= r ? e : e <= r && r <= n || n <= r && r <= e ? r : n;\n}, Nn = function(e, r, n, a, i, o, s, u, l) {\n var c = e - i, d = n - e, v = s - i, h = r - o, f = a - r, p = u - o, m = v * h - p * c, g = d * h - f * c, y = p * d - v * f;\n if (y !== 0) {\n var b = m / y, w = g / y, C = 1e-3, E = 0 - C, x = 1 + C;\n return E <= b && b <= x && E <= w && w <= x ? [e + b * d, r + b * f] : l ? [e + b * d, r + b * f] : [];\n } else\n return m === 0 || g === 0 ? Bl(e, n, s) === s ? [s, u] : Bl(e, n, i) === i ? [i, o] : Bl(i, s, n) === n ? [n, a] : [] : [];\n}, oo = function(e, r, n, a, i, o, s, u) {\n var l = [], c, d = new Array(n.length), v = !0;\n o == null && (v = !1);\n var h;\n if (v) {\n for (var f = 0; f < d.length / 2; f++)\n d[f * 2] = n[f * 2] * o + a, d[f * 2 + 1] = n[f * 2 + 1] * s + i;\n if (u > 0) {\n var p = Is(d, -u);\n h = Ls(p);\n } else\n h = d;\n } else\n h = n;\n for (var m, g, y, b, w = 0; w < h.length / 2; w++)\n m = h[w * 2], g = h[w * 2 + 1], w < h.length / 2 - 1 ? (y = h[(w + 1) * 2], b = h[(w + 1) * 2 + 1]) : (y = h[0], b = h[1]), c = Nn(e, r, a, i, m, g, y, b), c.length !== 0 && l.push(c[0], c[1]);\n return l;\n}, a4 = function(e, r, n, a, i, o, s, u, l) {\n var c = [], d, v = new Array(n.length * 2);\n l.forEach(function(y, b) {\n b === 0 ? (v[v.length - 2] = y.startX, v[v.length - 1] = y.startY) : (v[b * 4 - 2] = y.startX, v[b * 4 - 1] = y.startY), v[b * 4] = y.stopX, v[b * 4 + 1] = y.stopY, d = Ni(e, r, a, i, y.cx, y.cy, y.radius), d.length !== 0 && c.push(d[0], d[1]);\n });\n for (var h = 0; h < v.length / 4; h++)\n d = Nn(e, r, a, i, v[h * 4], v[h * 4 + 1], v[h * 4 + 2], v[h * 4 + 3], !1), d.length !== 0 && c.push(d[0], d[1]);\n if (c.length > 2) {\n for (var f = [c[0], c[1]], p = Math.pow(f[0] - e, 2) + Math.pow(f[1] - r, 2), m = 1; m < c.length / 2; m++) {\n var g = Math.pow(c[m * 2] - e, 2) + Math.pow(c[m * 2 + 1] - r, 2);\n g <= p && (f[0] = c[m * 2], f[1] = c[m * 2 + 1], p = g);\n }\n return f;\n }\n return c;\n}, Yo = function(e, r, n) {\n var a = [e[0] - r[0], e[1] - r[1]], i = Math.sqrt(a[0] * a[0] + a[1] * a[1]), o = (i - n) / i;\n return o < 0 && (o = 1e-5), [r[0] + o * a[0], r[1] + o * a[1]];\n}, sr = function(e, r) {\n var n = su(e, r);\n return n = gp(n), n;\n}, gp = function(e) {\n for (var r, n, a = e.length / 2, i = 1 / 0, o = 1 / 0, s = -1 / 0, u = -1 / 0, l = 0; l < a; l++)\n r = e[2 * l], n = e[2 * l + 1], i = Math.min(i, r), s = Math.max(s, r), o = Math.min(o, n), u = Math.max(u, n);\n for (var c = 2 / (s - i), d = 2 / (u - o), v = 0; v < a; v++)\n r = e[2 * v] = e[2 * v] * c, n = e[2 * v + 1] = e[2 * v + 1] * d, i = Math.min(i, r), s = Math.max(s, r), o = Math.min(o, n), u = Math.max(u, n);\n if (o < -1)\n for (var h = 0; h < a; h++)\n n = e[2 * h + 1] = e[2 * h + 1] + (-1 - o);\n return e;\n}, su = function(e, r) {\n var n = 1 / e * 2 * Math.PI, a = e % 2 === 0 ? Math.PI / 2 + n / 2 : Math.PI / 2;\n a += r;\n for (var i = new Array(e * 2), o, s = 0; s < e; s++)\n o = s * n + a, i[2 * s] = Math.cos(o), i[2 * s + 1] = Math.sin(-o);\n return i;\n}, ba = function(e, r) {\n return Math.min(e / 4, r / 4, 8);\n}, mp = function(e, r) {\n return Math.min(e / 10, r / 10, 8);\n}, hc = function() {\n return 8;\n}, i4 = function(e, r, n) {\n return [e - 2 * r + n, 2 * (r - e), e];\n}, lu = function(e, r) {\n return {\n heightOffset: Math.min(15, 0.05 * r),\n widthOffset: Math.min(100, 0.25 * e),\n ctrlPtOffsetPct: 0.05\n };\n}, o4 = Wt({\n dampingFactor: 0.8,\n precision: 1e-6,\n iterations: 200,\n weight: function(e) {\n return 1;\n }\n}), s4 = {\n pageRank: function(e) {\n for (var r = o4(e), n = r.dampingFactor, a = r.precision, i = r.iterations, o = r.weight, s = this._private.cy, u = this.byGroup(), l = u.nodes, c = u.edges, d = l.length, v = d * d, h = c.length, f = new Array(v), p = new Array(d), m = (1 - n) / d, g = 0; g < d; g++) {\n for (var y = 0; y < d; y++) {\n var b = g * d + y;\n f[b] = 0;\n }\n p[g] = 0;\n }\n for (var w = 0; w < h; w++) {\n var C = c[w], E = C.data(\"source\"), x = C.data(\"target\");\n if (E !== x) {\n var T = l.indexOfId(E), k = l.indexOfId(x), _ = o(C), D = k * d + T;\n f[D] += _, p[T] += _;\n }\n }\n for (var O = 1 / d + m, F = 0; F < d; F++)\n if (p[F] === 0)\n for (var L = 0; L < d; L++) {\n var B = L * d + F;\n f[B] = O;\n }\n else\n for (var I = 0; I < d; I++) {\n var M = I * d + F;\n f[M] = f[M] / p[F] + m;\n }\n for (var A = new Array(d), R = new Array(d), K, H = 0; H < d; H++)\n A[H] = 1;\n for (var q = 0; q < i; q++) {\n for (var ee = 0; ee < d; ee++)\n R[ee] = 0;\n for (var se = 0; se < d; se++)\n for (var oe = 0; oe < d; oe++) {\n var ne = se * d + oe;\n R[se] += f[ne] * A[oe];\n }\n q5(R), K = A, A = R, R = K;\n for (var ue = 0, te = 0; te < d; te++) {\n var $ = K[te] - A[te];\n ue += $ * $;\n }\n if (ue < a)\n break;\n }\n var G = {\n rank: function(ge) {\n return ge = s.collection(ge)[0], A[l.indexOf(ge)];\n }\n };\n return G;\n }\n // pageRank\n}, df = Wt({\n root: null,\n weight: function(e) {\n return 1;\n },\n directed: !1,\n alpha: 0\n}), Wa = {\n degreeCentralityNormalized: function(e) {\n e = df(e);\n var r = this.cy(), n = this.nodes(), a = n.length;\n if (e.directed) {\n for (var c = {}, d = {}, v = 0, h = 0, f = 0; f < a; f++) {\n var p = n[f], m = p.id();\n e.root = p;\n var g = this.degreeCentrality(e);\n v < g.indegree && (v = g.indegree), h < g.outdegree && (h = g.outdegree), c[m] = g.indegree, d[m] = g.outdegree;\n }\n return {\n indegree: function(b) {\n return v == 0 ? 0 : (Fe(b) && (b = r.filter(b)), c[b.id()] / v);\n },\n outdegree: function(b) {\n return h === 0 ? 0 : (Fe(b) && (b = r.filter(b)), d[b.id()] / h);\n }\n };\n } else {\n for (var i = {}, o = 0, s = 0; s < a; s++) {\n var u = n[s];\n e.root = u;\n var l = this.degreeCentrality(e);\n o < l.degree && (o = l.degree), i[u.id()] = l.degree;\n }\n return {\n degree: function(b) {\n return o === 0 ? 0 : (Fe(b) && (b = r.filter(b)), i[b.id()] / o);\n }\n };\n }\n },\n // degreeCentralityNormalized\n // Implemented from the algorithm in Opsahl's paper\n // \"Node centrality in weighted networks: Generalizing degree and shortest paths\"\n // check the heading 2 \"Degree\"\n degreeCentrality: function(e) {\n e = df(e);\n var r = this.cy(), n = this, a = e, i = a.root, o = a.weight, s = a.directed, u = a.alpha;\n if (i = r.collection(i)[0], s) {\n for (var h = i.connectedEdges(), f = h.filter(function(E) {\n return E.target().same(i) && n.has(E);\n }), p = h.filter(function(E) {\n return E.source().same(i) && n.has(E);\n }), m = f.length, g = p.length, y = 0, b = 0, w = 0; w < f.length; w++)\n y += o(f[w]);\n for (var C = 0; C < p.length; C++)\n b += o(p[C]);\n return {\n indegree: Math.pow(m, 1 - u) * Math.pow(y, u),\n outdegree: Math.pow(g, 1 - u) * Math.pow(b, u)\n };\n } else {\n for (var l = i.connectedEdges().intersection(n), c = l.length, d = 0, v = 0; v < l.length; v++)\n d += o(l[v]);\n return {\n degree: Math.pow(c, 1 - u) * Math.pow(d, u)\n };\n }\n }\n // degreeCentrality\n};\nWa.dc = Wa.degreeCentrality;\nWa.dcn = Wa.degreeCentralityNormalised = Wa.degreeCentralityNormalized;\nvar ff = Wt({\n harmonic: !0,\n weight: function() {\n return 1;\n },\n directed: !1,\n root: null\n}), Ya = {\n closenessCentralityNormalized: function(e) {\n for (var r = ff(e), n = r.harmonic, a = r.weight, i = r.directed, o = this.cy(), s = {}, u = 0, l = this.nodes(), c = this.floydWarshall({\n weight: a,\n directed: i\n }), d = 0; d < l.length; d++) {\n for (var v = 0, h = l[d], f = 0; f < l.length; f++)\n if (d !== f) {\n var p = c.distance(h, l[f]);\n n ? v += 1 / p : v += p;\n }\n n || (v = 1 / v), u < v && (u = v), s[h.id()] = v;\n }\n return {\n closeness: function(g) {\n return u == 0 ? 0 : (Fe(g) ? g = o.filter(g)[0].id() : g = g.id(), s[g] / u);\n }\n };\n },\n // Implemented from pseudocode from wikipedia\n closenessCentrality: function(e) {\n var r = ff(e), n = r.root, a = r.weight, i = r.directed, o = r.harmonic;\n n = this.filter(n)[0];\n for (var s = this.dijkstra({\n root: n,\n weight: a,\n directed: i\n }), u = 0, l = this.nodes(), c = 0; c < l.length; c++) {\n var d = l[c];\n if (!d.same(n)) {\n var v = s.distanceTo(d);\n o ? u += 1 / v : u += v;\n }\n }\n return o ? u : 1 / u;\n }\n // closenessCentrality\n};\nYa.cc = Ya.closenessCentrality;\nYa.ccn = Ya.closenessCentralityNormalised = Ya.closenessCentralityNormalized;\nvar l4 = Wt({\n weight: null,\n directed: !1\n}), uu = {\n // Implemented from the algorithm in the paper \"On Variants of Shortest-Path Betweenness Centrality and their Generic Computation\" by Ulrik Brandes\n betweennessCentrality: function(e) {\n for (var r = l4(e), n = r.directed, a = r.weight, i = a != null, o = this.cy(), s = this.nodes(), u = {}, l = {}, c = 0, d = {\n set: function(b, w) {\n l[b] = w, w > c && (c = w);\n },\n get: function(b) {\n return l[b];\n }\n }, v = 0; v < s.length; v++) {\n var h = s[v], f = h.id();\n n ? u[f] = h.outgoers().nodes() : u[f] = h.openNeighborhood().nodes(), d.set(f, 0);\n }\n for (var p = function(b) {\n for (var w = s[b].id(), C = [], E = {}, x = {}, T = {}, k = new Oo(function(oe, ne) {\n return T[oe] - T[ne];\n }), _ = 0; _ < s.length; _++) {\n var D = s[_].id();\n E[D] = [], x[D] = 0, T[D] = 1 / 0;\n }\n for (x[w] = 1, T[w] = 0, k.push(w); !k.empty(); ) {\n var O = k.pop();\n if (C.push(O), i)\n for (var F = 0; F < u[O].length; F++) {\n var L = u[O][F], B = o.getElementById(O), I = void 0;\n B.edgesTo(L).length > 0 ? I = B.edgesTo(L)[0] : I = L.edgesTo(B)[0];\n var M = a(I);\n L = L.id(), T[L] > T[O] + M && (T[L] = T[O] + M, k.nodes.indexOf(L) < 0 ? k.push(L) : k.updateItem(L), x[L] = 0, E[L] = []), T[L] == T[O] + M && (x[L] = x[L] + x[O], E[L].push(O));\n }\n else\n for (var A = 0; A < u[O].length; A++) {\n var R = u[O][A].id();\n T[R] == 1 / 0 && (k.push(R), T[R] = T[O] + 1), T[R] == T[O] + 1 && (x[R] = x[R] + x[O], E[R].push(O));\n }\n }\n for (var K = {}, H = 0; H < s.length; H++)\n K[s[H].id()] = 0;\n for (; C.length > 0; ) {\n for (var q = C.pop(), ee = 0; ee < E[q].length; ee++) {\n var se = E[q][ee];\n K[se] = K[se] + x[se] / x[q] * (1 + K[q]);\n }\n q != s[b].id() && d.set(q, d.get(q) + K[q]);\n }\n }, m = 0; m < s.length; m++)\n p(m);\n var g = {\n betweenness: function(b) {\n var w = o.collection(b).id();\n return d.get(w);\n },\n betweennessNormalized: function(b) {\n if (c == 0)\n return 0;\n var w = o.collection(b).id();\n return d.get(w) / c;\n }\n };\n return g.betweennessNormalised = g.betweennessNormalized, g;\n }\n // betweennessCentrality\n};\nuu.bc = uu.betweennessCentrality;\nvar u4 = Wt({\n expandFactor: 2,\n // affects time of computation and cluster granularity to some extent: M * M\n inflateFactor: 2,\n // affects cluster granularity (the greater the value, the more clusters): M(i,j) / E(j)\n multFactor: 1,\n // optional self loops for each node. Use a neutral value to improve cluster computations.\n maxIterations: 20,\n // maximum number of iterations of the MCL algorithm in a single run\n attributes: [\n // attributes/features used to group nodes, ie. similarity values between nodes\n function(t) {\n return 1;\n }\n ]\n}), c4 = function(e) {\n return u4(e);\n}, d4 = function(e, r) {\n for (var n = 0, a = 0; a < r.length; a++)\n n += r[a](e);\n return n;\n}, f4 = function(e, r, n) {\n for (var a = 0; a < r; a++)\n e[a * r + a] = n;\n}, yp = function(e, r) {\n for (var n, a = 0; a < r; a++) {\n n = 0;\n for (var i = 0; i < r; i++)\n n += e[i * r + a];\n for (var o = 0; o < r; o++)\n e[o * r + a] = e[o * r + a] / n;\n }\n}, v4 = function(e, r, n) {\n for (var a = new Array(n * n), i = 0; i < n; i++) {\n for (var o = 0; o < n; o++)\n a[i * n + o] = 0;\n for (var s = 0; s < n; s++)\n for (var u = 0; u < n; u++)\n a[i * n + u] += e[i * n + s] * r[s * n + u];\n }\n return a;\n}, h4 = function(e, r, n) {\n for (var a = e.slice(0), i = 1; i < n; i++)\n e = v4(e, a, r);\n return e;\n}, p4 = function(e, r, n) {\n for (var a = new Array(r * r), i = 0; i < r * r; i++)\n a[i] = Math.pow(e[i], n);\n return yp(a, r), a;\n}, g4 = function(e, r, n, a) {\n for (var i = 0; i < n; i++) {\n var o = Math.round(e[i] * Math.pow(10, a)) / Math.pow(10, a), s = Math.round(r[i] * Math.pow(10, a)) / Math.pow(10, a);\n if (o !== s)\n return !1;\n }\n return !0;\n}, m4 = function(e, r, n, a) {\n for (var i = [], o = 0; o < r; o++) {\n for (var s = [], u = 0; u < r; u++)\n Math.round(e[o * r + u] * 1e3) / 1e3 > 0 && s.push(n[u]);\n s.length !== 0 && i.push(a.collection(s));\n }\n return i;\n}, y4 = function(e, r) {\n for (var n = 0; n < e.length; n++)\n if (!r[n] || e[n].id() !== r[n].id())\n return !1;\n return !0;\n}, b4 = function(e) {\n for (var r = 0; r < e.length; r++)\n for (var n = 0; n < e.length; n++)\n r != n && y4(e[r], e[n]) && e.splice(n, 1);\n return e;\n}, vf = function(e) {\n for (var r = this.nodes(), n = this.edges(), a = this.cy(), i = c4(e), o = {}, s = 0; s < r.length; s++)\n o[r[s].id()] = s;\n for (var u = r.length, l = u * u, c = new Array(l), d, v = 0; v < l; v++)\n c[v] = 0;\n for (var h = 0; h < n.length; h++) {\n var f = n[h], p = o[f.source().id()], m = o[f.target().id()], g = d4(f, i.attributes);\n c[p * u + m] += g, c[m * u + p] += g;\n }\n f4(c, u, i.multFactor), yp(c, u);\n for (var y = !0, b = 0; y && b < i.maxIterations; )\n y = !1, d = h4(c, u, i.expandFactor), c = p4(d, u, i.inflateFactor), g4(c, d, l, 4) || (y = !0), b++;\n var w = m4(c, u, r, a);\n return w = b4(w), w;\n}, w4 = {\n markovClustering: vf,\n mcl: vf\n}, x4 = function(e) {\n return e;\n}, bp = function(e, r) {\n return Math.abs(r - e);\n}, hf = function(e, r, n) {\n return e + bp(r, n);\n}, pf = function(e, r, n) {\n return e + Math.pow(n - r, 2);\n}, C4 = function(e) {\n return Math.sqrt(e);\n}, E4 = function(e, r, n) {\n return Math.max(e, bp(r, n));\n}, Oi = function(e, r, n, a, i) {\n for (var o = arguments.length > 5 && arguments[5] !== void 0 ? arguments[5] : x4, s = a, u, l, c = 0; c < e; c++)\n u = r(c), l = n(c), s = i(s, u, l);\n return o(s);\n}, si = {\n euclidean: function(e, r, n) {\n return e >= 2 ? Oi(e, r, n, 0, pf, C4) : Oi(e, r, n, 0, hf);\n },\n squaredEuclidean: function(e, r, n) {\n return Oi(e, r, n, 0, pf);\n },\n manhattan: function(e, r, n) {\n return Oi(e, r, n, 0, hf);\n },\n max: function(e, r, n) {\n return Oi(e, r, n, -1 / 0, E4);\n }\n};\nsi[\"squared-euclidean\"] = si.squaredEuclidean;\nsi.squaredeuclidean = si.squaredEuclidean;\nfunction al(t, e, r, n, a, i) {\n var o;\n return pt(t) ? o = t : o = si[t] || si.euclidean, e === 0 && pt(t) ? o(a, i) : o(e, r, n, a, i);\n}\nvar k4 = Wt({\n k: 2,\n m: 2,\n sensitivityThreshold: 1e-4,\n distance: \"euclidean\",\n maxIterations: 10,\n attributes: [],\n testMode: !1,\n testCentroids: null\n}), pc = function(e) {\n return k4(e);\n}, Fs = function(e, r, n, a, i) {\n var o = i !== \"kMedoids\", s = o ? function(d) {\n return n[d];\n } : function(d) {\n return a[d](n);\n }, u = function(v) {\n return a[v](r);\n }, l = n, c = r;\n return al(e, a.length, s, u, l, c);\n}, Nl = function(e, r, n) {\n for (var a = n.length, i = new Array(a), o = new Array(a), s = new Array(r), u = null, l = 0; l < a; l++)\n i[l] = e.min(n[l]).value, o[l] = e.max(n[l]).value;\n for (var c = 0; c < r; c++) {\n u = [];\n for (var d = 0; d < a; d++)\n u[d] = Math.random() * (o[d] - i[d]) + i[d];\n s[c] = u;\n }\n return s;\n}, wp = function(e, r, n, a, i) {\n for (var o = 1 / 0, s = 0, u = 0; u < r.length; u++) {\n var l = Fs(n, e, r[u], a, i);\n l < o && (o = l, s = u);\n }\n return s;\n}, xp = function(e, r, n) {\n for (var a = [], i = null, o = 0; o < r.length; o++)\n i = r[o], n[i.id()] === e && a.push(i);\n return a;\n}, S4 = function(e, r, n) {\n return Math.abs(r - e) <= n;\n}, T4 = function(e, r, n) {\n for (var a = 0; a < e.length; a++)\n for (var i = 0; i < e[a].length; i++) {\n var o = Math.abs(e[a][i] - r[a][i]);\n if (o > n)\n return !1;\n }\n return !0;\n}, _4 = function(e, r, n) {\n for (var a = 0; a < n; a++)\n if (e === r[a]) return !0;\n return !1;\n}, gf = function(e, r) {\n var n = new Array(r);\n if (e.length < 50)\n for (var a = 0; a < r; a++) {\n for (var i = e[Math.floor(Math.random() * e.length)]; _4(i, n, a); )\n i = e[Math.floor(Math.random() * e.length)];\n n[a] = i;\n }\n else\n for (var o = 0; o < r; o++)\n n[o] = e[Math.floor(Math.random() * e.length)];\n return n;\n}, mf = function(e, r, n) {\n for (var a = 0, i = 0; i < r.length; i++)\n a += Fs(\"manhattan\", r[i], e, n, \"kMedoids\");\n return a;\n}, D4 = function(e) {\n var r = this.cy(), n = this.nodes(), a = null, i = pc(e), o = new Array(i.k), s = {}, u;\n i.testMode ? typeof i.testCentroids == \"number\" ? (i.testCentroids, u = Nl(n, i.k, i.attributes)) : Ft(i.testCentroids) === \"object\" ? u = i.testCentroids : u = Nl(n, i.k, i.attributes) : u = Nl(n, i.k, i.attributes);\n for (var l = !0, c = 0; l && c < i.maxIterations; ) {\n for (var d = 0; d < n.length; d++)\n a = n[d], s[a.id()] = wp(a, u, i.distance, i.attributes, \"kMeans\");\n l = !1;\n for (var v = 0; v < i.k; v++) {\n var h = xp(v, n, s);\n if (h.length !== 0) {\n for (var f = i.attributes.length, p = u[v], m = new Array(f), g = new Array(f), y = 0; y < f; y++) {\n g[y] = 0;\n for (var b = 0; b < h.length; b++)\n a = h[b], g[y] += i.attributes[y](a);\n m[y] = g[y] / h.length, S4(m[y], p[y], i.sensitivityThreshold) || (l = !0);\n }\n u[v] = m, o[v] = r.collection(h);\n }\n }\n c++;\n }\n return o;\n}, P4 = function(e) {\n var r = this.cy(), n = this.nodes(), a = null, i = pc(e), o = new Array(i.k), s, u = {}, l, c = new Array(i.k);\n i.testMode ? typeof i.testCentroids == \"number\" || (Ft(i.testCentroids) === \"object\" ? s = i.testCentroids : s = gf(n, i.k)) : s = gf(n, i.k);\n for (var d = !0, v = 0; d && v < i.maxIterations; ) {\n for (var h = 0; h < n.length; h++)\n a = n[h], u[a.id()] = wp(a, s, i.distance, i.attributes, \"kMedoids\");\n d = !1;\n for (var f = 0; f < s.length; f++) {\n var p = xp(f, n, u);\n if (p.length !== 0) {\n c[f] = mf(s[f], p, i.attributes);\n for (var m = 0; m < p.length; m++)\n l = mf(p[m], p, i.attributes), l < c[f] && (c[f] = l, s[f] = p[m], d = !0);\n o[f] = r.collection(p);\n }\n }\n v++;\n }\n return o;\n}, O4 = function(e, r, n, a, i) {\n for (var o, s, u = 0; u < r.length; u++)\n for (var l = 0; l < e.length; l++)\n a[u][l] = Math.pow(n[u][l], i.m);\n for (var c = 0; c < e.length; c++)\n for (var d = 0; d < i.attributes.length; d++) {\n o = 0, s = 0;\n for (var v = 0; v < r.length; v++)\n o += a[v][c] * i.attributes[d](r[v]), s += a[v][c];\n e[c][d] = o / s;\n }\n}, L4 = function(e, r, n, a, i) {\n for (var o = 0; o < e.length; o++)\n r[o] = e[o].slice();\n for (var s, u, l, c = 2 / (i.m - 1), d = 0; d < n.length; d++)\n for (var v = 0; v < a.length; v++) {\n s = 0;\n for (var h = 0; h < n.length; h++)\n u = Fs(i.distance, a[v], n[d], i.attributes, \"cmeans\"), l = Fs(i.distance, a[v], n[h], i.attributes, \"cmeans\"), s += Math.pow(u / l, c);\n e[v][d] = 1 / s;\n }\n}, I4 = function(e, r, n, a) {\n for (var i = new Array(n.k), o = 0; o < i.length; o++)\n i[o] = [];\n for (var s, u, l = 0; l < r.length; l++) {\n s = -1 / 0, u = -1;\n for (var c = 0; c < r[0].length; c++)\n r[l][c] > s && (s = r[l][c], u = c);\n i[u].push(e[l]);\n }\n for (var d = 0; d < i.length; d++)\n i[d] = a.collection(i[d]);\n return i;\n}, yf = function(e) {\n var r = this.cy(), n = this.nodes(), a = pc(e), i, o, s, u, l;\n u = new Array(n.length);\n for (var c = 0; c < n.length; c++)\n u[c] = new Array(a.k);\n s = new Array(n.length);\n for (var d = 0; d < n.length; d++)\n s[d] = new Array(a.k);\n for (var v = 0; v < n.length; v++) {\n for (var h = 0, f = 0; f < a.k; f++)\n s[v][f] = Math.random(), h += s[v][f];\n for (var p = 0; p < a.k; p++)\n s[v][p] = s[v][p] / h;\n }\n o = new Array(a.k);\n for (var m = 0; m < a.k; m++)\n o[m] = new Array(a.attributes.length);\n l = new Array(n.length);\n for (var g = 0; g < n.length; g++)\n l[g] = new Array(a.k);\n for (var y = !0, b = 0; y && b < a.maxIterations; )\n y = !1, O4(o, n, s, l, a), L4(s, u, o, n, a), T4(s, u, a.sensitivityThreshold) || (y = !0), b++;\n return i = I4(n, s, a, r), {\n clusters: i,\n degreeOfMembership: s\n };\n}, F4 = {\n kMeans: D4,\n kMedoids: P4,\n fuzzyCMeans: yf,\n fcm: yf\n}, A4 = Wt({\n distance: \"euclidean\",\n // distance metric to compare nodes\n linkage: \"min\",\n // linkage criterion : how to determine the distance between clusters of nodes\n mode: \"threshold\",\n // mode:'threshold' => clusters must be threshold distance apart\n threshold: 1 / 0,\n // the distance threshold\n // mode:'dendrogram' => the nodes are organised as leaves in a tree (siblings are close), merging makes clusters\n addDendrogram: !1,\n // whether to add the dendrogram to the graph for viz\n dendrogramDepth: 0,\n // depth at which dendrogram branches are merged into the returned clusters\n attributes: []\n // array of attr functions\n}), M4 = {\n single: \"min\",\n complete: \"max\"\n}, B4 = function(e) {\n var r = A4(e), n = M4[r.linkage];\n return n != null && (r.linkage = n), r;\n}, bf = function(e, r, n, a, i) {\n for (var o = 0, s = 1 / 0, u, l = i.attributes, c = function(k, _) {\n return al(i.distance, l.length, function(D) {\n return l[D](k);\n }, function(D) {\n return l[D](_);\n }, k, _);\n }, d = 0; d < e.length; d++) {\n var v = e[d].key, h = n[v][a[v]];\n h < s && (o = v, s = h);\n }\n if (i.mode === \"threshold\" && s >= i.threshold || i.mode === \"dendrogram\" && e.length === 1)\n return !1;\n var f = r[o], p = r[a[o]], m;\n i.mode === \"dendrogram\" ? m = {\n left: f,\n right: p,\n key: f.key\n } : m = {\n value: f.value.concat(p.value),\n key: f.key\n }, e[f.index] = m, e.splice(p.index, 1), r[f.key] = m;\n for (var g = 0; g < e.length; g++) {\n var y = e[g];\n f.key === y.key ? u = 1 / 0 : i.linkage === \"min\" ? (u = n[f.key][y.key], n[f.key][y.key] > n[p.key][y.key] && (u = n[p.key][y.key])) : i.linkage === \"max\" ? (u = n[f.key][y.key], n[f.key][y.key] < n[p.key][y.key] && (u = n[p.key][y.key])) : i.linkage === \"mean\" ? u = (n[f.key][y.key] * f.size + n[p.key][y.key] * p.size) / (f.size + p.size) : i.mode === \"dendrogram\" ? u = c(y.value, f.value) : u = c(y.value[0], f.value[0]), n[f.key][y.key] = n[y.key][f.key] = u;\n }\n for (var b = 0; b < e.length; b++) {\n var w = e[b].key;\n if (a[w] === f.key || a[w] === p.key) {\n for (var C = w, E = 0; E < e.length; E++) {\n var x = e[E].key;\n n[w][x] < n[w][C] && (C = x);\n }\n a[w] = C;\n }\n e[b].index = b;\n }\n return f.key = p.key = f.index = p.index = null, !0;\n}, Zo = function t(e, r, n) {\n e && (e.value ? r.push(e.value) : (e.left && t(e.left, r), e.right && t(e.right, r)));\n}, N4 = function t(e, r) {\n if (!e) return \"\";\n if (e.left && e.right) {\n var n = t(e.left, r), a = t(e.right, r), i = r.add({\n group: \"nodes\",\n data: {\n id: n + \",\" + a\n }\n });\n return r.add({\n group: \"edges\",\n data: {\n source: n,\n target: i.id()\n }\n }), r.add({\n group: \"edges\",\n data: {\n source: a,\n target: i.id()\n }\n }), i.id();\n } else if (e.value)\n return e.value.id();\n}, $4 = function t(e, r, n) {\n if (!e) return [];\n var a = [], i = [], o = [];\n return r === 0 ? (e.left && Zo(e.left, a), e.right && Zo(e.right, i), o = a.concat(i), [n.collection(o)]) : r === 1 ? e.value ? [n.collection(e.value)] : (e.left && Zo(e.left, a), e.right && Zo(e.right, i), [n.collection(a), n.collection(i)]) : e.value ? [n.collection(e.value)] : (e.left && (a = t(e.left, r - 1, n)), e.right && (i = t(e.right, r - 1, n)), a.concat(i));\n}, wf = function(e) {\n for (var r = this.cy(), n = this.nodes(), a = B4(e), i = a.attributes, o = function(b, w) {\n return al(a.distance, i.length, function(C) {\n return i[C](b);\n }, function(C) {\n return i[C](w);\n }, b, w);\n }, s = [], u = [], l = [], c = [], d = 0; d < n.length; d++) {\n var v = {\n value: a.mode === \"dendrogram\" ? n[d] : [n[d]],\n key: d,\n index: d\n };\n s[d] = v, c[d] = v, u[d] = [], l[d] = 0;\n }\n for (var h = 0; h < s.length; h++)\n for (var f = 0; f <= h; f++) {\n var p = void 0;\n a.mode === \"dendrogram\" ? p = h === f ? 1 / 0 : o(s[h].value, s[f].value) : p = h === f ? 1 / 0 : o(s[h].value[0], s[f].value[0]), u[h][f] = p, u[f][h] = p, p < u[h][l[h]] && (l[h] = f);\n }\n for (var m = bf(s, c, u, l, a); m; )\n m = bf(s, c, u, l, a);\n var g;\n return a.mode === \"dendrogram\" ? (g = $4(s[0], a.dendrogramDepth, r), a.addDendrogram && N4(s[0], r)) : (g = new Array(s.length), s.forEach(function(y, b) {\n y.key = y.index = null, g[b] = r.collection(y.value);\n })), g;\n}, R4 = {\n hierarchicalClustering: wf,\n hca: wf\n}, z4 = Wt({\n distance: \"euclidean\",\n // distance metric to compare attributes between two nodes\n preference: \"median\",\n // suitability of a data point to serve as an exemplar\n damping: 0.8,\n // damping factor between [0.5, 1)\n maxIterations: 1e3,\n // max number of iterations to run\n minIterations: 100,\n // min number of iterations to run in order for clustering to stop\n attributes: [\n // functions to quantify the similarity between any two points\n // e.g. node => node.data('weight')\n ]\n}), V4 = function(e) {\n var r = e.damping, n = e.preference;\n 0.5 <= r && r < 1 || yt(\"Damping must range on [0.5, 1). Got: \".concat(r));\n var a = [\"median\", \"mean\", \"min\", \"max\"];\n return a.some(function(i) {\n return i === n;\n }) || be(n) || yt(\"Preference must be one of [\".concat(a.map(function(i) {\n return \"'\".concat(i, \"'\");\n }).join(\", \"), \"] or a number. Got: \").concat(n)), z4(e);\n}, H4 = function(e, r, n, a) {\n var i = function(s, u) {\n return a[u](s);\n };\n return -al(e, a.length, function(o) {\n return i(r, o);\n }, function(o) {\n return i(n, o);\n }, r, n);\n}, q4 = function(e, r) {\n var n = null;\n return r === \"median\" ? n = V5(e) : r === \"mean\" ? n = z5(e) : r === \"min\" ? n = $5(e) : r === \"max\" ? n = R5(e) : n = r, n;\n}, K4 = function(e, r, n) {\n for (var a = [], i = 0; i < e; i++)\n r[i * e + i] + n[i * e + i] > 0 && a.push(i);\n return a;\n}, xf = function(e, r, n) {\n for (var a = [], i = 0; i < e; i++) {\n for (var o = -1, s = -1 / 0, u = 0; u < n.length; u++) {\n var l = n[u];\n r[i * e + l] > s && (o = l, s = r[i * e + l]);\n }\n o > 0 && a.push(o);\n }\n for (var c = 0; c < n.length; c++)\n a[n[c]] = n[c];\n return a;\n}, U4 = function(e, r, n) {\n for (var a = xf(e, r, n), i = 0; i < n.length; i++) {\n for (var o = [], s = 0; s < a.length; s++)\n a[s] === n[i] && o.push(s);\n for (var u = -1, l = -1 / 0, c = 0; c < o.length; c++) {\n for (var d = 0, v = 0; v < o.length; v++)\n d += r[o[v] * e + o[c]];\n d > l && (u = c, l = d);\n }\n n[i] = o[u];\n }\n return a = xf(e, r, n), a;\n}, Cf = function(e) {\n for (var r = this.cy(), n = this.nodes(), a = V4(e), i = {}, o = 0; o < n.length; o++)\n i[n[o].id()] = o;\n var s, u, l, c, d, v;\n s = n.length, u = s * s, l = new Array(u);\n for (var h = 0; h < u; h++)\n l[h] = -1 / 0;\n for (var f = 0; f < s; f++)\n for (var p = 0; p < s; p++)\n f !== p && (l[f * s + p] = H4(a.distance, n[f], n[p], a.attributes));\n c = q4(l, a.preference);\n for (var m = 0; m < s; m++)\n l[m * s + m] = c;\n d = new Array(u);\n for (var g = 0; g < u; g++)\n d[g] = 0;\n v = new Array(u);\n for (var y = 0; y < u; y++)\n v[y] = 0;\n for (var b = new Array(s), w = new Array(s), C = new Array(s), E = 0; E < s; E++)\n b[E] = 0, w[E] = 0, C[E] = 0;\n for (var x = new Array(s * a.minIterations), T = 0; T < x.length; T++)\n x[T] = 0;\n var k;\n for (k = 0; k < a.maxIterations; k++) {\n for (var _ = 0; _ < s; _++) {\n for (var D = -1 / 0, O = -1 / 0, F = -1, L = 0, B = 0; B < s; B++)\n b[B] = d[_ * s + B], L = v[_ * s + B] + l[_ * s + B], L >= D ? (O = D, D = L, F = B) : L > O && (O = L);\n for (var I = 0; I < s; I++)\n d[_ * s + I] = (1 - a.damping) * (l[_ * s + I] - D) + a.damping * b[I];\n d[_ * s + F] = (1 - a.damping) * (l[_ * s + F] - O) + a.damping * b[F];\n }\n for (var M = 0; M < s; M++) {\n for (var A = 0, R = 0; R < s; R++)\n b[R] = v[R * s + M], w[R] = Math.max(0, d[R * s + M]), A += w[R];\n A -= w[M], w[M] = d[M * s + M], A += w[M];\n for (var K = 0; K < s; K++)\n v[K * s + M] = (1 - a.damping) * Math.min(0, A - w[K]) + a.damping * b[K];\n v[M * s + M] = (1 - a.damping) * (A - w[M]) + a.damping * b[M];\n }\n for (var H = 0, q = 0; q < s; q++) {\n var ee = v[q * s + q] + d[q * s + q] > 0 ? 1 : 0;\n x[k % a.minIterations * s + q] = ee, H += ee;\n }\n if (H > 0 && (k >= a.minIterations - 1 || k == a.maxIterations - 1)) {\n for (var se = 0, oe = 0; oe < s; oe++) {\n C[oe] = 0;\n for (var ne = 0; ne < a.minIterations; ne++)\n C[oe] += x[ne * s + oe];\n (C[oe] === 0 || C[oe] === a.minIterations) && se++;\n }\n if (se === s)\n break;\n }\n }\n for (var ue = K4(s, d, v), te = U4(s, l, ue), $ = {}, G = 0; G < ue.length; G++)\n $[ue[G]] = [];\n for (var Q = 0; Q < n.length; Q++) {\n var ge = i[n[Q].id()], Ee = te[ge];\n Ee != null && $[Ee].push(n[Q]);\n }\n for (var fe = new Array(ue.length), me = 0; me < ue.length; me++)\n fe[me] = r.collection($[ue[me]]);\n return fe;\n}, G4 = {\n affinityPropagation: Cf,\n ap: Cf\n}, W4 = Wt({\n root: void 0,\n directed: !1\n}), Y4 = {\n hierholzer: function(e) {\n if (!Xe(e)) {\n var r = arguments;\n e = {\n root: r[0],\n directed: r[1]\n };\n }\n var n = W4(e), a = n.root, i = n.directed, o = this, s = !1, u, l, c;\n a && (c = Fe(a) ? this.filter(a)[0].id() : a[0].id());\n var d = {}, v = {};\n i ? o.forEach(function(y) {\n var b = y.id();\n if (y.isNode()) {\n var w = y.indegree(!0), C = y.outdegree(!0), E = w - C, x = C - w;\n E == 1 ? u ? s = !0 : u = b : x == 1 ? l ? s = !0 : l = b : (x > 1 || E > 1) && (s = !0), d[b] = [], y.outgoers().forEach(function(T) {\n T.isEdge() && d[b].push(T.id());\n });\n } else\n v[b] = [void 0, y.target().id()];\n }) : o.forEach(function(y) {\n var b = y.id();\n if (y.isNode()) {\n var w = y.degree(!0);\n w % 2 && (u ? l ? s = !0 : l = b : u = b), d[b] = [], y.connectedEdges().forEach(function(C) {\n return d[b].push(C.id());\n });\n } else\n v[b] = [y.source().id(), y.target().id()];\n });\n var h = {\n found: !1,\n trail: void 0\n };\n if (s) return h;\n if (l && u)\n if (i) {\n if (c && l != c)\n return h;\n c = l;\n } else {\n if (c && l != c && u != c)\n return h;\n c || (c = l);\n }\n else\n c || (c = o[0].id());\n var f = function(b) {\n for (var w = b, C = [b], E, x, T; d[w].length; )\n E = d[w].shift(), x = v[E][0], T = v[E][1], w != T ? (d[T] = d[T].filter(function(k) {\n return k != E;\n }), w = T) : !i && w != x && (d[x] = d[x].filter(function(k) {\n return k != E;\n }), w = x), C.unshift(E), C.unshift(w);\n return C;\n }, p = [], m = [];\n for (m = f(c); m.length != 1; )\n d[m[0]].length == 0 ? (p.unshift(o.getElementById(m.shift())), p.unshift(o.getElementById(m.shift()))) : m = f(m.shift()).concat(m);\n p.unshift(o.getElementById(m.shift()));\n for (var g in d)\n if (d[g].length)\n return h;\n return h.found = !0, h.trail = this.spawn(p, !0), h;\n }\n}, Xo = function() {\n var e = this, r = {}, n = 0, a = 0, i = [], o = [], s = {}, u = function(v, h) {\n for (var f = o.length - 1, p = [], m = e.spawn(); o[f].x != v || o[f].y != h; )\n p.push(o.pop().edge), f--;\n p.push(o.pop().edge), p.forEach(function(g) {\n var y = g.connectedNodes().intersection(e);\n m.merge(g), y.forEach(function(b) {\n var w = b.id(), C = b.connectedEdges().intersection(e);\n m.merge(b), r[w].cutVertex ? m.merge(C.filter(function(E) {\n return E.isLoop();\n })) : m.merge(C);\n });\n }), i.push(m);\n }, l = function d(v, h, f) {\n v === f && (a += 1), r[h] = {\n id: n,\n low: n++,\n cutVertex: !1\n };\n var p = e.getElementById(h).connectedEdges().intersection(e);\n if (p.size() === 0)\n i.push(e.spawn(e.getElementById(h)));\n else {\n var m, g, y, b;\n p.forEach(function(w) {\n m = w.source().id(), g = w.target().id(), y = m === h ? g : m, y !== f && (b = w.id(), s[b] || (s[b] = !0, o.push({\n x: h,\n y,\n edge: w\n })), y in r ? r[h].low = Math.min(r[h].low, r[y].id) : (d(v, y, h), r[h].low = Math.min(r[h].low, r[y].low), r[h].id <= r[y].low && (r[h].cutVertex = !0, u(h, y))));\n });\n }\n };\n e.forEach(function(d) {\n if (d.isNode()) {\n var v = d.id();\n v in r || (a = 0, l(v, v), r[v].cutVertex = a > 1);\n }\n });\n var c = Object.keys(r).filter(function(d) {\n return r[d].cutVertex;\n }).map(function(d) {\n return e.getElementById(d);\n });\n return {\n cut: e.spawn(c),\n components: i\n };\n}, Z4 = {\n hopcroftTarjanBiconnected: Xo,\n htbc: Xo,\n htb: Xo,\n hopcroftTarjanBiconnectedComponents: Xo\n}, jo = function() {\n var e = this, r = {}, n = 0, a = [], i = [], o = e.spawn(e), s = function u(l) {\n i.push(l), r[l] = {\n index: n,\n low: n++,\n explored: !1\n };\n var c = e.getElementById(l).connectedEdges().intersection(e);\n if (c.forEach(function(p) {\n var m = p.target().id();\n m !== l && (m in r || u(m), r[m].explored || (r[l].low = Math.min(r[l].low, r[m].low)));\n }), r[l].index === r[l].low) {\n for (var d = e.spawn(); ; ) {\n var v = i.pop();\n if (d.merge(e.getElementById(v)), r[v].low = r[l].index, r[v].explored = !0, v === l)\n break;\n }\n var h = d.edgesWith(d), f = d.merge(h);\n a.push(f), o = o.difference(f);\n }\n };\n return e.forEach(function(u) {\n if (u.isNode()) {\n var l = u.id();\n l in r || s(l);\n }\n }), {\n cut: o,\n components: a\n };\n}, X4 = {\n tarjanStronglyConnected: jo,\n tsc: jo,\n tscc: jo,\n tarjanStronglyConnectedComponents: jo\n}, Cp = {};\n[ao, T5, _5, P5, L5, F5, B5, s4, Wa, Ya, uu, w4, F4, R4, G4, Y4, Z4, X4].forEach(function(t) {\n Re(Cp, t);\n});\n/*!\nEmbeddable Minimum Strictly-Compliant Promises/A+ 1.1.1 Thenable\nCopyright (c) 2013-2014 Ralf S. Engelschall (http://engelschall.com)\nLicensed under The MIT License (http://opensource.org/licenses/MIT)\n*/\nvar Ep = 0, kp = 1, Sp = 2, yn = function t(e) {\n if (!(this instanceof t)) return new t(e);\n this.id = \"Thenable/1.0.7\", this.state = Ep, this.fulfillValue = void 0, this.rejectReason = void 0, this.onFulfilled = [], this.onRejected = [], this.proxy = {\n then: this.then.bind(this)\n }, typeof e == \"function\" && e.call(this, this.fulfill.bind(this), this.reject.bind(this));\n};\nyn.prototype = {\n /* promise resolving methods */\n fulfill: function(e) {\n return Ef(this, kp, \"fulfillValue\", e);\n },\n reject: function(e) {\n return Ef(this, Sp, \"rejectReason\", e);\n },\n /* \"The then Method\" [Promises/A+ 1.1, 1.2, 2.2] */\n then: function(e, r) {\n var n = this, a = new yn();\n return n.onFulfilled.push(Sf(e, a, \"fulfill\")), n.onRejected.push(Sf(r, a, \"reject\")), Tp(n), a.proxy;\n }\n};\nvar Ef = function(e, r, n, a) {\n return e.state === Ep && (e.state = r, e[n] = a, Tp(e)), e;\n}, Tp = function(e) {\n e.state === kp ? kf(e, \"onFulfilled\", e.fulfillValue) : e.state === Sp && kf(e, \"onRejected\", e.rejectReason);\n}, kf = function(e, r, n) {\n if (e[r].length !== 0) {\n var a = e[r];\n e[r] = [];\n var i = function() {\n for (var s = 0; s < a.length; s++)\n a[s](n);\n };\n typeof setImmediate == \"function\" ? setImmediate(i) : setTimeout(i, 0);\n }\n}, Sf = function(e, r, n) {\n return function(a) {\n if (typeof e != \"function\")\n r[n].call(r, a);\n else {\n var i;\n try {\n i = e(a);\n } catch (o) {\n r.reject(o);\n return;\n }\n j4(r, i);\n }\n };\n}, j4 = function t(e, r) {\n if (e === r || e.proxy === r) {\n e.reject(new TypeError(\"cannot resolve promise with itself\"));\n return;\n }\n var n;\n if (Ft(r) === \"object\" && r !== null || typeof r == \"function\")\n try {\n n = r.then;\n } catch (i) {\n e.reject(i);\n return;\n }\n if (typeof n == \"function\") {\n var a = !1;\n try {\n n.call(\n r,\n /* resolvePromise */\n /* [Promises/A+ 2.3.3.3.1] */\n function(i) {\n a || (a = !0, i === r ? e.reject(new TypeError(\"circular thenable chain\")) : t(e, i));\n },\n /* rejectPromise */\n /* [Promises/A+ 2.3.3.3.2] */\n function(i) {\n a || (a = !0, e.reject(i));\n }\n );\n } catch (i) {\n a || e.reject(i);\n }\n return;\n }\n e.fulfill(r);\n};\nyn.all = function(t) {\n return new yn(function(e, r) {\n for (var n = new Array(t.length), a = 0, i = function(u, l) {\n n[u] = l, a++, a === t.length && e(n);\n }, o = 0; o < t.length; o++)\n (function(s) {\n var u = t[s], l = u != null && u.then != null;\n if (l)\n u.then(function(d) {\n i(s, d);\n }, function(d) {\n r(d);\n });\n else {\n var c = u;\n i(s, c);\n }\n })(o);\n });\n};\nyn.resolve = function(t) {\n return new yn(function(e, r) {\n e(t);\n });\n};\nyn.reject = function(t) {\n return new yn(function(e, r) {\n r(t);\n });\n};\nvar hi = typeof Promise < \"u\" ? Promise : yn, cu = function(e, r, n) {\n var a = sc(e), i = !a, o = this._private = Re({\n duration: 1e3\n }, r, n);\n if (o.target = e, o.style = o.style || o.css, o.started = !1, o.playing = !1, o.hooked = !1, o.applying = !1, o.progress = 0, o.completes = [], o.frames = [], o.complete && pt(o.complete) && o.completes.push(o.complete), i) {\n var s = e.position();\n o.startPosition = o.startPosition || {\n x: s.x,\n y: s.y\n }, o.startStyle = o.startStyle || e.cy().style().getAnimationStartStyle(e, o.style);\n }\n if (a) {\n var u = e.pan();\n o.startPan = {\n x: u.x,\n y: u.y\n }, o.startZoom = e.zoom();\n }\n this.length = 1, this[0] = this;\n}, wa = cu.prototype;\nRe(wa, {\n instanceString: function() {\n return \"animation\";\n },\n hook: function() {\n var e = this._private;\n if (!e.hooked) {\n var r, n = e.target._private.animation;\n e.queue ? r = n.queue : r = n.current, r.push(this), yr(e.target) && e.target.cy().addToAnimationPool(e.target), e.hooked = !0;\n }\n return this;\n },\n play: function() {\n var e = this._private;\n return e.progress === 1 && (e.progress = 0), e.playing = !0, e.started = !1, e.stopped = !1, this.hook(), this;\n },\n playing: function() {\n return this._private.playing;\n },\n apply: function() {\n var e = this._private;\n return e.applying = !0, e.started = !1, e.stopped = !1, this.hook(), this;\n },\n applying: function() {\n return this._private.applying;\n },\n pause: function() {\n var e = this._private;\n return e.playing = !1, e.started = !1, this;\n },\n stop: function() {\n var e = this._private;\n return e.playing = !1, e.started = !1, e.stopped = !0, this;\n },\n rewind: function() {\n return this.progress(0);\n },\n fastforward: function() {\n return this.progress(1);\n },\n time: function(e) {\n var r = this._private;\n return e === void 0 ? r.progress * r.duration : this.progress(e / r.duration);\n },\n progress: function(e) {\n var r = this._private, n = r.playing;\n return e === void 0 ? r.progress : (n && this.pause(), r.progress = e, r.started = !1, n && this.play(), this);\n },\n completed: function() {\n return this._private.progress === 1;\n },\n reverse: function() {\n var e = this._private, r = e.playing;\n r && this.pause(), e.progress = 1 - e.progress, e.started = !1;\n var n = function(l, c) {\n var d = e[l];\n d != null && (e[l] = e[c], e[c] = d);\n };\n if (n(\"zoom\", \"startZoom\"), n(\"pan\", \"startPan\"), n(\"position\", \"startPosition\"), e.style)\n for (var a = 0; a < e.style.length; a++) {\n var i = e.style[a], o = i.name, s = e.startStyle[o];\n e.startStyle[o] = i, e.style[a] = s;\n }\n return r && this.play(), this;\n },\n promise: function(e) {\n var r = this._private, n;\n switch (e) {\n case \"frame\":\n n = r.frames;\n break;\n default:\n case \"complete\":\n case \"completed\":\n n = r.completes;\n }\n return new hi(function(a, i) {\n n.push(function() {\n a();\n });\n });\n }\n});\nwa.complete = wa.completed;\nwa.run = wa.play;\nwa.running = wa.playing;\nvar Q4 = {\n animated: function() {\n return function() {\n var r = this, n = r.length !== void 0, a = n ? r : [r], i = this._private.cy || this;\n if (!i.styleEnabled())\n return !1;\n var o = a[0];\n if (o)\n return o._private.animation.current.length > 0;\n };\n },\n // animated\n clearQueue: function() {\n return function() {\n var r = this, n = r.length !== void 0, a = n ? r : [r], i = this._private.cy || this;\n if (!i.styleEnabled())\n return this;\n for (var o = 0; o < a.length; o++) {\n var s = a[o];\n s._private.animation.queue = [];\n }\n return this;\n };\n },\n // clearQueue\n delay: function() {\n return function(r, n) {\n var a = this._private.cy || this;\n return a.styleEnabled() ? this.animate({\n delay: r,\n duration: r,\n complete: n\n }) : this;\n };\n },\n // delay\n delayAnimation: function() {\n return function(r, n) {\n var a = this._private.cy || this;\n return a.styleEnabled() ? this.animation({\n delay: r,\n duration: r,\n complete: n\n }) : this;\n };\n },\n // delay\n animation: function() {\n return function(r, n) {\n var a = this, i = a.length !== void 0, o = i ? a : [a], s = this._private.cy || this, u = !i, l = !u;\n if (!s.styleEnabled())\n return this;\n var c = s.style();\n r = Re({}, r, n);\n var d = Object.keys(r).length === 0;\n if (d)\n return new cu(o[0], r);\n switch (r.duration === void 0 && (r.duration = 400), r.duration) {\n case \"slow\":\n r.duration = 600;\n break;\n case \"fast\":\n r.duration = 200;\n break;\n }\n if (l && (r.style = c.getPropsList(r.style || r.css), r.css = void 0), l && r.renderedPosition != null) {\n var v = r.renderedPosition, h = s.pan(), f = s.zoom();\n r.position = dp(v, f, h);\n }\n if (u && r.panBy != null) {\n var p = r.panBy, m = s.pan();\n r.pan = {\n x: m.x + p.x,\n y: m.y + p.y\n };\n }\n var g = r.center || r.centre;\n if (u && g != null) {\n var y = s.getCenterPan(g.eles, r.zoom);\n y != null && (r.pan = y);\n }\n if (u && r.fit != null) {\n var b = r.fit, w = s.getFitViewport(b.eles || b.boundingBox, b.padding);\n w != null && (r.pan = w.pan, r.zoom = w.zoom);\n }\n if (u && Xe(r.zoom)) {\n var C = s.getZoomedViewport(r.zoom);\n C != null ? (C.zoomed && (r.zoom = C.zoom), C.panned && (r.pan = C.pan)) : r.zoom = null;\n }\n return new cu(o[0], r);\n };\n },\n // animate\n animate: function() {\n return function(r, n) {\n var a = this, i = a.length !== void 0, o = i ? a : [a], s = this._private.cy || this;\n if (!s.styleEnabled())\n return this;\n n && (r = Re({}, r, n));\n for (var u = 0; u < o.length; u++) {\n var l = o[u], c = l.animated() && (r.queue === void 0 || r.queue), d = l.animation(r, c ? {\n queue: !0\n } : void 0);\n d.play();\n }\n return this;\n };\n },\n // animate\n stop: function() {\n return function(r, n) {\n var a = this, i = a.length !== void 0, o = i ? a : [a], s = this._private.cy || this;\n if (!s.styleEnabled())\n return this;\n for (var u = 0; u < o.length; u++) {\n for (var l = o[u], c = l._private, d = c.animation.current, v = 0; v < d.length; v++) {\n var h = d[v], f = h._private;\n n && (f.duration = 0);\n }\n r && (c.animation.queue = []), n || (c.animation.current = []);\n }\n return s.notify(\"draw\"), this;\n };\n }\n // stop\n}, J4 = Array.isArray, il = J4, e3 = /\\.|\\[(?:[^[\\]]*|([\"'])(?:(?!\\1)[^\\\\]|\\\\.)*?\\1)\\]/, t3 = /^\\w*$/;\nfunction r3(t, e) {\n if (il(t))\n return !1;\n var r = typeof t;\n return r == \"number\" || r == \"symbol\" || r == \"boolean\" || t == null || Po(t) ? !0 : t3.test(t) || !e3.test(t) || e != null && t in Object(e);\n}\nvar n3 = r3, a3 = \"[object AsyncFunction]\", i3 = \"[object Function]\", o3 = \"[object GeneratorFunction]\", s3 = \"[object Proxy]\";\nfunction l3(t) {\n if (!ga(t))\n return !1;\n var e = rp(t);\n return e == i3 || e == o3 || e == a3 || e == s3;\n}\nvar u3 = l3, c3 = el[\"__core-js_shared__\"], $l = c3, Tf = function() {\n var t = /[^.]+$/.exec($l && $l.keys && $l.keys.IE_PROTO || \"\");\n return t ? \"Symbol(src)_1.\" + t : \"\";\n}();\nfunction d3(t) {\n return !!Tf && Tf in t;\n}\nvar f3 = d3, v3 = Function.prototype, h3 = v3.toString;\nfunction p3(t) {\n if (t != null) {\n try {\n return h3.call(t);\n } catch {\n }\n try {\n return t + \"\";\n } catch {\n }\n }\n return \"\";\n}\nvar g3 = p3, m3 = /[\\\\^$.*+?()[\\]{}|]/g, y3 = /^\\[object .+?Constructor\\]$/, b3 = Function.prototype, w3 = Object.prototype, x3 = b3.toString, C3 = w3.hasOwnProperty, E3 = RegExp(\n \"^\" + x3.call(C3).replace(m3, \"\\\\$&\").replace(/hasOwnProperty|(function).*?(?=\\\\\\()| for .+?(?=\\\\\\])/g, \"$1.*?\") + \"$\"\n);\nfunction k3(t) {\n if (!ga(t) || f3(t))\n return !1;\n var e = u3(t) ? E3 : y3;\n return e.test(g3(t));\n}\nvar S3 = k3;\nfunction T3(t, e) {\n return t == null ? void 0 : t[e];\n}\nvar _3 = T3;\nfunction D3(t, e) {\n var r = _3(t, e);\n return S3(r) ? r : void 0;\n}\nvar gc = D3, P3 = gc(Object, \"create\"), so = P3;\nfunction O3() {\n this.__data__ = so ? so(null) : {}, this.size = 0;\n}\nvar L3 = O3;\nfunction I3(t) {\n var e = this.has(t) && delete this.__data__[t];\n return this.size -= e ? 1 : 0, e;\n}\nvar F3 = I3, A3 = \"__lodash_hash_undefined__\", M3 = Object.prototype, B3 = M3.hasOwnProperty;\nfunction N3(t) {\n var e = this.__data__;\n if (so) {\n var r = e[t];\n return r === A3 ? void 0 : r;\n }\n return B3.call(e, t) ? e[t] : void 0;\n}\nvar $3 = N3, R3 = Object.prototype, z3 = R3.hasOwnProperty;\nfunction V3(t) {\n var e = this.__data__;\n return so ? e[t] !== void 0 : z3.call(e, t);\n}\nvar H3 = V3, q3 = \"__lodash_hash_undefined__\";\nfunction K3(t, e) {\n var r = this.__data__;\n return this.size += this.has(t) ? 0 : 1, r[t] = so && e === void 0 ? q3 : e, this;\n}\nvar U3 = K3;\nfunction pi(t) {\n var e = -1, r = t == null ? 0 : t.length;\n for (this.clear(); ++e < r; ) {\n var n = t[e];\n this.set(n[0], n[1]);\n }\n}\npi.prototype.clear = L3;\npi.prototype.delete = F3;\npi.prototype.get = $3;\npi.prototype.has = H3;\npi.prototype.set = U3;\nvar _f = pi;\nfunction G3() {\n this.__data__ = [], this.size = 0;\n}\nvar W3 = G3;\nfunction Y3(t, e) {\n return t === e || t !== t && e !== e;\n}\nvar _p = Y3;\nfunction Z3(t, e) {\n for (var r = t.length; r--; )\n if (_p(t[r][0], e))\n return r;\n return -1;\n}\nvar ol = Z3, X3 = Array.prototype, j3 = X3.splice;\nfunction Q3(t) {\n var e = this.__data__, r = ol(e, t);\n if (r < 0)\n return !1;\n var n = e.length - 1;\n return r == n ? e.pop() : j3.call(e, r, 1), --this.size, !0;\n}\nvar J3 = Q3;\nfunction e_(t) {\n var e = this.__data__, r = ol(e, t);\n return r < 0 ? void 0 : e[r][1];\n}\nvar t_ = e_;\nfunction r_(t) {\n return ol(this.__data__, t) > -1;\n}\nvar n_ = r_;\nfunction a_(t, e) {\n var r = this.__data__, n = ol(r, t);\n return n < 0 ? (++this.size, r.push([t, e])) : r[n][1] = e, this;\n}\nvar i_ = a_;\nfunction gi(t) {\n var e = -1, r = t == null ? 0 : t.length;\n for (this.clear(); ++e < r; ) {\n var n = t[e];\n this.set(n[0], n[1]);\n }\n}\ngi.prototype.clear = W3;\ngi.prototype.delete = J3;\ngi.prototype.get = t_;\ngi.prototype.has = n_;\ngi.prototype.set = i_;\nvar o_ = gi, s_ = gc(el, \"Map\"), l_ = s_;\nfunction u_() {\n this.size = 0, this.__data__ = {\n hash: new _f(),\n map: new (l_ || o_)(),\n string: new _f()\n };\n}\nvar c_ = u_;\nfunction d_(t) {\n var e = typeof t;\n return e == \"string\" || e == \"number\" || e == \"symbol\" || e == \"boolean\" ? t !== \"__proto__\" : t === null;\n}\nvar f_ = d_;\nfunction v_(t, e) {\n var r = t.__data__;\n return f_(e) ? r[typeof e == \"string\" ? \"string\" : \"hash\"] : r.map;\n}\nvar sl = v_;\nfunction h_(t) {\n var e = sl(this, t).delete(t);\n return this.size -= e ? 1 : 0, e;\n}\nvar p_ = h_;\nfunction g_(t) {\n return sl(this, t).get(t);\n}\nvar m_ = g_;\nfunction y_(t) {\n return sl(this, t).has(t);\n}\nvar b_ = y_;\nfunction w_(t, e) {\n var r = sl(this, t), n = r.size;\n return r.set(t, e), this.size += r.size == n ? 0 : 1, this;\n}\nvar x_ = w_;\nfunction mi(t) {\n var e = -1, r = t == null ? 0 : t.length;\n for (this.clear(); ++e < r; ) {\n var n = t[e];\n this.set(n[0], n[1]);\n }\n}\nmi.prototype.clear = c_;\nmi.prototype.delete = p_;\nmi.prototype.get = m_;\nmi.prototype.has = b_;\nmi.prototype.set = x_;\nvar Dp = mi, C_ = \"Expected a function\";\nfunction mc(t, e) {\n if (typeof t != \"function\" || e != null && typeof e != \"function\")\n throw new TypeError(C_);\n var r = function() {\n var n = arguments, a = e ? e.apply(this, n) : n[0], i = r.cache;\n if (i.has(a))\n return i.get(a);\n var o = t.apply(this, n);\n return r.cache = i.set(a, o) || i, o;\n };\n return r.cache = new (mc.Cache || Dp)(), r;\n}\nmc.Cache = Dp;\nvar E_ = mc, k_ = 500;\nfunction S_(t) {\n var e = E_(t, function(n) {\n return r.size === k_ && r.clear(), n;\n }), r = e.cache;\n return e;\n}\nvar T_ = S_, __ = /[^.[\\]]+|\\[(?:(-?\\d+(?:\\.\\d+)?)|([\"'])((?:(?!\\2)[^\\\\]|\\\\.)*?)\\2)\\]|(?=(?:\\.|\\[\\])(?:\\.|\\[\\]|$))/g, D_ = /\\\\(\\\\)?/g, P_ = T_(function(t) {\n var e = [];\n return t.charCodeAt(0) === 46 && e.push(\"\"), t.replace(__, function(r, n, a, i) {\n e.push(a ? i.replace(D_, \"$1\") : n || r);\n }), e;\n}), Pp = P_;\nfunction O_(t, e) {\n for (var r = -1, n = t == null ? 0 : t.length, a = Array(n); ++r < n; )\n a[r] = e(t[r], r, t);\n return a;\n}\nvar Op = O_, L_ = 1 / 0, Df = ii ? ii.prototype : void 0, Pf = Df ? Df.toString : void 0;\nfunction Lp(t) {\n if (typeof t == \"string\")\n return t;\n if (il(t))\n return Op(t, Lp) + \"\";\n if (Po(t))\n return Pf ? Pf.call(t) : \"\";\n var e = t + \"\";\n return e == \"0\" && 1 / t == -L_ ? \"-0\" : e;\n}\nvar I_ = Lp;\nfunction F_(t) {\n return t == null ? \"\" : I_(t);\n}\nvar Ip = F_;\nfunction A_(t, e) {\n return il(t) ? t : n3(t, e) ? [t] : Pp(Ip(t));\n}\nvar Fp = A_, M_ = 1 / 0;\nfunction B_(t) {\n if (typeof t == \"string\" || Po(t))\n return t;\n var e = t + \"\";\n return e == \"0\" && 1 / t == -M_ ? \"-0\" : e;\n}\nvar yc = B_;\nfunction N_(t, e) {\n e = Fp(e, t);\n for (var r = 0, n = e.length; t != null && r < n; )\n t = t[yc(e[r++])];\n return r && r == n ? t : void 0;\n}\nvar $_ = N_;\nfunction R_(t, e, r) {\n var n = t == null ? void 0 : $_(t, e);\n return n === void 0 ? r : n;\n}\nvar z_ = R_, V_ = function() {\n try {\n var t = gc(Object, \"defineProperty\");\n return t({}, \"\", {}), t;\n } catch {\n }\n}(), Of = V_;\nfunction H_(t, e, r) {\n e == \"__proto__\" && Of ? Of(t, e, {\n configurable: !0,\n enumerable: !0,\n value: r,\n writable: !0\n }) : t[e] = r;\n}\nvar q_ = H_, K_ = Object.prototype, U_ = K_.hasOwnProperty;\nfunction G_(t, e, r) {\n var n = t[e];\n (!(U_.call(t, e) && _p(n, r)) || r === void 0 && !(e in t)) && q_(t, e, r);\n}\nvar W_ = G_, Y_ = 9007199254740991, Z_ = /^(?:0|[1-9]\\d*)$/;\nfunction X_(t, e) {\n var r = typeof t;\n return e = e ?? Y_, !!e && (r == \"number\" || r != \"symbol\" && Z_.test(t)) && t > -1 && t % 1 == 0 && t < e;\n}\nvar j_ = X_;\nfunction Q_(t, e, r, n) {\n if (!ga(t))\n return t;\n e = Fp(e, t);\n for (var a = -1, i = e.length, o = i - 1, s = t; s != null && ++a < i; ) {\n var u = yc(e[a]), l = r;\n if (u === \"__proto__\" || u === \"constructor\" || u === \"prototype\")\n return t;\n if (a != o) {\n var c = s[u];\n l = n ? n(c, u, s) : void 0, l === void 0 && (l = ga(c) ? c : j_(e[a + 1]) ? [] : {});\n }\n W_(s, u, l), s = s[u];\n }\n return t;\n}\nvar J_ = Q_;\nfunction eD(t, e, r) {\n return t == null ? t : J_(t, e, r);\n}\nvar tD = eD;\nfunction rD(t, e) {\n var r = -1, n = t.length;\n for (e || (e = Array(n)); ++r < n; )\n e[r] = t[r];\n return e;\n}\nvar nD = rD;\nfunction aD(t) {\n return il(t) ? Op(t, yc) : Po(t) ? [t] : nD(Pp(Ip(t)));\n}\nvar iD = aD, oD = {\n // access data field\n data: function(e) {\n var r = {\n field: \"data\",\n bindingEvent: \"data\",\n allowBinding: !1,\n allowSetting: !1,\n allowGetting: !1,\n settingEvent: \"data\",\n settingTriggersEvent: !1,\n triggerFnName: \"trigger\",\n immutableKeys: {},\n // key => true if immutable\n updateStyle: !1,\n beforeGet: function(a) {\n },\n beforeSet: function(a, i) {\n },\n onSet: function(a) {\n },\n canSet: function(a) {\n return !0;\n }\n };\n return e = Re({}, r, e), function(a, i) {\n var o = e, s = this, u = s.length !== void 0, l = u ? s : [s], c = u ? s[0] : s;\n if (Fe(a)) {\n var d = a.indexOf(\".\") !== -1, v = d && iD(a);\n if (o.allowGetting && i === void 0) {\n var h;\n return c && (o.beforeGet(c), v && c._private[o.field][a] === void 0 ? h = z_(c._private[o.field], v) : h = c._private[o.field][a]), h;\n } else if (o.allowSetting && i !== void 0) {\n var f = !o.immutableKeys[a];\n if (f) {\n var p = Uh({}, a, i);\n o.beforeSet(s, p);\n for (var m = 0, g = l.length; m < g; m++) {\n var y = l[m];\n o.canSet(y) && (v && c._private[o.field][a] === void 0 ? tD(y._private[o.field], v, i) : y._private[o.field][a] = i);\n }\n o.updateStyle && s.updateStyle(), o.onSet(s), o.settingTriggersEvent && s[o.triggerFnName](o.settingEvent);\n }\n }\n } else if (o.allowSetting && Xe(a)) {\n var b = a, w, C, E = Object.keys(b);\n o.beforeSet(s, b);\n for (var x = 0; x < E.length; x++) {\n w = E[x], C = b[w];\n var T = !o.immutableKeys[w];\n if (T)\n for (var k = 0; k < l.length; k++) {\n var _ = l[k];\n o.canSet(_) && (_._private[o.field][w] = C);\n }\n }\n o.updateStyle && s.updateStyle(), o.onSet(s), o.settingTriggersEvent && s[o.triggerFnName](o.settingEvent);\n } else if (o.allowBinding && pt(a)) {\n var D = a;\n s.on(o.bindingEvent, D);\n } else if (o.allowGetting && a === void 0) {\n var O;\n return c && (o.beforeGet(c), O = c._private[o.field]), O;\n }\n return s;\n };\n },\n // data\n // remove data field\n removeData: function(e) {\n var r = {\n field: \"data\",\n event: \"data\",\n triggerFnName: \"trigger\",\n triggerEvent: !1,\n immutableKeys: {}\n // key => true if immutable\n };\n return e = Re({}, r, e), function(a) {\n var i = e, o = this, s = o.length !== void 0, u = s ? o : [o];\n if (Fe(a)) {\n for (var l = a.split(/\\s+/), c = l.length, d = 0; d < c; d++) {\n var v = l[d];\n if (!qn(v)) {\n var h = !i.immutableKeys[v];\n if (h)\n for (var f = 0, p = u.length; f < p; f++)\n u[f]._private[i.field][v] = void 0;\n }\n }\n i.triggerEvent && o[i.triggerFnName](i.event);\n } else if (a === void 0) {\n for (var m = 0, g = u.length; m < g; m++)\n for (var y = u[m]._private[i.field], b = Object.keys(y), w = 0; w < b.length; w++) {\n var C = b[w], E = !i.immutableKeys[C];\n E && (y[C] = void 0);\n }\n i.triggerEvent && o[i.triggerFnName](i.event);\n }\n return o;\n };\n }\n // removeData\n}, sD = {\n eventAliasesOn: function(e) {\n var r = e;\n r.addListener = r.listen = r.bind = r.on, r.unlisten = r.unbind = r.off = r.removeListener, r.trigger = r.emit, r.pon = r.promiseOn = function(n, a) {\n var i = this, o = Array.prototype.slice.call(arguments, 0);\n return new hi(function(s, u) {\n var l = function(h) {\n i.off.apply(i, d), s(h);\n }, c = o.concat([l]), d = c.concat([]);\n i.on.apply(i, c);\n });\n };\n }\n}, et = {};\n[Q4, oD, sD].forEach(function(t) {\n Re(et, t);\n});\nvar lD = {\n animate: et.animate(),\n animation: et.animation(),\n animated: et.animated(),\n clearQueue: et.clearQueue(),\n delay: et.delay(),\n delayAnimation: et.delayAnimation(),\n stop: et.stop()\n}, ds = {\n classes: function(e) {\n var r = this;\n if (e === void 0) {\n var n = [];\n return r[0]._private.classes.forEach(function(f) {\n return n.push(f);\n }), n;\n } else st(e) || (e = (e || \"\").match(/\\S+/g) || []);\n for (var a = [], i = new vi(e), o = 0; o < r.length; o++) {\n for (var s = r[o], u = s._private, l = u.classes, c = !1, d = 0; d < e.length; d++) {\n var v = e[d], h = l.has(v);\n if (!h) {\n c = !0;\n break;\n }\n }\n c || (c = l.size !== e.length), c && (u.classes = i, a.push(s));\n }\n return a.length > 0 && this.spawn(a).updateStyle().emit(\"class\"), r;\n },\n addClass: function(e) {\n return this.toggleClass(e, !0);\n },\n hasClass: function(e) {\n var r = this[0];\n return r != null && r._private.classes.has(e);\n },\n toggleClass: function(e, r) {\n st(e) || (e = e.match(/\\S+/g) || []);\n for (var n = this, a = r === void 0, i = [], o = 0, s = n.length; o < s; o++)\n for (var u = n[o], l = u._private.classes, c = !1, d = 0; d < e.length; d++) {\n var v = e[d], h = l.has(v), f = !1;\n r || a && !h ? (l.add(v), f = !0) : (!r || a && h) && (l.delete(v), f = !0), !c && f && (i.push(u), c = !0);\n }\n return i.length > 0 && this.spawn(i).updateStyle().emit(\"class\"), n;\n },\n removeClass: function(e) {\n return this.toggleClass(e, !1);\n },\n flashClass: function(e, r) {\n var n = this;\n if (r == null)\n r = 250;\n else if (r === 0)\n return n;\n return n.addClass(e), setTimeout(function() {\n n.removeClass(e);\n }, r), n;\n }\n};\nds.className = ds.classNames = ds.classes;\nvar Ye = {\n metaChar: \"[\\\\!\\\\\\\"\\\\#\\\\$\\\\%\\\\&\\\\'\\\\(\\\\)\\\\*\\\\+\\\\,\\\\.\\\\/\\\\:\\\\;\\\\<\\\\=\\\\>\\\\?\\\\@\\\\[\\\\]\\\\^\\\\`\\\\{\\\\|\\\\}\\\\~]\",\n // chars we need to escape in let names, etc\n comparatorOp: \"=|\\\\!=|>|>=|<|<=|\\\\$=|\\\\^=|\\\\*=\",\n // binary comparison op (used in data selectors)\n boolOp: \"\\\\?|\\\\!|\\\\^\",\n // boolean (unary) operators (used in data selectors)\n string: `\"(?:\\\\\\\\\"|[^\"])*\"|'(?:\\\\\\\\'|[^'])*'`,\n // string literals (used in data selectors) -- doublequotes | singlequotes\n number: It,\n // number literal (used in data selectors) --- e.g. 0.1234, 1234, 12e123\n meta: \"degree|indegree|outdegree\",\n // allowed metadata fields (i.e. allowed functions to use from Collection)\n separator: \"\\\\s*,\\\\s*\",\n // queries are separated by commas, e.g. edge[foo = 'bar'], node.someClass\n descendant: \"\\\\s+\",\n child: \"\\\\s+>\\\\s+\",\n subject: \"\\\\$\",\n group: \"node|edge|\\\\*\",\n directedEdge: \"\\\\s+->\\\\s+\",\n undirectedEdge: \"\\\\s+<->\\\\s+\"\n};\nYe.variable = \"(?:[\\\\w-.]|(?:\\\\\\\\\" + Ye.metaChar + \"))+\";\nYe.className = \"(?:[\\\\w-]|(?:\\\\\\\\\" + Ye.metaChar + \"))+\";\nYe.value = Ye.string + \"|\" + Ye.number;\nYe.id = Ye.variable;\n(function() {\n var t, e, r;\n for (t = Ye.comparatorOp.split(\"|\"), r = 0; r < t.length; r++)\n e = t[r], Ye.comparatorOp += \"|@\" + e;\n for (t = Ye.comparatorOp.split(\"|\"), r = 0; r < t.length; r++)\n e = t[r], !(e.indexOf(\"!\") >= 0) && e !== \"=\" && (Ye.comparatorOp += \"|\\\\!\" + e);\n})();\nvar it = function() {\n return {\n checks: []\n };\n}, Se = {\n /** E.g. node */\n GROUP: 0,\n /** A collection of elements */\n COLLECTION: 1,\n /** A filter(ele) function */\n FILTER: 2,\n /** E.g. [foo > 1] */\n DATA_COMPARE: 3,\n /** E.g. [foo] */\n DATA_EXIST: 4,\n /** E.g. [?foo] */\n DATA_BOOL: 5,\n /** E.g. [[degree > 2]] */\n META_COMPARE: 6,\n /** E.g. :selected */\n STATE: 7,\n /** E.g. #foo */\n ID: 8,\n /** E.g. .foo */\n CLASS: 9,\n /** E.g. #foo <-> #bar */\n UNDIRECTED_EDGE: 10,\n /** E.g. #foo -> #bar */\n DIRECTED_EDGE: 11,\n /** E.g. $#foo -> #bar */\n NODE_SOURCE: 12,\n /** E.g. #foo -> $#bar */\n NODE_TARGET: 13,\n /** E.g. $#foo <-> #bar */\n NODE_NEIGHBOR: 14,\n /** E.g. #foo > #bar */\n CHILD: 15,\n /** E.g. #foo #bar */\n DESCENDANT: 16,\n /** E.g. $#foo > #bar */\n PARENT: 17,\n /** E.g. $#foo #bar */\n ANCESTOR: 18,\n /** E.g. #foo > $bar > #baz */\n COMPOUND_SPLIT: 19,\n /** Always matches, useful placeholder for subject in `COMPOUND_SPLIT` */\n TRUE: 20\n}, du = [{\n selector: \":selected\",\n matches: function(e) {\n return e.selected();\n }\n}, {\n selector: \":unselected\",\n matches: function(e) {\n return !e.selected();\n }\n}, {\n selector: \":selectable\",\n matches: function(e) {\n return e.selectable();\n }\n}, {\n selector: \":unselectable\",\n matches: function(e) {\n return !e.selectable();\n }\n}, {\n selector: \":locked\",\n matches: function(e) {\n return e.locked();\n }\n}, {\n selector: \":unlocked\",\n matches: function(e) {\n return !e.locked();\n }\n}, {\n selector: \":visible\",\n matches: function(e) {\n return e.visible();\n }\n}, {\n selector: \":hidden\",\n matches: function(e) {\n return !e.visible();\n }\n}, {\n selector: \":transparent\",\n matches: function(e) {\n return e.transparent();\n }\n}, {\n selector: \":grabbed\",\n matches: function(e) {\n return e.grabbed();\n }\n}, {\n selector: \":free\",\n matches: function(e) {\n return !e.grabbed();\n }\n}, {\n selector: \":removed\",\n matches: function(e) {\n return e.removed();\n }\n}, {\n selector: \":inside\",\n matches: function(e) {\n return !e.removed();\n }\n}, {\n selector: \":grabbable\",\n matches: function(e) {\n return e.grabbable();\n }\n}, {\n selector: \":ungrabbable\",\n matches: function(e) {\n return !e.grabbable();\n }\n}, {\n selector: \":animated\",\n matches: function(e) {\n return e.animated();\n }\n}, {\n selector: \":unanimated\",\n matches: function(e) {\n return !e.animated();\n }\n}, {\n selector: \":parent\",\n matches: function(e) {\n return e.isParent();\n }\n}, {\n selector: \":childless\",\n matches: function(e) {\n return e.isChildless();\n }\n}, {\n selector: \":child\",\n matches: function(e) {\n return e.isChild();\n }\n}, {\n selector: \":orphan\",\n matches: function(e) {\n return e.isOrphan();\n }\n}, {\n selector: \":nonorphan\",\n matches: function(e) {\n return e.isChild();\n }\n}, {\n selector: \":compound\",\n matches: function(e) {\n return e.isNode() ? e.isParent() : e.source().isParent() || e.target().isParent();\n }\n}, {\n selector: \":loop\",\n matches: function(e) {\n return e.isLoop();\n }\n}, {\n selector: \":simple\",\n matches: function(e) {\n return e.isSimple();\n }\n}, {\n selector: \":active\",\n matches: function(e) {\n return e.active();\n }\n}, {\n selector: \":inactive\",\n matches: function(e) {\n return !e.active();\n }\n}, {\n selector: \":backgrounding\",\n matches: function(e) {\n return e.backgrounding();\n }\n}, {\n selector: \":nonbackgrounding\",\n matches: function(e) {\n return !e.backgrounding();\n }\n}].sort(function(t, e) {\n return wT(t.selector, e.selector);\n}), uD = function() {\n for (var t = {}, e, r = 0; r < du.length; r++)\n e = du[r], t[e.selector] = e.matches;\n return t;\n}(), cD = function(e, r) {\n return uD[e](r);\n}, dD = \"(\" + du.map(function(t) {\n return t.selector;\n}).join(\"|\") + \")\", Fa = function(e) {\n return e.replace(new RegExp(\"\\\\\\\\(\" + Ye.metaChar + \")\", \"g\"), function(r, n) {\n return n;\n });\n}, Pn = function(e, r, n) {\n e[e.length - 1] = n;\n}, fu = [{\n name: \"group\",\n // just used for identifying when debugging\n query: !0,\n regex: \"(\" + Ye.group + \")\",\n populate: function(e, r, n) {\n var a = Mr(n, 1), i = a[0];\n r.checks.push({\n type: Se.GROUP,\n value: i === \"*\" ? i : i + \"s\"\n });\n }\n}, {\n name: \"state\",\n query: !0,\n regex: dD,\n populate: function(e, r, n) {\n var a = Mr(n, 1), i = a[0];\n r.checks.push({\n type: Se.STATE,\n value: i\n });\n }\n}, {\n name: \"id\",\n query: !0,\n regex: \"\\\\#(\" + Ye.id + \")\",\n populate: function(e, r, n) {\n var a = Mr(n, 1), i = a[0];\n r.checks.push({\n type: Se.ID,\n value: Fa(i)\n });\n }\n}, {\n name: \"className\",\n query: !0,\n regex: \"\\\\.(\" + Ye.className + \")\",\n populate: function(e, r, n) {\n var a = Mr(n, 1), i = a[0];\n r.checks.push({\n type: Se.CLASS,\n value: Fa(i)\n });\n }\n}, {\n name: \"dataExists\",\n query: !0,\n regex: \"\\\\[\\\\s*(\" + Ye.variable + \")\\\\s*\\\\]\",\n populate: function(e, r, n) {\n var a = Mr(n, 1), i = a[0];\n r.checks.push({\n type: Se.DATA_EXIST,\n field: Fa(i)\n });\n }\n}, {\n name: \"dataCompare\",\n query: !0,\n regex: \"\\\\[\\\\s*(\" + Ye.variable + \")\\\\s*(\" + Ye.comparatorOp + \")\\\\s*(\" + Ye.value + \")\\\\s*\\\\]\",\n populate: function(e, r, n) {\n var a = Mr(n, 3), i = a[0], o = a[1], s = a[2], u = new RegExp(\"^\" + Ye.string + \"$\").exec(s) != null;\n u ? s = s.substring(1, s.length - 1) : s = parseFloat(s), r.checks.push({\n type: Se.DATA_COMPARE,\n field: Fa(i),\n operator: o,\n value: s\n });\n }\n}, {\n name: \"dataBool\",\n query: !0,\n regex: \"\\\\[\\\\s*(\" + Ye.boolOp + \")\\\\s*(\" + Ye.variable + \")\\\\s*\\\\]\",\n populate: function(e, r, n) {\n var a = Mr(n, 2), i = a[0], o = a[1];\n r.checks.push({\n type: Se.DATA_BOOL,\n field: Fa(o),\n operator: i\n });\n }\n}, {\n name: \"metaCompare\",\n query: !0,\n regex: \"\\\\[\\\\[\\\\s*(\" + Ye.meta + \")\\\\s*(\" + Ye.comparatorOp + \")\\\\s*(\" + Ye.number + \")\\\\s*\\\\]\\\\]\",\n populate: function(e, r, n) {\n var a = Mr(n, 3), i = a[0], o = a[1], s = a[2];\n r.checks.push({\n type: Se.META_COMPARE,\n field: Fa(i),\n operator: o,\n value: parseFloat(s)\n });\n }\n}, {\n name: \"nextQuery\",\n separator: !0,\n regex: Ye.separator,\n populate: function(e, r) {\n var n = e.currentSubject, a = e.edgeCount, i = e.compoundCount, o = e[e.length - 1];\n n != null && (o.subject = n, e.currentSubject = null), o.edgeCount = a, o.compoundCount = i, e.edgeCount = 0, e.compoundCount = 0;\n var s = e[e.length++] = it();\n return s;\n }\n}, {\n name: \"directedEdge\",\n separator: !0,\n regex: Ye.directedEdge,\n populate: function(e, r) {\n if (e.currentSubject == null) {\n var n = it(), a = r, i = it();\n return n.checks.push({\n type: Se.DIRECTED_EDGE,\n source: a,\n target: i\n }), Pn(e, r, n), e.edgeCount++, i;\n } else {\n var o = it(), s = r, u = it();\n return o.checks.push({\n type: Se.NODE_SOURCE,\n source: s,\n target: u\n }), Pn(e, r, o), e.edgeCount++, u;\n }\n }\n}, {\n name: \"undirectedEdge\",\n separator: !0,\n regex: Ye.undirectedEdge,\n populate: function(e, r) {\n if (e.currentSubject == null) {\n var n = it(), a = r, i = it();\n return n.checks.push({\n type: Se.UNDIRECTED_EDGE,\n nodes: [a, i]\n }), Pn(e, r, n), e.edgeCount++, i;\n } else {\n var o = it(), s = r, u = it();\n return o.checks.push({\n type: Se.NODE_NEIGHBOR,\n node: s,\n neighbor: u\n }), Pn(e, r, o), u;\n }\n }\n}, {\n name: \"child\",\n separator: !0,\n regex: Ye.child,\n populate: function(e, r) {\n if (e.currentSubject == null) {\n var n = it(), a = it(), i = e[e.length - 1];\n return n.checks.push({\n type: Se.CHILD,\n parent: i,\n child: a\n }), Pn(e, r, n), e.compoundCount++, a;\n } else if (e.currentSubject === r) {\n var o = it(), s = e[e.length - 1], u = it(), l = it(), c = it(), d = it();\n return o.checks.push({\n type: Se.COMPOUND_SPLIT,\n left: s,\n right: u,\n subject: l\n }), l.checks = r.checks, r.checks = [{\n type: Se.TRUE\n }], d.checks.push({\n type: Se.TRUE\n }), u.checks.push({\n type: Se.PARENT,\n // type is swapped on right side queries\n parent: d,\n child: c\n // empty for now\n }), Pn(e, s, o), e.currentSubject = l, e.compoundCount++, c;\n } else {\n var v = it(), h = it(), f = [{\n type: Se.PARENT,\n parent: v,\n child: h\n }];\n return v.checks = r.checks, r.checks = f, e.compoundCount++, h;\n }\n }\n}, {\n name: \"descendant\",\n separator: !0,\n regex: Ye.descendant,\n populate: function(e, r) {\n if (e.currentSubject == null) {\n var n = it(), a = it(), i = e[e.length - 1];\n return n.checks.push({\n type: Se.DESCENDANT,\n ancestor: i,\n descendant: a\n }), Pn(e, r, n), e.compoundCount++, a;\n } else if (e.currentSubject === r) {\n var o = it(), s = e[e.length - 1], u = it(), l = it(), c = it(), d = it();\n return o.checks.push({\n type: Se.COMPOUND_SPLIT,\n left: s,\n right: u,\n subject: l\n }), l.checks = r.checks, r.checks = [{\n type: Se.TRUE\n }], d.checks.push({\n type: Se.TRUE\n }), u.checks.push({\n type: Se.ANCESTOR,\n // type is swapped on right side queries\n ancestor: d,\n descendant: c\n // empty for now\n }), Pn(e, s, o), e.currentSubject = l, e.compoundCount++, c;\n } else {\n var v = it(), h = it(), f = [{\n type: Se.ANCESTOR,\n ancestor: v,\n descendant: h\n }];\n return v.checks = r.checks, r.checks = f, e.compoundCount++, h;\n }\n }\n}, {\n name: \"subject\",\n modifier: !0,\n regex: Ye.subject,\n populate: function(e, r) {\n if (e.currentSubject != null && e.currentSubject !== r)\n return tt(\"Redefinition of subject in selector `\" + e.toString() + \"`\"), !1;\n e.currentSubject = r;\n var n = e[e.length - 1], a = n.checks[0], i = a == null ? null : a.type;\n i === Se.DIRECTED_EDGE ? a.type = Se.NODE_TARGET : i === Se.UNDIRECTED_EDGE && (a.type = Se.NODE_NEIGHBOR, a.node = a.nodes[1], a.neighbor = a.nodes[0], a.nodes = null);\n }\n}];\nfu.forEach(function(t) {\n return t.regexObj = new RegExp(\"^\" + t.regex);\n});\nvar fD = function(e) {\n for (var r, n, a, i = 0; i < fu.length; i++) {\n var o = fu[i], s = o.name, u = e.match(o.regexObj);\n if (u != null) {\n n = u, r = o, a = s;\n var l = u[0];\n e = e.substring(l.length);\n break;\n }\n }\n return {\n expr: r,\n match: n,\n name: a,\n remaining: e\n };\n}, vD = function(e) {\n var r = e.match(/^\\s+/);\n if (r) {\n var n = r[0];\n e = e.substring(n.length);\n }\n return e;\n}, hD = function(e) {\n var r = this, n = r.inputText = e, a = r[0] = it();\n for (r.length = 1, n = vD(n); ; ) {\n var i = fD(n);\n if (i.expr == null)\n return tt(\"The selector `\" + e + \"`is invalid\"), !1;\n var o = i.match.slice(1), s = i.expr.populate(r, a, o);\n if (s === !1)\n return !1;\n if (s != null && (a = s), n = i.remaining, n.match(/^\\s*$/))\n break;\n }\n var u = r[r.length - 1];\n r.currentSubject != null && (u.subject = r.currentSubject), u.edgeCount = r.edgeCount, u.compoundCount = r.compoundCount;\n for (var l = 0; l < r.length; l++) {\n var c = r[l];\n if (c.compoundCount > 0 && c.edgeCount > 0)\n return tt(\"The selector `\" + e + \"` is invalid because it uses both a compound selector and an edge selector\"), !1;\n if (c.edgeCount > 1)\n return tt(\"The selector `\" + e + \"` is invalid because it uses multiple edge selectors\"), !1;\n c.edgeCount === 1 && tt(\"The selector `\" + e + \"` is deprecated. Edge selectors do not take effect on changes to source and target nodes after an edge is added, for performance reasons. Use a class or data selector on edges instead, updating the class or data of an edge when your app detects a change in source or target nodes.\");\n }\n return !0;\n}, pD = function() {\n if (this.toStringCache != null)\n return this.toStringCache;\n for (var e = function(c) {\n return c ?? \"\";\n }, r = function(c) {\n return Fe(c) ? '\"' + c + '\"' : e(c);\n }, n = function(c) {\n return \" \" + c + \" \";\n }, a = function(c, d) {\n var v = c.type, h = c.value;\n switch (v) {\n case Se.GROUP: {\n var f = e(h);\n return f.substring(0, f.length - 1);\n }\n case Se.DATA_COMPARE: {\n var p = c.field, m = c.operator;\n return \"[\" + p + n(e(m)) + r(h) + \"]\";\n }\n case Se.DATA_BOOL: {\n var g = c.operator, y = c.field;\n return \"[\" + e(g) + y + \"]\";\n }\n case Se.DATA_EXIST: {\n var b = c.field;\n return \"[\" + b + \"]\";\n }\n case Se.META_COMPARE: {\n var w = c.operator, C = c.field;\n return \"[[\" + C + n(e(w)) + r(h) + \"]]\";\n }\n case Se.STATE:\n return h;\n case Se.ID:\n return \"#\" + h;\n case Se.CLASS:\n return \".\" + h;\n case Se.PARENT:\n case Se.CHILD:\n return i(c.parent, d) + n(\">\") + i(c.child, d);\n case Se.ANCESTOR:\n case Se.DESCENDANT:\n return i(c.ancestor, d) + \" \" + i(c.descendant, d);\n case Se.COMPOUND_SPLIT: {\n var E = i(c.left, d), x = i(c.subject, d), T = i(c.right, d);\n return E + (E.length > 0 ? \" \" : \"\") + x + T;\n }\n case Se.TRUE:\n return \"\";\n }\n }, i = function(c, d) {\n return c.checks.reduce(function(v, h, f) {\n return v + (d === c && f === 0 ? \"$\" : \"\") + a(h, d);\n }, \"\");\n }, o = \"\", s = 0; s < this.length; s++) {\n var u = this[s];\n o += i(u, u.subject), this.length > 1 && s < this.length - 1 && (o += \", \");\n }\n return this.toStringCache = o, o;\n}, gD = {\n parse: hD,\n toString: pD\n}, Ap = function(e, r, n) {\n var a, i = Fe(e), o = be(e), s = Fe(n), u, l, c = !1, d = !1, v = !1;\n switch (r.indexOf(\"!\") >= 0 && (r = r.replace(\"!\", \"\"), d = !0), r.indexOf(\"@\") >= 0 && (r = r.replace(\"@\", \"\"), c = !0), (i || s || c) && (u = !i && !o ? \"\" : \"\" + e, l = \"\" + n), c && (e = u = u.toLowerCase(), n = l = l.toLowerCase()), r) {\n case \"*=\":\n a = u.indexOf(l) >= 0;\n break;\n case \"$=\":\n a = u.indexOf(l, u.length - l.length) >= 0;\n break;\n case \"^=\":\n a = u.indexOf(l) === 0;\n break;\n case \"=\":\n a = e === n;\n break;\n case \">\":\n v = !0, a = e > n;\n break;\n case \">=\":\n v = !0, a = e >= n;\n break;\n case \"<\":\n v = !0, a = e < n;\n break;\n case \"<=\":\n v = !0, a = e <= n;\n break;\n default:\n a = !1;\n break;\n }\n return d && (e != null || !v) && (a = !a), a;\n}, mD = function(e, r) {\n switch (r) {\n case \"?\":\n return !!e;\n case \"!\":\n return !e;\n case \"^\":\n return e === void 0;\n }\n}, yD = function(e) {\n return e !== void 0;\n}, bc = function(e, r) {\n return e.data(r);\n}, bD = function(e, r) {\n return e[r]();\n}, bt = [], vt = function(e, r) {\n return e.checks.every(function(n) {\n return bt[n.type](n, r);\n });\n};\nbt[Se.GROUP] = function(t, e) {\n var r = t.value;\n return r === \"*\" || r === e.group();\n};\nbt[Se.STATE] = function(t, e) {\n var r = t.value;\n return cD(r, e);\n};\nbt[Se.ID] = function(t, e) {\n var r = t.value;\n return e.id() === r;\n};\nbt[Se.CLASS] = function(t, e) {\n var r = t.value;\n return e.hasClass(r);\n};\nbt[Se.META_COMPARE] = function(t, e) {\n var r = t.field, n = t.operator, a = t.value;\n return Ap(bD(e, r), n, a);\n};\nbt[Se.DATA_COMPARE] = function(t, e) {\n var r = t.field, n = t.operator, a = t.value;\n return Ap(bc(e, r), n, a);\n};\nbt[Se.DATA_BOOL] = function(t, e) {\n var r = t.field, n = t.operator;\n return mD(bc(e, r), n);\n};\nbt[Se.DATA_EXIST] = function(t, e) {\n var r = t.field;\n return t.operator, yD(bc(e, r));\n};\nbt[Se.UNDIRECTED_EDGE] = function(t, e) {\n var r = t.nodes[0], n = t.nodes[1], a = e.source(), i = e.target();\n return vt(r, a) && vt(n, i) || vt(n, a) && vt(r, i);\n};\nbt[Se.NODE_NEIGHBOR] = function(t, e) {\n return vt(t.node, e) && e.neighborhood().some(function(r) {\n return r.isNode() && vt(t.neighbor, r);\n });\n};\nbt[Se.DIRECTED_EDGE] = function(t, e) {\n return vt(t.source, e.source()) && vt(t.target, e.target());\n};\nbt[Se.NODE_SOURCE] = function(t, e) {\n return vt(t.source, e) && e.outgoers().some(function(r) {\n return r.isNode() && vt(t.target, r);\n });\n};\nbt[Se.NODE_TARGET] = function(t, e) {\n return vt(t.target, e) && e.incomers().some(function(r) {\n return r.isNode() && vt(t.source, r);\n });\n};\nbt[Se.CHILD] = function(t, e) {\n return vt(t.child, e) && vt(t.parent, e.parent());\n};\nbt[Se.PARENT] = function(t, e) {\n return vt(t.parent, e) && e.children().some(function(r) {\n return vt(t.child, r);\n });\n};\nbt[Se.DESCENDANT] = function(t, e) {\n return vt(t.descendant, e) && e.ancestors().some(function(r) {\n return vt(t.ancestor, r);\n });\n};\nbt[Se.ANCESTOR] = function(t, e) {\n return vt(t.ancestor, e) && e.descendants().some(function(r) {\n return vt(t.descendant, r);\n });\n};\nbt[Se.COMPOUND_SPLIT] = function(t, e) {\n return vt(t.subject, e) && vt(t.left, e) && vt(t.right, e);\n};\nbt[Se.TRUE] = function() {\n return !0;\n};\nbt[Se.COLLECTION] = function(t, e) {\n var r = t.value;\n return r.has(e);\n};\nbt[Se.FILTER] = function(t, e) {\n var r = t.value;\n return r(e);\n};\nvar wD = function(e) {\n var r = this;\n if (r.length === 1 && r[0].checks.length === 1 && r[0].checks[0].type === Se.ID)\n return e.getElementById(r[0].checks[0].value).collection();\n var n = function(i) {\n for (var o = 0; o < r.length; o++) {\n var s = r[o];\n if (vt(s, i))\n return !0;\n }\n return !1;\n };\n return r.text() == null && (n = function() {\n return !0;\n }), e.filter(n);\n}, xD = function(e) {\n for (var r = this, n = 0; n < r.length; n++) {\n var a = r[n];\n if (vt(a, e))\n return !0;\n }\n return !1;\n}, CD = {\n matches: xD,\n filter: wD\n}, Un = function(e) {\n this.inputText = e, this.currentSubject = null, this.compoundCount = 0, this.edgeCount = 0, this.length = 0, e == null || Fe(e) && e.match(/^\\s*$/) || (yr(e) ? this.addQuery({\n checks: [{\n type: Se.COLLECTION,\n value: e.collection()\n }]\n }) : pt(e) ? this.addQuery({\n checks: [{\n type: Se.FILTER,\n value: e\n }]\n }) : Fe(e) ? this.parse(e) || (this.invalid = !0) : yt(\"A selector must be created from a string; found \"));\n}, Gn = Un.prototype;\n[gD, CD].forEach(function(t) {\n return Re(Gn, t);\n});\nGn.text = function() {\n return this.inputText;\n};\nGn.size = function() {\n return this.length;\n};\nGn.eq = function(t) {\n return this[t];\n};\nGn.sameText = function(t) {\n return !this.invalid && !t.invalid && this.text() === t.text();\n};\nGn.addQuery = function(t) {\n this[this.length++] = t;\n};\nGn.selector = Gn.toString;\nvar Rn = {\n allAre: function(e) {\n var r = new Un(e);\n return this.every(function(n) {\n return r.matches(n);\n });\n },\n is: function(e) {\n var r = new Un(e);\n return this.some(function(n) {\n return r.matches(n);\n });\n },\n some: function(e, r) {\n for (var n = 0; n < this.length; n++) {\n var a = r ? e.apply(r, [this[n], n, this]) : e(this[n], n, this);\n if (a)\n return !0;\n }\n return !1;\n },\n every: function(e, r) {\n for (var n = 0; n < this.length; n++) {\n var a = r ? e.apply(r, [this[n], n, this]) : e(this[n], n, this);\n if (!a)\n return !1;\n }\n return !0;\n },\n same: function(e) {\n if (this === e)\n return !0;\n e = this.cy().collection(e);\n var r = this.length, n = e.length;\n return r !== n ? !1 : r === 1 ? this[0] === e[0] : this.every(function(a) {\n return e.hasElementWithId(a.id());\n });\n },\n anySame: function(e) {\n return e = this.cy().collection(e), this.some(function(r) {\n return e.hasElementWithId(r.id());\n });\n },\n allAreNeighbors: function(e) {\n e = this.cy().collection(e);\n var r = this.neighborhood();\n return e.every(function(n) {\n return r.hasElementWithId(n.id());\n });\n },\n contains: function(e) {\n e = this.cy().collection(e);\n var r = this;\n return e.every(function(n) {\n return r.hasElementWithId(n.id());\n });\n }\n};\nRn.allAreNeighbours = Rn.allAreNeighbors;\nRn.has = Rn.contains;\nRn.equal = Rn.equals = Rn.same;\nvar Sr = function(e, r) {\n return function(a, i, o, s) {\n var u = a, l = this, c;\n if (u == null ? c = \"\" : yr(u) && u.length === 1 && (c = u.id()), l.length === 1 && c) {\n var d = l[0]._private, v = d.traversalCache = d.traversalCache || {}, h = v[r] = v[r] || [], f = ma(c), p = h[f];\n return p || (h[f] = e.call(l, a, i, o, s));\n } else\n return e.call(l, a, i, o, s);\n };\n}, li = {\n parent: function(e) {\n var r = [];\n if (this.length === 1) {\n var n = this[0]._private.parent;\n if (n)\n return n;\n }\n for (var a = 0; a < this.length; a++) {\n var i = this[a], o = i._private.parent;\n o && r.push(o);\n }\n return this.spawn(r, !0).filter(e);\n },\n parents: function(e) {\n for (var r = [], n = this.parent(); n.nonempty(); ) {\n for (var a = 0; a < n.length; a++) {\n var i = n[a];\n r.push(i);\n }\n n = n.parent();\n }\n return this.spawn(r, !0).filter(e);\n },\n commonAncestors: function(e) {\n for (var r, n = 0; n < this.length; n++) {\n var a = this[n], i = a.parents();\n r = r || i, r = r.intersect(i);\n }\n return r.filter(e);\n },\n orphans: function(e) {\n return this.stdFilter(function(r) {\n return r.isOrphan();\n }).filter(e);\n },\n nonorphans: function(e) {\n return this.stdFilter(function(r) {\n return r.isChild();\n }).filter(e);\n },\n children: Sr(function(t) {\n for (var e = [], r = 0; r < this.length; r++)\n for (var n = this[r], a = n._private.children, i = 0; i < a.length; i++)\n e.push(a[i]);\n return this.spawn(e, !0).filter(t);\n }, \"children\"),\n siblings: function(e) {\n return this.parent().children().not(this).filter(e);\n },\n isParent: function() {\n var e = this[0];\n if (e)\n return e.isNode() && e._private.children.length !== 0;\n },\n isChildless: function() {\n var e = this[0];\n if (e)\n return e.isNode() && e._private.children.length === 0;\n },\n isChild: function() {\n var e = this[0];\n if (e)\n return e.isNode() && e._private.parent != null;\n },\n isOrphan: function() {\n var e = this[0];\n if (e)\n return e.isNode() && e._private.parent == null;\n },\n descendants: function(e) {\n var r = [];\n function n(a) {\n for (var i = 0; i < a.length; i++) {\n var o = a[i];\n r.push(o), o.children().nonempty() && n(o.children());\n }\n }\n return n(this.children()), this.spawn(r, !0).filter(e);\n }\n};\nfunction wc(t, e, r, n) {\n for (var a = [], i = new vi(), o = t.cy(), s = o.hasCompoundNodes(), u = 0; u < t.length; u++) {\n var l = t[u];\n r ? a.push(l) : s && n(a, i, l);\n }\n for (; a.length > 0; ) {\n var c = a.shift();\n e(c), i.add(c.id()), s && n(a, i, c);\n }\n return t;\n}\nfunction Mp(t, e, r) {\n if (r.isParent())\n for (var n = r._private.children, a = 0; a < n.length; a++) {\n var i = n[a];\n e.has(i.id()) || t.push(i);\n }\n}\nli.forEachDown = function(t) {\n var e = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : !0;\n return wc(this, t, e, Mp);\n};\nfunction Bp(t, e, r) {\n if (r.isChild()) {\n var n = r._private.parent;\n e.has(n.id()) || t.push(n);\n }\n}\nli.forEachUp = function(t) {\n var e = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : !0;\n return wc(this, t, e, Bp);\n};\nfunction ED(t, e, r) {\n Bp(t, e, r), Mp(t, e, r);\n}\nli.forEachUpAndDown = function(t) {\n var e = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : !0;\n return wc(this, t, e, ED);\n};\nli.ancestors = li.parents;\nvar lo, Np;\nlo = Np = {\n data: et.data({\n field: \"data\",\n bindingEvent: \"data\",\n allowBinding: !0,\n allowSetting: !0,\n settingEvent: \"data\",\n settingTriggersEvent: !0,\n triggerFnName: \"trigger\",\n allowGetting: !0,\n immutableKeys: {\n id: !0,\n source: !0,\n target: !0,\n parent: !0\n },\n updateStyle: !0\n }),\n removeData: et.removeData({\n field: \"data\",\n event: \"data\",\n triggerFnName: \"trigger\",\n triggerEvent: !0,\n immutableKeys: {\n id: !0,\n source: !0,\n target: !0,\n parent: !0\n },\n updateStyle: !0\n }),\n scratch: et.data({\n field: \"scratch\",\n bindingEvent: \"scratch\",\n allowBinding: !0,\n allowSetting: !0,\n settingEvent: \"scratch\",\n settingTriggersEvent: !0,\n triggerFnName: \"trigger\",\n allowGetting: !0,\n updateStyle: !0\n }),\n removeScratch: et.removeData({\n field: \"scratch\",\n event: \"scratch\",\n triggerFnName: \"trigger\",\n triggerEvent: !0,\n updateStyle: !0\n }),\n rscratch: et.data({\n field: \"rscratch\",\n allowBinding: !1,\n allowSetting: !0,\n settingTriggersEvent: !1,\n allowGetting: !0\n }),\n removeRscratch: et.removeData({\n field: \"rscratch\",\n triggerEvent: !1\n }),\n id: function() {\n var e = this[0];\n if (e)\n return e._private.data.id;\n }\n};\nlo.attr = lo.data;\nlo.removeAttr = lo.removeData;\nvar kD = Np, ll = {};\nfunction Rl(t) {\n return function(e) {\n var r = this;\n if (e === void 0 && (e = !0), r.length !== 0)\n if (r.isNode() && !r.removed()) {\n for (var n = 0, a = r[0], i = a._private.edges, o = 0; o < i.length; o++) {\n var s = i[o];\n !e && s.isLoop() || (n += t(a, s));\n }\n return n;\n } else\n return;\n };\n}\nRe(ll, {\n degree: Rl(function(t, e) {\n return e.source().same(e.target()) ? 2 : 1;\n }),\n indegree: Rl(function(t, e) {\n return e.target().same(t) ? 1 : 0;\n }),\n outdegree: Rl(function(t, e) {\n return e.source().same(t) ? 1 : 0;\n })\n});\nfunction Aa(t, e) {\n return function(r) {\n for (var n, a = this.nodes(), i = 0; i < a.length; i++) {\n var o = a[i], s = o[t](r);\n s !== void 0 && (n === void 0 || e(s, n)) && (n = s);\n }\n return n;\n };\n}\nRe(ll, {\n minDegree: Aa(\"degree\", function(t, e) {\n return t < e;\n }),\n maxDegree: Aa(\"degree\", function(t, e) {\n return t > e;\n }),\n minIndegree: Aa(\"indegree\", function(t, e) {\n return t < e;\n }),\n maxIndegree: Aa(\"indegree\", function(t, e) {\n return t > e;\n }),\n minOutdegree: Aa(\"outdegree\", function(t, e) {\n return t < e;\n }),\n maxOutdegree: Aa(\"outdegree\", function(t, e) {\n return t > e;\n })\n});\nRe(ll, {\n totalDegree: function(e) {\n for (var r = 0, n = this.nodes(), a = 0; a < n.length; a++)\n r += n[a].degree(e);\n return r;\n }\n});\nvar zr, $p, Rp = function(e, r, n) {\n for (var a = 0; a < e.length; a++) {\n var i = e[a];\n if (!i.locked()) {\n var o = i._private.position, s = {\n x: r.x != null ? r.x - o.x : 0,\n y: r.y != null ? r.y - o.y : 0\n };\n i.isParent() && !(s.x === 0 && s.y === 0) && i.children().shift(s, n), i.dirtyBoundingBoxCache();\n }\n }\n}, Lf = {\n field: \"position\",\n bindingEvent: \"position\",\n allowBinding: !0,\n allowSetting: !0,\n settingEvent: \"position\",\n settingTriggersEvent: !0,\n triggerFnName: \"emitAndNotify\",\n allowGetting: !0,\n validKeys: [\"x\", \"y\"],\n beforeGet: function(e) {\n e.updateCompoundBounds();\n },\n beforeSet: function(e, r) {\n Rp(e, r, !1);\n },\n onSet: function(e) {\n e.dirtyCompoundBoundsCache();\n },\n canSet: function(e) {\n return !e.locked();\n }\n};\nzr = $p = {\n position: et.data(Lf),\n // position but no notification to renderer\n silentPosition: et.data(Re({}, Lf, {\n allowBinding: !1,\n allowSetting: !0,\n settingTriggersEvent: !1,\n allowGetting: !1,\n beforeSet: function(e, r) {\n Rp(e, r, !0);\n },\n onSet: function(e) {\n e.dirtyCompoundBoundsCache();\n }\n })),\n positions: function(e, r) {\n if (Xe(e))\n r ? this.silentPosition(e) : this.position(e);\n else if (pt(e)) {\n var n = e, a = this.cy();\n a.startBatch();\n for (var i = 0; i < this.length; i++) {\n var o = this[i], s = void 0;\n (s = n(o, i)) && (r ? o.silentPosition(s) : o.position(s));\n }\n a.endBatch();\n }\n return this;\n },\n silentPositions: function(e) {\n return this.positions(e, !0);\n },\n shift: function(e, r, n) {\n var a;\n if (Xe(e) ? (a = {\n x: be(e.x) ? e.x : 0,\n y: be(e.y) ? e.y : 0\n }, n = r) : Fe(e) && be(r) && (a = {\n x: 0,\n y: 0\n }, a[e] = r), a != null) {\n var i = this.cy();\n i.startBatch();\n for (var o = 0; o < this.length; o++) {\n var s = this[o];\n if (!(i.hasCompoundNodes() && s.isChild() && s.ancestors().anySame(this))) {\n var u = s.position(), l = {\n x: u.x + a.x,\n y: u.y + a.y\n };\n n ? s.silentPosition(l) : s.position(l);\n }\n }\n i.endBatch();\n }\n return this;\n },\n silentShift: function(e, r) {\n return Xe(e) ? this.shift(e, !0) : Fe(e) && be(r) && this.shift(e, r, !0), this;\n },\n // get/set the rendered (i.e. on screen) positon of the element\n renderedPosition: function(e, r) {\n var n = this[0], a = this.cy(), i = a.zoom(), o = a.pan(), s = Xe(e) ? e : void 0, u = s !== void 0 || r !== void 0 && Fe(e);\n if (n && n.isNode())\n if (u)\n for (var l = 0; l < this.length; l++) {\n var c = this[l];\n r !== void 0 ? c.position(e, (r - o[e]) / i) : s !== void 0 && c.position(dp(s, i, o));\n }\n else {\n var d = n.position();\n return s = nl(d, i, o), e === void 0 ? s : s[e];\n }\n else if (!u)\n return;\n return this;\n },\n // get/set the position relative to the parent\n relativePosition: function(e, r) {\n var n = this[0], a = this.cy(), i = Xe(e) ? e : void 0, o = i !== void 0 || r !== void 0 && Fe(e), s = a.hasCompoundNodes();\n if (n && n.isNode())\n if (o)\n for (var u = 0; u < this.length; u++) {\n var l = this[u], c = s ? l.parent() : null, d = c && c.length > 0, v = d;\n d && (c = c[0]);\n var h = v ? c.position() : {\n x: 0,\n y: 0\n };\n r !== void 0 ? l.position(e, r + h[e]) : i !== void 0 && l.position({\n x: i.x + h.x,\n y: i.y + h.y\n });\n }\n else {\n var f = n.position(), p = s ? n.parent() : null, m = p && p.length > 0, g = m;\n m && (p = p[0]);\n var y = g ? p.position() : {\n x: 0,\n y: 0\n };\n return i = {\n x: f.x - y.x,\n y: f.y - y.y\n }, e === void 0 ? i : i[e];\n }\n else if (!o)\n return;\n return this;\n }\n};\nzr.modelPosition = zr.point = zr.position;\nzr.modelPositions = zr.points = zr.positions;\nzr.renderedPoint = zr.renderedPosition;\nzr.relativePoint = zr.relativePosition;\nvar SD = $p, Za, Xn;\nZa = Xn = {};\nXn.renderedBoundingBox = function(t) {\n var e = this.boundingBox(t), r = this.cy(), n = r.zoom(), a = r.pan(), i = e.x1 * n + a.x, o = e.x2 * n + a.x, s = e.y1 * n + a.y, u = e.y2 * n + a.y;\n return {\n x1: i,\n x2: o,\n y1: s,\n y2: u,\n w: o - i,\n h: u - s\n };\n};\nXn.dirtyCompoundBoundsCache = function() {\n var t = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : !1, e = this.cy();\n return !e.styleEnabled() || !e.hasCompoundNodes() ? this : (this.forEachUp(function(r) {\n if (r.isParent()) {\n var n = r._private;\n n.compoundBoundsClean = !1, n.bbCache = null, t || r.emitAndNotify(\"bounds\");\n }\n }), this);\n};\nXn.updateCompoundBounds = function() {\n var t = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : !1, e = this.cy();\n if (!e.styleEnabled() || !e.hasCompoundNodes())\n return this;\n if (!t && e.batching())\n return this;\n function r(o) {\n if (!o.isParent())\n return;\n var s = o._private, u = o.children(), l = o.pstyle(\"compound-sizing-wrt-labels\").value === \"include\", c = {\n width: {\n val: o.pstyle(\"min-width\").pfValue,\n left: o.pstyle(\"min-width-bias-left\"),\n right: o.pstyle(\"min-width-bias-right\")\n },\n height: {\n val: o.pstyle(\"min-height\").pfValue,\n top: o.pstyle(\"min-height-bias-top\"),\n bottom: o.pstyle(\"min-height-bias-bottom\")\n }\n }, d = u.boundingBox({\n includeLabels: l,\n includeOverlays: !1,\n // updating the compound bounds happens outside of the regular\n // cache cycle (i.e. before fired events)\n useCache: !1\n }), v = s.position;\n (d.w === 0 || d.h === 0) && (d = {\n w: o.pstyle(\"width\").pfValue,\n h: o.pstyle(\"height\").pfValue\n }, d.x1 = v.x - d.w / 2, d.x2 = v.x + d.w / 2, d.y1 = v.y - d.h / 2, d.y2 = v.y + d.h / 2);\n function h(k, _, D) {\n var O = 0, F = 0, L = _ + D;\n return k > 0 && L > 0 && (O = _ / L * k, F = D / L * k), {\n biasDiff: O,\n biasComplementDiff: F\n };\n }\n function f(k, _, D, O) {\n if (D.units === \"%\")\n switch (O) {\n case \"width\":\n return k > 0 ? D.pfValue * k : 0;\n case \"height\":\n return _ > 0 ? D.pfValue * _ : 0;\n case \"average\":\n return k > 0 && _ > 0 ? D.pfValue * (k + _) / 2 : 0;\n case \"min\":\n return k > 0 && _ > 0 ? k > _ ? D.pfValue * _ : D.pfValue * k : 0;\n case \"max\":\n return k > 0 && _ > 0 ? k > _ ? D.pfValue * k : D.pfValue * _ : 0;\n default:\n return 0;\n }\n else return D.units === \"px\" ? D.pfValue : 0;\n }\n var p = c.width.left.value;\n c.width.left.units === \"px\" && c.width.val > 0 && (p = p * 100 / c.width.val);\n var m = c.width.right.value;\n c.width.right.units === \"px\" && c.width.val > 0 && (m = m * 100 / c.width.val);\n var g = c.height.top.value;\n c.height.top.units === \"px\" && c.height.val > 0 && (g = g * 100 / c.height.val);\n var y = c.height.bottom.value;\n c.height.bottom.units === \"px\" && c.height.val > 0 && (y = y * 100 / c.height.val);\n var b = h(c.width.val - d.w, p, m), w = b.biasDiff, C = b.biasComplementDiff, E = h(c.height.val - d.h, g, y), x = E.biasDiff, T = E.biasComplementDiff;\n s.autoPadding = f(d.w, d.h, o.pstyle(\"padding\"), o.pstyle(\"padding-relative-to\").value), s.autoWidth = Math.max(d.w, c.width.val), v.x = (-w + d.x1 + d.x2 + C) / 2, s.autoHeight = Math.max(d.h, c.height.val), v.y = (-x + d.y1 + d.y2 + T) / 2;\n }\n for (var n = 0; n < this.length; n++) {\n var a = this[n], i = a._private;\n (!i.compoundBoundsClean || t) && (r(a), e.batching() || (i.compoundBoundsClean = !0));\n }\n return this;\n};\nvar Er = function(e) {\n return e === 1 / 0 || e === -1 / 0 ? 0 : e;\n}, Br = function(e, r, n, a, i) {\n a - r === 0 || i - n === 0 || r == null || n == null || a == null || i == null || (e.x1 = r < e.x1 ? r : e.x1, e.x2 = a > e.x2 ? a : e.x2, e.y1 = n < e.y1 ? n : e.y1, e.y2 = i > e.y2 ? i : e.y2, e.w = e.x2 - e.x1, e.h = e.y2 - e.y1);\n}, ra = function(e, r) {\n return r == null ? e : Br(e, r.x1, r.y1, r.x2, r.y2);\n}, Li = function(e, r, n) {\n return Nr(e, r, n);\n}, Qo = function(e, r, n) {\n if (!r.cy().headless()) {\n var a = r._private, i = a.rstyle, o = i.arrowWidth / 2, s = r.pstyle(n + \"-arrow-shape\").value, u, l;\n if (s !== \"none\") {\n n === \"source\" ? (u = i.srcX, l = i.srcY) : n === \"target\" ? (u = i.tgtX, l = i.tgtY) : (u = i.midX, l = i.midY);\n var c = a.arrowBounds = a.arrowBounds || {}, d = c[n] = c[n] || {};\n d.x1 = u - o, d.y1 = l - o, d.x2 = u + o, d.y2 = l + o, d.w = d.x2 - d.x1, d.h = d.y2 - d.y1, us(d, 1), Br(e, d.x1, d.y1, d.x2, d.y2);\n }\n }\n}, zl = function(e, r, n) {\n if (!r.cy().headless()) {\n var a;\n n ? a = n + \"-\" : a = \"\";\n var i = r._private, o = i.rstyle, s = r.pstyle(a + \"label\").strValue;\n if (s) {\n var u = r.pstyle(\"text-halign\"), l = r.pstyle(\"text-valign\"), c = Li(o, \"labelWidth\", n), d = Li(o, \"labelHeight\", n), v = Li(o, \"labelX\", n), h = Li(o, \"labelY\", n), f = r.pstyle(a + \"text-margin-x\").pfValue, p = r.pstyle(a + \"text-margin-y\").pfValue, m = r.isEdge(), g = r.pstyle(a + \"text-rotation\"), y = r.pstyle(\"text-outline-width\").pfValue, b = r.pstyle(\"text-border-width\").pfValue, w = b / 2, C = r.pstyle(\"text-background-padding\").pfValue, E = 2, x = d, T = c, k = T / 2, _ = x / 2, D, O, F, L;\n if (m)\n D = v - k, O = v + k, F = h - _, L = h + _;\n else {\n switch (u.value) {\n case \"left\":\n D = v - T, O = v;\n break;\n case \"center\":\n D = v - k, O = v + k;\n break;\n case \"right\":\n D = v, O = v + T;\n break;\n }\n switch (l.value) {\n case \"top\":\n F = h - x, L = h;\n break;\n case \"center\":\n F = h - _, L = h + _;\n break;\n case \"bottom\":\n F = h, L = h + x;\n break;\n }\n }\n D += f - Math.max(y, w) - C - E, O += f + Math.max(y, w) + C + E, F += p - Math.max(y, w) - C - E, L += p + Math.max(y, w) + C + E;\n var B = n || \"main\", I = i.labelBounds, M = I[B] = I[B] || {};\n M.x1 = D, M.y1 = F, M.x2 = O, M.y2 = L, M.w = O - D, M.h = L - F;\n var A = m && g.strValue === \"autorotate\", R = g.pfValue != null && g.pfValue !== 0;\n if (A || R) {\n var K = A ? Li(i.rstyle, \"labelAngle\", n) : g.pfValue, H = Math.cos(K), q = Math.sin(K), ee = (D + O) / 2, se = (F + L) / 2;\n if (!m) {\n switch (u.value) {\n case \"left\":\n ee = O;\n break;\n case \"right\":\n ee = D;\n break;\n }\n switch (l.value) {\n case \"top\":\n se = L;\n break;\n case \"bottom\":\n se = F;\n break;\n }\n }\n var oe = function(Ee, fe) {\n return Ee = Ee - ee, fe = fe - se, {\n x: Ee * H - fe * q + ee,\n y: Ee * q + fe * H + se\n };\n }, ne = oe(D, F), ue = oe(D, L), te = oe(O, F), $ = oe(O, L);\n D = Math.min(ne.x, ue.x, te.x, $.x), O = Math.max(ne.x, ue.x, te.x, $.x), F = Math.min(ne.y, ue.y, te.y, $.y), L = Math.max(ne.y, ue.y, te.y, $.y);\n }\n var G = B + \"Rot\", Q = I[G] = I[G] || {};\n Q.x1 = D, Q.y1 = F, Q.x2 = O, Q.y2 = L, Q.w = O - D, Q.h = L - F, Br(e, D, F, O, L), Br(i.labelBounds.all, D, F, O, L);\n }\n return e;\n }\n}, TD = function(e, r) {\n if (!r.cy().headless()) {\n var n = r.pstyle(\"outline-opacity\").value, a = r.pstyle(\"outline-width\").value;\n if (n > 0 && a > 0) {\n var i = r.pstyle(\"outline-offset\").value, o = r.pstyle(\"shape\").value, s = a + i, u = (e.w + s * 2) / e.w, l = (e.h + s * 2) / e.h, c = 0, d = 0;\n [\"diamond\", \"pentagon\", \"round-triangle\"].includes(o) ? (u = (e.w + s * 2.4) / e.w, d = -s / 3.6) : [\"concave-hexagon\", \"rhomboid\", \"right-rhomboid\"].includes(o) ? u = (e.w + s * 2.4) / e.w : o === \"star\" ? (u = (e.w + s * 2.8) / e.w, l = (e.h + s * 2.6) / e.h, d = -s / 3.8) : o === \"triangle\" ? (u = (e.w + s * 2.8) / e.w, l = (e.h + s * 2.4) / e.h, d = -s / 1.4) : o === \"vee\" && (u = (e.w + s * 4.4) / e.w, l = (e.h + s * 3.8) / e.h, d = -s * 0.5);\n var v = e.h * l - e.h, h = e.w * u - e.w;\n if (cs(e, [Math.ceil(v / 2), Math.ceil(h / 2)]), c != 0 || d !== 0) {\n var f = W5(e, c, d);\n vp(e, f);\n }\n }\n }\n}, _D = function(e, r) {\n var n = e._private.cy, a = n.styleEnabled(), i = n.headless(), o = pr(), s = e._private, u = e.isNode(), l = e.isEdge(), c, d, v, h, f, p, m = s.rstyle, g = u && a ? e.pstyle(\"bounds-expansion\").pfValue : [0], y = function(xe) {\n return xe.pstyle(\"display\").value !== \"none\";\n }, b = !a || y(e) && (!l || y(e.source()) && y(e.target()));\n if (b) {\n var w = 0, C = 0;\n a && r.includeOverlays && (w = e.pstyle(\"overlay-opacity\").value, w !== 0 && (C = e.pstyle(\"overlay-padding\").value));\n var E = 0, x = 0;\n a && r.includeUnderlays && (E = e.pstyle(\"underlay-opacity\").value, E !== 0 && (x = e.pstyle(\"underlay-padding\").value));\n var T = Math.max(C, x), k = 0, _ = 0;\n if (a && (k = e.pstyle(\"width\").pfValue, _ = k / 2), u && r.includeNodes) {\n var D = e.position();\n f = D.x, p = D.y;\n var O = e.outerWidth(), F = O / 2, L = e.outerHeight(), B = L / 2;\n c = f - F, d = f + F, v = p - B, h = p + B, Br(o, c, v, d, h), a && r.includeOutlines && TD(o, e);\n } else if (l && r.includeEdges)\n if (a && !i) {\n var I = e.pstyle(\"curve-style\").strValue;\n if (c = Math.min(m.srcX, m.midX, m.tgtX), d = Math.max(m.srcX, m.midX, m.tgtX), v = Math.min(m.srcY, m.midY, m.tgtY), h = Math.max(m.srcY, m.midY, m.tgtY), c -= _, d += _, v -= _, h += _, Br(o, c, v, d, h), I === \"haystack\") {\n var M = m.haystackPts;\n if (M && M.length === 2) {\n if (c = M[0].x, v = M[0].y, d = M[1].x, h = M[1].y, c > d) {\n var A = c;\n c = d, d = A;\n }\n if (v > h) {\n var R = v;\n v = h, h = R;\n }\n Br(o, c - _, v - _, d + _, h + _);\n }\n } else if (I === \"bezier\" || I === \"unbundled-bezier\" || I.endsWith(\"segments\") || I.endsWith(\"taxi\")) {\n var K;\n switch (I) {\n case \"bezier\":\n case \"unbundled-bezier\":\n K = m.bezierPts;\n break;\n case \"segments\":\n case \"taxi\":\n case \"round-segments\":\n case \"round-taxi\":\n K = m.linePts;\n break;\n }\n if (K != null)\n for (var H = 0; H < K.length; H++) {\n var q = K[H];\n c = q.x - _, d = q.x + _, v = q.y - _, h = q.y + _, Br(o, c, v, d, h);\n }\n }\n } else {\n var ee = e.source(), se = ee.position(), oe = e.target(), ne = oe.position();\n if (c = se.x, d = ne.x, v = se.y, h = ne.y, c > d) {\n var ue = c;\n c = d, d = ue;\n }\n if (v > h) {\n var te = v;\n v = h, h = te;\n }\n c -= _, d += _, v -= _, h += _, Br(o, c, v, d, h);\n }\n if (a && r.includeEdges && l && (Qo(o, e, \"mid-source\"), Qo(o, e, \"mid-target\"), Qo(o, e, \"source\"), Qo(o, e, \"target\")), a) {\n var $ = e.pstyle(\"ghost\").value === \"yes\";\n if ($) {\n var G = e.pstyle(\"ghost-offset-x\").pfValue, Q = e.pstyle(\"ghost-offset-y\").pfValue;\n Br(o, o.x1 + G, o.y1 + Q, o.x2 + G, o.y2 + Q);\n }\n }\n var ge = s.bodyBounds = s.bodyBounds || {};\n cf(ge, o), cs(ge, g), us(ge, 1), a && (c = o.x1, d = o.x2, v = o.y1, h = o.y2, Br(o, c - T, v - T, d + T, h + T));\n var Ee = s.overlayBounds = s.overlayBounds || {};\n cf(Ee, o), cs(Ee, g), us(Ee, 1);\n var fe = s.labelBounds = s.labelBounds || {};\n fe.all != null ? G5(fe.all) : fe.all = pr(), a && r.includeLabels && (r.includeMainLabels && zl(o, e, null), l && (r.includeSourceLabels && zl(o, e, \"source\"), r.includeTargetLabels && zl(o, e, \"target\")));\n }\n return o.x1 = Er(o.x1), o.y1 = Er(o.y1), o.x2 = Er(o.x2), o.y2 = Er(o.y2), o.w = Er(o.x2 - o.x1), o.h = Er(o.y2 - o.y1), o.w > 0 && o.h > 0 && b && (cs(o, g), us(o, 1)), o;\n}, zp = function(e) {\n var r = 0, n = function(o) {\n return (o ? 1 : 0) << r++;\n }, a = 0;\n return a += n(e.incudeNodes), a += n(e.includeEdges), a += n(e.includeLabels), a += n(e.includeMainLabels), a += n(e.includeSourceLabels), a += n(e.includeTargetLabels), a += n(e.includeOverlays), a += n(e.includeOutlines), a;\n}, Vp = function(e) {\n if (e.isEdge()) {\n var r = e.source().position(), n = e.target().position(), a = function(o) {\n return Math.round(o);\n };\n return v5([a(r.x), a(r.y), a(n.x), a(n.y)]);\n } else\n return 0;\n}, If = function(e, r) {\n var n = e._private, a, i = e.isEdge(), o = r == null ? Ff : zp(r), s = o === Ff, u = Vp(e), l = n.bbCachePosKey === u, c = r.useCache && l, d = function(p) {\n return p._private.bbCache == null || p._private.styleDirty;\n }, v = !c || d(e) || i && d(e.source()) || d(e.target());\n if (v ? (l || e.recalculateRenderedStyle(c), a = _D(e, uo), n.bbCache = a, n.bbCachePosKey = u) : a = n.bbCache, !s) {\n var h = e.isNode();\n a = pr(), (r.includeNodes && h || r.includeEdges && !h) && (r.includeOverlays ? ra(a, n.overlayBounds) : ra(a, n.bodyBounds)), r.includeLabels && (r.includeMainLabels && (!i || r.includeSourceLabels && r.includeTargetLabels) ? ra(a, n.labelBounds.all) : (r.includeMainLabels && ra(a, n.labelBounds.mainRot), r.includeSourceLabels && ra(a, n.labelBounds.sourceRot), r.includeTargetLabels && ra(a, n.labelBounds.targetRot))), a.w = a.x2 - a.x1, a.h = a.y2 - a.y1;\n }\n return a;\n}, uo = {\n includeNodes: !0,\n includeEdges: !0,\n includeLabels: !0,\n includeMainLabels: !0,\n includeSourceLabels: !0,\n includeTargetLabels: !0,\n includeOverlays: !0,\n includeUnderlays: !0,\n includeOutlines: !0,\n useCache: !0\n}, Ff = zp(uo), Af = Wt(uo);\nXn.boundingBox = function(t) {\n var e;\n if (this.length === 1 && this[0]._private.bbCache != null && !this[0]._private.styleDirty && (t === void 0 || t.useCache === void 0 || t.useCache === !0))\n t === void 0 ? t = uo : t = Af(t), e = If(this[0], t);\n else {\n e = pr(), t = t || uo;\n var r = Af(t), n = this, a = n.cy(), i = a.styleEnabled();\n if (i)\n for (var o = 0; o < n.length; o++) {\n var s = n[o], u = s._private, l = Vp(s), c = u.bbCachePosKey === l, d = r.useCache && c && !u.styleDirty;\n s.recalculateRenderedStyle(d);\n }\n this.updateCompoundBounds(!t.useCache);\n for (var v = 0; v < n.length; v++) {\n var h = n[v];\n ra(e, If(h, r));\n }\n }\n return e.x1 = Er(e.x1), e.y1 = Er(e.y1), e.x2 = Er(e.x2), e.y2 = Er(e.y2), e.w = Er(e.x2 - e.x1), e.h = Er(e.y2 - e.y1), e;\n};\nXn.dirtyBoundingBoxCache = function() {\n for (var t = 0; t < this.length; t++) {\n var e = this[t]._private;\n e.bbCache = null, e.bbCachePosKey = null, e.bodyBounds = null, e.overlayBounds = null, e.labelBounds.all = null, e.labelBounds.source = null, e.labelBounds.target = null, e.labelBounds.main = null, e.labelBounds.sourceRot = null, e.labelBounds.targetRot = null, e.labelBounds.mainRot = null, e.arrowBounds.source = null, e.arrowBounds.target = null, e.arrowBounds[\"mid-source\"] = null, e.arrowBounds[\"mid-target\"] = null;\n }\n return this.emitAndNotify(\"bounds\"), this;\n};\nXn.boundingBoxAt = function(t) {\n var e = this.nodes(), r = this.cy(), n = r.hasCompoundNodes(), a = r.collection();\n if (n && (a = e.filter(function(l) {\n return l.isParent();\n }), e = e.not(a)), Xe(t)) {\n var i = t;\n t = function() {\n return i;\n };\n }\n var o = function(c, d) {\n return c._private.bbAtOldPos = t(c, d);\n }, s = function(c) {\n return c._private.bbAtOldPos;\n };\n r.startBatch(), e.forEach(o).silentPositions(t), n && (a.dirtyCompoundBoundsCache(), a.dirtyBoundingBoxCache(), a.updateCompoundBounds(!0));\n var u = U5(this.boundingBox({\n useCache: !1\n }));\n return e.silentPositions(s), n && (a.dirtyCompoundBoundsCache(), a.dirtyBoundingBoxCache(), a.updateCompoundBounds(!0)), r.endBatch(), u;\n};\nZa.boundingbox = Za.bb = Za.boundingBox;\nZa.renderedBoundingbox = Za.renderedBoundingBox;\nvar DD = Xn, $i, Lo;\n$i = Lo = {};\nvar Hp = function(e) {\n e.uppercaseName = rf(e.name), e.autoName = \"auto\" + e.uppercaseName, e.labelName = \"label\" + e.uppercaseName, e.outerName = \"outer\" + e.uppercaseName, e.uppercaseOuterName = rf(e.outerName), $i[e.name] = function() {\n var n = this[0], a = n._private, i = a.cy, o = i._private.styleEnabled;\n if (n)\n if (o) {\n if (n.isParent())\n return n.updateCompoundBounds(), a[e.autoName] || 0;\n var s = n.pstyle(e.name);\n switch (s.strValue) {\n case \"label\":\n return n.recalculateRenderedStyle(), a.rstyle[e.labelName] || 0;\n default:\n return s.pfValue;\n }\n } else\n return 1;\n }, $i[\"outer\" + e.uppercaseName] = function() {\n var n = this[0], a = n._private, i = a.cy, o = i._private.styleEnabled;\n if (n)\n if (o) {\n var s = n[e.name](), u = n.pstyle(\"border-width\").pfValue, l = 2 * n.padding();\n return s + u + l;\n } else\n return 1;\n }, $i[\"rendered\" + e.uppercaseName] = function() {\n var n = this[0];\n if (n) {\n var a = n[e.name]();\n return a * this.cy().zoom();\n }\n }, $i[\"rendered\" + e.uppercaseOuterName] = function() {\n var n = this[0];\n if (n) {\n var a = n[e.outerName]();\n return a * this.cy().zoom();\n }\n };\n};\nHp({\n name: \"width\"\n});\nHp({\n name: \"height\"\n});\nLo.padding = function() {\n var t = this[0], e = t._private;\n return t.isParent() ? (t.updateCompoundBounds(), e.autoPadding !== void 0 ? e.autoPadding : t.pstyle(\"padding\").pfValue) : t.pstyle(\"padding\").pfValue;\n};\nLo.paddedHeight = function() {\n var t = this[0];\n return t.height() + 2 * t.padding();\n};\nLo.paddedWidth = function() {\n var t = this[0];\n return t.width() + 2 * t.padding();\n};\nvar PD = Lo, OD = function(e, r) {\n if (e.isEdge())\n return r(e);\n}, LD = function(e, r) {\n if (e.isEdge()) {\n var n = e.cy();\n return nl(r(e), n.zoom(), n.pan());\n }\n}, ID = function(e, r) {\n if (e.isEdge()) {\n var n = e.cy(), a = n.pan(), i = n.zoom();\n return r(e).map(function(o) {\n return nl(o, i, a);\n });\n }\n}, FD = function(e) {\n return e.renderer().getControlPoints(e);\n}, AD = function(e) {\n return e.renderer().getSegmentPoints(e);\n}, MD = function(e) {\n return e.renderer().getSourceEndpoint(e);\n}, BD = function(e) {\n return e.renderer().getTargetEndpoint(e);\n}, ND = function(e) {\n return e.renderer().getEdgeMidpoint(e);\n}, Mf = {\n controlPoints: {\n get: FD,\n mult: !0\n },\n segmentPoints: {\n get: AD,\n mult: !0\n },\n sourceEndpoint: {\n get: MD\n },\n targetEndpoint: {\n get: BD\n },\n midpoint: {\n get: ND\n }\n}, $D = function(e) {\n return \"rendered\" + e[0].toUpperCase() + e.substr(1);\n}, RD = Object.keys(Mf).reduce(function(t, e) {\n var r = Mf[e], n = $D(e);\n return t[e] = function() {\n return OD(this, r.get);\n }, r.mult ? t[n] = function() {\n return ID(this, r.get);\n } : t[n] = function() {\n return LD(this, r.get);\n }, t;\n}, {}), zD = Re({}, SD, DD, PD, RD);\n/*!\nEvent object based on jQuery events, MIT license\n\nhttps://jquery.org/license/\nhttps://tldrlegal.com/license/mit-license\nhttps://github.com/jquery/jquery/blob/master/src/event.js\n*/\nvar qp = function(e, r) {\n this.recycle(e, r);\n};\nfunction Ii() {\n return !1;\n}\nfunction Jo() {\n return !0;\n}\nqp.prototype = {\n instanceString: function() {\n return \"event\";\n },\n recycle: function(e, r) {\n if (this.isImmediatePropagationStopped = this.isPropagationStopped = this.isDefaultPrevented = Ii, e != null && e.preventDefault ? (this.type = e.type, this.isDefaultPrevented = e.defaultPrevented ? Jo : Ii) : e != null && e.type ? r = e : this.type = e, r != null && (this.originalEvent = r.originalEvent, this.type = r.type != null ? r.type : this.type, this.cy = r.cy, this.target = r.target, this.position = r.position, this.renderedPosition = r.renderedPosition, this.namespace = r.namespace, this.layout = r.layout), this.cy != null && this.position != null && this.renderedPosition == null) {\n var n = this.position, a = this.cy.zoom(), i = this.cy.pan();\n this.renderedPosition = {\n x: n.x * a + i.x,\n y: n.y * a + i.y\n };\n }\n this.timeStamp = e && e.timeStamp || Date.now();\n },\n preventDefault: function() {\n this.isDefaultPrevented = Jo;\n var e = this.originalEvent;\n e && e.preventDefault && e.preventDefault();\n },\n stopPropagation: function() {\n this.isPropagationStopped = Jo;\n var e = this.originalEvent;\n e && e.stopPropagation && e.stopPropagation();\n },\n stopImmediatePropagation: function() {\n this.isImmediatePropagationStopped = Jo, this.stopPropagation();\n },\n isDefaultPrevented: Ii,\n isPropagationStopped: Ii,\n isImmediatePropagationStopped: Ii\n};\nvar Kp = /^([^.]+)(\\.(?:[^.]+))?$/, VD = \".*\", Up = {\n qualifierCompare: function(e, r) {\n return e === r;\n },\n eventMatches: function() {\n return !0;\n },\n addEventFields: function() {\n },\n callbackContext: function(e) {\n return e;\n },\n beforeEmit: function() {\n },\n afterEmit: function() {\n },\n bubble: function() {\n return !1;\n },\n parent: function() {\n return null;\n },\n context: null\n}, Bf = Object.keys(Up), HD = {};\nfunction ul() {\n for (var t = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : HD, e = arguments.length > 1 ? arguments[1] : void 0, r = 0; r < Bf.length; r++) {\n var n = Bf[r];\n this[n] = t[n] || Up[n];\n }\n this.context = e || this.context, this.listeners = [], this.emitting = 0;\n}\nvar Wn = ul.prototype, Gp = function(e, r, n, a, i, o, s) {\n pt(a) && (i = a, a = null), s && (o == null ? o = s : o = Re({}, o, s));\n for (var u = st(n) ? n : n.split(/\\s+/), l = 0; l < u.length; l++) {\n var c = u[l];\n if (!qn(c)) {\n var d = c.match(Kp);\n if (d) {\n var v = d[1], h = d[2] ? d[2] : null, f = r(e, c, v, h, a, i, o);\n if (f === !1)\n break;\n }\n }\n }\n}, Nf = function(e, r) {\n return e.addEventFields(e.context, r), new qp(r.type, r);\n}, qD = function(e, r, n) {\n if (uT(n)) {\n r(e, n);\n return;\n } else if (Xe(n)) {\n r(e, Nf(e, n));\n return;\n }\n for (var a = st(n) ? n : n.split(/\\s+/), i = 0; i < a.length; i++) {\n var o = a[i];\n if (!qn(o)) {\n var s = o.match(Kp);\n if (s) {\n var u = s[1], l = s[2] ? s[2] : null, c = Nf(e, {\n type: u,\n namespace: l,\n target: e.context\n });\n r(e, c);\n }\n }\n }\n};\nWn.on = Wn.addListener = function(t, e, r, n, a) {\n return Gp(this, function(i, o, s, u, l, c, d) {\n pt(c) && i.listeners.push({\n event: o,\n // full event string\n callback: c,\n // callback to run\n type: s,\n // the event type (e.g. 'click')\n namespace: u,\n // the event namespace (e.g. \".foo\")\n qualifier: l,\n // a restriction on whether to match this emitter\n conf: d\n // additional configuration\n });\n }, t, e, r, n, a), this;\n};\nWn.one = function(t, e, r, n) {\n return this.on(t, e, r, n, {\n one: !0\n });\n};\nWn.removeListener = Wn.off = function(t, e, r, n) {\n var a = this;\n this.emitting !== 0 && (this.listeners = y5(this.listeners));\n for (var i = this.listeners, o = function(l) {\n var c = i[l];\n Gp(a, function(d, v, h, f, p, m) {\n if ((c.type === h || t === \"*\") && (!f && c.namespace !== \".*\" || c.namespace === f) && (!p || d.qualifierCompare(c.qualifier, p)) && (!m || c.callback === m))\n return i.splice(l, 1), !1;\n }, t, e, r, n);\n }, s = i.length - 1; s >= 0; s--)\n o(s);\n return this;\n};\nWn.removeAllListeners = function() {\n return this.removeListener(\"*\");\n};\nWn.emit = Wn.trigger = function(t, e, r) {\n var n = this.listeners, a = n.length;\n return this.emitting++, st(e) || (e = [e]), qD(this, function(i, o) {\n r != null && (n = [{\n event: o.event,\n type: o.type,\n namespace: o.namespace,\n callback: r\n }], a = n.length);\n for (var s = function(c) {\n var d = n[c];\n if (d.type === o.type && (!d.namespace || d.namespace === o.namespace || d.namespace === VD) && i.eventMatches(i.context, d, o)) {\n var v = [o];\n e != null && w5(v, e), i.beforeEmit(i.context, d, o), d.conf && d.conf.one && (i.listeners = i.listeners.filter(function(p) {\n return p !== d;\n }));\n var h = i.callbackContext(i.context, d, o), f = d.callback.apply(h, v);\n i.afterEmit(i.context, d, o), f === !1 && (o.stopPropagation(), o.preventDefault());\n }\n }, u = 0; u < a; u++)\n s(u);\n i.bubble(i.context) && !o.isPropagationStopped() && i.parent(i.context).emit(o, e);\n }, t), this.emitting--, this;\n};\nvar KD = {\n qualifierCompare: function(e, r) {\n return e == null || r == null ? e == null && r == null : e.sameText(r);\n },\n eventMatches: function(e, r, n) {\n var a = r.qualifier;\n return a != null ? e !== n.target && Do(n.target) && a.matches(n.target) : !0;\n },\n addEventFields: function(e, r) {\n r.cy = e.cy(), r.target = e;\n },\n callbackContext: function(e, r, n) {\n return r.qualifier != null ? n.target : e;\n },\n beforeEmit: function(e, r) {\n r.conf && r.conf.once && r.conf.onceCollection.removeListener(r.event, r.qualifier, r.callback);\n },\n bubble: function() {\n return !0;\n },\n parent: function(e) {\n return e.isChild() ? e.parent() : e.cy();\n }\n}, es = function(e) {\n return Fe(e) ? new Un(e) : e;\n}, Wp = {\n createEmitter: function() {\n for (var e = 0; e < this.length; e++) {\n var r = this[e], n = r._private;\n n.emitter || (n.emitter = new ul(KD, r));\n }\n return this;\n },\n emitter: function() {\n return this._private.emitter;\n },\n on: function(e, r, n) {\n for (var a = es(r), i = 0; i < this.length; i++) {\n var o = this[i];\n o.emitter().on(e, a, n);\n }\n return this;\n },\n removeListener: function(e, r, n) {\n for (var a = es(r), i = 0; i < this.length; i++) {\n var o = this[i];\n o.emitter().removeListener(e, a, n);\n }\n return this;\n },\n removeAllListeners: function() {\n for (var e = 0; e < this.length; e++) {\n var r = this[e];\n r.emitter().removeAllListeners();\n }\n return this;\n },\n one: function(e, r, n) {\n for (var a = es(r), i = 0; i < this.length; i++) {\n var o = this[i];\n o.emitter().one(e, a, n);\n }\n return this;\n },\n once: function(e, r, n) {\n for (var a = es(r), i = 0; i < this.length; i++) {\n var o = this[i];\n o.emitter().on(e, a, n, {\n once: !0,\n onceCollection: this\n });\n }\n },\n emit: function(e, r) {\n for (var n = 0; n < this.length; n++) {\n var a = this[n];\n a.emitter().emit(e, r);\n }\n return this;\n },\n emitAndNotify: function(e, r) {\n if (this.length !== 0)\n return this.cy().notify(e, this), this.emit(e, r), this;\n }\n};\net.eventAliasesOn(Wp);\nvar Yp = {\n nodes: function(e) {\n return this.filter(function(r) {\n return r.isNode();\n }).filter(e);\n },\n edges: function(e) {\n return this.filter(function(r) {\n return r.isEdge();\n }).filter(e);\n },\n // internal helper to get nodes and edges as separate collections with single iteration over elements\n byGroup: function() {\n for (var e = this.spawn(), r = this.spawn(), n = 0; n < this.length; n++) {\n var a = this[n];\n a.isNode() ? e.push(a) : r.push(a);\n }\n return {\n nodes: e,\n edges: r\n };\n },\n filter: function(e, r) {\n if (e === void 0)\n return this;\n if (Fe(e) || yr(e))\n return new Un(e).filter(this);\n if (pt(e)) {\n for (var n = this.spawn(), a = this, i = 0; i < a.length; i++) {\n var o = a[i], s = r ? e.apply(r, [o, i, a]) : e(o, i, a);\n s && n.push(o);\n }\n return n;\n }\n return this.spawn();\n },\n not: function(e) {\n if (e) {\n Fe(e) && (e = this.filter(e));\n for (var r = this.spawn(), n = 0; n < this.length; n++) {\n var a = this[n], i = e.has(a);\n i || r.push(a);\n }\n return r;\n } else\n return this;\n },\n absoluteComplement: function() {\n var e = this.cy();\n return e.mutableElements().not(this);\n },\n intersect: function(e) {\n if (Fe(e)) {\n var r = e;\n return this.filter(r);\n }\n for (var n = this.spawn(), a = this, i = e, o = this.length < e.length, s = o ? a : i, u = o ? i : a, l = 0; l < s.length; l++) {\n var c = s[l];\n u.has(c) && n.push(c);\n }\n return n;\n },\n xor: function(e) {\n var r = this._private.cy;\n Fe(e) && (e = r.$(e));\n var n = this.spawn(), a = this, i = e, o = function(u, l) {\n for (var c = 0; c < u.length; c++) {\n var d = u[c], v = d._private.data.id, h = l.hasElementWithId(v);\n h || n.push(d);\n }\n };\n return o(a, i), o(i, a), n;\n },\n diff: function(e) {\n var r = this._private.cy;\n Fe(e) && (e = r.$(e));\n var n = this.spawn(), a = this.spawn(), i = this.spawn(), o = this, s = e, u = function(c, d, v) {\n for (var h = 0; h < c.length; h++) {\n var f = c[h], p = f._private.data.id, m = d.hasElementWithId(p);\n m ? i.merge(f) : v.push(f);\n }\n };\n return u(o, s, n), u(s, o, a), {\n left: n,\n right: a,\n both: i\n };\n },\n add: function(e) {\n var r = this._private.cy;\n if (!e)\n return this;\n if (Fe(e)) {\n var n = e;\n e = r.mutableElements().filter(n);\n }\n for (var a = this.spawnSelf(), i = 0; i < e.length; i++) {\n var o = e[i], s = !this.has(o);\n s && a.push(o);\n }\n return a;\n },\n // in place merge on calling collection\n merge: function(e) {\n var r = this._private, n = r.cy;\n if (!e)\n return this;\n if (e && Fe(e)) {\n var a = e;\n e = n.mutableElements().filter(a);\n }\n for (var i = r.map, o = 0; o < e.length; o++) {\n var s = e[o], u = s._private.data.id, l = !i.has(u);\n if (l) {\n var c = this.length++;\n this[c] = s, i.set(u, {\n ele: s,\n index: c\n });\n }\n }\n return this;\n },\n unmergeAt: function(e) {\n var r = this[e], n = r.id(), a = this._private, i = a.map;\n this[e] = void 0, i.delete(n);\n var o = e === this.length - 1;\n if (this.length > 1 && !o) {\n var s = this.length - 1, u = this[s], l = u._private.data.id;\n this[s] = void 0, this[e] = u, i.set(l, {\n ele: u,\n index: e\n });\n }\n return this.length--, this;\n },\n // remove single ele in place in calling collection\n unmergeOne: function(e) {\n e = e[0];\n var r = this._private, n = e._private.data.id, a = r.map, i = a.get(n);\n if (!i)\n return this;\n var o = i.index;\n return this.unmergeAt(o), this;\n },\n // remove eles in place on calling collection\n unmerge: function(e) {\n var r = this._private.cy;\n if (!e)\n return this;\n if (e && Fe(e)) {\n var n = e;\n e = r.mutableElements().filter(n);\n }\n for (var a = 0; a < e.length; a++)\n this.unmergeOne(e[a]);\n return this;\n },\n unmergeBy: function(e) {\n for (var r = this.length - 1; r >= 0; r--) {\n var n = this[r];\n e(n) && this.unmergeAt(r);\n }\n return this;\n },\n map: function(e, r) {\n for (var n = [], a = this, i = 0; i < a.length; i++) {\n var o = a[i], s = r ? e.apply(r, [o, i, a]) : e(o, i, a);\n n.push(s);\n }\n return n;\n },\n reduce: function(e, r) {\n for (var n = r, a = this, i = 0; i < a.length; i++)\n n = e(n, a[i], i, a);\n return n;\n },\n max: function(e, r) {\n for (var n = -1 / 0, a, i = this, o = 0; o < i.length; o++) {\n var s = i[o], u = r ? e.apply(r, [s, o, i]) : e(s, o, i);\n u > n && (n = u, a = s);\n }\n return {\n value: n,\n ele: a\n };\n },\n min: function(e, r) {\n for (var n = 1 / 0, a, i = this, o = 0; o < i.length; o++) {\n var s = i[o], u = r ? e.apply(r, [s, o, i]) : e(s, o, i);\n u < n && (n = u, a = s);\n }\n return {\n value: n,\n ele: a\n };\n }\n}, Je = Yp;\nJe.u = Je[\"|\"] = Je[\"+\"] = Je.union = Je.or = Je.add;\nJe[\"\\\\\"] = Je[\"!\"] = Je[\"-\"] = Je.difference = Je.relativeComplement = Je.subtract = Je.not;\nJe.n = Je[\"&\"] = Je[\".\"] = Je.and = Je.intersection = Je.intersect;\nJe[\"^\"] = Je[\"(+)\"] = Je[\"(-)\"] = Je.symmetricDifference = Je.symdiff = Je.xor;\nJe.fnFilter = Je.filterFn = Je.stdFilter = Je.filter;\nJe.complement = Je.abscomp = Je.absoluteComplement;\nvar UD = {\n isNode: function() {\n return this.group() === \"nodes\";\n },\n isEdge: function() {\n return this.group() === \"edges\";\n },\n isLoop: function() {\n return this.isEdge() && this.source()[0] === this.target()[0];\n },\n isSimple: function() {\n return this.isEdge() && this.source()[0] !== this.target()[0];\n },\n group: function() {\n var e = this[0];\n if (e)\n return e._private.group;\n }\n}, Zp = function(e, r) {\n var n = e.cy(), a = n.hasCompoundNodes();\n function i(c) {\n var d = c.pstyle(\"z-compound-depth\");\n return d.value === \"auto\" ? a ? c.zDepth() : 0 : d.value === \"bottom\" ? -1 : d.value === \"top\" ? uc : 0;\n }\n var o = i(e) - i(r);\n if (o !== 0)\n return o;\n function s(c) {\n var d = c.pstyle(\"z-index-compare\");\n return d.value === \"auto\" && c.isNode() ? 1 : 0;\n }\n var u = s(e) - s(r);\n if (u !== 0)\n return u;\n var l = e.pstyle(\"z-index\").value - r.pstyle(\"z-index\").value;\n return l !== 0 ? l : e.poolIndex() - r.poolIndex();\n}, As = {\n forEach: function(e, r) {\n if (pt(e))\n for (var n = this.length, a = 0; a < n; a++) {\n var i = this[a], o = r ? e.apply(r, [i, a, this]) : e(i, a, this);\n if (o === !1)\n break;\n }\n return this;\n },\n toArray: function() {\n for (var e = [], r = 0; r < this.length; r++)\n e.push(this[r]);\n return e;\n },\n slice: function(e, r) {\n var n = [], a = this.length;\n r == null && (r = a), e == null && (e = 0), e < 0 && (e = a + e), r < 0 && (r = a + r);\n for (var i = e; i >= 0 && i < r && i < a; i++)\n n.push(this[i]);\n return this.spawn(n);\n },\n size: function() {\n return this.length;\n },\n eq: function(e) {\n return this[e] || this.spawn();\n },\n first: function() {\n return this[0] || this.spawn();\n },\n last: function() {\n return this[this.length - 1] || this.spawn();\n },\n empty: function() {\n return this.length === 0;\n },\n nonempty: function() {\n return !this.empty();\n },\n sort: function(e) {\n if (!pt(e))\n return this;\n var r = this.toArray().sort(e);\n return this.spawn(r);\n },\n sortByZIndex: function() {\n return this.sort(Zp);\n },\n zDepth: function() {\n var e = this[0];\n if (e) {\n var r = e._private, n = r.group;\n if (n === \"nodes\") {\n var a = r.data.parent ? e.parents().size() : 0;\n return e.isParent() ? a : uc - 1;\n } else {\n var i = r.source, o = r.target, s = i.zDepth(), u = o.zDepth();\n return Math.max(s, u, 0);\n }\n }\n }\n};\nAs.each = As.forEach;\nvar GD = function() {\n var e = \"undefined\", r = (typeof Symbol > \"u\" ? \"undefined\" : Ft(Symbol)) != e && Ft(Symbol.iterator) != e;\n r && (As[Symbol.iterator] = function() {\n var n = this, a = {\n value: void 0,\n done: !1\n }, i = 0, o = this.length;\n return Uh({\n next: function() {\n return i < o ? a.value = n[i++] : (a.value = void 0, a.done = !0), a;\n }\n }, Symbol.iterator, function() {\n return this;\n });\n });\n};\nGD();\nvar WD = Wt({\n nodeDimensionsIncludeLabels: !1\n}), fs = {\n // Calculates and returns node dimensions { x, y } based on options given\n layoutDimensions: function(e) {\n e = WD(e);\n var r;\n if (!this.takesUpSpace())\n r = {\n w: 0,\n h: 0\n };\n else if (e.nodeDimensionsIncludeLabels) {\n var n = this.boundingBox();\n r = {\n w: n.w,\n h: n.h\n };\n } else\n r = {\n w: this.outerWidth(),\n h: this.outerHeight()\n };\n return (r.w === 0 || r.h === 0) && (r.w = r.h = 1), r;\n },\n // using standard layout options, apply position function (w/ or w/o animation)\n layoutPositions: function(e, r, n) {\n var a = this.nodes().filter(function(C) {\n return !C.isParent();\n }), i = this.cy(), o = r.eles, s = function(E) {\n return E.id();\n }, u = to(n, s);\n e.emit({\n type: \"layoutstart\",\n layout: e\n }), e.animations = [];\n var l = function(E, x, T) {\n var k = {\n x: x.x1 + x.w / 2,\n y: x.y1 + x.h / 2\n }, _ = {\n // scale from center of bounding box (not necessarily 0,0)\n x: (T.x - k.x) * E,\n y: (T.y - k.y) * E\n };\n return {\n x: k.x + _.x,\n y: k.y + _.y\n };\n }, c = r.spacingFactor && r.spacingFactor !== 1, d = function() {\n if (!c)\n return null;\n for (var E = pr(), x = 0; x < a.length; x++) {\n var T = a[x], k = u(T, x);\n Y5(E, k.x, k.y);\n }\n return E;\n }, v = d(), h = to(function(C, E) {\n var x = u(C, E);\n if (c) {\n var T = Math.abs(r.spacingFactor);\n x = l(T, v, x);\n }\n return r.transform != null && (x = r.transform(C, x)), x;\n }, s);\n if (r.animate) {\n for (var f = 0; f < a.length; f++) {\n var p = a[f], m = h(p, f), g = r.animateFilter == null || r.animateFilter(p, f);\n if (g) {\n var y = p.animation({\n position: m,\n duration: r.animationDuration,\n easing: r.animationEasing\n });\n e.animations.push(y);\n } else\n p.position(m);\n }\n if (r.fit) {\n var b = i.animation({\n fit: {\n boundingBox: o.boundingBoxAt(h),\n padding: r.padding\n },\n duration: r.animationDuration,\n easing: r.animationEasing\n });\n e.animations.push(b);\n } else if (r.zoom !== void 0 && r.pan !== void 0) {\n var w = i.animation({\n zoom: r.zoom,\n pan: r.pan,\n duration: r.animationDuration,\n easing: r.animationEasing\n });\n e.animations.push(w);\n }\n e.animations.forEach(function(C) {\n return C.play();\n }), e.one(\"layoutready\", r.ready), e.emit({\n type: \"layoutready\",\n layout: e\n }), hi.all(e.animations.map(function(C) {\n return C.promise();\n })).then(function() {\n e.one(\"layoutstop\", r.stop), e.emit({\n type: \"layoutstop\",\n layout: e\n });\n });\n } else\n a.positions(h), r.fit && i.fit(r.eles, r.padding), r.zoom != null && i.zoom(r.zoom), r.pan && i.pan(r.pan), e.one(\"layoutready\", r.ready), e.emit({\n type: \"layoutready\",\n layout: e\n }), e.one(\"layoutstop\", r.stop), e.emit({\n type: \"layoutstop\",\n layout: e\n });\n return this;\n },\n layout: function(e) {\n var r = this.cy();\n return r.makeLayout(Re({}, e, {\n eles: this\n }));\n }\n};\nfs.createLayout = fs.makeLayout = fs.layout;\nfunction Xp(t, e, r) {\n var n = r._private, a = n.styleCache = n.styleCache || [], i;\n return (i = a[t]) != null || (i = a[t] = e(r)), i;\n}\nfunction cl(t, e) {\n return t = ma(t), function(n) {\n return Xp(t, e, n);\n };\n}\nfunction dl(t, e) {\n t = ma(t);\n var r = function(a) {\n return e.call(a);\n };\n return function() {\n var a = this[0];\n if (a)\n return Xp(t, r, a);\n };\n}\nvar Ut = {\n recalculateRenderedStyle: function(e) {\n var r = this.cy(), n = r.renderer(), a = r.styleEnabled();\n return n && a && n.recalculateRenderedStyle(this, e), this;\n },\n dirtyStyleCache: function() {\n var e = this.cy(), r = function(i) {\n return i._private.styleCache = null;\n };\n if (e.hasCompoundNodes()) {\n var n;\n n = this.spawnSelf().merge(this.descendants()).merge(this.parents()), n.merge(n.connectedEdges()), n.forEach(r);\n } else\n this.forEach(function(a) {\n r(a), a.connectedEdges().forEach(r);\n });\n return this;\n },\n // fully updates (recalculates) the style for the elements\n updateStyle: function(e) {\n var r = this._private.cy;\n if (!r.styleEnabled())\n return this;\n if (r.batching()) {\n var n = r._private.batchStyleEles;\n return n.merge(this), this;\n }\n var a = r.hasCompoundNodes(), i = this;\n e = !!(e || e === void 0), a && (i = this.spawnSelf().merge(this.descendants()).merge(this.parents()));\n var o = i;\n return e ? o.emitAndNotify(\"style\") : o.emit(\"style\"), i.forEach(function(s) {\n return s._private.styleDirty = !0;\n }), this;\n },\n // private: clears dirty flag and recalculates style\n cleanStyle: function() {\n var e = this.cy();\n if (e.styleEnabled())\n for (var r = 0; r < this.length; r++) {\n var n = this[r];\n n._private.styleDirty && (n._private.styleDirty = !1, e.style().apply(n));\n }\n },\n // get the internal parsed style object for the specified property\n parsedStyle: function(e) {\n var r = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : !0, n = this[0], a = n.cy();\n if (a.styleEnabled() && n) {\n this.cleanStyle();\n var i = n._private.style[e];\n return i ?? (r ? a.style().getDefaultProperty(e) : null);\n }\n },\n numericStyle: function(e) {\n var r = this[0];\n if (r.cy().styleEnabled() && r) {\n var n = r.pstyle(e);\n return n.pfValue !== void 0 ? n.pfValue : n.value;\n }\n },\n numericStyleUnits: function(e) {\n var r = this[0];\n if (r.cy().styleEnabled() && r)\n return r.pstyle(e).units;\n },\n // get the specified css property as a rendered value (i.e. on-screen value)\n // or get the whole rendered style if no property specified (NB doesn't allow setting)\n renderedStyle: function(e) {\n var r = this.cy();\n if (!r.styleEnabled())\n return this;\n var n = this[0];\n if (n)\n return r.style().getRenderedStyle(n, e);\n },\n // read the calculated css style of the element or override the style (via a bypass)\n style: function(e, r) {\n var n = this.cy();\n if (!n.styleEnabled())\n return this;\n var a = !1, i = n.style();\n if (Xe(e)) {\n var o = e;\n i.applyBypass(this, o, a), this.emitAndNotify(\"style\");\n } else if (Fe(e))\n if (r === void 0) {\n var s = this[0];\n return s ? i.getStylePropertyValue(s, e) : void 0;\n } else\n i.applyBypass(this, e, r, a), this.emitAndNotify(\"style\");\n else if (e === void 0) {\n var u = this[0];\n return u ? i.getRawStyle(u) : void 0;\n }\n return this;\n },\n removeStyle: function(e) {\n var r = this.cy();\n if (!r.styleEnabled())\n return this;\n var n = !1, a = r.style(), i = this;\n if (e === void 0)\n for (var o = 0; o < i.length; o++) {\n var s = i[o];\n a.removeAllBypasses(s, n);\n }\n else {\n e = e.split(/\\s+/);\n for (var u = 0; u < i.length; u++) {\n var l = i[u];\n a.removeBypasses(l, e, n);\n }\n }\n return this.emitAndNotify(\"style\"), this;\n },\n show: function() {\n return this.css(\"display\", \"element\"), this;\n },\n hide: function() {\n return this.css(\"display\", \"none\"), this;\n },\n effectiveOpacity: function() {\n var e = this.cy();\n if (!e.styleEnabled())\n return 1;\n var r = e.hasCompoundNodes(), n = this[0];\n if (n) {\n var a = n._private, i = n.pstyle(\"opacity\").value;\n if (!r)\n return i;\n var o = a.data.parent ? n.parents() : null;\n if (o)\n for (var s = 0; s < o.length; s++) {\n var u = o[s], l = u.pstyle(\"opacity\").value;\n i = l * i;\n }\n return i;\n }\n },\n transparent: function() {\n var e = this.cy();\n if (!e.styleEnabled())\n return !1;\n var r = this[0], n = r.cy().hasCompoundNodes();\n if (r)\n return n ? r.effectiveOpacity() === 0 : r.pstyle(\"opacity\").value === 0;\n },\n backgrounding: function() {\n var e = this.cy();\n if (!e.styleEnabled())\n return !1;\n var r = this[0];\n return !!r._private.backgrounding;\n }\n};\nfunction Vl(t, e) {\n var r = t._private, n = r.data.parent ? t.parents() : null;\n if (n)\n for (var a = 0; a < n.length; a++) {\n var i = n[a];\n if (!e(i))\n return !1;\n }\n return !0;\n}\nfunction xc(t) {\n var e = t.ok, r = t.edgeOkViaNode || t.ok, n = t.parentOk || t.ok;\n return function() {\n var a = this.cy();\n if (!a.styleEnabled())\n return !0;\n var i = this[0], o = a.hasCompoundNodes();\n if (i) {\n var s = i._private;\n if (!e(i))\n return !1;\n if (i.isNode())\n return !o || Vl(i, n);\n var u = s.source, l = s.target;\n return r(u) && (!o || Vl(u, r)) && (u === l || r(l) && (!o || Vl(l, r)));\n }\n };\n}\nvar yi = cl(\"eleTakesUpSpace\", function(t) {\n return t.pstyle(\"display\").value === \"element\" && t.width() !== 0 && (t.isNode() ? t.height() !== 0 : !0);\n});\nUt.takesUpSpace = dl(\"takesUpSpace\", xc({\n ok: yi\n}));\nvar YD = cl(\"eleInteractive\", function(t) {\n return t.pstyle(\"events\").value === \"yes\" && t.pstyle(\"visibility\").value === \"visible\" && yi(t);\n}), ZD = cl(\"parentInteractive\", function(t) {\n return t.pstyle(\"visibility\").value === \"visible\" && yi(t);\n});\nUt.interactive = dl(\"interactive\", xc({\n ok: YD,\n parentOk: ZD,\n edgeOkViaNode: yi\n}));\nUt.noninteractive = function() {\n var t = this[0];\n if (t)\n return !t.interactive();\n};\nvar XD = cl(\"eleVisible\", function(t) {\n return t.pstyle(\"visibility\").value === \"visible\" && t.pstyle(\"opacity\").pfValue !== 0 && yi(t);\n}), jD = yi;\nUt.visible = dl(\"visible\", xc({\n ok: XD,\n edgeOkViaNode: jD\n}));\nUt.hidden = function() {\n var t = this[0];\n if (t)\n return !t.visible();\n};\nUt.isBundledBezier = dl(\"isBundledBezier\", function() {\n return this.cy().styleEnabled() ? !this.removed() && this.pstyle(\"curve-style\").value === \"bezier\" && this.takesUpSpace() : !1;\n});\nUt.bypass = Ut.css = Ut.style;\nUt.renderedCss = Ut.renderedStyle;\nUt.removeBypass = Ut.removeCss = Ut.removeStyle;\nUt.pstyle = Ut.parsedStyle;\nvar zn = {};\nfunction $f(t) {\n return function() {\n var e = arguments, r = [];\n if (e.length === 2) {\n var n = e[0], a = e[1];\n this.on(t.event, n, a);\n } else if (e.length === 1 && pt(e[0])) {\n var i = e[0];\n this.on(t.event, i);\n } else if (e.length === 0 || e.length === 1 && st(e[0])) {\n for (var o = e.length === 1 ? e[0] : null, s = 0; s < this.length; s++) {\n var u = this[s], l = !t.ableField || u._private[t.ableField], c = u._private[t.field] != t.value;\n if (t.overrideAble) {\n var d = t.overrideAble(u);\n if (d !== void 0 && (l = d, !d))\n return this;\n }\n l && (u._private[t.field] = t.value, c && r.push(u));\n }\n var v = this.spawn(r);\n v.updateStyle(), v.emit(t.event), o && v.emit(o);\n }\n return this;\n };\n}\nfunction bi(t) {\n zn[t.field] = function() {\n var e = this[0];\n if (e) {\n if (t.overrideField) {\n var r = t.overrideField(e);\n if (r !== void 0)\n return r;\n }\n return e._private[t.field];\n }\n }, zn[t.on] = $f({\n event: t.on,\n field: t.field,\n ableField: t.ableField,\n overrideAble: t.overrideAble,\n value: !0\n }), zn[t.off] = $f({\n event: t.off,\n field: t.field,\n ableField: t.ableField,\n overrideAble: t.overrideAble,\n value: !1\n });\n}\nbi({\n field: \"locked\",\n overrideField: function(e) {\n return e.cy().autolock() ? !0 : void 0;\n },\n on: \"lock\",\n off: \"unlock\"\n});\nbi({\n field: \"grabbable\",\n overrideField: function(e) {\n return e.cy().autoungrabify() || e.pannable() ? !1 : void 0;\n },\n on: \"grabify\",\n off: \"ungrabify\"\n});\nbi({\n field: \"selected\",\n ableField: \"selectable\",\n overrideAble: function(e) {\n return e.cy().autounselectify() ? !1 : void 0;\n },\n on: \"select\",\n off: \"unselect\"\n});\nbi({\n field: \"selectable\",\n overrideField: function(e) {\n return e.cy().autounselectify() ? !1 : void 0;\n },\n on: \"selectify\",\n off: \"unselectify\"\n});\nzn.deselect = zn.unselect;\nzn.grabbed = function() {\n var t = this[0];\n if (t)\n return t._private.grabbed;\n};\nbi({\n field: \"active\",\n on: \"activate\",\n off: \"unactivate\"\n});\nbi({\n field: \"pannable\",\n on: \"panify\",\n off: \"unpanify\"\n});\nzn.inactive = function() {\n var t = this[0];\n if (t)\n return !t._private.active;\n};\nvar nr = {}, Rf = function(e) {\n return function(n) {\n for (var a = this, i = [], o = 0; o < a.length; o++) {\n var s = a[o];\n if (s.isNode()) {\n for (var u = !1, l = s.connectedEdges(), c = 0; c < l.length; c++) {\n var d = l[c], v = d.source(), h = d.target();\n if (e.noIncomingEdges && h === s && v !== s || e.noOutgoingEdges && v === s && h !== s) {\n u = !0;\n break;\n }\n }\n u || i.push(s);\n }\n }\n return this.spawn(i, !0).filter(n);\n };\n}, zf = function(e) {\n return function(r) {\n for (var n = this, a = [], i = 0; i < n.length; i++) {\n var o = n[i];\n if (o.isNode())\n for (var s = o.connectedEdges(), u = 0; u < s.length; u++) {\n var l = s[u], c = l.source(), d = l.target();\n e.outgoing && c === o ? (a.push(l), a.push(d)) : e.incoming && d === o && (a.push(l), a.push(c));\n }\n }\n return this.spawn(a, !0).filter(r);\n };\n}, Vf = function(e) {\n return function(r) {\n for (var n = this, a = [], i = {}; ; ) {\n var o = e.outgoing ? n.outgoers() : n.incomers();\n if (o.length === 0)\n break;\n for (var s = !1, u = 0; u < o.length; u++) {\n var l = o[u], c = l.id();\n i[c] || (i[c] = !0, a.push(l), s = !0);\n }\n if (!s)\n break;\n n = o;\n }\n return this.spawn(a, !0).filter(r);\n };\n};\nnr.clearTraversalCache = function() {\n for (var t = 0; t < this.length; t++)\n this[t]._private.traversalCache = null;\n};\nRe(nr, {\n // get the root nodes in the DAG\n roots: Rf({\n noIncomingEdges: !0\n }),\n // get the leaf nodes in the DAG\n leaves: Rf({\n noOutgoingEdges: !0\n }),\n // normally called children in graph theory\n // these nodes =edges=> outgoing nodes\n outgoers: Sr(zf({\n outgoing: !0\n }), \"outgoers\"),\n // aka DAG descendants\n successors: Vf({\n outgoing: !0\n }),\n // normally called parents in graph theory\n // these nodes <=edges= incoming nodes\n incomers: Sr(zf({\n incoming: !0\n }), \"incomers\"),\n // aka DAG ancestors\n predecessors: Vf({\n incoming: !0\n })\n});\nRe(nr, {\n neighborhood: Sr(function(t) {\n for (var e = [], r = this.nodes(), n = 0; n < r.length; n++)\n for (var a = r[n], i = a.connectedEdges(), o = 0; o < i.length; o++) {\n var s = i[o], u = s.source(), l = s.target(), c = a === u ? l : u;\n c.length > 0 && e.push(c[0]), e.push(s[0]);\n }\n return this.spawn(e, !0).filter(t);\n }, \"neighborhood\"),\n closedNeighborhood: function(e) {\n return this.neighborhood().add(this).filter(e);\n },\n openNeighborhood: function(e) {\n return this.neighborhood(e);\n }\n});\nnr.neighbourhood = nr.neighborhood;\nnr.closedNeighbourhood = nr.closedNeighborhood;\nnr.openNeighbourhood = nr.openNeighborhood;\nRe(nr, {\n source: Sr(function(e) {\n var r = this[0], n;\n return r && (n = r._private.source || r.cy().collection()), n && e ? n.filter(e) : n;\n }, \"source\"),\n target: Sr(function(e) {\n var r = this[0], n;\n return r && (n = r._private.target || r.cy().collection()), n && e ? n.filter(e) : n;\n }, \"target\"),\n sources: Hf({\n attr: \"source\"\n }),\n targets: Hf({\n attr: \"target\"\n })\n});\nfunction Hf(t) {\n return function(r) {\n for (var n = [], a = 0; a < this.length; a++) {\n var i = this[a], o = i._private[t.attr];\n o && n.push(o);\n }\n return this.spawn(n, !0).filter(r);\n };\n}\nRe(nr, {\n edgesWith: Sr(qf(), \"edgesWith\"),\n edgesTo: Sr(qf({\n thisIsSrc: !0\n }), \"edgesTo\")\n});\nfunction qf(t) {\n return function(r) {\n var n = [], a = this._private.cy, i = t || {};\n Fe(r) && (r = a.$(r));\n for (var o = 0; o < r.length; o++)\n for (var s = r[o]._private.edges, u = 0; u < s.length; u++) {\n var l = s[u], c = l._private.data, d = this.hasElementWithId(c.source) && r.hasElementWithId(c.target), v = r.hasElementWithId(c.source) && this.hasElementWithId(c.target), h = d || v;\n h && ((i.thisIsSrc || i.thisIsTgt) && (i.thisIsSrc && !d || i.thisIsTgt && !v) || n.push(l));\n }\n return this.spawn(n, !0);\n };\n}\nRe(nr, {\n connectedEdges: Sr(function(t) {\n for (var e = [], r = this, n = 0; n < r.length; n++) {\n var a = r[n];\n if (a.isNode())\n for (var i = a._private.edges, o = 0; o < i.length; o++) {\n var s = i[o];\n e.push(s);\n }\n }\n return this.spawn(e, !0).filter(t);\n }, \"connectedEdges\"),\n connectedNodes: Sr(function(t) {\n for (var e = [], r = this, n = 0; n < r.length; n++) {\n var a = r[n];\n a.isEdge() && (e.push(a.source()[0]), e.push(a.target()[0]));\n }\n return this.spawn(e, !0).filter(t);\n }, \"connectedNodes\"),\n parallelEdges: Sr(Kf(), \"parallelEdges\"),\n codirectedEdges: Sr(Kf({\n codirected: !0\n }), \"codirectedEdges\")\n});\nfunction Kf(t) {\n var e = {\n codirected: !1\n };\n return t = Re({}, e, t), function(n) {\n for (var a = [], i = this.edges(), o = t, s = 0; s < i.length; s++)\n for (var u = i[s], l = u._private, c = l.source, d = c._private.data.id, v = l.data.target, h = c._private.edges, f = 0; f < h.length; f++) {\n var p = h[f], m = p._private.data, g = m.target, y = m.source, b = g === v && y === d, w = d === g && v === y;\n (o.codirected && b || !o.codirected && (b || w)) && a.push(p);\n }\n return this.spawn(a, !0).filter(n);\n };\n}\nRe(nr, {\n components: function(e) {\n var r = this, n = r.cy(), a = n.collection(), i = e == null ? r.nodes() : e.nodes(), o = [];\n e != null && i.empty() && (i = e.sources());\n var s = function(c, d) {\n a.merge(c), i.unmerge(c), d.merge(c);\n };\n if (i.empty())\n return r.spawn();\n var u = function() {\n var c = n.collection();\n o.push(c);\n var d = i[0];\n s(d, c), r.bfs({\n directed: !1,\n roots: d,\n visit: function(h) {\n return s(h, c);\n }\n }), c.forEach(function(v) {\n v.connectedEdges().forEach(function(h) {\n r.has(h) && c.has(h.source()) && c.has(h.target()) && c.merge(h);\n });\n });\n };\n do\n u();\n while (i.length > 0);\n return o;\n },\n component: function() {\n var e = this[0];\n return e.cy().mutableElements().components(e)[0];\n }\n});\nnr.componentsOf = nr.components;\nvar Gt = function(e, r) {\n var n = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : !1, a = arguments.length > 3 && arguments[3] !== void 0 ? arguments[3] : !1;\n if (e === void 0) {\n yt(\"A collection must have a reference to the core\");\n return;\n }\n var i = new Xr(), o = !1;\n if (!r)\n r = [];\n else if (r.length > 0 && Xe(r[0]) && !Do(r[0])) {\n o = !0;\n for (var s = [], u = new vi(), l = 0, c = r.length; l < c; l++) {\n var d = r[l];\n d.data == null && (d.data = {});\n var v = d.data;\n if (v.id == null)\n v.id = up();\n else if (e.hasElementWithId(v.id) || u.has(v.id))\n continue;\n var h = new rl(e, d, !1);\n s.push(h), u.add(v.id);\n }\n r = s;\n }\n this.length = 0;\n for (var f = 0, p = r.length; f < p; f++) {\n var m = r[f][0];\n if (m != null) {\n var g = m._private.data.id;\n (!n || !i.has(g)) && (n && i.set(g, {\n index: this.length,\n ele: m\n }), this[this.length] = m, this.length++);\n }\n }\n this._private = {\n eles: this,\n cy: e,\n get map() {\n return this.lazyMap == null && this.rebuildMap(), this.lazyMap;\n },\n set map(y) {\n this.lazyMap = y;\n },\n rebuildMap: function() {\n for (var b = this.lazyMap = new Xr(), w = this.eles, C = 0; C < w.length; C++) {\n var E = w[C];\n b.set(E.id(), {\n index: C,\n ele: E\n });\n }\n }\n }, n && (this._private.map = i), o && !a && this.restore();\n}, dt = rl.prototype = Gt.prototype = Object.create(Array.prototype);\ndt.instanceString = function() {\n return \"collection\";\n};\ndt.spawn = function(t, e) {\n return new Gt(this.cy(), t, e);\n};\ndt.spawnSelf = function() {\n return this.spawn(this);\n};\ndt.cy = function() {\n return this._private.cy;\n};\ndt.renderer = function() {\n return this._private.cy.renderer();\n};\ndt.element = function() {\n return this[0];\n};\ndt.collection = function() {\n return Zh(this) ? this : new Gt(this._private.cy, [this]);\n};\ndt.unique = function() {\n return new Gt(this._private.cy, this, !0);\n};\ndt.hasElementWithId = function(t) {\n return t = \"\" + t, this._private.map.has(t);\n};\ndt.getElementById = function(t) {\n t = \"\" + t;\n var e = this._private.cy, r = this._private.map.get(t);\n return r ? r.ele : new Gt(e);\n};\ndt.$id = dt.getElementById;\ndt.poolIndex = function() {\n var t = this._private.cy, e = t._private.elements, r = this[0]._private.data.id;\n return e._private.map.get(r).index;\n};\ndt.indexOf = function(t) {\n var e = t[0]._private.data.id;\n return this._private.map.get(e).index;\n};\ndt.indexOfId = function(t) {\n return t = \"\" + t, this._private.map.get(t).index;\n};\ndt.json = function(t) {\n var e = this.element(), r = this.cy();\n if (e == null && t)\n return this;\n if (e != null) {\n var n = e._private;\n if (Xe(t)) {\n if (r.startBatch(), t.data) {\n e.data(t.data);\n var a = n.data;\n if (e.isEdge()) {\n var i = !1, o = {}, s = t.data.source, u = t.data.target;\n s != null && s != a.source && (o.source = \"\" + s, i = !0), u != null && u != a.target && (o.target = \"\" + u, i = !0), i && (e = e.move(o));\n } else {\n var l = \"parent\" in t.data, c = t.data.parent;\n l && (c != null || a.parent != null) && c != a.parent && (c === void 0 && (c = null), c != null && (c = \"\" + c), e = e.move({\n parent: c\n }));\n }\n }\n t.position && e.position(t.position);\n var d = function(p, m, g) {\n var y = t[p];\n y != null && y !== n[p] && (y ? e[m]() : e[g]());\n };\n return d(\"removed\", \"remove\", \"restore\"), d(\"selected\", \"select\", \"unselect\"), d(\"selectable\", \"selectify\", \"unselectify\"), d(\"locked\", \"lock\", \"unlock\"), d(\"grabbable\", \"grabify\", \"ungrabify\"), d(\"pannable\", \"panify\", \"unpanify\"), t.classes != null && e.classes(t.classes), r.endBatch(), this;\n } else if (t === void 0) {\n var v = {\n data: Zr(n.data),\n position: Zr(n.position),\n group: n.group,\n removed: n.removed,\n selected: n.selected,\n selectable: n.selectable,\n locked: n.locked,\n grabbable: n.grabbable,\n pannable: n.pannable,\n classes: null\n };\n v.classes = \"\";\n var h = 0;\n return n.classes.forEach(function(f) {\n return v.classes += h++ === 0 ? f : \" \" + f;\n }), v;\n }\n }\n};\ndt.jsons = function() {\n for (var t = [], e = 0; e < this.length; e++) {\n var r = this[e], n = r.json();\n t.push(n);\n }\n return t;\n};\ndt.clone = function() {\n for (var t = this.cy(), e = [], r = 0; r < this.length; r++) {\n var n = this[r], a = n.json(), i = new rl(t, a, !1);\n e.push(i);\n }\n return new Gt(t, e);\n};\ndt.copy = dt.clone;\ndt.restore = function() {\n for (var t = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : !0, e = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : !0, r = this, n = r.cy(), a = n._private, i = [], o = [], s, u = 0, l = r.length; u < l; u++) {\n var c = r[u];\n e && !c.removed() || (c.isNode() ? i.push(c) : o.push(c));\n }\n s = i.concat(o);\n var d, v = function() {\n s.splice(d, 1), d--;\n };\n for (d = 0; d < s.length; d++) {\n var h = s[d], f = h._private, p = f.data;\n if (h.clearTraversalCache(), !(!e && !f.removed)) {\n if (p.id === void 0)\n p.id = up();\n else if (be(p.id))\n p.id = \"\" + p.id;\n else if (qn(p.id) || !Fe(p.id)) {\n yt(\"Can not create element with invalid string ID `\" + p.id + \"`\"), v();\n continue;\n } else if (n.hasElementWithId(p.id)) {\n yt(\"Can not create second element with ID `\" + p.id + \"`\"), v();\n continue;\n }\n }\n var m = p.id;\n if (h.isNode()) {\n var g = f.position;\n g.x == null && (g.x = 0), g.y == null && (g.y = 0);\n }\n if (h.isEdge()) {\n for (var y = h, b = [\"source\", \"target\"], w = b.length, C = !1, E = 0; E < w; E++) {\n var x = b[E], T = p[x];\n be(T) && (T = p[x] = \"\" + p[x]), T == null || T === \"\" ? (yt(\"Can not create edge `\" + m + \"` with unspecified \" + x), C = !0) : n.hasElementWithId(T) || (yt(\"Can not create edge `\" + m + \"` with nonexistant \" + x + \" `\" + T + \"`\"), C = !0);\n }\n if (C) {\n v();\n continue;\n }\n var k = n.getElementById(p.source), _ = n.getElementById(p.target);\n k.same(_) ? k._private.edges.push(y) : (k._private.edges.push(y), _._private.edges.push(y)), y._private.source = k, y._private.target = _;\n }\n f.map = new Xr(), f.map.set(m, {\n ele: h,\n index: 0\n }), f.removed = !1, e && n.addToPool(h);\n }\n for (var D = 0; D < i.length; D++) {\n var O = i[D], F = O._private.data;\n be(F.parent) && (F.parent = \"\" + F.parent);\n var L = F.parent, B = L != null;\n if (B || O._private.parent) {\n var I = O._private.parent ? n.collection().merge(O._private.parent) : n.getElementById(L);\n if (I.empty())\n F.parent = void 0;\n else if (I[0].removed())\n tt(\"Node added with missing parent, reference to parent removed\"), F.parent = void 0, O._private.parent = null;\n else {\n for (var M = !1, A = I; !A.empty(); ) {\n if (O.same(A)) {\n M = !0, F.parent = void 0;\n break;\n }\n A = A.parent();\n }\n M || (I[0]._private.children.push(O), O._private.parent = I[0], a.hasCompoundNodes = !0);\n }\n }\n }\n if (s.length > 0) {\n for (var R = s.length === r.length ? r : new Gt(n, s), K = 0; K < R.length; K++) {\n var H = R[K];\n H.isNode() || (H.parallelEdges().clearTraversalCache(), H.source().clearTraversalCache(), H.target().clearTraversalCache());\n }\n var q;\n a.hasCompoundNodes ? q = n.collection().merge(R).merge(R.connectedNodes()).merge(R.parent()) : q = R, q.dirtyCompoundBoundsCache().dirtyBoundingBoxCache().updateStyle(t), t ? R.emitAndNotify(\"add\") : e && R.emit(\"add\");\n }\n return r;\n};\ndt.removed = function() {\n var t = this[0];\n return t && t._private.removed;\n};\ndt.inside = function() {\n var t = this[0];\n return t && !t._private.removed;\n};\ndt.remove = function() {\n var t = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : !0, e = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : !0, r = this, n = [], a = {}, i = r._private.cy;\n function o(L) {\n for (var B = L._private.edges, I = 0; I < B.length; I++)\n u(B[I]);\n }\n function s(L) {\n for (var B = L._private.children, I = 0; I < B.length; I++)\n u(B[I]);\n }\n function u(L) {\n var B = a[L.id()];\n e && L.removed() || B || (a[L.id()] = !0, L.isNode() ? (n.push(L), o(L), s(L)) : n.unshift(L));\n }\n for (var l = 0, c = r.length; l < c; l++) {\n var d = r[l];\n u(d);\n }\n function v(L, B) {\n var I = L._private.edges;\n Kn(I, B), L.clearTraversalCache();\n }\n function h(L) {\n L.clearTraversalCache();\n }\n var f = [];\n f.ids = {};\n function p(L, B) {\n B = B[0], L = L[0];\n var I = L._private.children, M = L.id();\n Kn(I, B), B._private.parent = null, f.ids[M] || (f.ids[M] = !0, f.push(L));\n }\n r.dirtyCompoundBoundsCache(), e && i.removeFromPool(n);\n for (var m = 0; m < n.length; m++) {\n var g = n[m];\n if (g.isEdge()) {\n var y = g.source()[0], b = g.target()[0];\n v(y, g), v(b, g);\n for (var w = g.parallelEdges(), C = 0; C < w.length; C++) {\n var E = w[C];\n h(E), E.isBundledBezier() && E.dirtyBoundingBoxCache();\n }\n } else {\n var x = g.parent();\n x.length !== 0 && p(x, g);\n }\n e && (g._private.removed = !0);\n }\n var T = i._private.elements;\n i._private.hasCompoundNodes = !1;\n for (var k = 0; k < T.length; k++) {\n var _ = T[k];\n if (_.isParent()) {\n i._private.hasCompoundNodes = !0;\n break;\n }\n }\n var D = new Gt(this.cy(), n);\n D.size() > 0 && (t ? D.emitAndNotify(\"remove\") : e && D.emit(\"remove\"));\n for (var O = 0; O < f.length; O++) {\n var F = f[O];\n (!e || !F.removed()) && F.updateStyle();\n }\n return D;\n};\ndt.move = function(t) {\n var e = this._private.cy, r = this, n = !1, a = !1, i = function(f) {\n return f == null ? f : \"\" + f;\n };\n if (t.source !== void 0 || t.target !== void 0) {\n var o = i(t.source), s = i(t.target), u = o != null && e.hasElementWithId(o), l = s != null && e.hasElementWithId(s);\n (u || l) && (e.batch(function() {\n r.remove(n, a), r.emitAndNotify(\"moveout\");\n for (var h = 0; h < r.length; h++) {\n var f = r[h], p = f._private.data;\n f.isEdge() && (u && (p.source = o), l && (p.target = s));\n }\n r.restore(n, a);\n }), r.emitAndNotify(\"move\"));\n } else if (t.parent !== void 0) {\n var c = i(t.parent), d = c === null || e.hasElementWithId(c);\n if (d) {\n var v = c === null ? void 0 : c;\n e.batch(function() {\n var h = r.remove(n, a);\n h.emitAndNotify(\"moveout\");\n for (var f = 0; f < r.length; f++) {\n var p = r[f], m = p._private.data;\n p.isNode() && (m.parent = v);\n }\n h.restore(n, a);\n }), r.emitAndNotify(\"move\");\n }\n }\n return this;\n};\n[Cp, lD, ds, Rn, li, kD, ll, zD, Wp, Yp, UD, As, fs, Ut, zn, nr].forEach(function(t) {\n Re(dt, t);\n});\nvar QD = {\n add: function(e) {\n var r, n = this;\n if (yr(e)) {\n var a = e;\n if (a._private.cy === n)\n r = a.restore();\n else {\n for (var i = [], o = 0; o < a.length; o++) {\n var s = a[o];\n i.push(s.json());\n }\n r = new Gt(n, i);\n }\n } else if (st(e)) {\n var u = e;\n r = new Gt(n, u);\n } else if (Xe(e) && (st(e.nodes) || st(e.edges))) {\n for (var l = e, c = [], d = [\"nodes\", \"edges\"], v = 0, h = d.length; v < h; v++) {\n var f = d[v], p = l[f];\n if (st(p))\n for (var m = 0, g = p.length; m < g; m++) {\n var y = Re({\n group: f\n }, p[m]);\n c.push(y);\n }\n }\n r = new Gt(n, c);\n } else {\n var b = e;\n r = new rl(n, b).collection();\n }\n return r;\n },\n remove: function(e) {\n if (!yr(e)) {\n if (Fe(e)) {\n var r = e;\n e = this.$(r);\n }\n }\n return e.remove();\n }\n};\n/*! Bezier curve function generator. Copyright Gaetan Renaudeau. MIT License: http://en.wikipedia.org/wiki/MIT_License */\nfunction JD(t, e, r, n) {\n var a = 4, i = 1e-3, o = 1e-7, s = 10, u = 11, l = 1 / (u - 1), c = typeof Float32Array < \"u\";\n if (arguments.length !== 4)\n return !1;\n for (var d = 0; d < 4; ++d)\n if (typeof arguments[d] != \"number\" || isNaN(arguments[d]) || !isFinite(arguments[d]))\n return !1;\n t = Math.min(t, 1), r = Math.min(r, 1), t = Math.max(t, 0), r = Math.max(r, 0);\n var v = c ? new Float32Array(u) : new Array(u);\n function h(_, D) {\n return 1 - 3 * D + 3 * _;\n }\n function f(_, D) {\n return 3 * D - 6 * _;\n }\n function p(_) {\n return 3 * _;\n }\n function m(_, D, O) {\n return ((h(D, O) * _ + f(D, O)) * _ + p(D)) * _;\n }\n function g(_, D, O) {\n return 3 * h(D, O) * _ * _ + 2 * f(D, O) * _ + p(D);\n }\n function y(_, D) {\n for (var O = 0; O < a; ++O) {\n var F = g(D, t, r);\n if (F === 0)\n return D;\n var L = m(D, t, r) - _;\n D -= L / F;\n }\n return D;\n }\n function b() {\n for (var _ = 0; _ < u; ++_)\n v[_] = m(_ * l, t, r);\n }\n function w(_, D, O) {\n var F, L, B = 0;\n do\n L = D + (O - D) / 2, F = m(L, t, r) - _, F > 0 ? O = L : D = L;\n while (Math.abs(F) > o && ++B < s);\n return L;\n }\n function C(_) {\n for (var D = 0, O = 1, F = u - 1; O !== F && v[O] <= _; ++O)\n D += l;\n --O;\n var L = (_ - v[O]) / (v[O + 1] - v[O]), B = D + L * l, I = g(B, t, r);\n return I >= i ? y(_, B) : I === 0 ? B : w(_, D, D + l);\n }\n var E = !1;\n function x() {\n E = !0, (t !== e || r !== n) && b();\n }\n var T = function(D) {\n return E || x(), t === e && r === n ? D : D === 0 ? 0 : D === 1 ? 1 : m(C(D), e, n);\n };\n T.getControlPoints = function() {\n return [{\n x: t,\n y: e\n }, {\n x: r,\n y: n\n }];\n };\n var k = \"generateBezier(\" + [t, e, r, n] + \")\";\n return T.toString = function() {\n return k;\n }, T;\n}\n/*! Runge-Kutta spring physics function generator. Adapted from Framer.js, copyright Koen Bok. MIT License: http://en.wikipedia.org/wiki/MIT_License */\nvar eP = /* @__PURE__ */ function() {\n function t(n) {\n return -n.tension * n.x - n.friction * n.v;\n }\n function e(n, a, i) {\n var o = {\n x: n.x + i.dx * a,\n v: n.v + i.dv * a,\n tension: n.tension,\n friction: n.friction\n };\n return {\n dx: o.v,\n dv: t(o)\n };\n }\n function r(n, a) {\n var i = {\n dx: n.v,\n dv: t(n)\n }, o = e(n, a * 0.5, i), s = e(n, a * 0.5, o), u = e(n, a, s), l = 1 / 6 * (i.dx + 2 * (o.dx + s.dx) + u.dx), c = 1 / 6 * (i.dv + 2 * (o.dv + s.dv) + u.dv);\n return n.x = n.x + l * a, n.v = n.v + c * a, n;\n }\n return function n(a, i, o) {\n var s = {\n x: -1,\n v: 0,\n tension: null,\n friction: null\n }, u = [0], l = 0, c = 1 / 1e4, d = 16 / 1e3, v, h, f;\n for (a = parseFloat(a) || 500, i = parseFloat(i) || 20, o = o || null, s.tension = a, s.friction = i, v = o !== null, v ? (l = n(a, i), h = l / o * d) : h = d; f = r(f || s, h), u.push(1 + f.x), l += 16, Math.abs(f.x) > c && Math.abs(f.v) > c; )\n ;\n return v ? function(p) {\n return u[p * (u.length - 1) | 0];\n } : l;\n };\n}(), ct = function(e, r, n, a) {\n var i = JD(e, r, n, a);\n return function(o, s, u) {\n return o + (s - o) * i(u);\n };\n}, vs = {\n linear: function(e, r, n) {\n return e + (r - e) * n;\n },\n // default easings\n ease: ct(0.25, 0.1, 0.25, 1),\n \"ease-in\": ct(0.42, 0, 1, 1),\n \"ease-out\": ct(0, 0, 0.58, 1),\n \"ease-in-out\": ct(0.42, 0, 0.58, 1),\n // sine\n \"ease-in-sine\": ct(0.47, 0, 0.745, 0.715),\n \"ease-out-sine\": ct(0.39, 0.575, 0.565, 1),\n \"ease-in-out-sine\": ct(0.445, 0.05, 0.55, 0.95),\n // quad\n \"ease-in-quad\": ct(0.55, 0.085, 0.68, 0.53),\n \"ease-out-quad\": ct(0.25, 0.46, 0.45, 0.94),\n \"ease-in-out-quad\": ct(0.455, 0.03, 0.515, 0.955),\n // cubic\n \"ease-in-cubic\": ct(0.55, 0.055, 0.675, 0.19),\n \"ease-out-cubic\": ct(0.215, 0.61, 0.355, 1),\n \"ease-in-out-cubic\": ct(0.645, 0.045, 0.355, 1),\n // quart\n \"ease-in-quart\": ct(0.895, 0.03, 0.685, 0.22),\n \"ease-out-quart\": ct(0.165, 0.84, 0.44, 1),\n \"ease-in-out-quart\": ct(0.77, 0, 0.175, 1),\n // quint\n \"ease-in-quint\": ct(0.755, 0.05, 0.855, 0.06),\n \"ease-out-quint\": ct(0.23, 1, 0.32, 1),\n \"ease-in-out-quint\": ct(0.86, 0, 0.07, 1),\n // expo\n \"ease-in-expo\": ct(0.95, 0.05, 0.795, 0.035),\n \"ease-out-expo\": ct(0.19, 1, 0.22, 1),\n \"ease-in-out-expo\": ct(1, 0, 0, 1),\n // circ\n \"ease-in-circ\": ct(0.6, 0.04, 0.98, 0.335),\n \"ease-out-circ\": ct(0.075, 0.82, 0.165, 1),\n \"ease-in-out-circ\": ct(0.785, 0.135, 0.15, 0.86),\n // user param easings...\n spring: function(e, r, n) {\n if (n === 0)\n return vs.linear;\n var a = eP(e, r, n);\n return function(i, o, s) {\n return i + (o - i) * a(s);\n };\n },\n \"cubic-bezier\": ct\n};\nfunction Uf(t, e, r, n, a) {\n if (n === 1 || e === r)\n return r;\n var i = a(e, r, n);\n return t == null || ((t.roundValue || t.color) && (i = Math.round(i)), t.min !== void 0 && (i = Math.max(i, t.min)), t.max !== void 0 && (i = Math.min(i, t.max))), i;\n}\nfunction Gf(t, e) {\n return t.pfValue != null || t.value != null ? t.pfValue != null && (e == null || e.type.units !== \"%\") ? t.pfValue : t.value : t;\n}\nfunction Ma(t, e, r, n, a) {\n var i = a != null ? a.type : null;\n r < 0 ? r = 0 : r > 1 && (r = 1);\n var o = Gf(t, a), s = Gf(e, a);\n if (be(o) && be(s))\n return Uf(i, o, s, r, n);\n if (st(o) && st(s)) {\n for (var u = [], l = 0; l < s.length; l++) {\n var c = o[l], d = s[l];\n if (c != null && d != null) {\n var v = Uf(i, c, d, r, n);\n u.push(v);\n } else\n u.push(d);\n }\n return u;\n }\n}\nfunction tP(t, e, r, n) {\n var a = !n, i = t._private, o = e._private, s = o.easing, u = o.startTime, l = n ? t : t.cy(), c = l.style();\n if (!o.easingImpl)\n if (s == null)\n o.easingImpl = vs.linear;\n else {\n var d;\n if (Fe(s)) {\n var v = c.parse(\"transition-timing-function\", s);\n d = v.value;\n } else\n d = s;\n var h, f;\n Fe(d) ? (h = d, f = []) : (h = d[1], f = d.slice(2).map(function(R) {\n return +R;\n })), f.length > 0 ? (h === \"spring\" && f.push(o.duration), o.easingImpl = vs[h].apply(null, f)) : o.easingImpl = vs[h];\n }\n var p = o.easingImpl, m;\n if (o.duration === 0 ? m = 1 : m = (r - u) / o.duration, o.applying && (m = o.progress), m < 0 ? m = 0 : m > 1 && (m = 1), o.delay == null) {\n var g = o.startPosition, y = o.position;\n if (y && a && !t.locked()) {\n var b = {};\n Fi(g.x, y.x) && (b.x = Ma(g.x, y.x, m, p)), Fi(g.y, y.y) && (b.y = Ma(g.y, y.y, m, p)), t.position(b);\n }\n var w = o.startPan, C = o.pan, E = i.pan, x = C != null && n;\n x && (Fi(w.x, C.x) && (E.x = Ma(w.x, C.x, m, p)), Fi(w.y, C.y) && (E.y = Ma(w.y, C.y, m, p)), t.emit(\"pan\"));\n var T = o.startZoom, k = o.zoom, _ = k != null && n;\n _ && (Fi(T, k) && (i.zoom = io(i.minZoom, Ma(T, k, m, p), i.maxZoom)), t.emit(\"zoom\")), (x || _) && t.emit(\"viewport\");\n var D = o.style;\n if (D && D.length > 0 && a) {\n for (var O = 0; O < D.length; O++) {\n var F = D[O], L = F.name, B = F, I = o.startStyle[L], M = c.properties[I.name], A = Ma(I, B, m, p, M);\n c.overrideBypass(t, L, A);\n }\n t.emit(\"style\");\n }\n }\n return o.progress = m, m;\n}\nfunction Fi(t, e) {\n return t == null || e == null ? !1 : be(t) && be(e) ? !0 : !!(t && e);\n}\nfunction rP(t, e, r, n) {\n var a = e._private;\n a.started = !0, a.startTime = r - a.progress * a.duration;\n}\nfunction Wf(t, e) {\n var r = e._private.aniEles, n = [];\n function a(c, d) {\n var v = c._private, h = v.animation.current, f = v.animation.queue, p = !1;\n if (h.length === 0) {\n var m = f.shift();\n m && h.push(m);\n }\n for (var g = function(E) {\n for (var x = E.length - 1; x >= 0; x--) {\n var T = E[x];\n T();\n }\n E.splice(0, E.length);\n }, y = h.length - 1; y >= 0; y--) {\n var b = h[y], w = b._private;\n if (w.stopped) {\n h.splice(y, 1), w.hooked = !1, w.playing = !1, w.started = !1, g(w.frames);\n continue;\n }\n !w.playing && !w.applying || (w.playing && w.applying && (w.applying = !1), w.started || rP(c, b, t), tP(c, b, t, d), w.applying && (w.applying = !1), g(w.frames), w.step != null && w.step(t), b.completed() && (h.splice(y, 1), w.hooked = !1, w.playing = !1, w.started = !1, g(w.completes)), p = !0);\n }\n return !d && h.length === 0 && f.length === 0 && n.push(c), p;\n }\n for (var i = !1, o = 0; o < r.length; o++) {\n var s = r[o], u = a(s);\n i = i || u;\n }\n var l = a(e, !0);\n (i || l) && (r.length > 0 ? e.notify(\"draw\", r) : e.notify(\"draw\")), r.unmerge(n), e.emit(\"step\");\n}\nvar nP = {\n // pull in animation functions\n animate: et.animate(),\n animation: et.animation(),\n animated: et.animated(),\n clearQueue: et.clearQueue(),\n delay: et.delay(),\n delayAnimation: et.delayAnimation(),\n stop: et.stop(),\n addToAnimationPool: function(e) {\n var r = this;\n r.styleEnabled() && r._private.aniEles.merge(e);\n },\n stopAnimationLoop: function() {\n this._private.animationsRunning = !1;\n },\n startAnimationLoop: function() {\n var e = this;\n if (e._private.animationsRunning = !0, !e.styleEnabled())\n return;\n function r() {\n e._private.animationsRunning && Ps(function(i) {\n Wf(i, e), r();\n });\n }\n var n = e.renderer();\n n && n.beforeRender ? n.beforeRender(function(i, o) {\n Wf(o, e);\n }, n.beforeRenderPriorities.animations) : r();\n }\n}, aP = {\n qualifierCompare: function(e, r) {\n return e == null || r == null ? e == null && r == null : e.sameText(r);\n },\n eventMatches: function(e, r, n) {\n var a = r.qualifier;\n return a != null ? e !== n.target && Do(n.target) && a.matches(n.target) : !0;\n },\n addEventFields: function(e, r) {\n r.cy = e, r.target = e;\n },\n callbackContext: function(e, r, n) {\n return r.qualifier != null ? n.target : e;\n }\n}, ts = function(e) {\n return Fe(e) ? new Un(e) : e;\n}, jp = {\n createEmitter: function() {\n var e = this._private;\n return e.emitter || (e.emitter = new ul(aP, this)), this;\n },\n emitter: function() {\n return this._private.emitter;\n },\n on: function(e, r, n) {\n return this.emitter().on(e, ts(r), n), this;\n },\n removeListener: function(e, r, n) {\n return this.emitter().removeListener(e, ts(r), n), this;\n },\n removeAllListeners: function() {\n return this.emitter().removeAllListeners(), this;\n },\n one: function(e, r, n) {\n return this.emitter().one(e, ts(r), n), this;\n },\n once: function(e, r, n) {\n return this.emitter().one(e, ts(r), n), this;\n },\n emit: function(e, r) {\n return this.emitter().emit(e, r), this;\n },\n emitAndNotify: function(e, r) {\n return this.emit(e), this.notify(e, r), this;\n }\n};\net.eventAliasesOn(jp);\nvar vu = {\n png: function(e) {\n var r = this._private.renderer;\n return e = e || {}, r.png(e);\n },\n jpg: function(e) {\n var r = this._private.renderer;\n return e = e || {}, e.bg = e.bg || \"#fff\", r.jpg(e);\n }\n};\nvu.jpeg = vu.jpg;\nvar hs = {\n layout: function(e) {\n var r = this;\n if (e == null) {\n yt(\"Layout options must be specified to make a layout\");\n return;\n }\n if (e.name == null) {\n yt(\"A `name` must be specified to make a layout\");\n return;\n }\n var n = e.name, a = r.extension(\"layout\", n);\n if (a == null) {\n yt(\"No such layout `\" + n + \"` found. Did you forget to import it and `cytoscape.use()` it?\");\n return;\n }\n var i;\n Fe(e.eles) ? i = r.$(e.eles) : i = e.eles != null ? e.eles : r.$();\n var o = new a(Re({}, e, {\n cy: r,\n eles: i\n }));\n return o;\n }\n};\nhs.createLayout = hs.makeLayout = hs.layout;\nvar iP = {\n notify: function(e, r) {\n var n = this._private;\n if (this.batching()) {\n n.batchNotifications = n.batchNotifications || {};\n var a = n.batchNotifications[e] = n.batchNotifications[e] || this.collection();\n r != null && a.merge(r);\n return;\n }\n if (n.notificationsEnabled) {\n var i = this.renderer();\n this.destroyed() || !i || i.notify(e, r);\n }\n },\n notifications: function(e) {\n var r = this._private;\n return e === void 0 ? r.notificationsEnabled : (r.notificationsEnabled = !!e, this);\n },\n noNotifications: function(e) {\n this.notifications(!1), e(), this.notifications(!0);\n },\n batching: function() {\n return this._private.batchCount > 0;\n },\n startBatch: function() {\n var e = this._private;\n return e.batchCount == null && (e.batchCount = 0), e.batchCount === 0 && (e.batchStyleEles = this.collection(), e.batchNotifications = {}), e.batchCount++, this;\n },\n endBatch: function() {\n var e = this._private;\n if (e.batchCount === 0)\n return this;\n if (e.batchCount--, e.batchCount === 0) {\n e.batchStyleEles.updateStyle();\n var r = this.renderer();\n Object.keys(e.batchNotifications).forEach(function(n) {\n var a = e.batchNotifications[n];\n a.empty() ? r.notify(n) : r.notify(n, a);\n });\n }\n return this;\n },\n batch: function(e) {\n return this.startBatch(), e(), this.endBatch(), this;\n },\n // for backwards compatibility\n batchData: function(e) {\n var r = this;\n return this.batch(function() {\n for (var n = Object.keys(e), a = 0; a < n.length; a++) {\n var i = n[a], o = e[i], s = r.getElementById(i);\n s.data(o);\n }\n });\n }\n}, oP = Wt({\n hideEdgesOnViewport: !1,\n textureOnViewport: !1,\n motionBlur: !1,\n motionBlurOpacity: 0.05,\n pixelRatio: void 0,\n desktopTapThreshold: 4,\n touchTapThreshold: 8,\n wheelSensitivity: 1,\n debug: !1,\n showFps: !1\n}), hu = {\n renderTo: function(e, r, n, a) {\n var i = this._private.renderer;\n return i.renderTo(e, r, n, a), this;\n },\n renderer: function() {\n return this._private.renderer;\n },\n forceRender: function() {\n return this.notify(\"draw\"), this;\n },\n resize: function() {\n return this.invalidateSize(), this.emitAndNotify(\"resize\"), this;\n },\n initRenderer: function(e) {\n var r = this, n = r.extension(\"renderer\", e.name);\n if (n == null) {\n yt(\"Can not initialise: No such renderer `\".concat(e.name, \"` found. Did you forget to import it and `cytoscape.use()` it?\"));\n return;\n }\n e.wheelSensitivity !== void 0 && tt(\"You have set a custom wheel sensitivity. This will make your app zoom unnaturally when using mainstream mice. You should change this value from the default only if you can guarantee that all your users will use the same hardware and OS configuration as your current machine.\");\n var a = oP(e);\n a.cy = r, r._private.renderer = new n(a), this.notify(\"init\");\n },\n destroyRenderer: function() {\n var e = this;\n e.notify(\"destroy\");\n var r = e.container();\n if (r)\n for (r._cyreg = null; r.childNodes.length > 0; )\n r.removeChild(r.childNodes[0]);\n e._private.renderer = null, e.mutableElements().forEach(function(n) {\n var a = n._private;\n a.rscratch = {}, a.rstyle = {}, a.animation.current = [], a.animation.queue = [];\n });\n },\n onRender: function(e) {\n return this.on(\"render\", e);\n },\n offRender: function(e) {\n return this.off(\"render\", e);\n }\n};\nhu.invalidateDimensions = hu.resize;\nvar ps = {\n // get a collection\n // - empty collection on no args\n // - collection of elements in the graph on selector arg\n // - guarantee a returned collection when elements or collection specified\n collection: function(e, r) {\n return Fe(e) ? this.$(e) : yr(e) ? e.collection() : st(e) ? (r || (r = {}), new Gt(this, e, r.unique, r.removed)) : new Gt(this);\n },\n nodes: function(e) {\n var r = this.$(function(n) {\n return n.isNode();\n });\n return e ? r.filter(e) : r;\n },\n edges: function(e) {\n var r = this.$(function(n) {\n return n.isEdge();\n });\n return e ? r.filter(e) : r;\n },\n // search the graph like jQuery\n $: function(e) {\n var r = this._private.elements;\n return e ? r.filter(e) : r.spawnSelf();\n },\n mutableElements: function() {\n return this._private.elements;\n }\n};\nps.elements = ps.filter = ps.$;\nvar ir = {}, Ki = \"t\", sP = \"f\";\nir.apply = function(t) {\n for (var e = this, r = e._private, n = r.cy, a = n.collection(), i = 0; i < t.length; i++) {\n var o = t[i], s = e.getContextMeta(o);\n if (!s.empty) {\n var u = e.getContextStyle(s), l = e.applyContextStyle(s, u, o);\n o._private.appliedInitStyle ? e.updateTransitions(o, l.diffProps) : o._private.appliedInitStyle = !0;\n var c = e.updateStyleHints(o);\n c && a.push(o);\n }\n }\n return a;\n};\nir.getPropertiesDiff = function(t, e) {\n var r = this, n = r._private.propDiffs = r._private.propDiffs || {}, a = t + \"-\" + e, i = n[a];\n if (i)\n return i;\n for (var o = [], s = {}, u = 0; u < r.length; u++) {\n var l = r[u], c = t[u] === Ki, d = e[u] === Ki, v = c !== d, h = l.mappedProperties.length > 0;\n if (v || d && h) {\n var f = void 0;\n v && h || v ? f = l.properties : h && (f = l.mappedProperties);\n for (var p = 0; p < f.length; p++) {\n for (var m = f[p], g = m.name, y = !1, b = u + 1; b < r.length; b++) {\n var w = r[b], C = e[b] === Ki;\n if (C && (y = w.properties[m.name] != null, y))\n break;\n }\n !s[g] && !y && (s[g] = !0, o.push(g));\n }\n }\n }\n return n[a] = o, o;\n};\nir.getContextMeta = function(t) {\n for (var e = this, r = \"\", n, a = t._private.styleCxtKey || \"\", i = 0; i < e.length; i++) {\n var o = e[i], s = o.selector && o.selector.matches(t);\n s ? r += Ki : r += sP;\n }\n return n = e.getPropertiesDiff(a, r), t._private.styleCxtKey = r, {\n key: r,\n diffPropNames: n,\n empty: n.length === 0\n };\n};\nir.getContextStyle = function(t) {\n var e = t.key, r = this, n = this._private.contextStyles = this._private.contextStyles || {};\n if (n[e])\n return n[e];\n for (var a = {\n _private: {\n key: e\n }\n }, i = 0; i < r.length; i++) {\n var o = r[i], s = e[i] === Ki;\n if (s)\n for (var u = 0; u < o.properties.length; u++) {\n var l = o.properties[u];\n a[l.name] = l;\n }\n }\n return n[e] = a, a;\n};\nir.applyContextStyle = function(t, e, r) {\n for (var n = this, a = t.diffPropNames, i = {}, o = n.types, s = 0; s < a.length; s++) {\n var u = a[s], l = e[u], c = r.pstyle(u);\n if (!l)\n if (c)\n c.bypass ? l = {\n name: u,\n deleteBypassed: !0\n } : l = {\n name: u,\n delete: !0\n };\n else continue;\n if (c !== l) {\n if (l.mapped === o.fn && c != null && c.mapping != null && c.mapping.value === l.value) {\n var d = c.mapping, v = d.fnValue = l.value(r);\n if (v === d.prevFnValue)\n continue;\n }\n var h = i[u] = {\n prev: c\n };\n n.applyParsedProperty(r, l), h.next = r.pstyle(u), h.next && h.next.bypass && (h.next = h.next.bypassed);\n }\n }\n return {\n diffProps: i\n };\n};\nir.updateStyleHints = function(t) {\n var e = t._private, r = this, n = r.propertyGroupNames, a = r.propertyGroupKeys, i = function(Q, ge, Ee) {\n return r.getPropertiesHash(Q, ge, Ee);\n }, o = e.styleKey;\n if (t.removed())\n return !1;\n var s = e.group === \"nodes\", u = t._private.style;\n n = Object.keys(u);\n for (var l = 0; l < a.length; l++) {\n var c = a[l];\n e.styleKeys[c] = [Va, Bi];\n }\n for (var d = function(Q, ge) {\n return e.styleKeys[ge][0] = ro(Q, e.styleKeys[ge][0]);\n }, v = function(Q, ge) {\n return e.styleKeys[ge][1] = no(Q, e.styleKeys[ge][1]);\n }, h = function(Q, ge) {\n d(Q, ge), v(Q, ge);\n }, f = function(Q, ge) {\n for (var Ee = 0; Ee < Q.length; Ee++) {\n var fe = Q.charCodeAt(Ee);\n d(fe, ge), v(fe, ge);\n }\n }, p = 2e9, m = function(Q) {\n return -128 < Q && Q < 128 && Math.floor(Q) !== Q ? p - (Q * 1024 | 0) : Q;\n }, g = 0; g < n.length; g++) {\n var y = n[g], b = u[y];\n if (b != null) {\n var w = this.properties[y], C = w.type, E = w.groupKey, x = void 0;\n w.hashOverride != null ? x = w.hashOverride(t, b) : b.pfValue != null && (x = b.pfValue);\n var T = w.enums == null ? b.value : null, k = x != null, _ = T != null, D = k || _, O = b.units;\n if (C.number && D && !C.multiple) {\n var F = k ? x : T;\n h(m(F), E), !k && O != null && f(O, E);\n } else\n f(b.strValue, E);\n }\n }\n for (var L = [Va, Bi], B = 0; B < a.length; B++) {\n var I = a[B], M = e.styleKeys[I];\n L[0] = ro(M[0], L[0]), L[1] = no(M[1], L[1]);\n }\n e.styleKey = f5(L[0], L[1]);\n var A = e.styleKeys;\n e.labelDimsKey = Dn(A.labelDimensions);\n var R = i(t, [\"label\"], A.labelDimensions);\n if (e.labelKey = Dn(R), e.labelStyleKey = Dn(Go(A.commonLabel, R)), !s) {\n var K = i(t, [\"source-label\"], A.labelDimensions);\n e.sourceLabelKey = Dn(K), e.sourceLabelStyleKey = Dn(Go(A.commonLabel, K));\n var H = i(t, [\"target-label\"], A.labelDimensions);\n e.targetLabelKey = Dn(H), e.targetLabelStyleKey = Dn(Go(A.commonLabel, H));\n }\n if (s) {\n var q = e.styleKeys, ee = q.nodeBody, se = q.nodeBorder, oe = q.nodeOutline, ne = q.backgroundImage, ue = q.compound, te = q.pie, $ = [ee, se, oe, ne, ue, te].filter(function(G) {\n return G != null;\n }).reduce(Go, [Va, Bi]);\n e.nodeKey = Dn($), e.hasPie = te != null && te[0] !== Va && te[1] !== Bi;\n }\n return o !== e.styleKey;\n};\nir.clearStyleHints = function(t) {\n var e = t._private;\n e.styleCxtKey = \"\", e.styleKeys = {}, e.styleKey = null, e.labelKey = null, e.labelStyleKey = null, e.sourceLabelKey = null, e.sourceLabelStyleKey = null, e.targetLabelKey = null, e.targetLabelStyleKey = null, e.nodeKey = null, e.hasPie = null;\n};\nir.applyParsedProperty = function(t, e) {\n var r = this, n = e, a = t._private.style, i, o = r.types, s = r.properties[n.name].type, u = n.bypass, l = a[n.name], c = l && l.bypass, d = t._private, v = \"mapping\", h = function(ee) {\n return ee == null ? null : ee.pfValue != null ? ee.pfValue : ee.value;\n }, f = function() {\n var ee = h(l), se = h(n);\n r.checkTriggers(t, n.name, ee, se);\n };\n if (e.name === \"curve-style\" && t.isEdge() && // loops must be bundled beziers\n (e.value !== \"bezier\" && t.isLoop() || // edges connected to compound nodes can not be haystacks\n e.value === \"haystack\" && (t.source().isParent() || t.target().isParent())) && (n = e = this.parse(e.name, \"bezier\", u)), n.delete)\n return a[n.name] = void 0, f(), !0;\n if (n.deleteBypassed)\n return l ? l.bypass ? (l.bypassed = void 0, f(), !0) : !1 : (f(), !0);\n if (n.deleteBypass)\n return l ? l.bypass ? (a[n.name] = l.bypassed, f(), !0) : !1 : (f(), !0);\n var p = function() {\n tt(\"Do not assign mappings to elements without corresponding data (i.e. ele `\" + t.id() + \"` has no mapping for property `\" + n.name + \"` with data field `\" + n.field + \"`); try a `[\" + n.field + \"]` selector to limit scope to elements with `\" + n.field + \"` defined\");\n };\n switch (n.mapped) {\n case o.mapData: {\n for (var m = n.field.split(\".\"), g = d.data, y = 0; y < m.length && g; y++) {\n var b = m[y];\n g = g[b];\n }\n if (g == null)\n return p(), !1;\n var w;\n if (be(g)) {\n var C = n.fieldMax - n.fieldMin;\n C === 0 ? w = 0 : w = (g - n.fieldMin) / C;\n } else\n return tt(\"Do not use continuous mappers without specifying numeric data (i.e. `\" + n.field + \": \" + g + \"` for `\" + t.id() + \"` is non-numeric)\"), !1;\n if (w < 0 ? w = 0 : w > 1 && (w = 1), s.color) {\n var E = n.valueMin[0], x = n.valueMax[0], T = n.valueMin[1], k = n.valueMax[1], _ = n.valueMin[2], D = n.valueMax[2], O = n.valueMin[3] == null ? 1 : n.valueMin[3], F = n.valueMax[3] == null ? 1 : n.valueMax[3], L = [Math.round(E + (x - E) * w), Math.round(T + (k - T) * w), Math.round(_ + (D - _) * w), Math.round(O + (F - O) * w)];\n i = {\n // colours are simple, so just create the flat property instead of expensive string parsing\n bypass: n.bypass,\n // we're a bypass if the mapping property is a bypass\n name: n.name,\n value: L,\n strValue: \"rgb(\" + L[0] + \", \" + L[1] + \", \" + L[2] + \")\"\n };\n } else if (s.number) {\n var B = n.valueMin + (n.valueMax - n.valueMin) * w;\n i = this.parse(n.name, B, n.bypass, v);\n } else\n return !1;\n if (!i)\n return p(), !1;\n i.mapping = n, n = i;\n break;\n }\n case o.data: {\n for (var I = n.field.split(\".\"), M = d.data, A = 0; A < I.length && M; A++) {\n var R = I[A];\n M = M[R];\n }\n if (M != null && (i = this.parse(n.name, M, n.bypass, v)), !i)\n return p(), !1;\n i.mapping = n, n = i;\n break;\n }\n case o.fn: {\n var K = n.value, H = n.fnValue != null ? n.fnValue : K(t);\n if (n.prevFnValue = H, H == null)\n return tt(\"Custom function mappers may not return null (i.e. `\" + n.name + \"` for ele `\" + t.id() + \"` is null)\"), !1;\n if (i = this.parse(n.name, H, n.bypass, v), !i)\n return tt(\"Custom function mappers may not return invalid values for the property type (i.e. `\" + n.name + \"` for ele `\" + t.id() + \"` is invalid)\"), !1;\n i.mapping = Zr(n), n = i;\n break;\n }\n case void 0:\n break;\n default:\n return !1;\n }\n return u ? (c ? n.bypassed = l.bypassed : n.bypassed = l, a[n.name] = n) : c ? l.bypassed = n : a[n.name] = n, f(), !0;\n};\nir.cleanElements = function(t, e) {\n for (var r = 0; r < t.length; r++) {\n var n = t[r];\n if (this.clearStyleHints(n), n.dirtyCompoundBoundsCache(), n.dirtyBoundingBoxCache(), !e)\n n._private.style = {};\n else\n for (var a = n._private.style, i = Object.keys(a), o = 0; o < i.length; o++) {\n var s = i[o], u = a[s];\n u != null && (u.bypass ? u.bypassed = null : a[s] = null);\n }\n }\n};\nir.update = function() {\n var t = this._private.cy, e = t.mutableElements();\n e.updateStyle();\n};\nir.updateTransitions = function(t, e) {\n var r = this, n = t._private, a = t.pstyle(\"transition-property\").value, i = t.pstyle(\"transition-duration\").pfValue, o = t.pstyle(\"transition-delay\").pfValue;\n if (a.length > 0 && i > 0) {\n for (var s = {}, u = !1, l = 0; l < a.length; l++) {\n var c = a[l], d = t.pstyle(c), v = e[c];\n if (v) {\n var h = v.prev, f = h, p = v.next != null ? v.next : d, m = !1, g = void 0, y = 1e-6;\n f && (be(f.pfValue) && be(p.pfValue) ? (m = p.pfValue - f.pfValue, g = f.pfValue + y * m) : be(f.value) && be(p.value) ? (m = p.value - f.value, g = f.value + y * m) : st(f.value) && st(p.value) && (m = f.value[0] !== p.value[0] || f.value[1] !== p.value[1] || f.value[2] !== p.value[2], g = f.strValue), m && (s[c] = p.strValue, this.applyBypass(t, c, g), u = !0));\n }\n }\n if (!u)\n return;\n n.transitioning = !0, new hi(function(b) {\n o > 0 ? t.delayAnimation(o).play().promise().then(b) : b();\n }).then(function() {\n return t.animation({\n style: s,\n duration: i,\n easing: t.pstyle(\"transition-timing-function\").value,\n queue: !1\n }).play().promise();\n }).then(function() {\n r.removeBypasses(t, a), t.emitAndNotify(\"style\"), n.transitioning = !1;\n });\n } else n.transitioning && (this.removeBypasses(t, a), t.emitAndNotify(\"style\"), n.transitioning = !1);\n};\nir.checkTrigger = function(t, e, r, n, a, i) {\n var o = this.properties[e], s = a(o);\n s != null && s(r, n) && i(o);\n};\nir.checkZOrderTrigger = function(t, e, r, n) {\n var a = this;\n this.checkTrigger(t, e, r, n, function(i) {\n return i.triggersZOrder;\n }, function() {\n a._private.cy.notify(\"zorder\", t);\n });\n};\nir.checkBoundsTrigger = function(t, e, r, n) {\n this.checkTrigger(t, e, r, n, function(a) {\n return a.triggersBounds;\n }, function(a) {\n t.dirtyCompoundBoundsCache(), t.dirtyBoundingBoxCache(), // only for beziers -- so performance of other edges isn't affected\n a.triggersBoundsOfParallelBeziers && e === \"curve-style\" && (r === \"bezier\" || n === \"bezier\") && t.parallelEdges().forEach(function(i) {\n i.isBundledBezier() && i.dirtyBoundingBoxCache();\n }), a.triggersBoundsOfConnectedEdges && e === \"display\" && (r === \"none\" || n === \"none\") && t.connectedEdges().forEach(function(i) {\n i.dirtyBoundingBoxCache();\n });\n });\n};\nir.checkTriggers = function(t, e, r, n) {\n t.dirtyStyleCache(), this.checkZOrderTrigger(t, e, r, n), this.checkBoundsTrigger(t, e, r, n);\n};\nvar Io = {};\nIo.applyBypass = function(t, e, r, n) {\n var a = this, i = [], o = !0;\n if (e === \"*\" || e === \"**\") {\n if (r !== void 0)\n for (var s = 0; s < a.properties.length; s++) {\n var u = a.properties[s], l = u.name, c = this.parse(l, r, !0);\n c && i.push(c);\n }\n } else if (Fe(e)) {\n var d = this.parse(e, r, !0);\n d && i.push(d);\n } else if (Xe(e)) {\n var v = e;\n n = r;\n for (var h = Object.keys(v), f = 0; f < h.length; f++) {\n var p = h[f], m = v[p];\n if (m === void 0 && (m = v[Js(p)]), m !== void 0) {\n var g = this.parse(p, m, !0);\n g && i.push(g);\n }\n }\n } else\n return !1;\n if (i.length === 0)\n return !1;\n for (var y = !1, b = 0; b < t.length; b++) {\n for (var w = t[b], C = {}, E = void 0, x = 0; x < i.length; x++) {\n var T = i[x];\n if (n) {\n var k = w.pstyle(T.name);\n E = C[T.name] = {\n prev: k\n };\n }\n y = this.applyParsedProperty(w, Zr(T)) || y, n && (E.next = w.pstyle(T.name));\n }\n y && this.updateStyleHints(w), n && this.updateTransitions(w, C, o);\n }\n return y;\n};\nIo.overrideBypass = function(t, e, r) {\n e = lc(e);\n for (var n = 0; n < t.length; n++) {\n var a = t[n], i = a._private.style[e], o = this.properties[e].type, s = o.color, u = o.mutiple, l = i ? i.pfValue != null ? i.pfValue : i.value : null;\n !i || !i.bypass ? this.applyBypass(a, e, r) : (i.value = r, i.pfValue != null && (i.pfValue = r), s ? i.strValue = \"rgb(\" + r.join(\",\") + \")\" : u ? i.strValue = r.join(\" \") : i.strValue = \"\" + r, this.updateStyleHints(a)), this.checkTriggers(a, e, l, r);\n }\n};\nIo.removeAllBypasses = function(t, e) {\n return this.removeBypasses(t, this.propertyNames, e);\n};\nIo.removeBypasses = function(t, e, r) {\n for (var n = !0, a = 0; a < t.length; a++) {\n for (var i = t[a], o = {}, s = 0; s < e.length; s++) {\n var u = e[s], l = this.properties[u], c = i.pstyle(l.name);\n if (!(!c || !c.bypass)) {\n var d = \"\", v = this.parse(u, d, !0), h = o[l.name] = {\n prev: c\n };\n this.applyParsedProperty(i, v), h.next = i.pstyle(l.name);\n }\n }\n this.updateStyleHints(i), r && this.updateTransitions(i, o, n);\n }\n};\nvar Cc = {};\nCc.getEmSizeInPixels = function() {\n var t = this.containerCss(\"font-size\");\n return t != null ? parseFloat(t) : 1;\n};\nCc.containerCss = function(t) {\n var e = this._private.cy, r = e.container(), n = e.window();\n if (n && r && n.getComputedStyle)\n return n.getComputedStyle(r).getPropertyValue(t);\n};\nvar rn = {};\nrn.getRenderedStyle = function(t, e) {\n return e ? this.getStylePropertyValue(t, e, !0) : this.getRawStyle(t, !0);\n};\nrn.getRawStyle = function(t, e) {\n var r = this;\n if (t = t[0], t) {\n for (var n = {}, a = 0; a < r.properties.length; a++) {\n var i = r.properties[a], o = r.getStylePropertyValue(t, i.name, e);\n o != null && (n[i.name] = o, n[Js(i.name)] = o);\n }\n return n;\n }\n};\nrn.getIndexedStyle = function(t, e, r, n) {\n var a = t.pstyle(e)[r][n];\n return a ?? t.cy().style().getDefaultProperty(e)[r][0];\n};\nrn.getStylePropertyValue = function(t, e, r) {\n var n = this;\n if (t = t[0], t) {\n var a = n.properties[e];\n a.alias && (a = a.pointsTo);\n var i = a.type, o = t.pstyle(a.name);\n if (o) {\n var s = o.value, u = o.units, l = o.strValue;\n if (r && i.number && s != null && be(s)) {\n var c = t.cy().zoom(), d = function(m) {\n return m * c;\n }, v = function(m, g) {\n return d(m) + g;\n }, h = st(s), f = h ? u.every(function(p) {\n return p != null;\n }) : u != null;\n return f ? h ? s.map(function(p, m) {\n return v(p, u[m]);\n }).join(\" \") : v(s, u) : h ? s.map(function(p) {\n return Fe(p) ? p : \"\" + d(p);\n }).join(\" \") : \"\" + d(s);\n } else if (l != null)\n return l;\n }\n return null;\n }\n};\nrn.getAnimationStartStyle = function(t, e) {\n for (var r = {}, n = 0; n < e.length; n++) {\n var a = e[n], i = a.name, o = t.pstyle(i);\n o !== void 0 && (Xe(o) ? o = this.parse(i, o.strValue) : o = this.parse(i, o)), o && (r[i] = o);\n }\n return r;\n};\nrn.getPropsList = function(t) {\n var e = this, r = [], n = t, a = e.properties;\n if (n)\n for (var i = Object.keys(n), o = 0; o < i.length; o++) {\n var s = i[o], u = n[s], l = a[s] || a[lc(s)], c = this.parse(l.name, u);\n c && r.push(c);\n }\n return r;\n};\nrn.getNonDefaultPropertiesHash = function(t, e, r) {\n var n = r.slice(), a, i, o, s, u, l;\n for (u = 0; u < e.length; u++)\n if (a = e[u], i = t.pstyle(a, !1), i != null)\n if (i.pfValue != null)\n n[0] = ro(s, n[0]), n[1] = no(s, n[1]);\n else\n for (o = i.strValue, l = 0; l < o.length; l++)\n s = o.charCodeAt(l), n[0] = ro(s, n[0]), n[1] = no(s, n[1]);\n return n;\n};\nrn.getPropertiesHash = rn.getNonDefaultPropertiesHash;\nvar fl = {};\nfl.appendFromJson = function(t) {\n for (var e = this, r = 0; r < t.length; r++) {\n var n = t[r], a = n.selector, i = n.style || n.css, o = Object.keys(i);\n e.selector(a);\n for (var s = 0; s < o.length; s++) {\n var u = o[s], l = i[u];\n e.css(u, l);\n }\n }\n return e;\n};\nfl.fromJson = function(t) {\n var e = this;\n return e.resetToDefault(), e.appendFromJson(t), e;\n};\nfl.json = function() {\n for (var t = [], e = this.defaultLength; e < this.length; e++) {\n for (var r = this[e], n = r.selector, a = r.properties, i = {}, o = 0; o < a.length; o++) {\n var s = a[o];\n i[s.name] = s.strValue;\n }\n t.push({\n selector: n ? n.toString() : \"core\",\n style: i\n });\n }\n return t;\n};\nvar Ec = {};\nEc.appendFromString = function(t) {\n var e = this, r = this, n = \"\" + t, a, i, o;\n n = n.replace(/[/][*](\\s|.)+?[*][/]/g, \"\");\n function s() {\n n.length > a.length ? n = n.substr(a.length) : n = \"\";\n }\n function u() {\n i.length > o.length ? i = i.substr(o.length) : i = \"\";\n }\n for (; ; ) {\n var l = n.match(/^\\s*$/);\n if (l)\n break;\n var c = n.match(/^\\s*((?:.|\\s)+?)\\s*\\{((?:.|\\s)+?)\\}/);\n if (!c) {\n tt(\"Halting stylesheet parsing: String stylesheet contains more to parse but no selector and block found in: \" + n);\n break;\n }\n a = c[0];\n var d = c[1];\n if (d !== \"core\") {\n var v = new Un(d);\n if (v.invalid) {\n tt(\"Skipping parsing of block: Invalid selector found in string stylesheet: \" + d), s();\n continue;\n }\n }\n var h = c[2], f = !1;\n i = h;\n for (var p = []; ; ) {\n var m = i.match(/^\\s*$/);\n if (m)\n break;\n var g = i.match(/^\\s*(.+?)\\s*:\\s*(.+?)(?:\\s*;|\\s*$)/);\n if (!g) {\n tt(\"Skipping parsing of block: Invalid formatting of style property and value definitions found in:\" + h), f = !0;\n break;\n }\n o = g[0];\n var y = g[1], b = g[2], w = e.properties[y];\n if (!w) {\n tt(\"Skipping property: Invalid property name in: \" + o), u();\n continue;\n }\n var C = r.parse(y, b);\n if (!C) {\n tt(\"Skipping property: Invalid property definition in: \" + o), u();\n continue;\n }\n p.push({\n name: y,\n val: b\n }), u();\n }\n if (f) {\n s();\n break;\n }\n r.selector(d);\n for (var E = 0; E < p.length; E++) {\n var x = p[E];\n r.css(x.name, x.val);\n }\n s();\n }\n return r;\n};\nEc.fromString = function(t) {\n var e = this;\n return e.resetToDefault(), e.appendFromString(t), e;\n};\nvar Rt = {};\n(function() {\n var t = It, e = pT, r = mT, n = yT, a = bT, i = function($) {\n return \"^\" + $ + \"\\\\s*\\\\(\\\\s*([\\\\w\\\\.]+)\\\\s*\\\\)$\";\n }, o = function($) {\n var G = t + \"|\\\\w+|\" + e + \"|\" + r + \"|\" + n + \"|\" + a;\n return \"^\" + $ + \"\\\\s*\\\\(([\\\\w\\\\.]+)\\\\s*\\\\,\\\\s*(\" + t + \")\\\\s*\\\\,\\\\s*(\" + t + \")\\\\s*,\\\\s*(\" + G + \")\\\\s*\\\\,\\\\s*(\" + G + \")\\\\)$\";\n }, s = [`^url\\\\s*\\\\(\\\\s*['\"]?(.+?)['\"]?\\\\s*\\\\)$`, \"^(none)$\", \"^(.+)$\"];\n Rt.types = {\n time: {\n number: !0,\n min: 0,\n units: \"s|ms\",\n implicitUnits: \"ms\"\n },\n percent: {\n number: !0,\n min: 0,\n max: 100,\n units: \"%\",\n implicitUnits: \"%\"\n },\n percentages: {\n number: !0,\n min: 0,\n max: 100,\n units: \"%\",\n implicitUnits: \"%\",\n multiple: !0\n },\n zeroOneNumber: {\n number: !0,\n min: 0,\n max: 1,\n unitless: !0\n },\n zeroOneNumbers: {\n number: !0,\n min: 0,\n max: 1,\n unitless: !0,\n multiple: !0\n },\n nOneOneNumber: {\n number: !0,\n min: -1,\n max: 1,\n unitless: !0\n },\n nonNegativeInt: {\n number: !0,\n min: 0,\n integer: !0,\n unitless: !0\n },\n nonNegativeNumber: {\n number: !0,\n min: 0,\n unitless: !0\n },\n position: {\n enums: [\"parent\", \"origin\"]\n },\n nodeSize: {\n number: !0,\n min: 0,\n enums: [\"label\"]\n },\n number: {\n number: !0,\n unitless: !0\n },\n numbers: {\n number: !0,\n unitless: !0,\n multiple: !0\n },\n positiveNumber: {\n number: !0,\n unitless: !0,\n min: 0,\n strictMin: !0\n },\n size: {\n number: !0,\n min: 0\n },\n bidirectionalSize: {\n number: !0\n },\n // allows negative\n bidirectionalSizeMaybePercent: {\n number: !0,\n allowPercent: !0\n },\n // allows negative\n bidirectionalSizes: {\n number: !0,\n multiple: !0\n },\n // allows negative\n sizeMaybePercent: {\n number: !0,\n min: 0,\n allowPercent: !0\n },\n axisDirection: {\n enums: [\"horizontal\", \"leftward\", \"rightward\", \"vertical\", \"upward\", \"downward\", \"auto\"]\n },\n paddingRelativeTo: {\n enums: [\"width\", \"height\", \"average\", \"min\", \"max\"]\n },\n bgWH: {\n number: !0,\n min: 0,\n allowPercent: !0,\n enums: [\"auto\"],\n multiple: !0\n },\n bgPos: {\n number: !0,\n allowPercent: !0,\n multiple: !0\n },\n bgRelativeTo: {\n enums: [\"inner\", \"include-padding\"],\n multiple: !0\n },\n bgRepeat: {\n enums: [\"repeat\", \"repeat-x\", \"repeat-y\", \"no-repeat\"],\n multiple: !0\n },\n bgFit: {\n enums: [\"none\", \"contain\", \"cover\"],\n multiple: !0\n },\n bgCrossOrigin: {\n enums: [\"anonymous\", \"use-credentials\", \"null\"],\n multiple: !0\n },\n bgClip: {\n enums: [\"none\", \"node\"],\n multiple: !0\n },\n bgContainment: {\n enums: [\"inside\", \"over\"],\n multiple: !0\n },\n color: {\n color: !0\n },\n colors: {\n color: !0,\n multiple: !0\n },\n fill: {\n enums: [\"solid\", \"linear-gradient\", \"radial-gradient\"]\n },\n bool: {\n enums: [\"yes\", \"no\"]\n },\n bools: {\n enums: [\"yes\", \"no\"],\n multiple: !0\n },\n lineStyle: {\n enums: [\"solid\", \"dotted\", \"dashed\"]\n },\n lineCap: {\n enums: [\"butt\", \"round\", \"square\"]\n },\n linePosition: {\n enums: [\"center\", \"inside\", \"outside\"]\n },\n lineJoin: {\n enums: [\"round\", \"bevel\", \"miter\"]\n },\n borderStyle: {\n enums: [\"solid\", \"dotted\", \"dashed\", \"double\"]\n },\n curveStyle: {\n enums: [\"bezier\", \"unbundled-bezier\", \"haystack\", \"segments\", \"straight\", \"straight-triangle\", \"taxi\", \"round-segments\", \"round-taxi\"]\n },\n radiusType: {\n enums: [\"arc-radius\", \"influence-radius\"],\n multiple: !0\n },\n fontFamily: {\n regex: '^([\\\\w- \\\\\"]+(?:\\\\s*,\\\\s*[\\\\w- \\\\\"]+)*)$'\n },\n fontStyle: {\n enums: [\"italic\", \"normal\", \"oblique\"]\n },\n fontWeight: {\n enums: [\"normal\", \"bold\", \"bolder\", \"lighter\", \"100\", \"200\", \"300\", \"400\", \"500\", \"600\", \"800\", \"900\", 100, 200, 300, 400, 500, 600, 700, 800, 900]\n },\n textDecoration: {\n enums: [\"none\", \"underline\", \"overline\", \"line-through\"]\n },\n textTransform: {\n enums: [\"none\", \"uppercase\", \"lowercase\"]\n },\n textWrap: {\n enums: [\"none\", \"wrap\", \"ellipsis\"]\n },\n textOverflowWrap: {\n enums: [\"whitespace\", \"anywhere\"]\n },\n textBackgroundShape: {\n enums: [\"rectangle\", \"roundrectangle\", \"round-rectangle\"]\n },\n nodeShape: {\n enums: [\"rectangle\", \"roundrectangle\", \"round-rectangle\", \"cutrectangle\", \"cut-rectangle\", \"bottomroundrectangle\", \"bottom-round-rectangle\", \"barrel\", \"ellipse\", \"triangle\", \"round-triangle\", \"square\", \"pentagon\", \"round-pentagon\", \"hexagon\", \"round-hexagon\", \"concavehexagon\", \"concave-hexagon\", \"heptagon\", \"round-heptagon\", \"octagon\", \"round-octagon\", \"tag\", \"round-tag\", \"star\", \"diamond\", \"round-diamond\", \"vee\", \"rhomboid\", \"right-rhomboid\", \"polygon\"]\n },\n overlayShape: {\n enums: [\"roundrectangle\", \"round-rectangle\", \"ellipse\"]\n },\n cornerRadius: {\n number: !0,\n min: 0,\n units: \"px|em\",\n implicitUnits: \"px\",\n enums: [\"auto\"]\n },\n compoundIncludeLabels: {\n enums: [\"include\", \"exclude\"]\n },\n arrowShape: {\n enums: [\"tee\", \"triangle\", \"triangle-tee\", \"circle-triangle\", \"triangle-cross\", \"triangle-backcurve\", \"vee\", \"square\", \"circle\", \"diamond\", \"chevron\", \"none\"]\n },\n arrowFill: {\n enums: [\"filled\", \"hollow\"]\n },\n arrowWidth: {\n number: !0,\n units: \"%|px|em\",\n implicitUnits: \"px\",\n enums: [\"match-line\"]\n },\n display: {\n enums: [\"element\", \"none\"]\n },\n visibility: {\n enums: [\"hidden\", \"visible\"]\n },\n zCompoundDepth: {\n enums: [\"bottom\", \"orphan\", \"auto\", \"top\"]\n },\n zIndexCompare: {\n enums: [\"auto\", \"manual\"]\n },\n valign: {\n enums: [\"top\", \"center\", \"bottom\"]\n },\n halign: {\n enums: [\"left\", \"center\", \"right\"]\n },\n justification: {\n enums: [\"left\", \"center\", \"right\", \"auto\"]\n },\n text: {\n string: !0\n },\n data: {\n mapping: !0,\n regex: i(\"data\")\n },\n layoutData: {\n mapping: !0,\n regex: i(\"layoutData\")\n },\n scratch: {\n mapping: !0,\n regex: i(\"scratch\")\n },\n mapData: {\n mapping: !0,\n regex: o(\"mapData\")\n },\n mapLayoutData: {\n mapping: !0,\n regex: o(\"mapLayoutData\")\n },\n mapScratch: {\n mapping: !0,\n regex: o(\"mapScratch\")\n },\n fn: {\n mapping: !0,\n fn: !0\n },\n url: {\n regexes: s,\n singleRegexMatchValue: !0\n },\n urls: {\n regexes: s,\n singleRegexMatchValue: !0,\n multiple: !0\n },\n propList: {\n propList: !0\n },\n angle: {\n number: !0,\n units: \"deg|rad\",\n implicitUnits: \"rad\"\n },\n textRotation: {\n number: !0,\n units: \"deg|rad\",\n implicitUnits: \"rad\",\n enums: [\"none\", \"autorotate\"]\n },\n polygonPointList: {\n number: !0,\n multiple: !0,\n evenMultiple: !0,\n min: -1,\n max: 1,\n unitless: !0\n },\n edgeDistances: {\n enums: [\"intersection\", \"node-position\", \"endpoints\"]\n },\n edgeEndpoint: {\n number: !0,\n multiple: !0,\n units: \"%|px|em|deg|rad\",\n implicitUnits: \"px\",\n enums: [\"inside-to-node\", \"outside-to-node\", \"outside-to-node-or-label\", \"outside-to-line\", \"outside-to-line-or-label\"],\n singleEnum: !0,\n validate: function($, G) {\n switch ($.length) {\n case 2:\n return G[0] !== \"deg\" && G[0] !== \"rad\" && G[1] !== \"deg\" && G[1] !== \"rad\";\n case 1:\n return Fe($[0]) || G[0] === \"deg\" || G[0] === \"rad\";\n default:\n return !1;\n }\n }\n },\n easing: {\n regexes: [\"^(spring)\\\\s*\\\\(\\\\s*(\" + t + \")\\\\s*,\\\\s*(\" + t + \")\\\\s*\\\\)$\", \"^(cubic-bezier)\\\\s*\\\\(\\\\s*(\" + t + \")\\\\s*,\\\\s*(\" + t + \")\\\\s*,\\\\s*(\" + t + \")\\\\s*,\\\\s*(\" + t + \")\\\\s*\\\\)$\"],\n enums: [\"linear\", \"ease\", \"ease-in\", \"ease-out\", \"ease-in-out\", \"ease-in-sine\", \"ease-out-sine\", \"ease-in-out-sine\", \"ease-in-quad\", \"ease-out-quad\", \"ease-in-out-quad\", \"ease-in-cubic\", \"ease-out-cubic\", \"ease-in-out-cubic\", \"ease-in-quart\", \"ease-out-quart\", \"ease-in-out-quart\", \"ease-in-quint\", \"ease-out-quint\", \"ease-in-out-quint\", \"ease-in-expo\", \"ease-out-expo\", \"ease-in-out-expo\", \"ease-in-circ\", \"ease-out-circ\", \"ease-in-out-circ\"]\n },\n gradientDirection: {\n enums: [\n \"to-bottom\",\n \"to-top\",\n \"to-left\",\n \"to-right\",\n \"to-bottom-right\",\n \"to-bottom-left\",\n \"to-top-right\",\n \"to-top-left\",\n \"to-right-bottom\",\n \"to-left-bottom\",\n \"to-right-top\",\n \"to-left-top\"\n // different order\n ]\n },\n boundsExpansion: {\n number: !0,\n multiple: !0,\n min: 0,\n validate: function($) {\n var G = $.length;\n return G === 1 || G === 2 || G === 4;\n }\n }\n };\n var u = {\n zeroNonZero: function($, G) {\n return ($ == null || G == null) && $ !== G || $ == 0 && G != 0 ? !0 : $ != 0 && G == 0;\n },\n any: function($, G) {\n return $ != G;\n },\n emptyNonEmpty: function($, G) {\n var Q = qn($), ge = qn(G);\n return Q && !ge || !Q && ge;\n }\n }, l = Rt.types, c = [{\n name: \"label\",\n type: l.text,\n triggersBounds: u.any,\n triggersZOrder: u.emptyNonEmpty\n }, {\n name: \"text-rotation\",\n type: l.textRotation,\n triggersBounds: u.any\n }, {\n name: \"text-margin-x\",\n type: l.bidirectionalSize,\n triggersBounds: u.any\n }, {\n name: \"text-margin-y\",\n type: l.bidirectionalSize,\n triggersBounds: u.any\n }], d = [{\n name: \"source-label\",\n type: l.text,\n triggersBounds: u.any\n }, {\n name: \"source-text-rotation\",\n type: l.textRotation,\n triggersBounds: u.any\n }, {\n name: \"source-text-margin-x\",\n type: l.bidirectionalSize,\n triggersBounds: u.any\n }, {\n name: \"source-text-margin-y\",\n type: l.bidirectionalSize,\n triggersBounds: u.any\n }, {\n name: \"source-text-offset\",\n type: l.size,\n triggersBounds: u.any\n }], v = [{\n name: \"target-label\",\n type: l.text,\n triggersBounds: u.any\n }, {\n name: \"target-text-rotation\",\n type: l.textRotation,\n triggersBounds: u.any\n }, {\n name: \"target-text-margin-x\",\n type: l.bidirectionalSize,\n triggersBounds: u.any\n }, {\n name: \"target-text-margin-y\",\n type: l.bidirectionalSize,\n triggersBounds: u.any\n }, {\n name: \"target-text-offset\",\n type: l.size,\n triggersBounds: u.any\n }], h = [{\n name: \"font-family\",\n type: l.fontFamily,\n triggersBounds: u.any\n }, {\n name: \"font-style\",\n type: l.fontStyle,\n triggersBounds: u.any\n }, {\n name: \"font-weight\",\n type: l.fontWeight,\n triggersBounds: u.any\n }, {\n name: \"font-size\",\n type: l.size,\n triggersBounds: u.any\n }, {\n name: \"text-transform\",\n type: l.textTransform,\n triggersBounds: u.any\n }, {\n name: \"text-wrap\",\n type: l.textWrap,\n triggersBounds: u.any\n }, {\n name: \"text-overflow-wrap\",\n type: l.textOverflowWrap,\n triggersBounds: u.any\n }, {\n name: \"text-max-width\",\n type: l.size,\n triggersBounds: u.any\n }, {\n name: \"text-outline-width\",\n type: l.size,\n triggersBounds: u.any\n }, {\n name: \"line-height\",\n type: l.positiveNumber,\n triggersBounds: u.any\n }], f = [{\n name: \"text-valign\",\n type: l.valign,\n triggersBounds: u.any\n }, {\n name: \"text-halign\",\n type: l.halign,\n triggersBounds: u.any\n }, {\n name: \"color\",\n type: l.color\n }, {\n name: \"text-outline-color\",\n type: l.color\n }, {\n name: \"text-outline-opacity\",\n type: l.zeroOneNumber\n }, {\n name: \"text-background-color\",\n type: l.color\n }, {\n name: \"text-background-opacity\",\n type: l.zeroOneNumber\n }, {\n name: \"text-background-padding\",\n type: l.size,\n triggersBounds: u.any\n }, {\n name: \"text-border-opacity\",\n type: l.zeroOneNumber\n }, {\n name: \"text-border-color\",\n type: l.color\n }, {\n name: \"text-border-width\",\n type: l.size,\n triggersBounds: u.any\n }, {\n name: \"text-border-style\",\n type: l.borderStyle,\n triggersBounds: u.any\n }, {\n name: \"text-background-shape\",\n type: l.textBackgroundShape,\n triggersBounds: u.any\n }, {\n name: \"text-justification\",\n type: l.justification\n }], p = [{\n name: \"events\",\n type: l.bool,\n triggersZOrder: u.any\n }, {\n name: \"text-events\",\n type: l.bool,\n triggersZOrder: u.any\n }], m = [{\n name: \"display\",\n type: l.display,\n triggersZOrder: u.any,\n triggersBounds: u.any,\n triggersBoundsOfConnectedEdges: !0\n }, {\n name: \"visibility\",\n type: l.visibility,\n triggersZOrder: u.any\n }, {\n name: \"opacity\",\n type: l.zeroOneNumber,\n triggersZOrder: u.zeroNonZero\n }, {\n name: \"text-opacity\",\n type: l.zeroOneNumber\n }, {\n name: \"min-zoomed-font-size\",\n type: l.size\n }, {\n name: \"z-compound-depth\",\n type: l.zCompoundDepth,\n triggersZOrder: u.any\n }, {\n name: \"z-index-compare\",\n type: l.zIndexCompare,\n triggersZOrder: u.any\n }, {\n name: \"z-index\",\n type: l.number,\n triggersZOrder: u.any\n }], g = [{\n name: \"overlay-padding\",\n type: l.size,\n triggersBounds: u.any\n }, {\n name: \"overlay-color\",\n type: l.color\n }, {\n name: \"overlay-opacity\",\n type: l.zeroOneNumber,\n triggersBounds: u.zeroNonZero\n }, {\n name: \"overlay-shape\",\n type: l.overlayShape,\n triggersBounds: u.any\n }, {\n name: \"overlay-corner-radius\",\n type: l.cornerRadius\n }], y = [{\n name: \"underlay-padding\",\n type: l.size,\n triggersBounds: u.any\n }, {\n name: \"underlay-color\",\n type: l.color\n }, {\n name: \"underlay-opacity\",\n type: l.zeroOneNumber,\n triggersBounds: u.zeroNonZero\n }, {\n name: \"underlay-shape\",\n type: l.overlayShape,\n triggersBounds: u.any\n }, {\n name: \"underlay-corner-radius\",\n type: l.cornerRadius\n }], b = [{\n name: \"transition-property\",\n type: l.propList\n }, {\n name: \"transition-duration\",\n type: l.time\n }, {\n name: \"transition-delay\",\n type: l.time\n }, {\n name: \"transition-timing-function\",\n type: l.easing\n }], w = function($, G) {\n return G.value === \"label\" ? -$.poolIndex() : G.pfValue;\n }, C = [{\n name: \"height\",\n type: l.nodeSize,\n triggersBounds: u.any,\n hashOverride: w\n }, {\n name: \"width\",\n type: l.nodeSize,\n triggersBounds: u.any,\n hashOverride: w\n }, {\n name: \"shape\",\n type: l.nodeShape,\n triggersBounds: u.any\n }, {\n name: \"shape-polygon-points\",\n type: l.polygonPointList,\n triggersBounds: u.any\n }, {\n name: \"corner-radius\",\n type: l.cornerRadius\n }, {\n name: \"background-color\",\n type: l.color\n }, {\n name: \"background-fill\",\n type: l.fill\n }, {\n name: \"background-opacity\",\n type: l.zeroOneNumber\n }, {\n name: \"background-blacken\",\n type: l.nOneOneNumber\n }, {\n name: \"background-gradient-stop-colors\",\n type: l.colors\n }, {\n name: \"background-gradient-stop-positions\",\n type: l.percentages\n }, {\n name: \"background-gradient-direction\",\n type: l.gradientDirection\n }, {\n name: \"padding\",\n type: l.sizeMaybePercent,\n triggersBounds: u.any\n }, {\n name: \"padding-relative-to\",\n type: l.paddingRelativeTo,\n triggersBounds: u.any\n }, {\n name: \"bounds-expansion\",\n type: l.boundsExpansion,\n triggersBounds: u.any\n }], E = [{\n name: \"border-color\",\n type: l.color\n }, {\n name: \"border-opacity\",\n type: l.zeroOneNumber\n }, {\n name: \"border-width\",\n type: l.size,\n triggersBounds: u.any\n }, {\n name: \"border-style\",\n type: l.borderStyle\n }, {\n name: \"border-cap\",\n type: l.lineCap\n }, {\n name: \"border-join\",\n type: l.lineJoin\n }, {\n name: \"border-dash-pattern\",\n type: l.numbers\n }, {\n name: \"border-dash-offset\",\n type: l.number\n }, {\n name: \"border-position\",\n type: l.linePosition\n }], x = [{\n name: \"outline-color\",\n type: l.color\n }, {\n name: \"outline-opacity\",\n type: l.zeroOneNumber\n }, {\n name: \"outline-width\",\n type: l.size,\n triggersBounds: u.any\n }, {\n name: \"outline-style\",\n type: l.borderStyle\n }, {\n name: \"outline-offset\",\n type: l.size,\n triggersBounds: u.any\n }], T = [{\n name: \"background-image\",\n type: l.urls\n }, {\n name: \"background-image-crossorigin\",\n type: l.bgCrossOrigin\n }, {\n name: \"background-image-opacity\",\n type: l.zeroOneNumbers\n }, {\n name: \"background-image-containment\",\n type: l.bgContainment\n }, {\n name: \"background-image-smoothing\",\n type: l.bools\n }, {\n name: \"background-position-x\",\n type: l.bgPos\n }, {\n name: \"background-position-y\",\n type: l.bgPos\n }, {\n name: \"background-width-relative-to\",\n type: l.bgRelativeTo\n }, {\n name: \"background-height-relative-to\",\n type: l.bgRelativeTo\n }, {\n name: \"background-repeat\",\n type: l.bgRepeat\n }, {\n name: \"background-fit\",\n type: l.bgFit\n }, {\n name: \"background-clip\",\n type: l.bgClip\n }, {\n name: \"background-width\",\n type: l.bgWH\n }, {\n name: \"background-height\",\n type: l.bgWH\n }, {\n name: \"background-offset-x\",\n type: l.bgPos\n }, {\n name: \"background-offset-y\",\n type: l.bgPos\n }], k = [{\n name: \"position\",\n type: l.position,\n triggersBounds: u.any\n }, {\n name: \"compound-sizing-wrt-labels\",\n type: l.compoundIncludeLabels,\n triggersBounds: u.any\n }, {\n name: \"min-width\",\n type: l.size,\n triggersBounds: u.any\n }, {\n name: \"min-width-bias-left\",\n type: l.sizeMaybePercent,\n triggersBounds: u.any\n }, {\n name: \"min-width-bias-right\",\n type: l.sizeMaybePercent,\n triggersBounds: u.any\n }, {\n name: \"min-height\",\n type: l.size,\n triggersBounds: u.any\n }, {\n name: \"min-height-bias-top\",\n type: l.sizeMaybePercent,\n triggersBounds: u.any\n }, {\n name: \"min-height-bias-bottom\",\n type: l.sizeMaybePercent,\n triggersBounds: u.any\n }], _ = [{\n name: \"line-style\",\n type: l.lineStyle\n }, {\n name: \"line-color\",\n type: l.color\n }, {\n name: \"line-fill\",\n type: l.fill\n }, {\n name: \"line-cap\",\n type: l.lineCap\n }, {\n name: \"line-opacity\",\n type: l.zeroOneNumber\n }, {\n name: \"line-dash-pattern\",\n type: l.numbers\n }, {\n name: \"line-dash-offset\",\n type: l.number\n }, {\n name: \"line-outline-width\",\n type: l.size\n }, {\n name: \"line-outline-color\",\n type: l.color\n }, {\n name: \"line-gradient-stop-colors\",\n type: l.colors\n }, {\n name: \"line-gradient-stop-positions\",\n type: l.percentages\n }, {\n name: \"curve-style\",\n type: l.curveStyle,\n triggersBounds: u.any,\n triggersBoundsOfParallelBeziers: !0\n }, {\n name: \"haystack-radius\",\n type: l.zeroOneNumber,\n triggersBounds: u.any\n }, {\n name: \"source-endpoint\",\n type: l.edgeEndpoint,\n triggersBounds: u.any\n }, {\n name: \"target-endpoint\",\n type: l.edgeEndpoint,\n triggersBounds: u.any\n }, {\n name: \"control-point-step-size\",\n type: l.size,\n triggersBounds: u.any\n }, {\n name: \"control-point-distances\",\n type: l.bidirectionalSizes,\n triggersBounds: u.any\n }, {\n name: \"control-point-weights\",\n type: l.numbers,\n triggersBounds: u.any\n }, {\n name: \"segment-distances\",\n type: l.bidirectionalSizes,\n triggersBounds: u.any\n }, {\n name: \"segment-weights\",\n type: l.numbers,\n triggersBounds: u.any\n }, {\n name: \"segment-radii\",\n type: l.numbers,\n triggersBounds: u.any\n }, {\n name: \"radius-type\",\n type: l.radiusType,\n triggersBounds: u.any\n }, {\n name: \"taxi-turn\",\n type: l.bidirectionalSizeMaybePercent,\n triggersBounds: u.any\n }, {\n name: \"taxi-turn-min-distance\",\n type: l.size,\n triggersBounds: u.any\n }, {\n name: \"taxi-direction\",\n type: l.axisDirection,\n triggersBounds: u.any\n }, {\n name: \"taxi-radius\",\n type: l.number,\n triggersBounds: u.any\n }, {\n name: \"edge-distances\",\n type: l.edgeDistances,\n triggersBounds: u.any\n }, {\n name: \"arrow-scale\",\n type: l.positiveNumber,\n triggersBounds: u.any\n }, {\n name: \"loop-direction\",\n type: l.angle,\n triggersBounds: u.any\n }, {\n name: \"loop-sweep\",\n type: l.angle,\n triggersBounds: u.any\n }, {\n name: \"source-distance-from-node\",\n type: l.size,\n triggersBounds: u.any\n }, {\n name: \"target-distance-from-node\",\n type: l.size,\n triggersBounds: u.any\n }], D = [{\n name: \"ghost\",\n type: l.bool,\n triggersBounds: u.any\n }, {\n name: \"ghost-offset-x\",\n type: l.bidirectionalSize,\n triggersBounds: u.any\n }, {\n name: \"ghost-offset-y\",\n type: l.bidirectionalSize,\n triggersBounds: u.any\n }, {\n name: \"ghost-opacity\",\n type: l.zeroOneNumber\n }], O = [{\n name: \"selection-box-color\",\n type: l.color\n }, {\n name: \"selection-box-opacity\",\n type: l.zeroOneNumber\n }, {\n name: \"selection-box-border-color\",\n type: l.color\n }, {\n name: \"selection-box-border-width\",\n type: l.size\n }, {\n name: \"active-bg-color\",\n type: l.color\n }, {\n name: \"active-bg-opacity\",\n type: l.zeroOneNumber\n }, {\n name: \"active-bg-size\",\n type: l.size\n }, {\n name: \"outside-texture-bg-color\",\n type: l.color\n }, {\n name: \"outside-texture-bg-opacity\",\n type: l.zeroOneNumber\n }], F = [];\n Rt.pieBackgroundN = 16, F.push({\n name: \"pie-size\",\n type: l.sizeMaybePercent\n });\n for (var L = 1; L <= Rt.pieBackgroundN; L++)\n F.push({\n name: \"pie-\" + L + \"-background-color\",\n type: l.color\n }), F.push({\n name: \"pie-\" + L + \"-background-size\",\n type: l.percent\n }), F.push({\n name: \"pie-\" + L + \"-background-opacity\",\n type: l.zeroOneNumber\n });\n var B = [], I = Rt.arrowPrefixes = [\"source\", \"mid-source\", \"target\", \"mid-target\"];\n [{\n name: \"arrow-shape\",\n type: l.arrowShape,\n triggersBounds: u.any\n }, {\n name: \"arrow-color\",\n type: l.color\n }, {\n name: \"arrow-fill\",\n type: l.arrowFill\n }, {\n name: \"arrow-width\",\n type: l.arrowWidth\n }].forEach(function(te) {\n I.forEach(function($) {\n var G = $ + \"-\" + te.name, Q = te.type, ge = te.triggersBounds;\n B.push({\n name: G,\n type: Q,\n triggersBounds: ge\n });\n });\n }, {});\n var M = Rt.properties = [].concat(p, b, m, g, y, D, f, h, c, d, v, C, E, x, T, F, k, _, B, O), A = Rt.propertyGroups = {\n // common to all eles\n behavior: p,\n transition: b,\n visibility: m,\n overlay: g,\n underlay: y,\n ghost: D,\n // labels\n commonLabel: f,\n labelDimensions: h,\n mainLabel: c,\n sourceLabel: d,\n targetLabel: v,\n // node props\n nodeBody: C,\n nodeBorder: E,\n nodeOutline: x,\n backgroundImage: T,\n pie: F,\n compound: k,\n // edge props\n edgeLine: _,\n edgeArrow: B,\n core: O\n }, R = Rt.propertyGroupNames = {}, K = Rt.propertyGroupKeys = Object.keys(A);\n K.forEach(function(te) {\n R[te] = A[te].map(function($) {\n return $.name;\n }), A[te].forEach(function($) {\n return $.groupKey = te;\n });\n });\n var H = Rt.aliases = [{\n name: \"content\",\n pointsTo: \"label\"\n }, {\n name: \"control-point-distance\",\n pointsTo: \"control-point-distances\"\n }, {\n name: \"control-point-weight\",\n pointsTo: \"control-point-weights\"\n }, {\n name: \"segment-distance\",\n pointsTo: \"segment-distances\"\n }, {\n name: \"segment-weight\",\n pointsTo: \"segment-weights\"\n }, {\n name: \"segment-radius\",\n pointsTo: \"segment-radii\"\n }, {\n name: \"edge-text-rotation\",\n pointsTo: \"text-rotation\"\n }, {\n name: \"padding-left\",\n pointsTo: \"padding\"\n }, {\n name: \"padding-right\",\n pointsTo: \"padding\"\n }, {\n name: \"padding-top\",\n pointsTo: \"padding\"\n }, {\n name: \"padding-bottom\",\n pointsTo: \"padding\"\n }];\n Rt.propertyNames = M.map(function(te) {\n return te.name;\n });\n for (var q = 0; q < M.length; q++) {\n var ee = M[q];\n M[ee.name] = ee;\n }\n for (var se = 0; se < H.length; se++) {\n var oe = H[se], ne = M[oe.pointsTo], ue = {\n name: oe.name,\n alias: !0,\n pointsTo: ne\n };\n M.push(ue), M[oe.name] = ue;\n }\n})();\nRt.getDefaultProperty = function(t) {\n return this.getDefaultProperties()[t];\n};\nRt.getDefaultProperties = function() {\n var t = this._private;\n if (t.defaultProperties != null)\n return t.defaultProperties;\n for (var e = Re({\n // core props\n \"selection-box-color\": \"#ddd\",\n \"selection-box-opacity\": 0.65,\n \"selection-box-border-color\": \"#aaa\",\n \"selection-box-border-width\": 1,\n \"active-bg-color\": \"black\",\n \"active-bg-opacity\": 0.15,\n \"active-bg-size\": 30,\n \"outside-texture-bg-color\": \"#000\",\n \"outside-texture-bg-opacity\": 0.125,\n // common node/edge props\n events: \"yes\",\n \"text-events\": \"no\",\n \"text-valign\": \"top\",\n \"text-halign\": \"center\",\n \"text-justification\": \"auto\",\n \"line-height\": 1,\n color: \"#000\",\n \"text-outline-color\": \"#000\",\n \"text-outline-width\": 0,\n \"text-outline-opacity\": 1,\n \"text-opacity\": 1,\n \"text-decoration\": \"none\",\n \"text-transform\": \"none\",\n \"text-wrap\": \"none\",\n \"text-overflow-wrap\": \"whitespace\",\n \"text-max-width\": 9999,\n \"text-background-color\": \"#000\",\n \"text-background-opacity\": 0,\n \"text-background-shape\": \"rectangle\",\n \"text-background-padding\": 0,\n \"text-border-opacity\": 0,\n \"text-border-width\": 0,\n \"text-border-style\": \"solid\",\n \"text-border-color\": \"#000\",\n \"font-family\": \"Helvetica Neue, Helvetica, sans-serif\",\n \"font-style\": \"normal\",\n \"font-weight\": \"normal\",\n \"font-size\": 16,\n \"min-zoomed-font-size\": 0,\n \"text-rotation\": \"none\",\n \"source-text-rotation\": \"none\",\n \"target-text-rotation\": \"none\",\n visibility: \"visible\",\n display: \"element\",\n opacity: 1,\n \"z-compound-depth\": \"auto\",\n \"z-index-compare\": \"auto\",\n \"z-index\": 0,\n label: \"\",\n \"text-margin-x\": 0,\n \"text-margin-y\": 0,\n \"source-label\": \"\",\n \"source-text-offset\": 0,\n \"source-text-margin-x\": 0,\n \"source-text-margin-y\": 0,\n \"target-label\": \"\",\n \"target-text-offset\": 0,\n \"target-text-margin-x\": 0,\n \"target-text-margin-y\": 0,\n \"overlay-opacity\": 0,\n \"overlay-color\": \"#000\",\n \"overlay-padding\": 10,\n \"overlay-shape\": \"round-rectangle\",\n \"overlay-corner-radius\": \"auto\",\n \"underlay-opacity\": 0,\n \"underlay-color\": \"#000\",\n \"underlay-padding\": 10,\n \"underlay-shape\": \"round-rectangle\",\n \"underlay-corner-radius\": \"auto\",\n \"transition-property\": \"none\",\n \"transition-duration\": 0,\n \"transition-delay\": 0,\n \"transition-timing-function\": \"linear\",\n // node props\n \"background-blacken\": 0,\n \"background-color\": \"#999\",\n \"background-fill\": \"solid\",\n \"background-opacity\": 1,\n \"background-image\": \"none\",\n \"background-image-crossorigin\": \"anonymous\",\n \"background-image-opacity\": 1,\n \"background-image-containment\": \"inside\",\n \"background-image-smoothing\": \"yes\",\n \"background-position-x\": \"50%\",\n \"background-position-y\": \"50%\",\n \"background-offset-x\": 0,\n \"background-offset-y\": 0,\n \"background-width-relative-to\": \"include-padding\",\n \"background-height-relative-to\": \"include-padding\",\n \"background-repeat\": \"no-repeat\",\n \"background-fit\": \"none\",\n \"background-clip\": \"node\",\n \"background-width\": \"auto\",\n \"background-height\": \"auto\",\n \"border-color\": \"#000\",\n \"border-opacity\": 1,\n \"border-width\": 0,\n \"border-style\": \"solid\",\n \"border-dash-pattern\": [4, 2],\n \"border-dash-offset\": 0,\n \"border-cap\": \"butt\",\n \"border-join\": \"miter\",\n \"border-position\": \"center\",\n \"outline-color\": \"#999\",\n \"outline-opacity\": 1,\n \"outline-width\": 0,\n \"outline-offset\": 0,\n \"outline-style\": \"solid\",\n height: 30,\n width: 30,\n shape: \"ellipse\",\n \"shape-polygon-points\": \"-1, -1, 1, -1, 1, 1, -1, 1\",\n \"corner-radius\": \"auto\",\n \"bounds-expansion\": 0,\n // node gradient\n \"background-gradient-direction\": \"to-bottom\",\n \"background-gradient-stop-colors\": \"#999\",\n \"background-gradient-stop-positions\": \"0%\",\n // ghost props\n ghost: \"no\",\n \"ghost-offset-y\": 0,\n \"ghost-offset-x\": 0,\n \"ghost-opacity\": 0,\n // compound props\n padding: 0,\n \"padding-relative-to\": \"width\",\n position: \"origin\",\n \"compound-sizing-wrt-labels\": \"include\",\n \"min-width\": 0,\n \"min-width-bias-left\": 0,\n \"min-width-bias-right\": 0,\n \"min-height\": 0,\n \"min-height-bias-top\": 0,\n \"min-height-bias-bottom\": 0\n }, {\n // node pie bg\n \"pie-size\": \"100%\"\n }, [{\n name: \"pie-{{i}}-background-color\",\n value: \"black\"\n }, {\n name: \"pie-{{i}}-background-size\",\n value: \"0%\"\n }, {\n name: \"pie-{{i}}-background-opacity\",\n value: 1\n }].reduce(function(u, l) {\n for (var c = 1; c <= Rt.pieBackgroundN; c++) {\n var d = l.name.replace(\"{{i}}\", c), v = l.value;\n u[d] = v;\n }\n return u;\n }, {}), {\n // edge props\n \"line-style\": \"solid\",\n \"line-color\": \"#999\",\n \"line-fill\": \"solid\",\n \"line-cap\": \"butt\",\n \"line-opacity\": 1,\n \"line-outline-width\": 0,\n \"line-outline-color\": \"#000\",\n \"line-gradient-stop-colors\": \"#999\",\n \"line-gradient-stop-positions\": \"0%\",\n \"control-point-step-size\": 40,\n \"control-point-weights\": 0.5,\n \"segment-weights\": 0.5,\n \"segment-distances\": 20,\n \"segment-radii\": 15,\n \"radius-type\": \"arc-radius\",\n \"taxi-turn\": \"50%\",\n \"taxi-radius\": 15,\n \"taxi-turn-min-distance\": 10,\n \"taxi-direction\": \"auto\",\n \"edge-distances\": \"intersection\",\n \"curve-style\": \"haystack\",\n \"haystack-radius\": 0,\n \"arrow-scale\": 1,\n \"loop-direction\": \"-45deg\",\n \"loop-sweep\": \"-90deg\",\n \"source-distance-from-node\": 0,\n \"target-distance-from-node\": 0,\n \"source-endpoint\": \"outside-to-node\",\n \"target-endpoint\": \"outside-to-node\",\n \"line-dash-pattern\": [6, 3],\n \"line-dash-offset\": 0\n }, [{\n name: \"arrow-shape\",\n value: \"none\"\n }, {\n name: \"arrow-color\",\n value: \"#999\"\n }, {\n name: \"arrow-fill\",\n value: \"filled\"\n }, {\n name: \"arrow-width\",\n value: 1\n }].reduce(function(u, l) {\n return Rt.arrowPrefixes.forEach(function(c) {\n var d = c + \"-\" + l.name, v = l.value;\n u[d] = v;\n }), u;\n }, {})), r = {}, n = 0; n < this.properties.length; n++) {\n var a = this.properties[n];\n if (!a.pointsTo) {\n var i = a.name, o = e[i], s = this.parse(i, o);\n r[i] = s;\n }\n }\n return t.defaultProperties = r, t.defaultProperties;\n};\nRt.addDefaultStylesheet = function() {\n this.selector(\":parent\").css({\n shape: \"rectangle\",\n padding: 10,\n \"background-color\": \"#eee\",\n \"border-color\": \"#ccc\",\n \"border-width\": 1\n }).selector(\"edge\").css({\n width: 3\n }).selector(\":loop\").css({\n \"curve-style\": \"bezier\"\n }).selector(\"edge:compound\").css({\n \"curve-style\": \"bezier\",\n \"source-endpoint\": \"outside-to-line\",\n \"target-endpoint\": \"outside-to-line\"\n }).selector(\":selected\").css({\n \"background-color\": \"#0169D9\",\n \"line-color\": \"#0169D9\",\n \"source-arrow-color\": \"#0169D9\",\n \"target-arrow-color\": \"#0169D9\",\n \"mid-source-arrow-color\": \"#0169D9\",\n \"mid-target-arrow-color\": \"#0169D9\"\n }).selector(\":parent:selected\").css({\n \"background-color\": \"#CCE1F9\",\n \"border-color\": \"#aec8e5\"\n }).selector(\":active\").css({\n \"overlay-color\": \"black\",\n \"overlay-padding\": 10,\n \"overlay-opacity\": 0.25\n }), this.defaultLength = this.length;\n};\nvar vl = {};\nvl.parse = function(t, e, r, n) {\n var a = this;\n if (pt(e))\n return a.parseImplWarn(t, e, r, n);\n var i = n === \"mapping\" || n === !0 || n === !1 || n == null ? \"dontcare\" : n, o = r ? \"t\" : \"f\", s = \"\" + e, u = op(t, s, o, i), l = a.propCache = a.propCache || [], c;\n return (c = l[u]) || (c = l[u] = a.parseImplWarn(t, e, r, n)), (r || n === \"mapping\") && (c = Zr(c), c && (c.value = Zr(c.value))), c;\n};\nvl.parseImplWarn = function(t, e, r, n) {\n var a = this.parseImpl(t, e, r, n);\n return !a && e != null && tt(\"The style property `\".concat(t, \": \").concat(e, \"` is invalid\")), a && (a.name === \"width\" || a.name === \"height\") && e === \"label\" && tt(\"The style value of `label` is deprecated for `\" + a.name + \"`\"), a;\n};\nvl.parseImpl = function(t, e, r, n) {\n var a = this;\n t = lc(t);\n var i = a.properties[t], o = e, s = a.types;\n if (!i || e === void 0)\n return null;\n i.alias && (i = i.pointsTo, t = i.name);\n var u = Fe(e);\n u && (e = e.trim());\n var l = i.type;\n if (!l)\n return null;\n if (r && (e === \"\" || e === null))\n return {\n name: t,\n value: e,\n bypass: !0,\n deleteBypass: !0\n };\n if (pt(e))\n return {\n name: t,\n value: e,\n strValue: \"fn\",\n mapped: s.fn,\n bypass: r\n };\n var c, d;\n if (!(!u || n || e.length < 7 || e[1] !== \"a\")) {\n if (e.length >= 7 && e[0] === \"d\" && (c = new RegExp(s.data.regex).exec(e))) {\n if (r)\n return !1;\n var v = s.data;\n return {\n name: t,\n value: c,\n strValue: \"\" + e,\n mapped: v,\n field: c[1],\n bypass: r\n };\n } else if (e.length >= 10 && e[0] === \"m\" && (d = new RegExp(s.mapData.regex).exec(e))) {\n if (r || l.multiple)\n return !1;\n var h = s.mapData;\n if (!(l.color || l.number))\n return !1;\n var f = this.parse(t, d[4]);\n if (!f || f.mapped)\n return !1;\n var p = this.parse(t, d[5]);\n if (!p || p.mapped)\n return !1;\n if (f.pfValue === p.pfValue || f.strValue === p.strValue)\n return tt(\"`\" + t + \": \" + e + \"` is not a valid mapper because the output range is zero; converting to `\" + t + \": \" + f.strValue + \"`\"), this.parse(t, f.strValue);\n if (l.color) {\n var m = f.value, g = p.value, y = m[0] === g[0] && m[1] === g[1] && m[2] === g[2] && // optional alpha\n (m[3] === g[3] || (m[3] == null || m[3] === 1) && (g[3] == null || g[3] === 1));\n if (y)\n return !1;\n }\n return {\n name: t,\n value: d,\n strValue: \"\" + e,\n mapped: h,\n field: d[1],\n fieldMin: parseFloat(d[2]),\n // min & max are numeric\n fieldMax: parseFloat(d[3]),\n valueMin: f.value,\n valueMax: p.value,\n bypass: r\n };\n }\n }\n if (l.multiple && n !== \"multiple\") {\n var b;\n if (u ? b = e.split(/\\s+/) : st(e) ? b = e : b = [e], l.evenMultiple && b.length % 2 !== 0)\n return null;\n for (var w = [], C = [], E = [], x = \"\", T = !1, k = 0; k < b.length; k++) {\n var _ = a.parse(t, b[k], r, \"multiple\");\n T = T || Fe(_.value), w.push(_.value), E.push(_.pfValue != null ? _.pfValue : _.value), C.push(_.units), x += (k > 0 ? \" \" : \"\") + _.strValue;\n }\n return l.validate && !l.validate(w, C) ? null : l.singleEnum && T ? w.length === 1 && Fe(w[0]) ? {\n name: t,\n value: w[0],\n strValue: w[0],\n bypass: r\n } : null : {\n name: t,\n value: w,\n pfValue: E,\n strValue: x,\n bypass: r,\n units: C\n };\n }\n var D = function() {\n for (var $ = 0; $ < l.enums.length; $++) {\n var G = l.enums[$];\n if (G === e)\n return {\n name: t,\n value: e,\n strValue: \"\" + e,\n bypass: r\n };\n }\n return null;\n };\n if (l.number) {\n var O, F = \"px\";\n if (l.units && (O = l.units), l.implicitUnits && (F = l.implicitUnits), !l.unitless)\n if (u) {\n var L = \"px|em\" + (l.allowPercent ? \"|\\\\%\" : \"\");\n O && (L = O);\n var B = e.match(\"^(\" + It + \")(\" + L + \")?$\");\n B && (e = B[1], O = B[2] || F);\n } else (!O || l.implicitUnits) && (O = F);\n if (e = parseFloat(e), isNaN(e) && l.enums === void 0)\n return null;\n if (isNaN(e) && l.enums !== void 0)\n return e = o, D();\n if (l.integer && !lT(e) || l.min !== void 0 && (e < l.min || l.strictMin && e === l.min) || l.max !== void 0 && (e > l.max || l.strictMax && e === l.max))\n return null;\n var I = {\n name: t,\n value: e,\n strValue: \"\" + e + (O || \"\"),\n units: O,\n bypass: r\n };\n return l.unitless || O !== \"px\" && O !== \"em\" ? I.pfValue = e : I.pfValue = O === \"px\" || !O ? e : this.getEmSizeInPixels() * e, (O === \"ms\" || O === \"s\") && (I.pfValue = O === \"ms\" ? e : 1e3 * e), (O === \"deg\" || O === \"rad\") && (I.pfValue = O === \"rad\" ? e : H5(e)), O === \"%\" && (I.pfValue = e / 100), I;\n } else if (l.propList) {\n var M = [], A = \"\" + e;\n if (A !== \"none\") {\n for (var R = A.split(/\\s*,\\s*|\\s+/), K = 0; K < R.length; K++) {\n var H = R[K].trim();\n a.properties[H] ? M.push(H) : tt(\"`\" + H + \"` is not a valid property name\");\n }\n if (M.length === 0)\n return null;\n }\n return {\n name: t,\n value: M,\n strValue: M.length === 0 ? \"none\" : M.join(\" \"),\n bypass: r\n };\n } else if (l.color) {\n var q = ST(e);\n return q ? {\n name: t,\n value: q,\n pfValue: q,\n strValue: \"rgb(\" + q[0] + \",\" + q[1] + \",\" + q[2] + \")\",\n // n.b. no spaces b/c of multiple support\n bypass: r\n } : null;\n } else if (l.regex || l.regexes) {\n if (l.enums) {\n var ee = D();\n if (ee)\n return ee;\n }\n for (var se = l.regexes ? l.regexes : [l.regex], oe = 0; oe < se.length; oe++) {\n var ne = new RegExp(se[oe]), ue = ne.exec(e);\n if (ue)\n return {\n name: t,\n value: l.singleRegexMatchValue ? ue[1] : ue,\n strValue: \"\" + e,\n bypass: r\n };\n }\n return null;\n } else return l.string ? {\n name: t,\n value: \"\" + e,\n strValue: \"\" + e,\n bypass: r\n } : l.enums ? D() : null;\n};\nvar rr = function t(e) {\n if (!(this instanceof t))\n return new t(e);\n if (!sc(e)) {\n yt(\"A style must have a core reference\");\n return;\n }\n this._private = {\n cy: e,\n coreStyle: {}\n }, this.length = 0, this.resetToDefault();\n}, ar = rr.prototype;\nar.instanceString = function() {\n return \"style\";\n};\nar.clear = function() {\n for (var t = this._private, e = t.cy, r = e.elements(), n = 0; n < this.length; n++)\n this[n] = void 0;\n return this.length = 0, t.contextStyles = {}, t.propDiffs = {}, this.cleanElements(r, !0), r.forEach(function(a) {\n var i = a[0]._private;\n i.styleDirty = !0, i.appliedInitStyle = !1;\n }), this;\n};\nar.resetToDefault = function() {\n return this.clear(), this.addDefaultStylesheet(), this;\n};\nar.core = function(t) {\n return this._private.coreStyle[t] || this.getDefaultProperty(t);\n};\nar.selector = function(t) {\n var e = t === \"core\" ? null : new Un(t), r = this.length++;\n return this[r] = {\n selector: e,\n properties: [],\n mappedProperties: [],\n index: r\n }, this;\n};\nar.css = function() {\n var t = this, e = arguments;\n if (e.length === 1)\n for (var r = e[0], n = 0; n < t.properties.length; n++) {\n var a = t.properties[n], i = r[a.name];\n i === void 0 && (i = r[Js(a.name)]), i !== void 0 && this.cssRule(a.name, i);\n }\n else e.length === 2 && this.cssRule(e[0], e[1]);\n return this;\n};\nar.style = ar.css;\nar.cssRule = function(t, e) {\n var r = this.parse(t, e);\n if (r) {\n var n = this.length - 1;\n this[n].properties.push(r), this[n].properties[r.name] = r, r.name.match(/pie-(\\d+)-background-size/) && r.value && (this._private.hasPie = !0), r.mapped && this[n].mappedProperties.push(r);\n var a = !this[n].selector;\n a && (this._private.coreStyle[r.name] = r);\n }\n return this;\n};\nar.append = function(t) {\n return Xh(t) ? t.appendToStyle(this) : st(t) ? this.appendFromJson(t) : Fe(t) && this.appendFromString(t), this;\n};\nrr.fromJson = function(t, e) {\n var r = new rr(t);\n return r.fromJson(e), r;\n};\nrr.fromString = function(t, e) {\n return new rr(t).fromString(e);\n};\n[ir, Io, Cc, rn, fl, Ec, Rt, vl].forEach(function(t) {\n Re(ar, t);\n});\nrr.types = ar.types;\nrr.properties = ar.properties;\nrr.propertyGroups = ar.propertyGroups;\nrr.propertyGroupNames = ar.propertyGroupNames;\nrr.propertyGroupKeys = ar.propertyGroupKeys;\nvar lP = {\n style: function(e) {\n if (e) {\n var r = this.setStyle(e);\n r.update();\n }\n return this._private.style;\n },\n setStyle: function(e) {\n var r = this._private;\n return Xh(e) ? r.style = e.generateStyle(this) : st(e) ? r.style = rr.fromJson(this, e) : Fe(e) ? r.style = rr.fromString(this, e) : r.style = rr(this), r.style;\n },\n // e.g. cy.data() changed => recalc ele mappers\n updateStyle: function() {\n this.mutableElements().updateStyle();\n }\n}, uP = \"single\", xa = {\n autolock: function(e) {\n if (e !== void 0)\n this._private.autolock = !!e;\n else\n return this._private.autolock;\n return this;\n },\n autoungrabify: function(e) {\n if (e !== void 0)\n this._private.autoungrabify = !!e;\n else\n return this._private.autoungrabify;\n return this;\n },\n autounselectify: function(e) {\n if (e !== void 0)\n this._private.autounselectify = !!e;\n else\n return this._private.autounselectify;\n return this;\n },\n selectionType: function(e) {\n var r = this._private;\n if (r.selectionType == null && (r.selectionType = uP), e !== void 0)\n (e === \"additive\" || e === \"single\") && (r.selectionType = e);\n else\n return r.selectionType;\n return this;\n },\n panningEnabled: function(e) {\n if (e !== void 0)\n this._private.panningEnabled = !!e;\n else\n return this._private.panningEnabled;\n return this;\n },\n userPanningEnabled: function(e) {\n if (e !== void 0)\n this._private.userPanningEnabled = !!e;\n else\n return this._private.userPanningEnabled;\n return this;\n },\n zoomingEnabled: function(e) {\n if (e !== void 0)\n this._private.zoomingEnabled = !!e;\n else\n return this._private.zoomingEnabled;\n return this;\n },\n userZoomingEnabled: function(e) {\n if (e !== void 0)\n this._private.userZoomingEnabled = !!e;\n else\n return this._private.userZoomingEnabled;\n return this;\n },\n boxSelectionEnabled: function(e) {\n if (e !== void 0)\n this._private.boxSelectionEnabled = !!e;\n else\n return this._private.boxSelectionEnabled;\n return this;\n },\n pan: function() {\n var e = arguments, r = this._private.pan, n, a, i, o, s;\n switch (e.length) {\n case 0:\n return r;\n case 1:\n if (Fe(e[0]))\n return n = e[0], r[n];\n if (Xe(e[0])) {\n if (!this._private.panningEnabled)\n return this;\n i = e[0], o = i.x, s = i.y, be(o) && (r.x = o), be(s) && (r.y = s), this.emit(\"pan viewport\");\n }\n break;\n case 2:\n if (!this._private.panningEnabled)\n return this;\n n = e[0], a = e[1], (n === \"x\" || n === \"y\") && be(a) && (r[n] = a), this.emit(\"pan viewport\");\n break;\n }\n return this.notify(\"viewport\"), this;\n },\n panBy: function(e, r) {\n var n = arguments, a = this._private.pan, i, o, s, u, l;\n if (!this._private.panningEnabled)\n return this;\n switch (n.length) {\n case 1:\n Xe(e) && (s = n[0], u = s.x, l = s.y, be(u) && (a.x += u), be(l) && (a.y += l), this.emit(\"pan viewport\"));\n break;\n case 2:\n i = e, o = r, (i === \"x\" || i === \"y\") && be(o) && (a[i] += o), this.emit(\"pan viewport\");\n break;\n }\n return this.notify(\"viewport\"), this;\n },\n fit: function(e, r) {\n var n = this.getFitViewport(e, r);\n if (n) {\n var a = this._private;\n a.zoom = n.zoom, a.pan = n.pan, this.emit(\"pan zoom viewport\"), this.notify(\"viewport\");\n }\n return this;\n },\n getFitViewport: function(e, r) {\n if (be(e) && r === void 0 && (r = e, e = void 0), !(!this._private.panningEnabled || !this._private.zoomingEnabled)) {\n var n;\n if (Fe(e)) {\n var a = e;\n e = this.$(a);\n } else if (dT(e)) {\n var i = e;\n n = {\n x1: i.x1,\n y1: i.y1,\n x2: i.x2,\n y2: i.y2\n }, n.w = n.x2 - n.x1, n.h = n.y2 - n.y1;\n } else yr(e) || (e = this.mutableElements());\n if (!(yr(e) && e.empty())) {\n n = n || e.boundingBox();\n var o = this.width(), s = this.height(), u;\n if (r = be(r) ? r : 0, !isNaN(o) && !isNaN(s) && o > 0 && s > 0 && !isNaN(n.w) && !isNaN(n.h) && n.w > 0 && n.h > 0) {\n u = Math.min((o - 2 * r) / n.w, (s - 2 * r) / n.h), u = u > this._private.maxZoom ? this._private.maxZoom : u, u = u < this._private.minZoom ? this._private.minZoom : u;\n var l = {\n // now pan to middle\n x: (o - u * (n.x1 + n.x2)) / 2,\n y: (s - u * (n.y1 + n.y2)) / 2\n };\n return {\n zoom: u,\n pan: l\n };\n }\n }\n }\n },\n zoomRange: function(e, r) {\n var n = this._private;\n if (r == null) {\n var a = e;\n e = a.min, r = a.max;\n }\n return be(e) && be(r) && e <= r ? (n.minZoom = e, n.maxZoom = r) : be(e) && r === void 0 && e <= n.maxZoom ? n.minZoom = e : be(r) && e === void 0 && r >= n.minZoom && (n.maxZoom = r), this;\n },\n minZoom: function(e) {\n return e === void 0 ? this._private.minZoom : this.zoomRange({\n min: e\n });\n },\n maxZoom: function(e) {\n return e === void 0 ? this._private.maxZoom : this.zoomRange({\n max: e\n });\n },\n getZoomedViewport: function(e) {\n var r = this._private, n = r.pan, a = r.zoom, i, o, s = !1;\n if (r.zoomingEnabled || (s = !0), be(e) ? o = e : Xe(e) && (o = e.level, e.position != null ? i = nl(e.position, a, n) : e.renderedPosition != null && (i = e.renderedPosition), i != null && !r.panningEnabled && (s = !0)), o = o > r.maxZoom ? r.maxZoom : o, o = o < r.minZoom ? r.minZoom : o, s || !be(o) || o === a || i != null && (!be(i.x) || !be(i.y)))\n return null;\n if (i != null) {\n var u = n, l = a, c = o, d = {\n x: -c / l * (i.x - u.x) + i.x,\n y: -c / l * (i.y - u.y) + i.y\n };\n return {\n zoomed: !0,\n panned: !0,\n zoom: c,\n pan: d\n };\n } else\n return {\n zoomed: !0,\n panned: !1,\n zoom: o,\n pan: n\n };\n },\n zoom: function(e) {\n if (e === void 0)\n return this._private.zoom;\n var r = this.getZoomedViewport(e), n = this._private;\n return r == null || !r.zoomed ? this : (n.zoom = r.zoom, r.panned && (n.pan.x = r.pan.x, n.pan.y = r.pan.y), this.emit(\"zoom\" + (r.panned ? \" pan\" : \"\") + \" viewport\"), this.notify(\"viewport\"), this);\n },\n viewport: function(e) {\n var r = this._private, n = !0, a = !0, i = [], o = !1, s = !1;\n if (!e)\n return this;\n if (be(e.zoom) || (n = !1), Xe(e.pan) || (a = !1), !n && !a)\n return this;\n if (n) {\n var u = e.zoom;\n u < r.minZoom || u > r.maxZoom || !r.zoomingEnabled ? o = !0 : (r.zoom = u, i.push(\"zoom\"));\n }\n if (a && (!o || !e.cancelOnFailedZoom) && r.panningEnabled) {\n var l = e.pan;\n be(l.x) && (r.pan.x = l.x, s = !1), be(l.y) && (r.pan.y = l.y, s = !1), s || i.push(\"pan\");\n }\n return i.length > 0 && (i.push(\"viewport\"), this.emit(i.join(\" \")), this.notify(\"viewport\")), this;\n },\n center: function(e) {\n var r = this.getCenterPan(e);\n return r && (this._private.pan = r, this.emit(\"pan viewport\"), this.notify(\"viewport\")), this;\n },\n getCenterPan: function(e, r) {\n if (this._private.panningEnabled) {\n if (Fe(e)) {\n var n = e;\n e = this.mutableElements().filter(n);\n } else yr(e) || (e = this.mutableElements());\n if (e.length !== 0) {\n var a = e.boundingBox(), i = this.width(), o = this.height();\n r = r === void 0 ? this._private.zoom : r;\n var s = {\n // middle\n x: (i - r * (a.x1 + a.x2)) / 2,\n y: (o - r * (a.y1 + a.y2)) / 2\n };\n return s;\n }\n }\n },\n reset: function() {\n return !this._private.panningEnabled || !this._private.zoomingEnabled ? this : (this.viewport({\n pan: {\n x: 0,\n y: 0\n },\n zoom: 1\n }), this);\n },\n invalidateSize: function() {\n this._private.sizeCache = null;\n },\n size: function() {\n var e = this._private, r = e.container, n = this;\n return e.sizeCache = e.sizeCache || (r ? function() {\n var a = n.window().getComputedStyle(r), i = function(s) {\n return parseFloat(a.getPropertyValue(s));\n };\n return {\n width: r.clientWidth - i(\"padding-left\") - i(\"padding-right\"),\n height: r.clientHeight - i(\"padding-top\") - i(\"padding-bottom\")\n };\n }() : {\n // fallback if no container (not 0 b/c can be used for dividing etc)\n width: 1,\n height: 1\n });\n },\n width: function() {\n return this.size().width;\n },\n height: function() {\n return this.size().height;\n },\n extent: function() {\n var e = this._private.pan, r = this._private.zoom, n = this.renderedExtent(), a = {\n x1: (n.x1 - e.x) / r,\n x2: (n.x2 - e.x) / r,\n y1: (n.y1 - e.y) / r,\n y2: (n.y2 - e.y) / r\n };\n return a.w = a.x2 - a.x1, a.h = a.y2 - a.y1, a;\n },\n renderedExtent: function() {\n var e = this.width(), r = this.height();\n return {\n x1: 0,\n y1: 0,\n x2: e,\n y2: r,\n w: e,\n h: r\n };\n },\n multiClickDebounceTime: function(e) {\n if (e) this._private.multiClickDebounceTime = e;\n else return this._private.multiClickDebounceTime;\n return this;\n }\n};\nxa.centre = xa.center;\nxa.autolockNodes = xa.autolock;\nxa.autoungrabifyNodes = xa.autoungrabify;\nvar co = {\n data: et.data({\n field: \"data\",\n bindingEvent: \"data\",\n allowBinding: !0,\n allowSetting: !0,\n settingEvent: \"data\",\n settingTriggersEvent: !0,\n triggerFnName: \"trigger\",\n allowGetting: !0,\n updateStyle: !0\n }),\n removeData: et.removeData({\n field: \"data\",\n event: \"data\",\n triggerFnName: \"trigger\",\n triggerEvent: !0,\n updateStyle: !0\n }),\n scratch: et.data({\n field: \"scratch\",\n bindingEvent: \"scratch\",\n allowBinding: !0,\n allowSetting: !0,\n settingEvent: \"scratch\",\n settingTriggersEvent: !0,\n triggerFnName: \"trigger\",\n allowGetting: !0,\n updateStyle: !0\n }),\n removeScratch: et.removeData({\n field: \"scratch\",\n event: \"scratch\",\n triggerFnName: \"trigger\",\n triggerEvent: !0,\n updateStyle: !0\n })\n};\nco.attr = co.data;\nco.removeAttr = co.removeData;\nvar fo = function(e) {\n var r = this;\n e = Re({}, e);\n var n = e.container;\n n && !Ds(n) && Ds(n[0]) && (n = n[0]);\n var a = n ? n._cyreg : null;\n a = a || {}, a && a.cy && (a.cy.destroy(), a = {});\n var i = a.readies = a.readies || [];\n n && (n._cyreg = a), a.cy = r;\n var o = Ot !== void 0 && n !== void 0 && !e.headless, s = e;\n s.layout = Re({\n name: o ? \"grid\" : \"null\"\n }, s.layout), s.renderer = Re({\n name: o ? \"canvas\" : \"null\"\n }, s.renderer);\n var u = function(f, p, m) {\n return p !== void 0 ? p : m !== void 0 ? m : f;\n }, l = this._private = {\n container: n,\n // html dom ele container\n ready: !1,\n // whether ready has been triggered\n options: s,\n // cached options\n elements: new Gt(this),\n // elements in the graph\n listeners: [],\n // list of listeners\n aniEles: new Gt(this),\n // elements being animated\n data: s.data || {},\n // data for the core\n scratch: {},\n // scratch object for core\n layout: null,\n renderer: null,\n destroyed: !1,\n // whether destroy was called\n notificationsEnabled: !0,\n // whether notifications are sent to the renderer\n minZoom: 1e-50,\n maxZoom: 1e50,\n zoomingEnabled: u(!0, s.zoomingEnabled),\n userZoomingEnabled: u(!0, s.userZoomingEnabled),\n panningEnabled: u(!0, s.panningEnabled),\n userPanningEnabled: u(!0, s.userPanningEnabled),\n boxSelectionEnabled: u(!0, s.boxSelectionEnabled),\n autolock: u(!1, s.autolock, s.autolockNodes),\n autoungrabify: u(!1, s.autoungrabify, s.autoungrabifyNodes),\n autounselectify: u(!1, s.autounselectify),\n styleEnabled: s.styleEnabled === void 0 ? o : s.styleEnabled,\n zoom: be(s.zoom) ? s.zoom : 1,\n pan: {\n x: Xe(s.pan) && be(s.pan.x) ? s.pan.x : 0,\n y: Xe(s.pan) && be(s.pan.y) ? s.pan.y : 0\n },\n animation: {\n // object for currently-running animations\n current: [],\n queue: []\n },\n hasCompoundNodes: !1,\n multiClickDebounceTime: u(250, s.multiClickDebounceTime)\n };\n this.createEmitter(), this.selectionType(s.selectionType), this.zoomRange({\n min: s.minZoom,\n max: s.maxZoom\n });\n var c = function(f, p) {\n var m = f.some(fT);\n if (m)\n return hi.all(f).then(p);\n p(f);\n };\n l.styleEnabled && r.setStyle([]);\n var d = Re({}, s, s.renderer);\n r.initRenderer(d);\n var v = function(f, p, m) {\n r.notifications(!1);\n var g = r.mutableElements();\n g.length > 0 && g.remove(), f != null && (Xe(f) || st(f)) && r.add(f), r.one(\"layoutready\", function(b) {\n r.notifications(!0), r.emit(b), r.one(\"load\", p), r.emitAndNotify(\"load\");\n }).one(\"layoutstop\", function() {\n r.one(\"done\", m), r.emit(\"done\");\n });\n var y = Re({}, r._private.options.layout);\n y.eles = r.elements(), r.layout(y).run();\n };\n c([s.style, s.elements], function(h) {\n var f = h[0], p = h[1];\n l.styleEnabled && r.style().append(f), v(p, function() {\n r.startAnimationLoop(), l.ready = !0, pt(s.ready) && r.on(\"ready\", s.ready);\n for (var m = 0; m < i.length; m++) {\n var g = i[m];\n r.on(\"ready\", g);\n }\n a && (a.readies = []), r.emit(\"ready\");\n }, s.done);\n });\n}, Ms = fo.prototype;\nRe(Ms, {\n instanceString: function() {\n return \"core\";\n },\n isReady: function() {\n return this._private.ready;\n },\n destroyed: function() {\n return this._private.destroyed;\n },\n ready: function(e) {\n return this.isReady() ? this.emitter().emit(\"ready\", [], e) : this.on(\"ready\", e), this;\n },\n destroy: function() {\n var e = this;\n if (!e.destroyed())\n return e.stopAnimationLoop(), e.destroyRenderer(), this.emit(\"destroy\"), e._private.destroyed = !0, e;\n },\n hasElementWithId: function(e) {\n return this._private.elements.hasElementWithId(e);\n },\n getElementById: function(e) {\n return this._private.elements.getElementById(e);\n },\n hasCompoundNodes: function() {\n return this._private.hasCompoundNodes;\n },\n headless: function() {\n return this._private.renderer.isHeadless();\n },\n styleEnabled: function() {\n return this._private.styleEnabled;\n },\n addToPool: function(e) {\n return this._private.elements.merge(e), this;\n },\n removeFromPool: function(e) {\n return this._private.elements.unmerge(e), this;\n },\n container: function() {\n return this._private.container || null;\n },\n window: function() {\n var e = this._private.container;\n if (e == null) return Ot;\n var r = this._private.container.ownerDocument;\n return r === void 0 || r == null ? Ot : r.defaultView || Ot;\n },\n mount: function(e) {\n if (e != null) {\n var r = this, n = r._private, a = n.options;\n return !Ds(e) && Ds(e[0]) && (e = e[0]), r.stopAnimationLoop(), r.destroyRenderer(), n.container = e, n.styleEnabled = !0, r.invalidateSize(), r.initRenderer(Re({}, a, a.renderer, {\n // allow custom renderer name to be re-used, otherwise use canvas\n name: a.renderer.name === \"null\" ? \"canvas\" : a.renderer.name\n })), r.startAnimationLoop(), r.style(a.style), r.emit(\"mount\"), r;\n }\n },\n unmount: function() {\n var e = this;\n return e.stopAnimationLoop(), e.destroyRenderer(), e.initRenderer({\n name: \"null\"\n }), e.emit(\"unmount\"), e;\n },\n options: function() {\n return Zr(this._private.options);\n },\n json: function(e) {\n var r = this, n = r._private, a = r.mutableElements(), i = function(w) {\n return r.getElementById(w.id());\n };\n if (Xe(e)) {\n if (r.startBatch(), e.elements) {\n var o = {}, s = function(w, C) {\n for (var E = [], x = [], T = 0; T < w.length; T++) {\n var k = w[T];\n if (!k.data.id) {\n tt(\"cy.json() cannot handle elements without an ID attribute\");\n continue;\n }\n var _ = \"\" + k.data.id, D = r.getElementById(_);\n o[_] = !0, D.length !== 0 ? x.push({\n ele: D,\n json: k\n }) : (C && (k.group = C), E.push(k));\n }\n r.add(E);\n for (var O = 0; O < x.length; O++) {\n var F = x[O], L = F.ele, B = F.json;\n L.json(B);\n }\n };\n if (st(e.elements))\n s(e.elements);\n else\n for (var u = [\"nodes\", \"edges\"], l = 0; l < u.length; l++) {\n var c = u[l], d = e.elements[c];\n st(d) && s(d, c);\n }\n var v = r.collection();\n a.filter(function(b) {\n return !o[b.id()];\n }).forEach(function(b) {\n b.isParent() ? v.merge(b) : b.remove();\n }), v.forEach(function(b) {\n return b.children().move({\n parent: null\n });\n }), v.forEach(function(b) {\n return i(b).remove();\n });\n }\n e.style && r.style(e.style), e.zoom != null && e.zoom !== n.zoom && r.zoom(e.zoom), e.pan && (e.pan.x !== n.pan.x || e.pan.y !== n.pan.y) && r.pan(e.pan), e.data && r.data(e.data);\n for (var h = [\"minZoom\", \"maxZoom\", \"zoomingEnabled\", \"userZoomingEnabled\", \"panningEnabled\", \"userPanningEnabled\", \"boxSelectionEnabled\", \"autolock\", \"autoungrabify\", \"autounselectify\", \"multiClickDebounceTime\"], f = 0; f < h.length; f++) {\n var p = h[f];\n e[p] != null && r[p](e[p]);\n }\n return r.endBatch(), this;\n } else {\n var m = !!e, g = {};\n m ? g.elements = this.elements().map(function(b) {\n return b.json();\n }) : (g.elements = {}, a.forEach(function(b) {\n var w = b.group();\n g.elements[w] || (g.elements[w] = []), g.elements[w].push(b.json());\n })), this._private.styleEnabled && (g.style = r.style().json()), g.data = Zr(r.data());\n var y = n.options;\n return g.zoomingEnabled = n.zoomingEnabled, g.userZoomingEnabled = n.userZoomingEnabled, g.zoom = n.zoom, g.minZoom = n.minZoom, g.maxZoom = n.maxZoom, g.panningEnabled = n.panningEnabled, g.userPanningEnabled = n.userPanningEnabled, g.pan = Zr(n.pan), g.boxSelectionEnabled = n.boxSelectionEnabled, g.renderer = Zr(y.renderer), g.hideEdgesOnViewport = y.hideEdgesOnViewport, g.textureOnViewport = y.textureOnViewport, g.wheelSensitivity = y.wheelSensitivity, g.motionBlur = y.motionBlur, g.multiClickDebounceTime = y.multiClickDebounceTime, g;\n }\n }\n});\nMs.$id = Ms.getElementById;\n[QD, nP, jp, vu, hs, iP, hu, ps, lP, xa, co].forEach(function(t) {\n Re(Ms, t);\n});\nvar cP = {\n fit: !0,\n // whether to fit the viewport to the graph\n directed: !1,\n // whether the tree is directed downwards (or edges can point in any direction if false)\n padding: 30,\n // padding on fit\n circle: !1,\n // put depths in concentric circles if true, put depths top down if false\n grid: !1,\n // whether to create an even grid into which the DAG is placed (circle:false only)\n spacingFactor: 1.75,\n // positive spacing factor, larger => more space between nodes (N.B. n/a if causes overlap)\n boundingBox: void 0,\n // constrain layout bounds; { x1, y1, x2, y2 } or { x1, y1, w, h }\n avoidOverlap: !0,\n // prevents node overlap, may overflow boundingBox if not enough space\n nodeDimensionsIncludeLabels: !1,\n // Excludes the label when calculating node bounding boxes for the layout algorithm\n roots: void 0,\n // the roots of the trees\n depthSort: void 0,\n // a sorting function to order nodes at equal depth. e.g. function(a, b){ return a.data('weight') - b.data('weight') }\n animate: !1,\n // whether to transition the node positions\n animationDuration: 500,\n // duration of animation in ms if enabled\n animationEasing: void 0,\n // easing of animation if enabled,\n animateFilter: function(e, r) {\n return !0;\n },\n // a function that determines whether the node should be animated. All nodes animated by default on animate enabled. Non-animated nodes are positioned immediately when the layout starts\n ready: void 0,\n // callback on layoutready\n stop: void 0,\n // callback on layoutstop\n transform: function(e, r) {\n return r;\n }\n // transform a given node position. Useful for changing flow direction in discrete layouts\n}, dP = {\n maximal: !1,\n // whether to shift nodes down their natural BFS depths in order to avoid upwards edges (DAGS only); setting acyclic to true sets maximal to true also\n acyclic: !1\n // whether the tree is acyclic and thus a node could be shifted (due to the maximal option) multiple times without causing an infinite loop; setting to true sets maximal to true also; if you are uncertain whether a tree is acyclic, set to false to avoid potential infinite loops\n}, Ba = function(e) {\n return e.scratch(\"breadthfirst\");\n}, Yf = function(e, r) {\n return e.scratch(\"breadthfirst\", r);\n};\nfunction Qp(t) {\n this.options = Re({}, cP, dP, t);\n}\nQp.prototype.run = function() {\n var t = this.options, e = t, r = t.cy, n = e.eles, a = n.nodes().filter(function(fe) {\n return !fe.isParent();\n }), i = n, o = e.directed, s = e.acyclic || e.maximal || e.maximalAdjustments > 0, u = pr(e.boundingBox ? e.boundingBox : {\n x1: 0,\n y1: 0,\n w: r.width(),\n h: r.height()\n }), l;\n if (yr(e.roots))\n l = e.roots;\n else if (st(e.roots)) {\n for (var c = [], d = 0; d < e.roots.length; d++) {\n var v = e.roots[d], h = r.getElementById(v);\n c.push(h);\n }\n l = r.collection(c);\n } else if (Fe(e.roots))\n l = r.$(e.roots);\n else if (o)\n l = a.roots();\n else {\n var f = n.components();\n l = r.collection();\n for (var p = function(me) {\n var xe = f[me], ke = xe.maxDegree(!1), Ce = xe.filter(function(De) {\n return De.degree(!1) === ke;\n });\n l = l.add(Ce);\n }, m = 0; m < f.length; m++)\n p(m);\n }\n var g = [], y = {}, b = function(me, xe) {\n g[xe] == null && (g[xe] = []);\n var ke = g[xe].length;\n g[xe].push(me), Yf(me, {\n index: ke,\n depth: xe\n });\n }, w = function(me, xe) {\n var ke = Ba(me), Ce = ke.depth, De = ke.index;\n g[Ce][De] = null, b(me, xe);\n };\n i.bfs({\n roots: l,\n directed: e.directed,\n visit: function(me, xe, ke, Ce, De) {\n var qe = me[0], Ke = qe.id();\n b(qe, De), y[Ke] = !0;\n }\n });\n for (var C = [], E = 0; E < a.length; E++) {\n var x = a[E];\n y[x.id()] || C.push(x);\n }\n var T = function(me) {\n for (var xe = g[me], ke = 0; ke < xe.length; ke++) {\n var Ce = xe[ke];\n if (Ce == null) {\n xe.splice(ke, 1), ke--;\n continue;\n }\n Yf(Ce, {\n depth: me,\n index: ke\n });\n }\n }, k = function() {\n for (var me = 0; me < g.length; me++)\n T(me);\n }, _ = function(me, xe) {\n for (var ke = Ba(me), Ce = me.incomers().filter(function(S) {\n return S.isNode() && n.has(S);\n }), De = -1, qe = me.id(), Ke = 0; Ke < Ce.length; Ke++) {\n var Be = Ce[Ke], Ge = Ba(Be);\n De = Math.max(De, Ge.depth);\n }\n if (ke.depth <= De) {\n if (!e.acyclic && xe[qe])\n return null;\n var le = De + 1;\n return w(me, le), xe[qe] = le, !0;\n }\n return !1;\n };\n if (o && s) {\n var D = [], O = {}, F = function(me) {\n return D.push(me);\n }, L = function() {\n return D.shift();\n };\n for (a.forEach(function(fe) {\n return D.push(fe);\n }); D.length > 0; ) {\n var B = L(), I = _(B, O);\n if (I)\n B.outgoers().filter(function(fe) {\n return fe.isNode() && n.has(fe);\n }).forEach(F);\n else if (I === null) {\n tt(\"Detected double maximal shift for node `\" + B.id() + \"`. Bailing maximal adjustment due to cycle. Use `options.maximal: true` only on DAGs.\");\n break;\n }\n }\n }\n k();\n var M = 0;\n if (e.avoidOverlap)\n for (var A = 0; A < a.length; A++) {\n var R = a[A], K = R.layoutDimensions(e), H = K.w, q = K.h;\n M = Math.max(M, H, q);\n }\n var ee = {}, se = function(me) {\n if (ee[me.id()])\n return ee[me.id()];\n for (var xe = Ba(me).depth, ke = me.neighborhood(), Ce = 0, De = 0, qe = 0; qe < ke.length; qe++) {\n var Ke = ke[qe];\n if (!(Ke.isEdge() || Ke.isParent() || !a.has(Ke))) {\n var Be = Ba(Ke);\n if (Be != null) {\n var Ge = Be.index, le = Be.depth;\n if (!(Ge == null || le == null)) {\n var S = g[le].length;\n le < xe && (Ce += Ge / S, De++);\n }\n }\n }\n }\n return De = Math.max(1, De), Ce = Ce / De, De === 0 && (Ce = 0), ee[me.id()] = Ce, Ce;\n }, oe = function(me, xe) {\n var ke = se(me), Ce = se(xe), De = ke - Ce;\n return De === 0 ? Qh(me.id(), xe.id()) : De;\n };\n e.depthSort !== void 0 && (oe = e.depthSort);\n for (var ne = 0; ne < g.length; ne++)\n g[ne].sort(oe), T(ne);\n for (var ue = [], te = 0; te < C.length; te++)\n ue.push(C[te]);\n g.unshift(ue), k();\n for (var $ = 0, G = 0; G < g.length; G++)\n $ = Math.max(g[G].length, $);\n var Q = {\n x: u.x1 + u.w / 2,\n y: u.x1 + u.h / 2\n }, ge = g.reduce(function(fe, me) {\n return Math.max(fe, me.length);\n }, 0), Ee = function(me) {\n var xe = Ba(me), ke = xe.depth, Ce = xe.index, De = g[ke].length, qe = Math.max(u.w / ((e.grid ? ge : De) + 1), M), Ke = Math.max(u.h / (g.length + 1), M), Be = Math.min(u.w / 2 / g.length, u.h / 2 / g.length);\n if (Be = Math.max(Be, M), e.circle) {\n var le = Be * ke + Be - (g.length > 0 && g[0].length <= 3 ? Be / 2 : 0), S = 2 * Math.PI / g[ke].length * Ce;\n return ke === 0 && g[0].length === 1 && (le = 1), {\n x: Q.x + le * Math.cos(S),\n y: Q.y + le * Math.sin(S)\n };\n } else {\n var Ge = {\n x: Q.x + (Ce + 1 - (De + 1) / 2) * qe,\n y: (ke + 1) * Ke\n };\n return Ge;\n }\n };\n return n.nodes().layoutPositions(this, e, Ee), this;\n};\nvar fP = {\n fit: !0,\n // whether to fit the viewport to the graph\n padding: 30,\n // the padding on fit\n boundingBox: void 0,\n // constrain layout bounds; { x1, y1, x2, y2 } or { x1, y1, w, h }\n avoidOverlap: !0,\n // prevents node overlap, may overflow boundingBox and radius if not enough space\n nodeDimensionsIncludeLabels: !1,\n // Excludes the label when calculating node bounding boxes for the layout algorithm\n spacingFactor: void 0,\n // Applies a multiplicative factor (>0) to expand or compress the overall area that the nodes take up\n radius: void 0,\n // the radius of the circle\n startAngle: 3 / 2 * Math.PI,\n // where nodes start in radians\n sweep: void 0,\n // how many radians should be between the first and last node (defaults to full circle)\n clockwise: !0,\n // whether the layout should go clockwise (true) or counterclockwise/anticlockwise (false)\n sort: void 0,\n // a sorting function to order the nodes; e.g. function(a, b){ return a.data('weight') - b.data('weight') }\n animate: !1,\n // whether to transition the node positions\n animationDuration: 500,\n // duration of animation in ms if enabled\n animationEasing: void 0,\n // easing of animation if enabled\n animateFilter: function(e, r) {\n return !0;\n },\n // a function that determines whether the node should be animated. All nodes animated by default on animate enabled. Non-animated nodes are positioned immediately when the layout starts\n ready: void 0,\n // callback on layoutready\n stop: void 0,\n // callback on layoutstop\n transform: function(e, r) {\n return r;\n }\n // transform a given node position. Useful for changing flow direction in discrete layouts \n};\nfunction Jp(t) {\n this.options = Re({}, fP, t);\n}\nJp.prototype.run = function() {\n var t = this.options, e = t, r = t.cy, n = e.eles, a = e.counterclockwise !== void 0 ? !e.counterclockwise : e.clockwise, i = n.nodes().not(\":parent\");\n e.sort && (i = i.sort(e.sort));\n for (var o = pr(e.boundingBox ? e.boundingBox : {\n x1: 0,\n y1: 0,\n w: r.width(),\n h: r.height()\n }), s = {\n x: o.x1 + o.w / 2,\n y: o.y1 + o.h / 2\n }, u = e.sweep === void 0 ? 2 * Math.PI - 2 * Math.PI / i.length : e.sweep, l = u / Math.max(1, i.length - 1), c, d = 0, v = 0; v < i.length; v++) {\n var h = i[v], f = h.layoutDimensions(e), p = f.w, m = f.h;\n d = Math.max(d, p, m);\n }\n if (be(e.radius) ? c = e.radius : i.length <= 1 ? c = 0 : c = Math.min(o.h, o.w) / 2 - d, i.length > 1 && e.avoidOverlap) {\n d *= 1.75;\n var g = Math.cos(l) - Math.cos(0), y = Math.sin(l) - Math.sin(0), b = Math.sqrt(d * d / (g * g + y * y));\n c = Math.max(b, c);\n }\n var w = function(E, x) {\n var T = e.startAngle + x * l * (a ? 1 : -1), k = c * Math.cos(T), _ = c * Math.sin(T), D = {\n x: s.x + k,\n y: s.y + _\n };\n return D;\n };\n return n.nodes().layoutPositions(this, e, w), this;\n};\nvar vP = {\n fit: !0,\n // whether to fit the viewport to the graph\n padding: 30,\n // the padding on fit\n startAngle: 3 / 2 * Math.PI,\n // where nodes start in radians\n sweep: void 0,\n // how many radians should be between the first and last node (defaults to full circle)\n clockwise: !0,\n // whether the layout should go clockwise (true) or counterclockwise/anticlockwise (false)\n equidistant: !1,\n // whether levels have an equal radial distance betwen them, may cause bounding box overflow\n minNodeSpacing: 10,\n // min spacing between outside of nodes (used for radius adjustment)\n boundingBox: void 0,\n // constrain layout bounds; { x1, y1, x2, y2 } or { x1, y1, w, h }\n avoidOverlap: !0,\n // prevents node overlap, may overflow boundingBox if not enough space\n nodeDimensionsIncludeLabels: !1,\n // Excludes the label when calculating node bounding boxes for the layout algorithm\n height: void 0,\n // height of layout area (overrides container height)\n width: void 0,\n // width of layout area (overrides container width)\n spacingFactor: void 0,\n // Applies a multiplicative factor (>0) to expand or compress the overall area that the nodes take up\n concentric: function(e) {\n return e.degree();\n },\n levelWidth: function(e) {\n return e.maxDegree() / 4;\n },\n animate: !1,\n // whether to transition the node positions\n animationDuration: 500,\n // duration of animation in ms if enabled\n animationEasing: void 0,\n // easing of animation if enabled\n animateFilter: function(e, r) {\n return !0;\n },\n // a function that determines whether the node should be animated. All nodes animated by default on animate enabled. Non-animated nodes are positioned immediately when the layout starts\n ready: void 0,\n // callback on layoutready\n stop: void 0,\n // callback on layoutstop\n transform: function(e, r) {\n return r;\n }\n // transform a given node position. Useful for changing flow direction in discrete layouts\n};\nfunction eg(t) {\n this.options = Re({}, vP, t);\n}\neg.prototype.run = function() {\n for (var t = this.options, e = t, r = e.counterclockwise !== void 0 ? !e.counterclockwise : e.clockwise, n = t.cy, a = e.eles, i = a.nodes().not(\":parent\"), o = pr(e.boundingBox ? e.boundingBox : {\n x1: 0,\n y1: 0,\n w: n.width(),\n h: n.height()\n }), s = {\n x: o.x1 + o.w / 2,\n y: o.y1 + o.h / 2\n }, u = [], l = 0, c = 0; c < i.length; c++) {\n var d = i[c], v = void 0;\n v = e.concentric(d), u.push({\n value: v,\n node: d\n }), d._private.scratch.concentric = v;\n }\n i.updateStyle();\n for (var h = 0; h < i.length; h++) {\n var f = i[h], p = f.layoutDimensions(e);\n l = Math.max(l, p.w, p.h);\n }\n u.sort(function(fe, me) {\n return me.value - fe.value;\n });\n for (var m = e.levelWidth(i), g = [[]], y = g[0], b = 0; b < u.length; b++) {\n var w = u[b];\n if (y.length > 0) {\n var C = Math.abs(y[0].value - w.value);\n C >= m && (y = [], g.push(y));\n }\n y.push(w);\n }\n var E = l + e.minNodeSpacing;\n if (!e.avoidOverlap) {\n var x = g.length > 0 && g[0].length > 1, T = Math.min(o.w, o.h) / 2 - E, k = T / (g.length + x ? 1 : 0);\n E = Math.min(E, k);\n }\n for (var _ = 0, D = 0; D < g.length; D++) {\n var O = g[D], F = e.sweep === void 0 ? 2 * Math.PI - 2 * Math.PI / O.length : e.sweep, L = O.dTheta = F / Math.max(1, O.length - 1);\n if (O.length > 1 && e.avoidOverlap) {\n var B = Math.cos(L) - Math.cos(0), I = Math.sin(L) - Math.sin(0), M = Math.sqrt(E * E / (B * B + I * I));\n _ = Math.max(M, _);\n }\n O.r = _, _ += E;\n }\n if (e.equidistant) {\n for (var A = 0, R = 0, K = 0; K < g.length; K++) {\n var H = g[K], q = H.r - R;\n A = Math.max(A, q);\n }\n R = 0;\n for (var ee = 0; ee < g.length; ee++) {\n var se = g[ee];\n ee === 0 && (R = se.r), se.r = R, R += A;\n }\n }\n for (var oe = {}, ne = 0; ne < g.length; ne++)\n for (var ue = g[ne], te = ue.dTheta, $ = ue.r, G = 0; G < ue.length; G++) {\n var Q = ue[G], ge = e.startAngle + (r ? 1 : -1) * te * G, Ee = {\n x: s.x + $ * Math.cos(ge),\n y: s.y + $ * Math.sin(ge)\n };\n oe[Q.node.id()] = Ee;\n }\n return a.nodes().layoutPositions(this, e, function(fe) {\n var me = fe.id();\n return oe[me];\n }), this;\n};\nvar Hl, hP = {\n // Called on `layoutready`\n ready: function() {\n },\n // Called on `layoutstop`\n stop: function() {\n },\n // Whether to animate while running the layout\n // true : Animate continuously as the layout is running\n // false : Just show the end result\n // 'end' : Animate with the end result, from the initial positions to the end positions\n animate: !0,\n // Easing of the animation for animate:'end'\n animationEasing: void 0,\n // The duration of the animation for animate:'end'\n animationDuration: void 0,\n // A function that determines whether the node should be animated\n // All nodes animated by default on animate enabled\n // Non-animated nodes are positioned immediately when the layout starts\n animateFilter: function(e, r) {\n return !0;\n },\n // The layout animates only after this many milliseconds for animate:true\n // (prevents flashing on fast runs)\n animationThreshold: 250,\n // Number of iterations between consecutive screen positions update\n refresh: 20,\n // Whether to fit the network view after when done\n fit: !0,\n // Padding on fit\n padding: 30,\n // Constrain layout bounds; { x1, y1, x2, y2 } or { x1, y1, w, h }\n boundingBox: void 0,\n // Excludes the label when calculating node bounding boxes for the layout algorithm\n nodeDimensionsIncludeLabels: !1,\n // Randomize the initial positions of the nodes (true) or use existing positions (false)\n randomize: !1,\n // Extra spacing between components in non-compound graphs\n componentSpacing: 40,\n // Node repulsion (non overlapping) multiplier\n nodeRepulsion: function(e) {\n return 2048;\n },\n // Node repulsion (overlapping) multiplier\n nodeOverlap: 4,\n // Ideal edge (non nested) length\n idealEdgeLength: function(e) {\n return 32;\n },\n // Divisor to compute edge forces\n edgeElasticity: function(e) {\n return 32;\n },\n // Nesting factor (multiplier) to compute ideal edge length for nested edges\n nestingFactor: 1.2,\n // Gravity force (constant)\n gravity: 1,\n // Maximum number of iterations to perform\n numIter: 1e3,\n // Initial temperature (maximum node displacement)\n initialTemp: 1e3,\n // Cooling factor (how the temperature is reduced between consecutive iterations\n coolingFactor: 0.99,\n // Lower temperature threshold (below this point the layout will end)\n minTemp: 1\n};\nfunction hl(t) {\n this.options = Re({}, hP, t), this.options.layout = this;\n var e = this.options.eles.nodes(), r = this.options.eles.edges(), n = r.filter(function(a) {\n var i = a.source().data(\"id\"), o = a.target().data(\"id\"), s = e.some(function(l) {\n return l.data(\"id\") === i;\n }), u = e.some(function(l) {\n return l.data(\"id\") === o;\n });\n return !s || !u;\n });\n this.options.eles = this.options.eles.not(n);\n}\nhl.prototype.run = function() {\n var t = this.options, e = t.cy, r = this;\n r.stopped = !1, (t.animate === !0 || t.animate === !1) && r.emit({\n type: \"layoutstart\",\n layout: r\n }), t.debug === !0 ? Hl = !0 : Hl = !1;\n var n = pP(e, r, t);\n Hl && yP(n), t.randomize && bP(n);\n var a = gn(), i = function() {\n wP(n, e, t), t.fit === !0 && e.fit(t.padding);\n }, o = function(v) {\n return !(r.stopped || v >= t.numIter || (xP(n, t), n.temperature = n.temperature * t.coolingFactor, n.temperature < t.minTemp));\n }, s = function() {\n if (t.animate === !0 || t.animate === !1)\n i(), r.one(\"layoutstop\", t.stop), r.emit({\n type: \"layoutstop\",\n layout: r\n });\n else {\n var v = t.eles.nodes(), h = tg(n, t, v);\n v.layoutPositions(r, t, h);\n }\n }, u = 0, l = !0;\n if (t.animate === !0) {\n var c = function d() {\n for (var v = 0; l && v < t.refresh; )\n l = o(u), u++, v++;\n if (!l)\n Xf(n, t), s();\n else {\n var h = gn();\n h - a >= t.animationThreshold && i(), Ps(d);\n }\n };\n c();\n } else {\n for (; l; )\n l = o(u), u++;\n Xf(n, t), s();\n }\n return this;\n};\nhl.prototype.stop = function() {\n return this.stopped = !0, this.thread && this.thread.stop(), this.emit(\"layoutstop\"), this;\n};\nhl.prototype.destroy = function() {\n return this.thread && this.thread.stop(), this;\n};\nvar pP = function(e, r, n) {\n for (var a = n.eles.edges(), i = n.eles.nodes(), o = pr(n.boundingBox ? n.boundingBox : {\n x1: 0,\n y1: 0,\n w: e.width(),\n h: e.height()\n }), s = {\n isCompound: e.hasCompoundNodes(),\n layoutNodes: [],\n idToIndex: {},\n nodeSize: i.size(),\n graphSet: [],\n indexToGraph: [],\n layoutEdges: [],\n edgeSize: a.size(),\n temperature: n.initialTemp,\n clientWidth: o.w,\n clientHeight: o.h,\n boundingBox: o\n }, u = n.eles.components(), l = {}, c = 0; c < u.length; c++)\n for (var d = u[c], v = 0; v < d.length; v++) {\n var h = d[v];\n l[h.id()] = c;\n }\n for (var c = 0; c < s.nodeSize; c++) {\n var f = i[c], p = f.layoutDimensions(n), m = {};\n m.isLocked = f.locked(), m.id = f.data(\"id\"), m.parentId = f.data(\"parent\"), m.cmptId = l[f.id()], m.children = [], m.positionX = f.position(\"x\"), m.positionY = f.position(\"y\"), m.offsetX = 0, m.offsetY = 0, m.height = p.w, m.width = p.h, m.maxX = m.positionX + m.width / 2, m.minX = m.positionX - m.width / 2, m.maxY = m.positionY + m.height / 2, m.minY = m.positionY - m.height / 2, m.padLeft = parseFloat(f.style(\"padding\")), m.padRight = parseFloat(f.style(\"padding\")), m.padTop = parseFloat(f.style(\"padding\")), m.padBottom = parseFloat(f.style(\"padding\")), m.nodeRepulsion = pt(n.nodeRepulsion) ? n.nodeRepulsion(f) : n.nodeRepulsion, s.layoutNodes.push(m), s.idToIndex[m.id] = c;\n }\n for (var g = [], y = 0, b = -1, w = [], c = 0; c < s.nodeSize; c++) {\n var f = s.layoutNodes[c], C = f.parentId;\n C != null ? s.layoutNodes[s.idToIndex[C]].children.push(f.id) : (g[++b] = f.id, w.push(f.id));\n }\n for (s.graphSet.push(w); y <= b; ) {\n var E = g[y++], x = s.idToIndex[E], h = s.layoutNodes[x], T = h.children;\n if (T.length > 0) {\n s.graphSet.push(T);\n for (var c = 0; c < T.length; c++)\n g[++b] = T[c];\n }\n }\n for (var c = 0; c < s.graphSet.length; c++)\n for (var k = s.graphSet[c], v = 0; v < k.length; v++) {\n var _ = s.idToIndex[k[v]];\n s.indexToGraph[_] = c;\n }\n for (var c = 0; c < s.edgeSize; c++) {\n var D = a[c], O = {};\n O.id = D.data(\"id\"), O.sourceId = D.data(\"source\"), O.targetId = D.data(\"target\");\n var F = pt(n.idealEdgeLength) ? n.idealEdgeLength(D) : n.idealEdgeLength, L = pt(n.edgeElasticity) ? n.edgeElasticity(D) : n.edgeElasticity, B = s.idToIndex[O.sourceId], I = s.idToIndex[O.targetId], M = s.indexToGraph[B], A = s.indexToGraph[I];\n if (M != A) {\n for (var R = gP(O.sourceId, O.targetId, s), K = s.graphSet[R], H = 0, m = s.layoutNodes[B]; K.indexOf(m.id) === -1; )\n m = s.layoutNodes[s.idToIndex[m.parentId]], H++;\n for (m = s.layoutNodes[I]; K.indexOf(m.id) === -1; )\n m = s.layoutNodes[s.idToIndex[m.parentId]], H++;\n F *= H * n.nestingFactor;\n }\n O.idealLength = F, O.elasticity = L, s.layoutEdges.push(O);\n }\n return s;\n}, gP = function(e, r, n) {\n var a = mP(e, r, 0, n);\n return 2 > a.count ? 0 : a.graph;\n}, mP = function t(e, r, n, a) {\n var i = a.graphSet[n];\n if (-1 < i.indexOf(e) && -1 < i.indexOf(r))\n return {\n count: 2,\n graph: n\n };\n for (var o = 0, s = 0; s < i.length; s++) {\n var u = i[s], l = a.idToIndex[u], c = a.layoutNodes[l].children;\n if (c.length !== 0) {\n var d = a.indexToGraph[a.idToIndex[c[0]]], v = t(e, r, d, a);\n if (v.count !== 0)\n if (v.count === 1) {\n if (o++, o === 2)\n break;\n } else\n return v;\n }\n }\n return {\n count: o,\n graph: n\n };\n}, yP, bP = function(e, r) {\n for (var n = e.clientWidth, a = e.clientHeight, i = 0; i < e.nodeSize; i++) {\n var o = e.layoutNodes[i];\n o.children.length === 0 && !o.isLocked && (o.positionX = Math.random() * n, o.positionY = Math.random() * a);\n }\n}, tg = function(e, r, n) {\n var a = e.boundingBox, i = {\n x1: 1 / 0,\n x2: -1 / 0,\n y1: 1 / 0,\n y2: -1 / 0\n };\n return r.boundingBox && (n.forEach(function(o) {\n var s = e.layoutNodes[e.idToIndex[o.data(\"id\")]];\n i.x1 = Math.min(i.x1, s.positionX), i.x2 = Math.max(i.x2, s.positionX), i.y1 = Math.min(i.y1, s.positionY), i.y2 = Math.max(i.y2, s.positionY);\n }), i.w = i.x2 - i.x1, i.h = i.y2 - i.y1), function(o, s) {\n var u = e.layoutNodes[e.idToIndex[o.data(\"id\")]];\n if (r.boundingBox) {\n var l = (u.positionX - i.x1) / i.w, c = (u.positionY - i.y1) / i.h;\n return {\n x: a.x1 + l * a.w,\n y: a.y1 + c * a.h\n };\n } else\n return {\n x: u.positionX,\n y: u.positionY\n };\n };\n}, wP = function(e, r, n) {\n var a = n.layout, i = n.eles.nodes(), o = tg(e, n, i);\n i.positions(o), e.ready !== !0 && (e.ready = !0, a.one(\"layoutready\", n.ready), a.emit({\n type: \"layoutready\",\n layout: this\n }));\n}, xP = function(e, r, n) {\n CP(e, r), SP(e), TP(e, r), _P(e), DP(e);\n}, CP = function(e, r) {\n for (var n = 0; n < e.graphSet.length; n++)\n for (var a = e.graphSet[n], i = a.length, o = 0; o < i; o++)\n for (var s = e.layoutNodes[e.idToIndex[a[o]]], u = o + 1; u < i; u++) {\n var l = e.layoutNodes[e.idToIndex[a[u]]];\n EP(s, l, e, r);\n }\n}, Zf = function(e) {\n return -e + 2 * e * Math.random();\n}, EP = function(e, r, n, a) {\n var i = e.cmptId, o = r.cmptId;\n if (!(i !== o && !n.isCompound)) {\n var s = r.positionX - e.positionX, u = r.positionY - e.positionY, l = 1;\n s === 0 && u === 0 && (s = Zf(l), u = Zf(l));\n var c = kP(e, r, s, u);\n if (c > 0)\n var d = a.nodeOverlap * c, v = Math.sqrt(s * s + u * u), h = d * s / v, f = d * u / v;\n else\n var p = Bs(e, s, u), m = Bs(r, -1 * s, -1 * u), g = m.x - p.x, y = m.y - p.y, b = g * g + y * y, v = Math.sqrt(b), d = (e.nodeRepulsion + r.nodeRepulsion) / b, h = d * g / v, f = d * y / v;\n e.isLocked || (e.offsetX -= h, e.offsetY -= f), r.isLocked || (r.offsetX += h, r.offsetY += f);\n }\n}, kP = function(e, r, n, a) {\n if (n > 0)\n var i = e.maxX - r.minX;\n else\n var i = r.maxX - e.minX;\n if (a > 0)\n var o = e.maxY - r.minY;\n else\n var o = r.maxY - e.minY;\n return i >= 0 && o >= 0 ? Math.sqrt(i * i + o * o) : 0;\n}, Bs = function(e, r, n) {\n var a = e.positionX, i = e.positionY, o = e.height || 1, s = e.width || 1, u = n / r, l = o / s, c = {};\n return r === 0 && 0 < n || r === 0 && 0 > n ? (c.x = a, c.y = i + o / 2, c) : 0 < r && -1 * l <= u && u <= l ? (c.x = a + s / 2, c.y = i + s * n / 2 / r, c) : 0 > r && -1 * l <= u && u <= l ? (c.x = a - s / 2, c.y = i - s * n / 2 / r, c) : 0 < n && (u <= -1 * l || u >= l) ? (c.x = a + o * r / 2 / n, c.y = i + o / 2, c) : (0 > n && (u <= -1 * l || u >= l) && (c.x = a - o * r / 2 / n, c.y = i - o / 2), c);\n}, SP = function(e, r) {\n for (var n = 0; n < e.edgeSize; n++) {\n var a = e.layoutEdges[n], i = e.idToIndex[a.sourceId], o = e.layoutNodes[i], s = e.idToIndex[a.targetId], u = e.layoutNodes[s], l = u.positionX - o.positionX, c = u.positionY - o.positionY;\n if (!(l === 0 && c === 0)) {\n var d = Bs(o, l, c), v = Bs(u, -1 * l, -1 * c), h = v.x - d.x, f = v.y - d.y, p = Math.sqrt(h * h + f * f), m = Math.pow(a.idealLength - p, 2) / a.elasticity;\n if (p !== 0)\n var g = m * h / p, y = m * f / p;\n else\n var g = 0, y = 0;\n o.isLocked || (o.offsetX += g, o.offsetY += y), u.isLocked || (u.offsetX -= g, u.offsetY -= y);\n }\n }\n}, TP = function(e, r) {\n if (r.gravity !== 0)\n for (var n = 1, a = 0; a < e.graphSet.length; a++) {\n var i = e.graphSet[a], o = i.length;\n if (a === 0)\n var s = e.clientHeight / 2, u = e.clientWidth / 2;\n else\n var l = e.layoutNodes[e.idToIndex[i[0]]], c = e.layoutNodes[e.idToIndex[l.parentId]], s = c.positionX, u = c.positionY;\n for (var d = 0; d < o; d++) {\n var v = e.layoutNodes[e.idToIndex[i[d]]];\n if (!v.isLocked) {\n var h = s - v.positionX, f = u - v.positionY, p = Math.sqrt(h * h + f * f);\n if (p > n) {\n var m = r.gravity * h / p, g = r.gravity * f / p;\n v.offsetX += m, v.offsetY += g;\n }\n }\n }\n }\n}, _P = function(e, r) {\n var n = [], a = 0, i = -1;\n for (n.push.apply(n, e.graphSet[0]), i += e.graphSet[0].length; a <= i; ) {\n var o = n[a++], s = e.idToIndex[o], u = e.layoutNodes[s], l = u.children;\n if (0 < l.length && !u.isLocked) {\n for (var c = u.offsetX, d = u.offsetY, v = 0; v < l.length; v++) {\n var h = e.layoutNodes[e.idToIndex[l[v]]];\n h.offsetX += c, h.offsetY += d, n[++i] = l[v];\n }\n u.offsetX = 0, u.offsetY = 0;\n }\n }\n}, DP = function(e, r) {\n for (var n = 0; n < e.nodeSize; n++) {\n var a = e.layoutNodes[n];\n 0 < a.children.length && (a.maxX = void 0, a.minX = void 0, a.maxY = void 0, a.minY = void 0);\n }\n for (var n = 0; n < e.nodeSize; n++) {\n var a = e.layoutNodes[n];\n if (!(0 < a.children.length || a.isLocked)) {\n var i = PP(a.offsetX, a.offsetY, e.temperature);\n a.positionX += i.x, a.positionY += i.y, a.offsetX = 0, a.offsetY = 0, a.minX = a.positionX - a.width, a.maxX = a.positionX + a.width, a.minY = a.positionY - a.height, a.maxY = a.positionY + a.height, OP(a, e);\n }\n }\n for (var n = 0; n < e.nodeSize; n++) {\n var a = e.layoutNodes[n];\n 0 < a.children.length && !a.isLocked && (a.positionX = (a.maxX + a.minX) / 2, a.positionY = (a.maxY + a.minY) / 2, a.width = a.maxX - a.minX, a.height = a.maxY - a.minY);\n }\n}, PP = function(e, r, n) {\n var a = Math.sqrt(e * e + r * r);\n if (a > n)\n var i = {\n x: n * e / a,\n y: n * r / a\n };\n else\n var i = {\n x: e,\n y: r\n };\n return i;\n}, OP = function t(e, r) {\n var n = e.parentId;\n if (n != null) {\n var a = r.layoutNodes[r.idToIndex[n]], i = !1;\n if ((a.maxX == null || e.maxX + a.padRight > a.maxX) && (a.maxX = e.maxX + a.padRight, i = !0), (a.minX == null || e.minX - a.padLeft < a.minX) && (a.minX = e.minX - a.padLeft, i = !0), (a.maxY == null || e.maxY + a.padBottom > a.maxY) && (a.maxY = e.maxY + a.padBottom, i = !0), (a.minY == null || e.minY - a.padTop < a.minY) && (a.minY = e.minY - a.padTop, i = !0), i)\n return t(a, r);\n }\n}, Xf = function(e, r) {\n for (var n = e.layoutNodes, a = [], i = 0; i < n.length; i++) {\n var o = n[i], s = o.cmptId, u = a[s] = a[s] || [];\n u.push(o);\n }\n for (var l = 0, i = 0; i < a.length; i++) {\n var c = a[i];\n if (c) {\n c.x1 = 1 / 0, c.x2 = -1 / 0, c.y1 = 1 / 0, c.y2 = -1 / 0;\n for (var d = 0; d < c.length; d++) {\n var v = c[d];\n c.x1 = Math.min(c.x1, v.positionX - v.width / 2), c.x2 = Math.max(c.x2, v.positionX + v.width / 2), c.y1 = Math.min(c.y1, v.positionY - v.height / 2), c.y2 = Math.max(c.y2, v.positionY + v.height / 2);\n }\n c.w = c.x2 - c.x1, c.h = c.y2 - c.y1, l += c.w * c.h;\n }\n }\n a.sort(function(y, b) {\n return b.w * b.h - y.w * y.h;\n });\n for (var h = 0, f = 0, p = 0, m = 0, g = Math.sqrt(l) * e.clientWidth / e.clientHeight, i = 0; i < a.length; i++) {\n var c = a[i];\n if (c) {\n for (var d = 0; d < c.length; d++) {\n var v = c[d];\n v.isLocked || (v.positionX += h - c.x1, v.positionY += f - c.y1);\n }\n h += c.w + r.componentSpacing, p += c.w + r.componentSpacing, m = Math.max(m, c.h), p > g && (f += m + r.componentSpacing, h = 0, p = 0, m = 0);\n }\n }\n}, LP = {\n fit: !0,\n // whether to fit the viewport to the graph\n padding: 30,\n // padding used on fit\n boundingBox: void 0,\n // constrain layout bounds; { x1, y1, x2, y2 } or { x1, y1, w, h }\n avoidOverlap: !0,\n // prevents node overlap, may overflow boundingBox if not enough space\n avoidOverlapPadding: 10,\n // extra spacing around nodes when avoidOverlap: true\n nodeDimensionsIncludeLabels: !1,\n // Excludes the label when calculating node bounding boxes for the layout algorithm\n spacingFactor: void 0,\n // Applies a multiplicative factor (>0) to expand or compress the overall area that the nodes take up\n condense: !1,\n // uses all available space on false, uses minimal space on true\n rows: void 0,\n // force num of rows in the grid\n cols: void 0,\n // force num of columns in the grid\n position: function(e) {\n },\n // returns { row, col } for element\n sort: void 0,\n // a sorting function to order the nodes; e.g. function(a, b){ return a.data('weight') - b.data('weight') }\n animate: !1,\n // whether to transition the node positions\n animationDuration: 500,\n // duration of animation in ms if enabled\n animationEasing: void 0,\n // easing of animation if enabled\n animateFilter: function(e, r) {\n return !0;\n },\n // a function that determines whether the node should be animated. All nodes animated by default on animate enabled. Non-animated nodes are positioned immediately when the layout starts\n ready: void 0,\n // callback on layoutready\n stop: void 0,\n // callback on layoutstop\n transform: function(e, r) {\n return r;\n }\n // transform a given node position. Useful for changing flow direction in discrete layouts \n};\nfunction rg(t) {\n this.options = Re({}, LP, t);\n}\nrg.prototype.run = function() {\n var t = this.options, e = t, r = t.cy, n = e.eles, a = n.nodes().not(\":parent\");\n e.sort && (a = a.sort(e.sort));\n var i = pr(e.boundingBox ? e.boundingBox : {\n x1: 0,\n y1: 0,\n w: r.width(),\n h: r.height()\n });\n if (i.h === 0 || i.w === 0)\n n.nodes().layoutPositions(this, e, function(ee) {\n return {\n x: i.x1,\n y: i.y1\n };\n });\n else {\n var o = a.size(), s = Math.sqrt(o * i.h / i.w), u = Math.round(s), l = Math.round(i.w / i.h * s), c = function(se) {\n if (se == null)\n return Math.min(u, l);\n var oe = Math.min(u, l);\n oe == u ? u = se : l = se;\n }, d = function(se) {\n if (se == null)\n return Math.max(u, l);\n var oe = Math.max(u, l);\n oe == u ? u = se : l = se;\n }, v = e.rows, h = e.cols != null ? e.cols : e.columns;\n if (v != null && h != null)\n u = v, l = h;\n else if (v != null && h == null)\n u = v, l = Math.ceil(o / u);\n else if (v == null && h != null)\n l = h, u = Math.ceil(o / l);\n else if (l * u > o) {\n var f = c(), p = d();\n (f - 1) * p >= o ? c(f - 1) : (p - 1) * f >= o && d(p - 1);\n } else\n for (; l * u < o; ) {\n var m = c(), g = d();\n (g + 1) * m >= o ? d(g + 1) : c(m + 1);\n }\n var y = i.w / l, b = i.h / u;\n if (e.condense && (y = 0, b = 0), e.avoidOverlap)\n for (var w = 0; w < a.length; w++) {\n var C = a[w], E = C._private.position;\n (E.x == null || E.y == null) && (E.x = 0, E.y = 0);\n var x = C.layoutDimensions(e), T = e.avoidOverlapPadding, k = x.w + T, _ = x.h + T;\n y = Math.max(y, k), b = Math.max(b, _);\n }\n for (var D = {}, O = function(se, oe) {\n return !!D[\"c-\" + se + \"-\" + oe];\n }, F = function(se, oe) {\n D[\"c-\" + se + \"-\" + oe] = !0;\n }, L = 0, B = 0, I = function() {\n B++, B >= l && (B = 0, L++);\n }, M = {}, A = 0; A < a.length; A++) {\n var R = a[A], K = e.position(R);\n if (K && (K.row !== void 0 || K.col !== void 0)) {\n var H = {\n row: K.row,\n col: K.col\n };\n if (H.col === void 0)\n for (H.col = 0; O(H.row, H.col); )\n H.col++;\n else if (H.row === void 0)\n for (H.row = 0; O(H.row, H.col); )\n H.row++;\n M[R.id()] = H, F(H.row, H.col);\n }\n }\n var q = function(se, oe) {\n var ne, ue;\n if (se.locked() || se.isParent())\n return !1;\n var te = M[se.id()];\n if (te)\n ne = te.col * y + y / 2 + i.x1, ue = te.row * b + b / 2 + i.y1;\n else {\n for (; O(L, B); )\n I();\n ne = B * y + y / 2 + i.x1, ue = L * b + b / 2 + i.y1, F(L, B), I();\n }\n return {\n x: ne,\n y: ue\n };\n };\n a.layoutPositions(this, e, q);\n }\n return this;\n};\nvar IP = {\n ready: function() {\n },\n // on layoutready\n stop: function() {\n }\n // on layoutstop\n};\nfunction kc(t) {\n this.options = Re({}, IP, t);\n}\nkc.prototype.run = function() {\n var t = this.options, e = t.eles, r = this;\n return t.cy, r.emit(\"layoutstart\"), e.nodes().positions(function() {\n return {\n x: 0,\n y: 0\n };\n }), r.one(\"layoutready\", t.ready), r.emit(\"layoutready\"), r.one(\"layoutstop\", t.stop), r.emit(\"layoutstop\"), this;\n};\nkc.prototype.stop = function() {\n return this;\n};\nvar FP = {\n positions: void 0,\n // map of (node id) => (position obj); or function(node){ return somPos; }\n zoom: void 0,\n // the zoom level to set (prob want fit = false if set)\n pan: void 0,\n // the pan level to set (prob want fit = false if set)\n fit: !0,\n // whether to fit to viewport\n padding: 30,\n // padding on fit\n spacingFactor: void 0,\n // Applies a multiplicative factor (>0) to expand or compress the overall area that the nodes take up\n animate: !1,\n // whether to transition the node positions\n animationDuration: 500,\n // duration of animation in ms if enabled\n animationEasing: void 0,\n // easing of animation if enabled\n animateFilter: function(e, r) {\n return !0;\n },\n // a function that determines whether the node should be animated. All nodes animated by default on animate enabled. Non-animated nodes are positioned immediately when the layout starts\n ready: void 0,\n // callback on layoutready\n stop: void 0,\n // callback on layoutstop\n transform: function(e, r) {\n return r;\n }\n // transform a given node position. Useful for changing flow direction in discrete layouts\n};\nfunction ng(t) {\n this.options = Re({}, FP, t);\n}\nng.prototype.run = function() {\n var t = this.options, e = t.eles, r = e.nodes(), n = pt(t.positions);\n function a(i) {\n if (t.positions == null)\n return N5(i.position());\n if (n)\n return t.positions(i);\n var o = t.positions[i._private.data.id];\n return o ?? null;\n }\n return r.layoutPositions(this, t, function(i, o) {\n var s = a(i);\n return i.locked() || s == null ? !1 : s;\n }), this;\n};\nvar AP = {\n fit: !0,\n // whether to fit to viewport\n padding: 30,\n // fit padding\n boundingBox: void 0,\n // constrain layout bounds; { x1, y1, x2, y2 } or { x1, y1, w, h }\n animate: !1,\n // whether to transition the node positions\n animationDuration: 500,\n // duration of animation in ms if enabled\n animationEasing: void 0,\n // easing of animation if enabled\n animateFilter: function(e, r) {\n return !0;\n },\n // a function that determines whether the node should be animated. All nodes animated by default on animate enabled. Non-animated nodes are positioned immediately when the layout starts\n ready: void 0,\n // callback on layoutready\n stop: void 0,\n // callback on layoutstop\n transform: function(e, r) {\n return r;\n }\n // transform a given node position. Useful for changing flow direction in discrete layouts \n};\nfunction ag(t) {\n this.options = Re({}, AP, t);\n}\nag.prototype.run = function() {\n var t = this.options, e = t.cy, r = t.eles, n = pr(t.boundingBox ? t.boundingBox : {\n x1: 0,\n y1: 0,\n w: e.width(),\n h: e.height()\n }), a = function(o, s) {\n return {\n x: n.x1 + Math.round(Math.random() * n.w),\n y: n.y1 + Math.round(Math.random() * n.h)\n };\n };\n return r.nodes().layoutPositions(this, t, a), this;\n};\nvar MP = [{\n name: \"breadthfirst\",\n impl: Qp\n}, {\n name: \"circle\",\n impl: Jp\n}, {\n name: \"concentric\",\n impl: eg\n}, {\n name: \"cose\",\n impl: hl\n}, {\n name: \"grid\",\n impl: rg\n}, {\n name: \"null\",\n impl: kc\n}, {\n name: \"preset\",\n impl: ng\n}, {\n name: \"random\",\n impl: ag\n}];\nfunction ig(t) {\n this.options = t, this.notifications = 0;\n}\nvar jf = function() {\n}, Qf = function() {\n throw new Error(\"A headless instance can not render images\");\n};\nig.prototype = {\n recalculateRenderedStyle: jf,\n notify: function() {\n this.notifications++;\n },\n init: jf,\n isHeadless: function() {\n return !0;\n },\n png: Qf,\n jpg: Qf\n};\nvar Sc = {};\nSc.arrowShapeWidth = 0.3;\nSc.registerArrowShapes = function() {\n var t = this.arrowShapes = {}, e = this, r = function(l, c, d, v, h, f, p) {\n var m = h.x - d / 2 - p, g = h.x + d / 2 + p, y = h.y - d / 2 - p, b = h.y + d / 2 + p, w = m <= l && l <= g && y <= c && c <= b;\n return w;\n }, n = function(l, c, d, v, h) {\n var f = l * Math.cos(v) - c * Math.sin(v), p = l * Math.sin(v) + c * Math.cos(v), m = f * d, g = p * d, y = m + h.x, b = g + h.y;\n return {\n x: y,\n y: b\n };\n }, a = function(l, c, d, v) {\n for (var h = [], f = 0; f < l.length; f += 2) {\n var p = l[f], m = l[f + 1];\n h.push(n(p, m, c, d, v));\n }\n return h;\n }, i = function(l) {\n for (var c = [], d = 0; d < l.length; d++) {\n var v = l[d];\n c.push(v.x, v.y);\n }\n return c;\n }, o = function(l) {\n return l.pstyle(\"width\").pfValue * l.pstyle(\"arrow-scale\").pfValue * 2;\n }, s = function(l, c) {\n Fe(c) && (c = t[c]), t[l] = Re({\n name: l,\n points: [-0.15, -0.3, 0.15, -0.3, 0.15, 0.3, -0.15, 0.3],\n collide: function(v, h, f, p, m, g) {\n var y = i(a(this.points, f + 2 * g, p, m)), b = dr(v, h, y);\n return b;\n },\n roughCollide: r,\n draw: function(v, h, f, p) {\n var m = a(this.points, h, f, p);\n e.arrowShapeImpl(\"polygon\")(v, m);\n },\n spacing: function(v) {\n return 0;\n },\n gap: o\n }, c);\n };\n s(\"none\", {\n collide: Os,\n roughCollide: Os,\n draw: cc,\n spacing: lf,\n gap: lf\n }), s(\"triangle\", {\n points: [-0.15, -0.3, 0, 0, 0.15, -0.3]\n }), s(\"arrow\", \"triangle\"), s(\"triangle-backcurve\", {\n points: t.triangle.points,\n controlPoint: [0, -0.15],\n roughCollide: r,\n draw: function(l, c, d, v, h) {\n var f = a(this.points, c, d, v), p = this.controlPoint, m = n(p[0], p[1], c, d, v);\n e.arrowShapeImpl(this.name)(l, f, m);\n },\n gap: function(l) {\n return o(l) * 0.8;\n }\n }), s(\"triangle-tee\", {\n points: [0, 0, 0.15, -0.3, -0.15, -0.3, 0, 0],\n pointsTee: [-0.15, -0.4, -0.15, -0.5, 0.15, -0.5, 0.15, -0.4],\n collide: function(l, c, d, v, h, f, p) {\n var m = i(a(this.points, d + 2 * p, v, h)), g = i(a(this.pointsTee, d + 2 * p, v, h)), y = dr(l, c, m) || dr(l, c, g);\n return y;\n },\n draw: function(l, c, d, v, h) {\n var f = a(this.points, c, d, v), p = a(this.pointsTee, c, d, v);\n e.arrowShapeImpl(this.name)(l, f, p);\n }\n }), s(\"circle-triangle\", {\n radius: 0.15,\n pointsTr: [0, -0.15, 0.15, -0.45, -0.15, -0.45, 0, -0.15],\n collide: function(l, c, d, v, h, f, p) {\n var m = h, g = Math.pow(m.x - l, 2) + Math.pow(m.y - c, 2) <= Math.pow((d + 2 * p) * this.radius, 2), y = i(a(this.points, d + 2 * p, v, h));\n return dr(l, c, y) || g;\n },\n draw: function(l, c, d, v, h) {\n var f = a(this.pointsTr, c, d, v);\n e.arrowShapeImpl(this.name)(l, f, v.x, v.y, this.radius * c);\n },\n spacing: function(l) {\n return e.getArrowWidth(l.pstyle(\"width\").pfValue, l.pstyle(\"arrow-scale\").value) * this.radius;\n }\n }), s(\"triangle-cross\", {\n points: [0, 0, 0.15, -0.3, -0.15, -0.3, 0, 0],\n baseCrossLinePts: [\n -0.15,\n -0.4,\n // first half of the rectangle\n -0.15,\n -0.4,\n 0.15,\n -0.4,\n // second half of the rectangle\n 0.15,\n -0.4\n ],\n crossLinePts: function(l, c) {\n var d = this.baseCrossLinePts.slice(), v = c / l, h = 3, f = 5;\n return d[h] = d[h] - v, d[f] = d[f] - v, d;\n },\n collide: function(l, c, d, v, h, f, p) {\n var m = i(a(this.points, d + 2 * p, v, h)), g = i(a(this.crossLinePts(d, f), d + 2 * p, v, h)), y = dr(l, c, m) || dr(l, c, g);\n return y;\n },\n draw: function(l, c, d, v, h) {\n var f = a(this.points, c, d, v), p = a(this.crossLinePts(c, h), c, d, v);\n e.arrowShapeImpl(this.name)(l, f, p);\n }\n }), s(\"vee\", {\n points: [-0.15, -0.3, 0, 0, 0.15, -0.3, 0, -0.15],\n gap: function(l) {\n return o(l) * 0.525;\n }\n }), s(\"circle\", {\n radius: 0.15,\n collide: function(l, c, d, v, h, f, p) {\n var m = h, g = Math.pow(m.x - l, 2) + Math.pow(m.y - c, 2) <= Math.pow((d + 2 * p) * this.radius, 2);\n return g;\n },\n draw: function(l, c, d, v, h) {\n e.arrowShapeImpl(this.name)(l, v.x, v.y, this.radius * c);\n },\n spacing: function(l) {\n return e.getArrowWidth(l.pstyle(\"width\").pfValue, l.pstyle(\"arrow-scale\").value) * this.radius;\n }\n }), s(\"tee\", {\n points: [-0.15, 0, -0.15, -0.1, 0.15, -0.1, 0.15, 0],\n spacing: function(l) {\n return 1;\n },\n gap: function(l) {\n return 1;\n }\n }), s(\"square\", {\n points: [-0.15, 0, 0.15, 0, 0.15, -0.3, -0.15, -0.3]\n }), s(\"diamond\", {\n points: [-0.15, -0.15, 0, -0.3, 0.15, -0.15, 0, 0],\n gap: function(l) {\n return l.pstyle(\"width\").pfValue * l.pstyle(\"arrow-scale\").value;\n }\n }), s(\"chevron\", {\n points: [0, 0, -0.15, -0.15, -0.1, -0.2, 0, -0.1, 0.1, -0.2, 0.15, -0.15],\n gap: function(l) {\n return 0.95 * l.pstyle(\"width\").pfValue * l.pstyle(\"arrow-scale\").value;\n }\n });\n};\nvar Da = {};\nDa.projectIntoViewport = function(t, e) {\n var r = this.cy, n = this.findContainerClientCoords(), a = n[0], i = n[1], o = n[4], s = r.pan(), u = r.zoom(), l = ((t - a) / o - s.x) / u, c = ((e - i) / o - s.y) / u;\n return [l, c];\n};\nDa.findContainerClientCoords = function() {\n if (this.containerBB)\n return this.containerBB;\n var t = this.container, e = t.getBoundingClientRect(), r = this.cy.window().getComputedStyle(t), n = function(g) {\n return parseFloat(r.getPropertyValue(g));\n }, a = {\n left: n(\"padding-left\"),\n right: n(\"padding-right\"),\n top: n(\"padding-top\"),\n bottom: n(\"padding-bottom\")\n }, i = {\n left: n(\"border-left-width\"),\n right: n(\"border-right-width\"),\n top: n(\"border-top-width\"),\n bottom: n(\"border-bottom-width\")\n }, o = t.clientWidth, s = t.clientHeight, u = a.left + a.right, l = a.top + a.bottom, c = i.left + i.right, d = e.width / (o + c), v = o - u, h = s - l, f = e.left + a.left + i.left, p = e.top + a.top + i.top;\n return this.containerBB = [f, p, v, h, d];\n};\nDa.invalidateContainerClientCoordsCache = function() {\n this.containerBB = null;\n};\nDa.findNearestElement = function(t, e, r, n) {\n return this.findNearestElements(t, e, r, n)[0];\n};\nDa.findNearestElements = function(t, e, r, n) {\n var a = this, i = this, o = i.getCachedZSortedEles(), s = [], u = i.cy.zoom(), l = i.cy.hasCompoundNodes(), c = (n ? 24 : 8) / u, d = (n ? 8 : 2) / u, v = (n ? 8 : 2) / u, h = 1 / 0, f, p;\n r && (o = o.interactive);\n function m(x, T) {\n if (x.isNode()) {\n if (p)\n return;\n p = x, s.push(x);\n }\n if (x.isEdge() && (T == null || T < h))\n if (f) {\n if (f.pstyle(\"z-compound-depth\").value === x.pstyle(\"z-compound-depth\").value && f.pstyle(\"z-compound-depth\").value === x.pstyle(\"z-compound-depth\").value) {\n for (var k = 0; k < s.length; k++)\n if (s[k].isEdge()) {\n s[k] = x, f = x, h = T ?? h;\n break;\n }\n }\n } else\n s.push(x), f = x, h = T ?? h;\n }\n function g(x) {\n var T = x.outerWidth() + 2 * d, k = x.outerHeight() + 2 * d, _ = T / 2, D = k / 2, O = x.position(), F = x.pstyle(\"corner-radius\").value === \"auto\" ? \"auto\" : x.pstyle(\"corner-radius\").pfValue, L = x._private.rscratch;\n if (O.x - _ <= t && t <= O.x + _ && O.y - D <= e && e <= O.y + D) {\n var B = i.nodeShapes[a.getNodeShape(x)];\n if (B.checkPoint(t, e, 0, T, k, O.x, O.y, F, L))\n return m(x, 0), !0;\n }\n }\n function y(x) {\n var T = x._private, k = T.rscratch, _ = x.pstyle(\"width\").pfValue, D = x.pstyle(\"arrow-scale\").value, O = _ / 2 + c, F = O * O, L = O * 2, A = T.source, R = T.target, B;\n if (k.edgeType === \"segments\" || k.edgeType === \"straight\" || k.edgeType === \"haystack\") {\n for (var I = k.allpts, M = 0; M + 3 < I.length; M += 2)\n if (X5(t, e, I[M], I[M + 1], I[M + 2], I[M + 3], L) && F > (B = t4(t, e, I[M], I[M + 1], I[M + 2], I[M + 3])))\n return m(x, B), !0;\n } else if (k.edgeType === \"bezier\" || k.edgeType === \"multibezier\" || k.edgeType === \"self\" || k.edgeType === \"compound\") {\n for (var I = k.allpts, M = 0; M + 5 < k.allpts.length; M += 4)\n if (j5(t, e, I[M], I[M + 1], I[M + 2], I[M + 3], I[M + 4], I[M + 5], L) && F > (B = e4(t, e, I[M], I[M + 1], I[M + 2], I[M + 3], I[M + 4], I[M + 5])))\n return m(x, B), !0;\n }\n for (var A = A || T.source, R = R || T.target, K = a.getArrowWidth(_, D), H = [{\n name: \"source\",\n x: k.arrowStartX,\n y: k.arrowStartY,\n angle: k.srcArrowAngle\n }, {\n name: \"target\",\n x: k.arrowEndX,\n y: k.arrowEndY,\n angle: k.tgtArrowAngle\n }, {\n name: \"mid-source\",\n x: k.midX,\n y: k.midY,\n angle: k.midsrcArrowAngle\n }, {\n name: \"mid-target\",\n x: k.midX,\n y: k.midY,\n angle: k.midtgtArrowAngle\n }], M = 0; M < H.length; M++) {\n var q = H[M], ee = i.arrowShapes[x.pstyle(q.name + \"-arrow-shape\").value], se = x.pstyle(\"width\").pfValue;\n if (ee.roughCollide(t, e, K, q.angle, {\n x: q.x,\n y: q.y\n }, se, c) && ee.collide(t, e, K, q.angle, {\n x: q.x,\n y: q.y\n }, se, c))\n return m(x), !0;\n }\n l && s.length > 0 && (g(A), g(R));\n }\n function b(x, T, k) {\n return Nr(x, T, k);\n }\n function w(x, T) {\n var k = x._private, _ = v, D;\n T ? D = T + \"-\" : D = \"\", x.boundingBox();\n var O = k.labelBounds[T || \"main\"], F = x.pstyle(D + \"label\").value, L = x.pstyle(\"text-events\").strValue === \"yes\";\n if (!(!L || !F)) {\n var B = b(k.rscratch, \"labelX\", T), I = b(k.rscratch, \"labelY\", T), M = b(k.rscratch, \"labelAngle\", T), A = x.pstyle(D + \"text-margin-x\").pfValue, R = x.pstyle(D + \"text-margin-y\").pfValue, K = O.x1 - _ - A, H = O.x2 + _ - A, q = O.y1 - _ - R, ee = O.y2 + _ - R;\n if (M) {\n var se = Math.cos(M), oe = Math.sin(M), ne = function(Ee, fe) {\n return Ee = Ee - B, fe = fe - I, {\n x: Ee * se - fe * oe + B,\n y: Ee * oe + fe * se + I\n };\n }, ue = ne(K, q), te = ne(K, ee), $ = ne(H, q), G = ne(H, ee), Q = [\n // with the margin added after the rotation is applied\n ue.x + A,\n ue.y + R,\n $.x + A,\n $.y + R,\n G.x + A,\n G.y + R,\n te.x + A,\n te.y + R\n ];\n if (dr(t, e, Q))\n return m(x), !0;\n } else if (oi(O, t, e))\n return m(x), !0;\n }\n }\n for (var C = o.length - 1; C >= 0; C--) {\n var E = o[C];\n E.isNode() ? g(E) || w(E) : y(E) || w(E) || w(E, \"source\") || w(E, \"target\");\n }\n return s;\n};\nDa.getAllInBox = function(t, e, r, n) {\n var a = this.getCachedZSortedEles().interactive, i = [], o = Math.min(t, r), s = Math.max(t, r), u = Math.min(e, n), l = Math.max(e, n);\n t = o, r = s, e = u, n = l;\n for (var c = pr({\n x1: t,\n y1: e,\n x2: r,\n y2: n\n }), d = 0; d < a.length; d++) {\n var v = a[d];\n if (v.isNode()) {\n var h = v, f = h.boundingBox({\n includeNodes: !0,\n includeEdges: !1,\n includeLabels: !1\n });\n vc(c, f) && !hp(f, c) && i.push(h);\n } else {\n var p = v, m = p._private, g = m.rscratch;\n if (g.startX != null && g.startY != null && !oi(c, g.startX, g.startY) || g.endX != null && g.endY != null && !oi(c, g.endX, g.endY))\n continue;\n if (g.edgeType === \"bezier\" || g.edgeType === \"multibezier\" || g.edgeType === \"self\" || g.edgeType === \"compound\" || g.edgeType === \"segments\" || g.edgeType === \"haystack\") {\n for (var y = m.rstyle.bezierPts || m.rstyle.linePts || m.rstyle.haystackPts, b = !0, w = 0; w < y.length; w++)\n if (!Z5(c, y[w])) {\n b = !1;\n break;\n }\n b && i.push(p);\n } else (g.edgeType === \"haystack\" || g.edgeType === \"straight\") && i.push(p);\n }\n }\n return i;\n};\nvar Ns = {};\nNs.calculateArrowAngles = function(t) {\n var e = t._private.rscratch, r = e.edgeType === \"haystack\", n = e.edgeType === \"bezier\", a = e.edgeType === \"multibezier\", i = e.edgeType === \"segments\", o = e.edgeType === \"compound\", s = e.edgeType === \"self\", u, l, c, d, v, h, g, y;\n if (r ? (c = e.haystackPts[0], d = e.haystackPts[1], v = e.haystackPts[2], h = e.haystackPts[3]) : (c = e.arrowStartX, d = e.arrowStartY, v = e.arrowEndX, h = e.arrowEndY), g = e.midX, y = e.midY, i)\n u = c - e.segpts[0], l = d - e.segpts[1];\n else if (a || o || s || n) {\n var f = e.allpts, p = Nt(f[0], f[2], f[4], 0.1), m = Nt(f[1], f[3], f[5], 0.1);\n u = c - p, l = d - m;\n } else\n u = c - g, l = d - y;\n e.srcArrowAngle = Wo(u, l);\n var g = e.midX, y = e.midY;\n if (r && (g = (c + v) / 2, y = (d + h) / 2), u = v - c, l = h - d, i) {\n var f = e.allpts;\n if (f.length / 2 % 2 === 0) {\n var b = f.length / 2, w = b - 2;\n u = f[b] - f[w], l = f[b + 1] - f[w + 1];\n } else if (e.isRound)\n u = e.midVector[1], l = -e.midVector[0];\n else {\n var b = f.length / 2 - 1, w = b - 2;\n u = f[b] - f[w], l = f[b + 1] - f[w + 1];\n }\n } else if (a || o || s) {\n var f = e.allpts, C = e.ctrlpts, E, x, T, k;\n if (C.length / 2 % 2 === 0) {\n var _ = f.length / 2 - 1, D = _ + 2, O = D + 2;\n E = Nt(f[_], f[D], f[O], 0), x = Nt(f[_ + 1], f[D + 1], f[O + 1], 0), T = Nt(f[_], f[D], f[O], 1e-4), k = Nt(f[_ + 1], f[D + 1], f[O + 1], 1e-4);\n } else {\n var D = f.length / 2 - 1, _ = D - 2, O = D + 2;\n E = Nt(f[_], f[D], f[O], 0.4999), x = Nt(f[_ + 1], f[D + 1], f[O + 1], 0.4999), T = Nt(f[_], f[D], f[O], 0.5), k = Nt(f[_ + 1], f[D + 1], f[O + 1], 0.5);\n }\n u = T - E, l = k - x;\n }\n if (e.midtgtArrowAngle = Wo(u, l), e.midDispX = u, e.midDispY = l, u *= -1, l *= -1, i) {\n var f = e.allpts;\n if (f.length / 2 % 2 !== 0) {\n if (!e.isRound) {\n var b = f.length / 2 - 1, F = b + 2;\n u = -(f[F] - f[b]), l = -(f[F + 1] - f[b + 1]);\n }\n }\n }\n if (e.midsrcArrowAngle = Wo(u, l), i)\n u = v - e.segpts[e.segpts.length - 2], l = h - e.segpts[e.segpts.length - 1];\n else if (a || o || s || n) {\n var f = e.allpts, L = f.length, p = Nt(f[L - 6], f[L - 4], f[L - 2], 0.9), m = Nt(f[L - 5], f[L - 3], f[L - 1], 0.9);\n u = v - p, l = h - m;\n } else\n u = v - g, l = h - y;\n e.tgtArrowAngle = Wo(u, l);\n};\nNs.getArrowWidth = Ns.getArrowHeight = function(t, e) {\n var r = this.arrowWidthCache = this.arrowWidthCache || {}, n = r[t + \", \" + e];\n return n || (n = Math.max(Math.pow(t * 13.37, 0.9), 29) * e, r[t + \", \" + e] = n, n);\n};\nvar pu, gu, Yr = {}, Cr = {}, Jf, ev, oa, gs, un, ea, na, Wr, Na, rs, og, sg, mu, yu, tv, rv = function(e, r, n) {\n n.x = r.x - e.x, n.y = r.y - e.y, n.len = Math.sqrt(n.x * n.x + n.y * n.y), n.nx = n.x / n.len, n.ny = n.y / n.len, n.ang = Math.atan2(n.ny, n.nx);\n}, BP = function(e, r) {\n r.x = e.x * -1, r.y = e.y * -1, r.nx = e.nx * -1, r.ny = e.ny * -1, r.ang = e.ang > 0 ? -(Math.PI - e.ang) : Math.PI + e.ang;\n}, NP = function(e, r, n, a, i) {\n if (e !== tv ? rv(r, e, Yr) : BP(Cr, Yr), rv(r, n, Cr), Jf = Yr.nx * Cr.ny - Yr.ny * Cr.nx, ev = Yr.nx * Cr.nx - Yr.ny * -Cr.ny, un = Math.asin(Math.max(-1, Math.min(1, Jf))), Math.abs(un) < 1e-6) {\n pu = r.x, gu = r.y, na = Na = 0;\n return;\n }\n oa = 1, gs = !1, ev < 0 ? un < 0 ? un = Math.PI + un : (un = Math.PI - un, oa = -1, gs = !0) : un > 0 && (oa = -1, gs = !0), r.radius !== void 0 ? Na = r.radius : Na = a, ea = un / 2, rs = Math.min(Yr.len / 2, Cr.len / 2), i ? (Wr = Math.abs(Math.cos(ea) * Na / Math.sin(ea)), Wr > rs ? (Wr = rs, na = Math.abs(Wr * Math.sin(ea) / Math.cos(ea))) : na = Na) : (Wr = Math.min(rs, Na), na = Math.abs(Wr * Math.sin(ea) / Math.cos(ea))), mu = r.x + Cr.nx * Wr, yu = r.y + Cr.ny * Wr, pu = mu - Cr.ny * na * oa, gu = yu + Cr.nx * na * oa, og = r.x + Yr.nx * Wr, sg = r.y + Yr.ny * Wr, tv = r;\n};\nfunction lg(t, e) {\n e.radius === 0 ? t.lineTo(e.cx, e.cy) : t.arc(e.cx, e.cy, e.radius, e.startAngle, e.endAngle, e.counterClockwise);\n}\nfunction Tc(t, e, r, n) {\n var a = arguments.length > 4 && arguments[4] !== void 0 ? arguments[4] : !0;\n return n === 0 || e.radius === 0 ? {\n cx: e.x,\n cy: e.y,\n radius: 0,\n startX: e.x,\n startY: e.y,\n stopX: e.x,\n stopY: e.y,\n startAngle: void 0,\n endAngle: void 0,\n counterClockwise: void 0\n } : (NP(t, e, r, n, a), {\n cx: pu,\n cy: gu,\n radius: na,\n startX: og,\n startY: sg,\n stopX: mu,\n stopY: yu,\n startAngle: Yr.ang + Math.PI / 2 * oa,\n endAngle: Cr.ang - Math.PI / 2 * oa,\n counterClockwise: gs\n });\n}\nvar or = {};\nor.findMidptPtsEtc = function(t, e) {\n var r = e.posPts, n = e.intersectionPts, a = e.vectorNormInverse, i, o = t.pstyle(\"source-endpoint\"), s = t.pstyle(\"target-endpoint\"), u = o.units != null && s.units != null, l = function(C, E, x, T) {\n var k = T - E, _ = x - C, D = Math.sqrt(_ * _ + k * k);\n return {\n x: -k / D,\n y: _ / D\n };\n }, c = t.pstyle(\"edge-distances\").value;\n switch (c) {\n case \"node-position\":\n i = r;\n break;\n case \"intersection\":\n i = n;\n break;\n case \"endpoints\": {\n if (u) {\n var d = this.manualEndptToPx(t.source()[0], o), v = Mr(d, 2), h = v[0], f = v[1], p = this.manualEndptToPx(t.target()[0], s), m = Mr(p, 2), g = m[0], y = m[1], b = {\n x1: h,\n y1: f,\n x2: g,\n y2: y\n };\n a = l(h, f, g, y), i = b;\n } else\n tt(\"Edge \".concat(t.id(), \" has edge-distances:endpoints specified without manual endpoints specified via source-endpoint and target-endpoint. Falling back on edge-distances:intersection (default).\")), i = n;\n break;\n }\n }\n return {\n midptPts: i,\n vectorNormInverse: a\n };\n};\nor.findHaystackPoints = function(t) {\n for (var e = 0; e < t.length; e++) {\n var r = t[e], n = r._private, a = n.rscratch;\n if (!a.haystack) {\n var i = Math.random() * 2 * Math.PI;\n a.source = {\n x: Math.cos(i),\n y: Math.sin(i)\n }, i = Math.random() * 2 * Math.PI, a.target = {\n x: Math.cos(i),\n y: Math.sin(i)\n };\n }\n var o = n.source, s = n.target, u = o.position(), l = s.position(), c = o.width(), d = s.width(), v = o.height(), h = s.height(), f = r.pstyle(\"haystack-radius\").value, p = f / 2;\n a.haystackPts = a.allpts = [a.source.x * c * p + u.x, a.source.y * v * p + u.y, a.target.x * d * p + l.x, a.target.y * h * p + l.y], a.midX = (a.allpts[0] + a.allpts[2]) / 2, a.midY = (a.allpts[1] + a.allpts[3]) / 2, a.edgeType = \"haystack\", a.haystack = !0, this.storeEdgeProjections(r), this.calculateArrowAngles(r), this.recalculateEdgeLabelProjections(r), this.calculateLabelAngles(r);\n }\n};\nor.findSegmentsPoints = function(t, e) {\n var r = t._private.rscratch, n = t.pstyle(\"segment-weights\"), a = t.pstyle(\"segment-distances\"), i = t.pstyle(\"segment-radii\"), o = t.pstyle(\"radius-type\"), s = Math.min(n.pfValue.length, a.pfValue.length), u = i.pfValue[i.pfValue.length - 1], l = o.pfValue[o.pfValue.length - 1];\n r.edgeType = \"segments\", r.segpts = [], r.radii = [], r.isArcRadius = [];\n for (var c = 0; c < s; c++) {\n var d = n.pfValue[c], v = a.pfValue[c], h = 1 - d, f = d, p = this.findMidptPtsEtc(t, e), m = p.midptPts, g = p.vectorNormInverse, y = {\n x: m.x1 * h + m.x2 * f,\n y: m.y1 * h + m.y2 * f\n };\n r.segpts.push(y.x + g.x * v, y.y + g.y * v), r.radii.push(i.pfValue[c] !== void 0 ? i.pfValue[c] : u), r.isArcRadius.push((o.pfValue[c] !== void 0 ? o.pfValue[c] : l) === \"arc-radius\");\n }\n};\nor.findLoopPoints = function(t, e, r, n) {\n var a = t._private.rscratch, i = e.dirCounts, o = e.srcPos, s = t.pstyle(\"control-point-distances\"), u = s ? s.pfValue[0] : void 0, l = t.pstyle(\"loop-direction\").pfValue, c = t.pstyle(\"loop-sweep\").pfValue, d = t.pstyle(\"control-point-step-size\").pfValue;\n a.edgeType = \"self\";\n var v = r, h = d;\n n && (v = 0, h = u);\n var f = l - Math.PI / 2, p = f - c / 2, m = f + c / 2, g = l + \"_\" + c;\n v = i[g] === void 0 ? i[g] = 0 : ++i[g], a.ctrlpts = [o.x + Math.cos(p) * 1.4 * h * (v / 3 + 1), o.y + Math.sin(p) * 1.4 * h * (v / 3 + 1), o.x + Math.cos(m) * 1.4 * h * (v / 3 + 1), o.y + Math.sin(m) * 1.4 * h * (v / 3 + 1)];\n};\nor.findCompoundLoopPoints = function(t, e, r, n) {\n var a = t._private.rscratch;\n a.edgeType = \"compound\";\n var i = e.srcPos, o = e.tgtPos, s = e.srcW, u = e.srcH, l = e.tgtW, c = e.tgtH, d = t.pstyle(\"control-point-step-size\").pfValue, v = t.pstyle(\"control-point-distances\"), h = v ? v.pfValue[0] : void 0, f = r, p = d;\n n && (f = 0, p = h);\n var m = 50, g = {\n x: i.x - s / 2,\n y: i.y - u / 2\n }, y = {\n x: o.x - l / 2,\n y: o.y - c / 2\n }, b = {\n x: Math.min(g.x, y.x),\n y: Math.min(g.y, y.y)\n }, w = 0.5, C = Math.max(w, Math.log(s * 0.01)), E = Math.max(w, Math.log(l * 0.01));\n a.ctrlpts = [b.x, b.y - (1 + Math.pow(m, 1.12) / 100) * p * (f / 3 + 1) * C, b.x - (1 + Math.pow(m, 1.12) / 100) * p * (f / 3 + 1) * E, b.y];\n};\nor.findStraightEdgePoints = function(t) {\n t._private.rscratch.edgeType = \"straight\";\n};\nor.findBezierPoints = function(t, e, r, n, a) {\n var i = t._private.rscratch, o = t.pstyle(\"control-point-step-size\").pfValue, s = t.pstyle(\"control-point-distances\"), u = t.pstyle(\"control-point-weights\"), l = s && u ? Math.min(s.value.length, u.value.length) : 1, c = s ? s.pfValue[0] : void 0, d = u.value[0], v = n;\n i.edgeType = v ? \"multibezier\" : \"bezier\", i.ctrlpts = [];\n for (var h = 0; h < l; h++) {\n var f = (0.5 - e.eles.length / 2 + r) * o * (a ? -1 : 1), p = void 0, m = fp(f);\n v && (c = s ? s.pfValue[h] : o, d = u.value[h]), n ? p = c : p = c !== void 0 ? m * c : void 0;\n var g = p !== void 0 ? p : f, y = 1 - d, b = d, w = this.findMidptPtsEtc(t, e), C = w.midptPts, E = w.vectorNormInverse, x = {\n x: C.x1 * y + C.x2 * b,\n y: C.y1 * y + C.y2 * b\n };\n i.ctrlpts.push(x.x + E.x * g, x.y + E.y * g);\n }\n};\nor.findTaxiPoints = function(t, e) {\n var r = t._private.rscratch;\n r.edgeType = \"segments\";\n var n = \"vertical\", a = \"horizontal\", i = \"leftward\", o = \"rightward\", s = \"downward\", u = \"upward\", l = \"auto\", c = e.posPts, d = e.srcW, v = e.srcH, h = e.tgtW, f = e.tgtH, p = t.pstyle(\"edge-distances\").value, m = p !== \"node-position\", g = t.pstyle(\"taxi-direction\").value, y = g, b = t.pstyle(\"taxi-turn\"), w = b.units === \"%\", C = b.pfValue, E = C < 0, x = t.pstyle(\"taxi-turn-min-distance\").pfValue, T = m ? (d + h) / 2 : 0, k = m ? (v + f) / 2 : 0, _ = c.x2 - c.x1, D = c.y2 - c.y1, O = function(Ae, Me) {\n return Ae > 0 ? Math.max(Ae - Me, 0) : Math.min(Ae + Me, 0);\n }, F = O(_, T), L = O(D, k), B = !1;\n y === l ? g = Math.abs(F) > Math.abs(L) ? a : n : y === u || y === s ? (g = n, B = !0) : (y === i || y === o) && (g = a, B = !0);\n var I = g === n, M = I ? L : F, A = I ? D : _, R = fp(A), K = !1;\n !(B && (w || E)) && (y === s && A < 0 || y === u && A > 0 || y === i && A > 0 || y === o && A < 0) && (R *= -1, M = R * Math.abs(M), K = !0);\n var H;\n if (w) {\n var q = C < 0 ? 1 + C : C;\n H = q * M;\n } else {\n var ee = C < 0 ? M : 0;\n H = ee + C * R;\n }\n var se = function(Ae) {\n return Math.abs(Ae) < x || Math.abs(Ae) >= Math.abs(M);\n }, oe = se(H), ne = se(Math.abs(M) - Math.abs(H)), ue = oe || ne;\n if (ue && !K)\n if (I) {\n var te = Math.abs(A) <= v / 2, $ = Math.abs(_) <= h / 2;\n if (te) {\n var G = (c.x1 + c.x2) / 2, Q = c.y1, ge = c.y2;\n r.segpts = [G, Q, G, ge];\n } else if ($) {\n var Ee = (c.y1 + c.y2) / 2, fe = c.x1, me = c.x2;\n r.segpts = [fe, Ee, me, Ee];\n } else\n r.segpts = [c.x1, c.y2];\n } else {\n var xe = Math.abs(A) <= d / 2, ke = Math.abs(D) <= f / 2;\n if (xe) {\n var Ce = (c.y1 + c.y2) / 2, De = c.x1, qe = c.x2;\n r.segpts = [De, Ce, qe, Ce];\n } else if (ke) {\n var Ke = (c.x1 + c.x2) / 2, Be = c.y1, Ge = c.y2;\n r.segpts = [Ke, Be, Ke, Ge];\n } else\n r.segpts = [c.x2, c.y1];\n }\n else if (I) {\n var le = c.y1 + H + (m ? v / 2 * R : 0), S = c.x1, z = c.x2;\n r.segpts = [S, le, z, le];\n } else {\n var ae = c.x1 + H + (m ? d / 2 * R : 0), j = c.y1, Y = c.y2;\n r.segpts = [ae, j, ae, Y];\n }\n if (r.isRound) {\n var pe = t.pstyle(\"taxi-radius\").value, re = t.pstyle(\"radius-type\").value[0] === \"arc-radius\";\n r.radii = new Array(r.segpts.length / 2).fill(pe), r.isArcRadius = new Array(r.segpts.length / 2).fill(re);\n }\n};\nor.tryToCorrectInvalidPoints = function(t, e) {\n var r = t._private.rscratch;\n if (r.edgeType === \"bezier\") {\n var n = e.srcPos, a = e.tgtPos, i = e.srcW, o = e.srcH, s = e.tgtW, u = e.tgtH, l = e.srcShape, c = e.tgtShape, d = e.srcCornerRadius, v = e.tgtCornerRadius, h = e.srcRs, f = e.tgtRs, p = !be(r.startX) || !be(r.startY), m = !be(r.arrowStartX) || !be(r.arrowStartY), g = !be(r.endX) || !be(r.endY), y = !be(r.arrowEndX) || !be(r.arrowEndY), b = 3, w = this.getArrowWidth(t.pstyle(\"width\").pfValue, t.pstyle(\"arrow-scale\").value) * this.arrowShapeWidth, C = b * w, E = ya({\n x: r.ctrlpts[0],\n y: r.ctrlpts[1]\n }, {\n x: r.startX,\n y: r.startY\n }), x = E < C, T = ya({\n x: r.ctrlpts[0],\n y: r.ctrlpts[1]\n }, {\n x: r.endX,\n y: r.endY\n }), k = T < C, _ = !1;\n if (p || m || x) {\n _ = !0;\n var D = {\n // delta\n x: r.ctrlpts[0] - n.x,\n y: r.ctrlpts[1] - n.y\n }, O = Math.sqrt(D.x * D.x + D.y * D.y), F = {\n // normalised delta\n x: D.x / O,\n y: D.y / O\n }, L = Math.max(i, o), B = {\n // *2 radius guarantees outside shape\n x: r.ctrlpts[0] + F.x * 2 * L,\n y: r.ctrlpts[1] + F.y * 2 * L\n }, I = l.intersectLine(n.x, n.y, i, o, B.x, B.y, 0, d, h);\n x ? (r.ctrlpts[0] = r.ctrlpts[0] + F.x * (C - E), r.ctrlpts[1] = r.ctrlpts[1] + F.y * (C - E)) : (r.ctrlpts[0] = I[0] + F.x * C, r.ctrlpts[1] = I[1] + F.y * C);\n }\n if (g || y || k) {\n _ = !0;\n var M = {\n // delta\n x: r.ctrlpts[0] - a.x,\n y: r.ctrlpts[1] - a.y\n }, A = Math.sqrt(M.x * M.x + M.y * M.y), R = {\n // normalised delta\n x: M.x / A,\n y: M.y / A\n }, K = Math.max(i, o), H = {\n // *2 radius guarantees outside shape\n x: r.ctrlpts[0] + R.x * 2 * K,\n y: r.ctrlpts[1] + R.y * 2 * K\n }, q = c.intersectLine(a.x, a.y, s, u, H.x, H.y, 0, v, f);\n k ? (r.ctrlpts[0] = r.ctrlpts[0] + R.x * (C - T), r.ctrlpts[1] = r.ctrlpts[1] + R.y * (C - T)) : (r.ctrlpts[0] = q[0] + R.x * C, r.ctrlpts[1] = q[1] + R.y * C);\n }\n _ && this.findEndpoints(t);\n }\n};\nor.storeAllpts = function(t) {\n var e = t._private.rscratch;\n if (e.edgeType === \"multibezier\" || e.edgeType === \"bezier\" || e.edgeType === \"self\" || e.edgeType === \"compound\") {\n e.allpts = [], e.allpts.push(e.startX, e.startY);\n for (var r = 0; r + 1 < e.ctrlpts.length; r += 2)\n e.allpts.push(e.ctrlpts[r], e.ctrlpts[r + 1]), r + 3 < e.ctrlpts.length && e.allpts.push((e.ctrlpts[r] + e.ctrlpts[r + 2]) / 2, (e.ctrlpts[r + 1] + e.ctrlpts[r + 3]) / 2);\n e.allpts.push(e.endX, e.endY);\n var n, a;\n e.ctrlpts.length / 2 % 2 === 0 ? (n = e.allpts.length / 2 - 1, e.midX = e.allpts[n], e.midY = e.allpts[n + 1]) : (n = e.allpts.length / 2 - 3, a = 0.5, e.midX = Nt(e.allpts[n], e.allpts[n + 2], e.allpts[n + 4], a), e.midY = Nt(e.allpts[n + 1], e.allpts[n + 3], e.allpts[n + 5], a));\n } else if (e.edgeType === \"straight\")\n e.allpts = [e.startX, e.startY, e.endX, e.endY], e.midX = (e.startX + e.endX + e.arrowStartX + e.arrowEndX) / 4, e.midY = (e.startY + e.endY + e.arrowStartY + e.arrowEndY) / 4;\n else if (e.edgeType === \"segments\") {\n if (e.allpts = [], e.allpts.push(e.startX, e.startY), e.allpts.push.apply(e.allpts, e.segpts), e.allpts.push(e.endX, e.endY), e.isRound) {\n e.roundCorners = [];\n for (var i = 2; i + 3 < e.allpts.length; i += 2) {\n var o = e.radii[i / 2 - 1], s = e.isArcRadius[i / 2 - 1];\n e.roundCorners.push(Tc({\n x: e.allpts[i - 2],\n y: e.allpts[i - 1]\n }, {\n x: e.allpts[i],\n y: e.allpts[i + 1],\n radius: o\n }, {\n x: e.allpts[i + 2],\n y: e.allpts[i + 3]\n }, o, s));\n }\n }\n if (e.segpts.length % 4 === 0) {\n var u = e.segpts.length / 2, l = u - 2;\n e.midX = (e.segpts[l] + e.segpts[u]) / 2, e.midY = (e.segpts[l + 1] + e.segpts[u + 1]) / 2;\n } else {\n var c = e.segpts.length / 2 - 1;\n if (!e.isRound)\n e.midX = e.segpts[c], e.midY = e.segpts[c + 1];\n else {\n var d = {\n x: e.segpts[c],\n y: e.segpts[c + 1]\n }, v = e.roundCorners[c / 2], h = [d.x - v.cx, d.y - v.cy], f = v.radius / Math.sqrt(Math.pow(h[0], 2) + Math.pow(h[1], 2));\n h = h.map(function(p) {\n return p * f;\n }), e.midX = v.cx + h[0], e.midY = v.cy + h[1], e.midVector = h;\n }\n }\n }\n};\nor.checkForInvalidEdgeWarning = function(t) {\n var e = t[0]._private.rscratch;\n e.nodesOverlap || be(e.startX) && be(e.startY) && be(e.endX) && be(e.endY) ? e.loggedErr = !1 : e.loggedErr || (e.loggedErr = !0, tt(\"Edge `\" + t.id() + \"` has invalid endpoints and so it is impossible to draw. Adjust your edge style (e.g. control points) accordingly or use an alternative edge type. This is expected behaviour when the source node and the target node overlap.\"));\n};\nor.findEdgeControlPoints = function(t) {\n var e = this;\n if (!(!t || t.length === 0)) {\n for (var r = this, n = r.cy, a = n.hasCompoundNodes(), i = {\n map: new Xr(),\n get: function(x) {\n var T = this.map.get(x[0]);\n return T != null ? T.get(x[1]) : null;\n },\n set: function(x, T) {\n var k = this.map.get(x[0]);\n k == null && (k = new Xr(), this.map.set(x[0], k)), k.set(x[1], T);\n }\n }, o = [], s = [], u = 0; u < t.length; u++) {\n var l = t[u], c = l._private, d = l.pstyle(\"curve-style\").value;\n if (!(l.removed() || !l.takesUpSpace())) {\n if (d === \"haystack\") {\n s.push(l);\n continue;\n }\n var v = d === \"unbundled-bezier\" || d.endsWith(\"segments\") || d === \"straight\" || d === \"straight-triangle\" || d.endsWith(\"taxi\"), h = d === \"unbundled-bezier\" || d === \"bezier\", f = c.source, p = c.target, m = f.poolIndex(), g = p.poolIndex(), y = [m, g].sort(), b = i.get(y);\n b == null && (b = {\n eles: []\n }, i.set(y, b), o.push(y)), b.eles.push(l), v && (b.hasUnbundled = !0), h && (b.hasBezier = !0);\n }\n }\n for (var w = function(x) {\n var T = o[x], k = i.get(T), _ = void 0;\n if (!k.hasUnbundled) {\n var D = k.eles[0].parallelEdges().filter(function(ae) {\n return ae.isBundledBezier();\n });\n dc(k.eles), D.forEach(function(ae) {\n return k.eles.push(ae);\n }), k.eles.sort(function(ae, j) {\n return ae.poolIndex() - j.poolIndex();\n });\n }\n var O = k.eles[0], F = O.source(), L = O.target();\n if (F.poolIndex() > L.poolIndex()) {\n var B = F;\n F = L, L = B;\n }\n var I = k.srcPos = F.position(), M = k.tgtPos = L.position(), A = k.srcW = F.outerWidth(), R = k.srcH = F.outerHeight(), K = k.tgtW = L.outerWidth(), H = k.tgtH = L.outerHeight(), q = k.srcShape = r.nodeShapes[e.getNodeShape(F)], ee = k.tgtShape = r.nodeShapes[e.getNodeShape(L)], se = k.srcCornerRadius = F.pstyle(\"corner-radius\").value === \"auto\" ? \"auto\" : F.pstyle(\"corner-radius\").pfValue, oe = k.tgtCornerRadius = L.pstyle(\"corner-radius\").value === \"auto\" ? \"auto\" : L.pstyle(\"corner-radius\").pfValue, ne = k.tgtRs = L._private.rscratch, ue = k.srcRs = F._private.rscratch;\n k.dirCounts = {\n north: 0,\n west: 0,\n south: 0,\n east: 0,\n northwest: 0,\n southwest: 0,\n northeast: 0,\n southeast: 0\n };\n for (var te = 0; te < k.eles.length; te++) {\n var $ = k.eles[te], G = $[0]._private.rscratch, Q = $.pstyle(\"curve-style\").value, ge = Q === \"unbundled-bezier\" || Q.endsWith(\"segments\") || Q.endsWith(\"taxi\"), Ee = !F.same($.source());\n if (!k.calculatedIntersection && F !== L && (k.hasBezier || k.hasUnbundled)) {\n k.calculatedIntersection = !0;\n var fe = q.intersectLine(I.x, I.y, A, R, M.x, M.y, 0, se, ue), me = k.srcIntn = fe, xe = ee.intersectLine(M.x, M.y, K, H, I.x, I.y, 0, oe, ne), ke = k.tgtIntn = xe, Ce = k.intersectionPts = {\n x1: fe[0],\n x2: xe[0],\n y1: fe[1],\n y2: xe[1]\n }, De = k.posPts = {\n x1: I.x,\n x2: M.x,\n y1: I.y,\n y2: M.y\n }, qe = xe[1] - fe[1], Ke = xe[0] - fe[0], Be = Math.sqrt(Ke * Ke + qe * qe), Ge = k.vector = {\n x: Ke,\n y: qe\n }, le = k.vectorNorm = {\n x: Ge.x / Be,\n y: Ge.y / Be\n }, S = {\n x: -le.y,\n y: le.x\n };\n k.nodesOverlap = !be(Be) || ee.checkPoint(fe[0], fe[1], 0, K, H, M.x, M.y, oe, ne) || q.checkPoint(xe[0], xe[1], 0, A, R, I.x, I.y, se, ue), k.vectorNormInverse = S, _ = {\n nodesOverlap: k.nodesOverlap,\n dirCounts: k.dirCounts,\n calculatedIntersection: !0,\n hasBezier: k.hasBezier,\n hasUnbundled: k.hasUnbundled,\n eles: k.eles,\n srcPos: M,\n tgtPos: I,\n srcW: K,\n srcH: H,\n tgtW: A,\n tgtH: R,\n srcIntn: ke,\n tgtIntn: me,\n srcShape: ee,\n tgtShape: q,\n posPts: {\n x1: De.x2,\n y1: De.y2,\n x2: De.x1,\n y2: De.y1\n },\n intersectionPts: {\n x1: Ce.x2,\n y1: Ce.y2,\n x2: Ce.x1,\n y2: Ce.y1\n },\n vector: {\n x: -Ge.x,\n y: -Ge.y\n },\n vectorNorm: {\n x: -le.x,\n y: -le.y\n },\n vectorNormInverse: {\n x: -S.x,\n y: -S.y\n }\n };\n }\n var z = Ee ? _ : k;\n G.nodesOverlap = z.nodesOverlap, G.srcIntn = z.srcIntn, G.tgtIntn = z.tgtIntn, G.isRound = Q.startsWith(\"round\"), a && (F.isParent() || F.isChild() || L.isParent() || L.isChild()) && (F.parents().anySame(L) || L.parents().anySame(F) || F.same(L) && F.isParent()) ? e.findCompoundLoopPoints($, z, te, ge) : F === L ? e.findLoopPoints($, z, te, ge) : Q.endsWith(\"segments\") ? e.findSegmentsPoints($, z) : Q.endsWith(\"taxi\") ? e.findTaxiPoints($, z) : Q === \"straight\" || !ge && k.eles.length % 2 === 1 && te === Math.floor(k.eles.length / 2) ? e.findStraightEdgePoints($) : e.findBezierPoints($, z, te, ge, Ee), e.findEndpoints($), e.tryToCorrectInvalidPoints($, z), e.checkForInvalidEdgeWarning($), e.storeAllpts($), e.storeEdgeProjections($), e.calculateArrowAngles($), e.recalculateEdgeLabelProjections($), e.calculateLabelAngles($);\n }\n }, C = 0; C < o.length; C++)\n w(C);\n this.findHaystackPoints(s);\n }\n};\nfunction ug(t) {\n var e = [];\n if (t != null) {\n for (var r = 0; r < t.length; r += 2) {\n var n = t[r], a = t[r + 1];\n e.push({\n x: n,\n y: a\n });\n }\n return e;\n }\n}\nor.getSegmentPoints = function(t) {\n var e = t[0]._private.rscratch, r = e.edgeType;\n if (r === \"segments\")\n return this.recalculateRenderedStyle(t), ug(e.segpts);\n};\nor.getControlPoints = function(t) {\n var e = t[0]._private.rscratch, r = e.edgeType;\n if (r === \"bezier\" || r === \"multibezier\" || r === \"self\" || r === \"compound\")\n return this.recalculateRenderedStyle(t), ug(e.ctrlpts);\n};\nor.getEdgeMidpoint = function(t) {\n var e = t[0]._private.rscratch;\n return this.recalculateRenderedStyle(t), {\n x: e.midX,\n y: e.midY\n };\n};\nvar Fo = {};\nFo.manualEndptToPx = function(t, e) {\n var r = this, n = t.position(), a = t.outerWidth(), i = t.outerHeight(), o = t._private.rscratch;\n if (e.value.length === 2) {\n var s = [e.pfValue[0], e.pfValue[1]];\n return e.units[0] === \"%\" && (s[0] = s[0] * a), e.units[1] === \"%\" && (s[1] = s[1] * i), s[0] += n.x, s[1] += n.y, s;\n } else {\n var u = e.pfValue[0];\n u = -Math.PI / 2 + u;\n var l = 2 * Math.max(a, i), c = [n.x + Math.cos(u) * l, n.y + Math.sin(u) * l];\n return r.nodeShapes[this.getNodeShape(t)].intersectLine(n.x, n.y, a, i, c[0], c[1], 0, t.pstyle(\"corner-radius\").value === \"auto\" ? \"auto\" : t.pstyle(\"corner-radius\").pfValue, o);\n }\n};\nFo.findEndpoints = function(t) {\n var e = this, r, n = t.source()[0], a = t.target()[0], i = n.position(), o = a.position(), s = t.pstyle(\"target-arrow-shape\").value, u = t.pstyle(\"source-arrow-shape\").value, l = t.pstyle(\"target-distance-from-node\").pfValue, c = t.pstyle(\"source-distance-from-node\").pfValue, d = n._private.rscratch, v = a._private.rscratch, h = t.pstyle(\"curve-style\").value, f = t._private.rscratch, p = f.edgeType, m = h === \"taxi\", g = p === \"self\" || p === \"compound\", y = p === \"bezier\" || p === \"multibezier\" || g, b = p !== \"bezier\", w = p === \"straight\" || p === \"segments\", C = p === \"segments\", E = y || b || w, x = g || m, T = t.pstyle(\"source-endpoint\"), k = x ? \"outside-to-node\" : T.value, _ = n.pstyle(\"corner-radius\").value === \"auto\" ? \"auto\" : n.pstyle(\"corner-radius\").pfValue, D = t.pstyle(\"target-endpoint\"), O = x ? \"outside-to-node\" : D.value, F = a.pstyle(\"corner-radius\").value === \"auto\" ? \"auto\" : a.pstyle(\"corner-radius\").pfValue;\n f.srcManEndpt = T, f.tgtManEndpt = D;\n var L, B, I, M;\n if (y) {\n var A = [f.ctrlpts[0], f.ctrlpts[1]], R = b ? [f.ctrlpts[f.ctrlpts.length - 2], f.ctrlpts[f.ctrlpts.length - 1]] : A;\n L = R, B = A;\n } else if (w) {\n var K = C ? f.segpts.slice(0, 2) : [o.x, o.y], H = C ? f.segpts.slice(f.segpts.length - 2) : [i.x, i.y];\n L = H, B = K;\n }\n if (O === \"inside-to-node\")\n r = [o.x, o.y];\n else if (D.units)\n r = this.manualEndptToPx(a, D);\n else if (O === \"outside-to-line\")\n r = f.tgtIntn;\n else if (O === \"outside-to-node\" || O === \"outside-to-node-or-label\" ? I = L : (O === \"outside-to-line\" || O === \"outside-to-line-or-label\") && (I = [i.x, i.y]), r = e.nodeShapes[this.getNodeShape(a)].intersectLine(o.x, o.y, a.outerWidth(), a.outerHeight(), I[0], I[1], 0, F, v), O === \"outside-to-node-or-label\" || O === \"outside-to-line-or-label\") {\n var q = a._private.rscratch, ee = q.labelWidth, se = q.labelHeight, oe = q.labelX, ne = q.labelY, ue = ee / 2, te = se / 2, $ = a.pstyle(\"text-valign\").value;\n $ === \"top\" ? ne -= te : $ === \"bottom\" && (ne += te);\n var G = a.pstyle(\"text-halign\").value;\n G === \"left\" ? oe -= ue : G === \"right\" && (oe += ue);\n var Q = oo(I[0], I[1], [oe - ue, ne - te, oe + ue, ne - te, oe + ue, ne + te, oe - ue, ne + te], o.x, o.y);\n if (Q.length > 0) {\n var ge = i, Ee = ta(ge, Ha(r)), fe = ta(ge, Ha(Q)), me = Ee;\n if (fe < Ee && (r = Q, me = fe), Q.length > 2) {\n var xe = ta(ge, {\n x: Q[2],\n y: Q[3]\n });\n xe < me && (r = [Q[2], Q[3]]);\n }\n }\n }\n var ke = Yo(r, L, e.arrowShapes[s].spacing(t) + l), Ce = Yo(r, L, e.arrowShapes[s].gap(t) + l);\n if (f.endX = Ce[0], f.endY = Ce[1], f.arrowEndX = ke[0], f.arrowEndY = ke[1], k === \"inside-to-node\")\n r = [i.x, i.y];\n else if (T.units)\n r = this.manualEndptToPx(n, T);\n else if (k === \"outside-to-line\")\n r = f.srcIntn;\n else if (k === \"outside-to-node\" || k === \"outside-to-node-or-label\" ? M = B : (k === \"outside-to-line\" || k === \"outside-to-line-or-label\") && (M = [o.x, o.y]), r = e.nodeShapes[this.getNodeShape(n)].intersectLine(i.x, i.y, n.outerWidth(), n.outerHeight(), M[0], M[1], 0, _, d), k === \"outside-to-node-or-label\" || k === \"outside-to-line-or-label\") {\n var De = n._private.rscratch, qe = De.labelWidth, Ke = De.labelHeight, Be = De.labelX, Ge = De.labelY, le = qe / 2, S = Ke / 2, z = n.pstyle(\"text-valign\").value;\n z === \"top\" ? Ge -= S : z === \"bottom\" && (Ge += S);\n var ae = n.pstyle(\"text-halign\").value;\n ae === \"left\" ? Be -= le : ae === \"right\" && (Be += le);\n var j = oo(M[0], M[1], [Be - le, Ge - S, Be + le, Ge - S, Be + le, Ge + S, Be - le, Ge + S], i.x, i.y);\n if (j.length > 0) {\n var Y = o, pe = ta(Y, Ha(r)), re = ta(Y, Ha(j)), ve = pe;\n if (re < pe && (r = [j[0], j[1]], ve = re), j.length > 2) {\n var Ae = ta(Y, {\n x: j[2],\n y: j[3]\n });\n Ae < ve && (r = [j[2], j[3]]);\n }\n }\n }\n var Me = Yo(r, B, e.arrowShapes[u].spacing(t) + c), _e = Yo(r, B, e.arrowShapes[u].gap(t) + c);\n f.startX = _e[0], f.startY = _e[1], f.arrowStartX = Me[0], f.arrowStartY = Me[1], E && (!be(f.startX) || !be(f.startY) || !be(f.endX) || !be(f.endY) ? f.badLine = !0 : f.badLine = !1);\n};\nFo.getSourceEndpoint = function(t) {\n var e = t[0]._private.rscratch;\n switch (this.recalculateRenderedStyle(t), e.edgeType) {\n case \"haystack\":\n return {\n x: e.haystackPts[0],\n y: e.haystackPts[1]\n };\n default:\n return {\n x: e.arrowStartX,\n y: e.arrowStartY\n };\n }\n};\nFo.getTargetEndpoint = function(t) {\n var e = t[0]._private.rscratch;\n switch (this.recalculateRenderedStyle(t), e.edgeType) {\n case \"haystack\":\n return {\n x: e.haystackPts[2],\n y: e.haystackPts[3]\n };\n default:\n return {\n x: e.arrowEndX,\n y: e.arrowEndY\n };\n }\n};\nvar _c = {};\nfunction $P(t, e, r) {\n for (var n = function(l, c, d, v) {\n return Nt(l, c, d, v);\n }, a = e._private, i = a.rstyle.bezierPts, o = 0; o < t.bezierProjPcts.length; o++) {\n var s = t.bezierProjPcts[o];\n i.push({\n x: n(r[0], r[2], r[4], s),\n y: n(r[1], r[3], r[5], s)\n });\n }\n}\n_c.storeEdgeProjections = function(t) {\n var e = t._private, r = e.rscratch, n = r.edgeType;\n if (e.rstyle.bezierPts = null, e.rstyle.linePts = null, e.rstyle.haystackPts = null, n === \"multibezier\" || n === \"bezier\" || n === \"self\" || n === \"compound\") {\n e.rstyle.bezierPts = [];\n for (var a = 0; a + 5 < r.allpts.length; a += 4)\n $P(this, t, r.allpts.slice(a, a + 6));\n } else if (n === \"segments\")\n for (var i = e.rstyle.linePts = [], a = 0; a + 1 < r.allpts.length; a += 2)\n i.push({\n x: r.allpts[a],\n y: r.allpts[a + 1]\n });\n else if (n === \"haystack\") {\n var o = r.haystackPts;\n e.rstyle.haystackPts = [{\n x: o[0],\n y: o[1]\n }, {\n x: o[2],\n y: o[3]\n }];\n }\n e.rstyle.arrowWidth = this.getArrowWidth(t.pstyle(\"width\").pfValue, t.pstyle(\"arrow-scale\").value) * this.arrowShapeWidth;\n};\n_c.recalculateEdgeProjections = function(t) {\n this.findEdgeControlPoints(t);\n};\nvar an = {};\nan.recalculateNodeLabelProjection = function(t) {\n var e = t.pstyle(\"label\").strValue;\n if (!qn(e)) {\n var r, n, a = t._private, i = t.width(), o = t.height(), s = t.padding(), u = t.position(), l = t.pstyle(\"text-halign\").strValue, c = t.pstyle(\"text-valign\").strValue, d = a.rscratch, v = a.rstyle;\n switch (l) {\n case \"left\":\n r = u.x - i / 2 - s;\n break;\n case \"right\":\n r = u.x + i / 2 + s;\n break;\n default:\n r = u.x;\n }\n switch (c) {\n case \"top\":\n n = u.y - o / 2 - s;\n break;\n case \"bottom\":\n n = u.y + o / 2 + s;\n break;\n default:\n n = u.y;\n }\n d.labelX = r, d.labelY = n, v.labelX = r, v.labelY = n, this.calculateLabelAngles(t), this.applyLabelDimensions(t);\n }\n};\nvar cg = function(e, r) {\n var n = Math.atan(r / e);\n return e === 0 && n < 0 && (n = n * -1), n;\n}, dg = function(e, r) {\n var n = r.x - e.x, a = r.y - e.y;\n return cg(n, a);\n}, RP = function(e, r, n, a) {\n var i = io(0, a - 1e-3, 1), o = io(0, a + 1e-3, 1), s = Ga(e, r, n, i), u = Ga(e, r, n, o);\n return dg(s, u);\n};\nan.recalculateEdgeLabelProjections = function(t) {\n var e, r = t._private, n = r.rscratch, a = this, i = {\n mid: t.pstyle(\"label\").strValue,\n source: t.pstyle(\"source-label\").strValue,\n target: t.pstyle(\"target-label\").strValue\n };\n if (i.mid || i.source || i.target) {\n e = {\n x: n.midX,\n y: n.midY\n };\n var o = function(d, v, h) {\n An(r.rscratch, d, v, h), An(r.rstyle, d, v, h);\n };\n o(\"labelX\", null, e.x), o(\"labelY\", null, e.y);\n var s = cg(n.midDispX, n.midDispY);\n o(\"labelAutoAngle\", null, s);\n var u = function c() {\n if (c.cache)\n return c.cache;\n for (var d = [], v = 0; v + 5 < n.allpts.length; v += 4) {\n var h = {\n x: n.allpts[v],\n y: n.allpts[v + 1]\n }, f = {\n x: n.allpts[v + 2],\n y: n.allpts[v + 3]\n }, p = {\n x: n.allpts[v + 4],\n y: n.allpts[v + 5]\n };\n d.push({\n p0: h,\n p1: f,\n p2: p,\n startDist: 0,\n length: 0,\n segments: []\n });\n }\n var m = r.rstyle.bezierPts, g = a.bezierProjPcts.length;\n function y(x, T, k, _, D) {\n var O = ya(T, k), F = x.segments[x.segments.length - 1], L = {\n p0: T,\n p1: k,\n t0: _,\n t1: D,\n startDist: F ? F.startDist + F.length : 0,\n length: O\n };\n x.segments.push(L), x.length += O;\n }\n for (var b = 0; b < d.length; b++) {\n var w = d[b], C = d[b - 1];\n C && (w.startDist = C.startDist + C.length), y(w, w.p0, m[b * g], 0, a.bezierProjPcts[0]);\n for (var E = 0; E < g - 1; E++)\n y(w, m[b * g + E], m[b * g + E + 1], a.bezierProjPcts[E], a.bezierProjPcts[E + 1]);\n y(w, m[b * g + g - 1], w.p2, a.bezierProjPcts[g - 1], 1);\n }\n return c.cache = d;\n }, l = function(d) {\n var v, h = d === \"source\";\n if (i[d]) {\n var f = t.pstyle(d + \"-text-offset\").pfValue;\n switch (n.edgeType) {\n case \"self\":\n case \"compound\":\n case \"bezier\":\n case \"multibezier\": {\n for (var p = u(), m, g = 0, y = 0, b = 0; b < p.length; b++) {\n for (var w = p[h ? b : p.length - 1 - b], C = 0; C < w.segments.length; C++) {\n var E = w.segments[h ? C : w.segments.length - 1 - C], x = b === p.length - 1 && C === w.segments.length - 1;\n if (g = y, y += E.length, y >= f || x) {\n m = {\n cp: w,\n segment: E\n };\n break;\n }\n }\n if (m)\n break;\n }\n var T = m.cp, k = m.segment, _ = (f - g) / k.length, D = k.t1 - k.t0, O = h ? k.t0 + D * _ : k.t1 - D * _;\n O = io(0, O, 1), e = Ga(T.p0, T.p1, T.p2, O), v = RP(T.p0, T.p1, T.p2, O);\n break;\n }\n case \"straight\":\n case \"segments\":\n case \"haystack\": {\n for (var F = 0, L, B, I, M, A = n.allpts.length, R = 0; R + 3 < A && (h ? (I = {\n x: n.allpts[R],\n y: n.allpts[R + 1]\n }, M = {\n x: n.allpts[R + 2],\n y: n.allpts[R + 3]\n }) : (I = {\n x: n.allpts[A - 2 - R],\n y: n.allpts[A - 1 - R]\n }, M = {\n x: n.allpts[A - 4 - R],\n y: n.allpts[A - 3 - R]\n }), L = ya(I, M), B = F, F += L, !(F >= f)); R += 2)\n ;\n var K = f - B, H = K / L;\n H = io(0, H, 1), e = K5(I, M, H), v = dg(I, M);\n break;\n }\n }\n o(\"labelX\", d, e.x), o(\"labelY\", d, e.y), o(\"labelAutoAngle\", d, v);\n }\n };\n l(\"source\"), l(\"target\"), this.applyLabelDimensions(t);\n }\n};\nan.applyLabelDimensions = function(t) {\n this.applyPrefixedLabelDimensions(t), t.isEdge() && (this.applyPrefixedLabelDimensions(t, \"source\"), this.applyPrefixedLabelDimensions(t, \"target\"));\n};\nan.applyPrefixedLabelDimensions = function(t, e) {\n var r = t._private, n = this.getLabelText(t, e), a = this.calculateLabelDimensions(t, n), i = t.pstyle(\"line-height\").pfValue, o = t.pstyle(\"text-wrap\").strValue, s = Nr(r.rscratch, \"labelWrapCachedLines\", e) || [], u = o !== \"wrap\" ? 1 : Math.max(s.length, 1), l = a.height / u, c = l * i, d = a.width, v = a.height + (u - 1) * (i - 1) * l;\n An(r.rstyle, \"labelWidth\", e, d), An(r.rscratch, \"labelWidth\", e, d), An(r.rstyle, \"labelHeight\", e, v), An(r.rscratch, \"labelHeight\", e, v), An(r.rscratch, \"labelLineHeight\", e, c);\n};\nan.getLabelText = function(t, e) {\n var r = t._private, n = e ? e + \"-\" : \"\", a = t.pstyle(n + \"label\").strValue, i = t.pstyle(\"text-transform\").value, o = function(ee, se) {\n return se ? (An(r.rscratch, ee, e, se), se) : Nr(r.rscratch, ee, e);\n };\n if (!a)\n return \"\";\n i == \"none\" || (i == \"uppercase\" ? a = a.toUpperCase() : i == \"lowercase\" && (a = a.toLowerCase()));\n var s = t.pstyle(\"text-wrap\").value;\n if (s === \"wrap\") {\n var u = o(\"labelKey\");\n if (u != null && o(\"labelWrapKey\") === u)\n return o(\"labelWrapCachedText\");\n for (var l = \"​\", c = a.split(`\n`), d = t.pstyle(\"text-max-width\").pfValue, v = t.pstyle(\"text-overflow-wrap\").value, h = v === \"anywhere\", f = [], p = /[\\s\\u200b]+|$/g, m = 0; m < c.length; m++) {\n var g = c[m], y = this.calculateLabelDimensions(t, g), b = y.width;\n if (h) {\n var w = g.split(\"\").join(l);\n g = w;\n }\n if (b > d) {\n var C = g.matchAll(p), E = \"\", x = 0, T = Wh(C), k;\n try {\n for (T.s(); !(k = T.n()).done; ) {\n var _ = k.value, D = _[0], O = g.substring(x, _.index);\n x = _.index + D.length;\n var F = E.length === 0 ? O : E + O + D, L = this.calculateLabelDimensions(t, F), B = L.width;\n B <= d ? E += O + D : (E && f.push(E), E = O + D);\n }\n } catch (q) {\n T.e(q);\n } finally {\n T.f();\n }\n E.match(/^[\\s\\u200b]+$/) || f.push(E);\n } else\n f.push(g);\n }\n o(\"labelWrapCachedLines\", f), a = o(\"labelWrapCachedText\", f.join(`\n`)), o(\"labelWrapKey\", u);\n } else if (s === \"ellipsis\") {\n var I = t.pstyle(\"text-max-width\").pfValue, M = \"\", A = \"…\", R = !1;\n if (this.calculateLabelDimensions(t, a).width < I)\n return a;\n for (var K = 0; K < a.length; K++) {\n var H = this.calculateLabelDimensions(t, M + a[K] + A).width;\n if (H > I)\n break;\n M += a[K], K === a.length - 1 && (R = !0);\n }\n return R || (M += A), M;\n }\n return a;\n};\nan.getLabelJustification = function(t) {\n var e = t.pstyle(\"text-justification\").strValue, r = t.pstyle(\"text-halign\").strValue;\n if (e === \"auto\")\n if (t.isNode())\n switch (r) {\n case \"left\":\n return \"right\";\n case \"right\":\n return \"left\";\n default:\n return \"center\";\n }\n else\n return \"center\";\n else\n return e;\n};\nan.calculateLabelDimensions = function(t, e) {\n var r = this, n = r.cy.window(), a = n.document, i = ma(e, t._private.labelDimsKey), o = r.labelDimCache || (r.labelDimCache = []), s = o[i];\n if (s != null)\n return s;\n var u = 0, l = t.pstyle(\"font-style\").strValue, c = t.pstyle(\"font-size\").pfValue, d = t.pstyle(\"font-family\").strValue, v = t.pstyle(\"font-weight\").strValue, h = this.labelCalcCanvas, f = this.labelCalcCanvasContext;\n if (!h) {\n h = this.labelCalcCanvas = a.createElement(\"canvas\"), f = this.labelCalcCanvasContext = h.getContext(\"2d\");\n var p = h.style;\n p.position = \"absolute\", p.left = \"-9999px\", p.top = \"-9999px\", p.zIndex = \"-1\", p.visibility = \"hidden\", p.pointerEvents = \"none\";\n }\n f.font = \"\".concat(l, \" \").concat(v, \" \").concat(c, \"px \").concat(d);\n for (var m = 0, g = 0, y = e.split(`\n`), b = 0; b < y.length; b++) {\n var w = y[b], C = f.measureText(w), E = Math.ceil(C.width), x = c;\n m = Math.max(E, m), g += x;\n }\n return m += u, g += u, o[i] = {\n width: m,\n height: g\n };\n};\nan.calculateLabelAngle = function(t, e) {\n var r = t._private, n = r.rscratch, a = t.isEdge(), i = e ? e + \"-\" : \"\", o = t.pstyle(i + \"text-rotation\"), s = o.strValue;\n return s === \"none\" ? 0 : a && s === \"autorotate\" ? n.labelAutoAngle : s === \"autorotate\" ? 0 : o.pfValue;\n};\nan.calculateLabelAngles = function(t) {\n var e = this, r = t.isEdge(), n = t._private, a = n.rscratch;\n a.labelAngle = e.calculateLabelAngle(t), r && (a.sourceLabelAngle = e.calculateLabelAngle(t, \"source\"), a.targetLabelAngle = e.calculateLabelAngle(t, \"target\"));\n};\nvar fg = {}, nv = 28, av = !1;\nfg.getNodeShape = function(t) {\n var e = this, r = t.pstyle(\"shape\").value;\n if (r === \"cutrectangle\" && (t.width() < nv || t.height() < nv))\n return av || (tt(\"The `cutrectangle` node shape can not be used at small sizes so `rectangle` is used instead\"), av = !0), \"rectangle\";\n if (t.isParent())\n return r === \"rectangle\" || r === \"roundrectangle\" || r === \"round-rectangle\" || r === \"cutrectangle\" || r === \"cut-rectangle\" || r === \"barrel\" ? r : \"rectangle\";\n if (r === \"polygon\") {\n var n = t.pstyle(\"shape-polygon-points\").value;\n return e.nodeShapes.makePolygon(n).name;\n }\n return r;\n};\nvar pl = {};\npl.registerCalculationListeners = function() {\n var t = this.cy, e = t.collection(), r = this, n = function(o) {\n var s = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : !0;\n if (e.merge(o), s)\n for (var u = 0; u < o.length; u++) {\n var l = o[u], c = l._private, d = c.rstyle;\n d.clean = !1, d.cleanConnected = !1;\n }\n };\n r.binder(t).on(\"bounds.* dirty.*\", function(o) {\n var s = o.target;\n n(s);\n }).on(\"style.* background.*\", function(o) {\n var s = o.target;\n n(s, !1);\n });\n var a = function(o) {\n if (o) {\n var s = r.onUpdateEleCalcsFns;\n e.cleanStyle();\n for (var u = 0; u < e.length; u++) {\n var l = e[u], c = l._private.rstyle;\n l.isNode() && !c.cleanConnected && (n(l.connectedEdges()), c.cleanConnected = !0);\n }\n if (s)\n for (var d = 0; d < s.length; d++) {\n var v = s[d];\n v(o, e);\n }\n r.recalculateRenderedStyle(e), e = t.collection();\n }\n };\n r.flushRenderedStyleQueue = function() {\n a(!0);\n }, r.beforeRender(a, r.beforeRenderPriorities.eleCalcs);\n};\npl.onUpdateEleCalcs = function(t) {\n var e = this.onUpdateEleCalcsFns = this.onUpdateEleCalcsFns || [];\n e.push(t);\n};\npl.recalculateRenderedStyle = function(t, e) {\n var r = function(w) {\n return w._private.rstyle.cleanConnected;\n }, n = [], a = [];\n if (!this.destroyed) {\n e === void 0 && (e = !0);\n for (var i = 0; i < t.length; i++) {\n var o = t[i], s = o._private, u = s.rstyle;\n o.isEdge() && (!r(o.source()) || !r(o.target())) && (u.clean = !1), !(e && u.clean || o.removed()) && o.pstyle(\"display\").value !== \"none\" && (s.group === \"nodes\" ? a.push(o) : n.push(o), u.clean = !0);\n }\n for (var l = 0; l < a.length; l++) {\n var c = a[l], d = c._private, v = d.rstyle, h = c.position();\n this.recalculateNodeLabelProjection(c), v.nodeX = h.x, v.nodeY = h.y, v.nodeW = c.pstyle(\"width\").pfValue, v.nodeH = c.pstyle(\"height\").pfValue;\n }\n this.recalculateEdgeProjections(n);\n for (var f = 0; f < n.length; f++) {\n var p = n[f], m = p._private, g = m.rstyle, y = m.rscratch;\n g.srcX = y.arrowStartX, g.srcY = y.arrowStartY, g.tgtX = y.arrowEndX, g.tgtY = y.arrowEndY, g.midX = y.midX, g.midY = y.midY, g.labelAngle = y.labelAngle, g.sourceLabelAngle = y.sourceLabelAngle, g.targetLabelAngle = y.targetLabelAngle;\n }\n }\n};\nvar gl = {};\ngl.updateCachedGrabbedEles = function() {\n var t = this.cachedZSortedEles;\n if (t) {\n t.drag = [], t.nondrag = [];\n for (var e = [], r = 0; r < t.length; r++) {\n var n = t[r], a = n._private.rscratch;\n n.grabbed() && !n.isParent() ? e.push(n) : a.inDragLayer ? t.drag.push(n) : t.nondrag.push(n);\n }\n for (var r = 0; r < e.length; r++) {\n var n = e[r];\n t.drag.push(n);\n }\n }\n};\ngl.invalidateCachedZSortedEles = function() {\n this.cachedZSortedEles = null;\n};\ngl.getCachedZSortedEles = function(t) {\n if (t || !this.cachedZSortedEles) {\n var e = this.cy.mutableElements().toArray();\n e.sort(Zp), e.interactive = e.filter(function(r) {\n return r.interactive();\n }), this.cachedZSortedEles = e, this.updateCachedGrabbedEles();\n } else\n e = this.cachedZSortedEles;\n return e;\n};\nvar vg = {};\n[Da, Ns, or, Fo, _c, an, fg, pl, gl].forEach(function(t) {\n Re(vg, t);\n});\nvar hg = {};\nhg.getCachedImage = function(t, e, r) {\n var n = this, a = n.imageCache = n.imageCache || {}, i = a[t];\n if (i)\n return i.image.complete || i.image.addEventListener(\"load\", r), i.image;\n i = a[t] = a[t] || {};\n var o = i.image = new Image();\n o.addEventListener(\"load\", r), o.addEventListener(\"error\", function() {\n o.error = !0;\n });\n var s = \"data:\", u = t.substring(0, s.length).toLowerCase() === s;\n return u || (e = e === \"null\" ? null : e, o.crossOrigin = e), o.src = t, o;\n};\nvar wi = {};\nwi.registerBinding = function(t, e, r, n) {\n var a = Array.prototype.slice.apply(arguments, [1]), i = this.binder(t);\n return i.on.apply(i, a);\n};\nwi.binder = function(t) {\n var e = this, r = e.cy.window(), n = t === r || t === r.document || t === r.document.body || cT(t);\n if (e.supportsPassiveEvents == null) {\n var a = !1;\n try {\n var i = Object.defineProperty({}, \"passive\", {\n get: function() {\n return a = !0, !0;\n }\n });\n r.addEventListener(\"test\", null, i);\n } catch {\n }\n e.supportsPassiveEvents = a;\n }\n var o = function(u, l, c) {\n var d = Array.prototype.slice.call(arguments);\n return n && e.supportsPassiveEvents && (d[2] = {\n capture: c ?? !1,\n passive: !1,\n once: !1\n }), e.bindings.push({\n target: t,\n args: d\n }), (t.addEventListener || t.on).apply(t, d), this;\n };\n return {\n on: o,\n addEventListener: o,\n addListener: o,\n bind: o\n };\n};\nwi.nodeIsDraggable = function(t) {\n return t && t.isNode() && !t.locked() && t.grabbable();\n};\nwi.nodeIsGrabbable = function(t) {\n return this.nodeIsDraggable(t) && t.interactive();\n};\nwi.load = function() {\n var t = this, e = t.cy.window(), r = function(S) {\n return S.selected();\n }, n = function(S, z, ae, j) {\n S == null && (S = t.cy);\n for (var Y = 0; Y < z.length; Y++) {\n var pe = z[Y];\n S.emit({\n originalEvent: ae,\n type: pe,\n position: j\n });\n }\n }, a = function(S) {\n return S.shiftKey || S.metaKey || S.ctrlKey;\n }, i = function(S, z) {\n var ae = !0;\n if (t.cy.hasCompoundNodes() && S && S.pannable())\n for (var j = 0; z && j < z.length; j++) {\n var S = z[j];\n if (S.isNode() && S.isParent() && !S.pannable()) {\n ae = !1;\n break;\n }\n }\n else\n ae = !0;\n return ae;\n }, o = function(S) {\n S[0]._private.grabbed = !0;\n }, s = function(S) {\n S[0]._private.grabbed = !1;\n }, u = function(S) {\n S[0]._private.rscratch.inDragLayer = !0;\n }, l = function(S) {\n S[0]._private.rscratch.inDragLayer = !1;\n }, c = function(S) {\n S[0]._private.rscratch.isGrabTarget = !0;\n }, d = function(S) {\n S[0]._private.rscratch.isGrabTarget = !1;\n }, v = function(S, z) {\n var ae = z.addToList, j = ae.has(S);\n !j && S.grabbable() && !S.locked() && (ae.merge(S), o(S));\n }, h = function(S, z) {\n if (S.cy().hasCompoundNodes() && !(z.inDragLayer == null && z.addToList == null)) {\n var ae = S.descendants();\n z.inDragLayer && (ae.forEach(u), ae.connectedEdges().forEach(u)), z.addToList && v(ae, z);\n }\n }, f = function(S, z) {\n z = z || {};\n var ae = S.cy().hasCompoundNodes();\n z.inDragLayer && (S.forEach(u), S.neighborhood().stdFilter(function(j) {\n return !ae || j.isEdge();\n }).forEach(u)), z.addToList && S.forEach(function(j) {\n v(j, z);\n }), h(S, z), g(S, {\n inDragLayer: z.inDragLayer\n }), t.updateCachedGrabbedEles();\n }, p = f, m = function(S) {\n S && (t.getCachedZSortedEles().forEach(function(z) {\n s(z), l(z), d(z);\n }), t.updateCachedGrabbedEles());\n }, g = function(S, z) {\n if (!(z.inDragLayer == null && z.addToList == null) && S.cy().hasCompoundNodes()) {\n var ae = S.ancestors().orphans();\n if (!ae.same(S)) {\n var j = ae.descendants().spawnSelf().merge(ae).unmerge(S).unmerge(S.descendants()), Y = j.connectedEdges();\n z.inDragLayer && (Y.forEach(u), j.forEach(u)), z.addToList && j.forEach(function(pe) {\n v(pe, z);\n });\n }\n }\n }, y = function() {\n document.activeElement != null && document.activeElement.blur != null && document.activeElement.blur();\n }, b = typeof MutationObserver < \"u\", w = typeof ResizeObserver < \"u\";\n b ? (t.removeObserver = new MutationObserver(function(le) {\n for (var S = 0; S < le.length; S++) {\n var z = le[S], ae = z.removedNodes;\n if (ae)\n for (var j = 0; j < ae.length; j++) {\n var Y = ae[j];\n if (Y === t.container) {\n t.destroy();\n break;\n }\n }\n }\n }), t.container.parentNode && t.removeObserver.observe(t.container.parentNode, {\n childList: !0\n })) : t.registerBinding(t.container, \"DOMNodeRemoved\", function(le) {\n t.destroy();\n });\n var C = tl(function() {\n t.cy.resize();\n }, 100);\n b && (t.styleObserver = new MutationObserver(C), t.styleObserver.observe(t.container, {\n attributes: !0\n })), t.registerBinding(e, \"resize\", C), w && (t.resizeObserver = new ResizeObserver(C), t.resizeObserver.observe(t.container));\n var E = function(S, z) {\n for (; S != null; )\n z(S), S = S.parentNode;\n }, x = function() {\n t.invalidateContainerClientCoordsCache();\n };\n E(t.container, function(le) {\n t.registerBinding(le, \"transitionend\", x), t.registerBinding(le, \"animationend\", x), t.registerBinding(le, \"scroll\", x);\n }), t.registerBinding(t.container, \"contextmenu\", function(le) {\n le.preventDefault();\n });\n var T = function() {\n return t.selection[4] !== 0;\n }, k = function(S) {\n for (var z = t.findContainerClientCoords(), ae = z[0], j = z[1], Y = z[2], pe = z[3], re = S.touches ? S.touches : [S], ve = !1, Ae = 0; Ae < re.length; Ae++) {\n var Me = re[Ae];\n if (ae <= Me.clientX && Me.clientX <= ae + Y && j <= Me.clientY && Me.clientY <= j + pe) {\n ve = !0;\n break;\n }\n }\n if (!ve)\n return !1;\n for (var _e = t.container, Ne = S.target, Te = Ne.parentNode, Oe = !1; Te; ) {\n if (Te === _e) {\n Oe = !0;\n break;\n }\n Te = Te.parentNode;\n }\n return !!Oe;\n };\n t.registerBinding(t.container, \"mousedown\", function(S) {\n if (k(S) && !(t.hoverData.which === 1 && S.which !== 1)) {\n S.preventDefault(), y(), t.hoverData.capture = !0, t.hoverData.which = S.which;\n var z = t.cy, ae = [S.clientX, S.clientY], j = t.projectIntoViewport(ae[0], ae[1]), Y = t.selection, pe = t.findNearestElements(j[0], j[1], !0, !1), re = pe[0], ve = t.dragData.possibleDragElements;\n t.hoverData.mdownPos = j, t.hoverData.mdownGPos = ae;\n var Ae = function() {\n t.hoverData.tapholdCancelled = !1, clearTimeout(t.hoverData.tapholdTimeout), t.hoverData.tapholdTimeout = setTimeout(function() {\n if (!t.hoverData.tapholdCancelled) {\n var ut = t.hoverData.down;\n ut ? ut.emit({\n originalEvent: S,\n type: \"taphold\",\n position: {\n x: j[0],\n y: j[1]\n }\n }) : z.emit({\n originalEvent: S,\n type: \"taphold\",\n position: {\n x: j[0],\n y: j[1]\n }\n });\n }\n }, t.tapholdDuration);\n };\n if (S.which == 3) {\n t.hoverData.cxtStarted = !0;\n var Me = {\n originalEvent: S,\n type: \"cxttapstart\",\n position: {\n x: j[0],\n y: j[1]\n }\n };\n re ? (re.activate(), re.emit(Me), t.hoverData.down = re) : z.emit(Me), t.hoverData.downTime = (/* @__PURE__ */ new Date()).getTime(), t.hoverData.cxtDragged = !1;\n } else if (S.which == 1) {\n re && re.activate();\n {\n if (re != null && t.nodeIsGrabbable(re)) {\n var _e = function(ut) {\n return {\n originalEvent: S,\n type: ut,\n position: {\n x: j[0],\n y: j[1]\n }\n };\n }, Ne = function(ut) {\n ut.emit(_e(\"grab\"));\n };\n if (c(re), !re.selected())\n ve = t.dragData.possibleDragElements = z.collection(), p(re, {\n addToList: ve\n }), re.emit(_e(\"grabon\")).emit(_e(\"grab\"));\n else {\n ve = t.dragData.possibleDragElements = z.collection();\n var Te = z.$(function(Oe) {\n return Oe.isNode() && Oe.selected() && t.nodeIsGrabbable(Oe);\n });\n f(Te, {\n addToList: ve\n }), re.emit(_e(\"grabon\")), Te.forEach(Ne);\n }\n t.redrawHint(\"eles\", !0), t.redrawHint(\"drag\", !0);\n }\n t.hoverData.down = re, t.hoverData.downs = pe, t.hoverData.downTime = (/* @__PURE__ */ new Date()).getTime();\n }\n n(re, [\"mousedown\", \"tapstart\", \"vmousedown\"], S, {\n x: j[0],\n y: j[1]\n }), re == null ? (Y[4] = 1, t.data.bgActivePosistion = {\n x: j[0],\n y: j[1]\n }, t.redrawHint(\"select\", !0), t.redraw()) : re.pannable() && (Y[4] = 1), Ae();\n }\n Y[0] = Y[2] = j[0], Y[1] = Y[3] = j[1];\n }\n }, !1), t.registerBinding(e, \"mousemove\", function(S) {\n var z = t.hoverData.capture;\n if (!(!z && !k(S))) {\n var ae = !1, j = t.cy, Y = j.zoom(), pe = [S.clientX, S.clientY], re = t.projectIntoViewport(pe[0], pe[1]), ve = t.hoverData.mdownPos, Ae = t.hoverData.mdownGPos, Me = t.selection, _e = null;\n !t.hoverData.draggingEles && !t.hoverData.dragging && !t.hoverData.selecting && (_e = t.findNearestElement(re[0], re[1], !0, !1));\n var Ne = t.hoverData.last, Te = t.hoverData.down, Oe = [re[0] - Me[2], re[1] - Me[3]], ut = t.dragData.possibleDragElements, nt;\n if (Ae) {\n var kt = pe[0] - Ae[0], St = kt * kt, wt = pe[1] - Ae[1], Zt = wt * wt, Pt = St + Zt;\n t.hoverData.isOverThresholdDrag = nt = Pt >= t.desktopTapThreshold2;\n }\n var Mt = a(S);\n nt && (t.hoverData.tapholdCancelled = !0);\n var gr = function() {\n var W = t.hoverData.dragDelta = t.hoverData.dragDelta || [];\n W.length === 0 ? (W.push(Oe[0]), W.push(Oe[1])) : (W[0] += Oe[0], W[1] += Oe[1]);\n };\n ae = !0, n(_e, [\"mousemove\", \"vmousemove\", \"tapdrag\"], S, {\n x: re[0],\n y: re[1]\n });\n var Xt = function() {\n t.data.bgActivePosistion = void 0, t.hoverData.selecting || j.emit({\n originalEvent: S,\n type: \"boxstart\",\n position: {\n x: re[0],\n y: re[1]\n }\n }), Me[4] = 1, t.hoverData.selecting = !0, t.redrawHint(\"select\", !0), t.redraw();\n };\n if (t.hoverData.which === 3) {\n if (nt) {\n var jt = {\n originalEvent: S,\n type: \"cxtdrag\",\n position: {\n x: re[0],\n y: re[1]\n }\n };\n Te ? Te.emit(jt) : j.emit(jt), t.hoverData.cxtDragged = !0, (!t.hoverData.cxtOver || _e !== t.hoverData.cxtOver) && (t.hoverData.cxtOver && t.hoverData.cxtOver.emit({\n originalEvent: S,\n type: \"cxtdragout\",\n position: {\n x: re[0],\n y: re[1]\n }\n }), t.hoverData.cxtOver = _e, _e && _e.emit({\n originalEvent: S,\n type: \"cxtdragover\",\n position: {\n x: re[0],\n y: re[1]\n }\n }));\n }\n } else if (t.hoverData.dragging) {\n if (ae = !0, j.panningEnabled() && j.userPanningEnabled()) {\n var wr;\n if (t.hoverData.justStartedPan) {\n var Pr = t.hoverData.mdownPos;\n wr = {\n x: (re[0] - Pr[0]) * Y,\n y: (re[1] - Pr[1]) * Y\n }, t.hoverData.justStartedPan = !1;\n } else\n wr = {\n x: Oe[0] * Y,\n y: Oe[1] * Y\n };\n j.panBy(wr), j.emit(\"dragpan\"), t.hoverData.dragged = !0;\n }\n re = t.projectIntoViewport(S.clientX, S.clientY);\n } else if (Me[4] == 1 && (Te == null || Te.pannable())) {\n if (nt) {\n if (!t.hoverData.dragging && j.boxSelectionEnabled() && (Mt || !j.panningEnabled() || !j.userPanningEnabled()))\n Xt();\n else if (!t.hoverData.selecting && j.panningEnabled() && j.userPanningEnabled()) {\n var ur = i(Te, t.hoverData.downs);\n ur && (t.hoverData.dragging = !0, t.hoverData.justStartedPan = !0, Me[4] = 0, t.data.bgActivePosistion = Ha(ve), t.redrawHint(\"select\", !0), t.redraw());\n }\n Te && Te.pannable() && Te.active() && Te.unactivate();\n }\n } else {\n if (Te && Te.pannable() && Te.active() && Te.unactivate(), (!Te || !Te.grabbed()) && _e != Ne && (Ne && n(Ne, [\"mouseout\", \"tapdragout\"], S, {\n x: re[0],\n y: re[1]\n }), _e && n(_e, [\"mouseover\", \"tapdragover\"], S, {\n x: re[0],\n y: re[1]\n }), t.hoverData.last = _e), Te)\n if (nt) {\n if (j.boxSelectionEnabled() && Mt)\n Te && Te.grabbed() && (m(ut), Te.emit(\"freeon\"), ut.emit(\"free\"), t.dragData.didDrag && (Te.emit(\"dragfreeon\"), ut.emit(\"dragfree\"))), Xt();\n else if (Te && Te.grabbed() && t.nodeIsDraggable(Te)) {\n var xt = !t.dragData.didDrag;\n xt && t.redrawHint(\"eles\", !0), t.dragData.didDrag = !0, t.hoverData.draggingEles || f(ut, {\n inDragLayer: !0\n });\n var Tt = {\n x: 0,\n y: 0\n };\n if (be(Oe[0]) && be(Oe[1]) && (Tt.x += Oe[0], Tt.y += Oe[1], xt)) {\n var Bt = t.hoverData.dragDelta;\n Bt && be(Bt[0]) && be(Bt[1]) && (Tt.x += Bt[0], Tt.y += Bt[1]);\n }\n t.hoverData.draggingEles = !0, ut.silentShift(Tt).emit(\"position drag\"), t.redrawHint(\"drag\", !0), t.redraw();\n }\n } else\n gr();\n ae = !0;\n }\n if (Me[2] = re[0], Me[3] = re[1], ae)\n return S.stopPropagation && S.stopPropagation(), S.preventDefault && S.preventDefault(), !1;\n }\n }, !1);\n var _, D, O;\n t.registerBinding(e, \"mouseup\", function(S) {\n if (!(t.hoverData.which === 1 && S.which !== 1 && t.hoverData.capture)) {\n var z = t.hoverData.capture;\n if (z) {\n t.hoverData.capture = !1;\n var ae = t.cy, j = t.projectIntoViewport(S.clientX, S.clientY), Y = t.selection, pe = t.findNearestElement(j[0], j[1], !0, !1), re = t.dragData.possibleDragElements, ve = t.hoverData.down, Ae = a(S);\n if (t.data.bgActivePosistion && (t.redrawHint(\"select\", !0), t.redraw()), t.hoverData.tapholdCancelled = !0, t.data.bgActivePosistion = void 0, ve && ve.unactivate(), t.hoverData.which === 3) {\n var Me = {\n originalEvent: S,\n type: \"cxttapend\",\n position: {\n x: j[0],\n y: j[1]\n }\n };\n if (ve ? ve.emit(Me) : ae.emit(Me), !t.hoverData.cxtDragged) {\n var _e = {\n originalEvent: S,\n type: \"cxttap\",\n position: {\n x: j[0],\n y: j[1]\n }\n };\n ve ? ve.emit(_e) : ae.emit(_e);\n }\n t.hoverData.cxtDragged = !1, t.hoverData.which = null;\n } else if (t.hoverData.which === 1) {\n if (n(pe, [\"mouseup\", \"tapend\", \"vmouseup\"], S, {\n x: j[0],\n y: j[1]\n }), !t.dragData.didDrag && // didn't move a node around\n !t.hoverData.dragged && // didn't pan\n !t.hoverData.selecting && // not box selection\n !t.hoverData.isOverThresholdDrag && (n(ve, [\"click\", \"tap\", \"vclick\"], S, {\n x: j[0],\n y: j[1]\n }), D = !1, S.timeStamp - O <= ae.multiClickDebounceTime() ? (_ && clearTimeout(_), D = !0, O = null, n(ve, [\"dblclick\", \"dbltap\", \"vdblclick\"], S, {\n x: j[0],\n y: j[1]\n })) : (_ = setTimeout(function() {\n D || n(ve, [\"oneclick\", \"onetap\", \"voneclick\"], S, {\n x: j[0],\n y: j[1]\n });\n }, ae.multiClickDebounceTime()), O = S.timeStamp)), ve == null && !t.dragData.didDrag && !t.hoverData.selecting && !t.hoverData.dragged && !a(S) && (ae.$(r).unselect([\"tapunselect\"]), re.length > 0 && t.redrawHint(\"eles\", !0), t.dragData.possibleDragElements = re = ae.collection()), pe == ve && !t.dragData.didDrag && !t.hoverData.selecting && pe != null && pe._private.selectable && (t.hoverData.dragging || (ae.selectionType() === \"additive\" || Ae ? pe.selected() ? pe.unselect([\"tapunselect\"]) : pe.select([\"tapselect\"]) : Ae || (ae.$(r).unmerge(pe).unselect([\"tapunselect\"]), pe.select([\"tapselect\"]))), t.redrawHint(\"eles\", !0)), t.hoverData.selecting) {\n var Ne = ae.collection(t.getAllInBox(Y[0], Y[1], Y[2], Y[3]));\n t.redrawHint(\"select\", !0), Ne.length > 0 && t.redrawHint(\"eles\", !0), ae.emit({\n type: \"boxend\",\n originalEvent: S,\n position: {\n x: j[0],\n y: j[1]\n }\n });\n var Te = function(nt) {\n return nt.selectable() && !nt.selected();\n };\n ae.selectionType() === \"additive\" || Ae || ae.$(r).unmerge(Ne).unselect(), Ne.emit(\"box\").stdFilter(Te).select().emit(\"boxselect\"), t.redraw();\n }\n if (t.hoverData.dragging && (t.hoverData.dragging = !1, t.redrawHint(\"select\", !0), t.redrawHint(\"eles\", !0), t.redraw()), !Y[4]) {\n t.redrawHint(\"drag\", !0), t.redrawHint(\"eles\", !0);\n var Oe = ve && ve.grabbed();\n m(re), Oe && (ve.emit(\"freeon\"), re.emit(\"free\"), t.dragData.didDrag && (ve.emit(\"dragfreeon\"), re.emit(\"dragfree\")));\n }\n }\n Y[4] = 0, t.hoverData.down = null, t.hoverData.cxtStarted = !1, t.hoverData.draggingEles = !1, t.hoverData.selecting = !1, t.hoverData.isOverThresholdDrag = !1, t.dragData.didDrag = !1, t.hoverData.dragged = !1, t.hoverData.dragDelta = [], t.hoverData.mdownPos = null, t.hoverData.mdownGPos = null, t.hoverData.which = null;\n }\n }\n }, !1);\n var F = function(S) {\n if (!t.scrollingPage) {\n var z = t.cy, ae = z.zoom(), j = z.pan(), Y = t.projectIntoViewport(S.clientX, S.clientY), pe = [Y[0] * ae + j.x, Y[1] * ae + j.y];\n if (t.hoverData.draggingEles || t.hoverData.dragging || t.hoverData.cxtStarted || T()) {\n S.preventDefault();\n return;\n }\n if (z.panningEnabled() && z.userPanningEnabled() && z.zoomingEnabled() && z.userZoomingEnabled()) {\n S.preventDefault(), t.data.wheelZooming = !0, clearTimeout(t.data.wheelTimeout), t.data.wheelTimeout = setTimeout(function() {\n t.data.wheelZooming = !1, t.redrawHint(\"eles\", !0), t.redraw();\n }, 150);\n var re;\n S.deltaY != null ? re = S.deltaY / -250 : S.wheelDeltaY != null ? re = S.wheelDeltaY / 1e3 : re = S.wheelDelta / 1e3, re = re * t.wheelSensitivity;\n var ve = S.deltaMode === 1;\n ve && (re *= 33);\n var Ae = z.zoom() * Math.pow(10, re);\n S.type === \"gesturechange\" && (Ae = t.gestureStartZoom * S.scale), z.zoom({\n level: Ae,\n renderedPosition: {\n x: pe[0],\n y: pe[1]\n }\n }), z.emit(S.type === \"gesturechange\" ? \"pinchzoom\" : \"scrollzoom\");\n }\n }\n };\n t.registerBinding(t.container, \"wheel\", F, !0), t.registerBinding(e, \"scroll\", function(S) {\n t.scrollingPage = !0, clearTimeout(t.scrollingPageTimeout), t.scrollingPageTimeout = setTimeout(function() {\n t.scrollingPage = !1;\n }, 250);\n }, !0), t.registerBinding(t.container, \"gesturestart\", function(S) {\n t.gestureStartZoom = t.cy.zoom(), t.hasTouchStarted || S.preventDefault();\n }, !0), t.registerBinding(t.container, \"gesturechange\", function(le) {\n t.hasTouchStarted || F(le);\n }, !0), t.registerBinding(t.container, \"mouseout\", function(S) {\n var z = t.projectIntoViewport(S.clientX, S.clientY);\n t.cy.emit({\n originalEvent: S,\n type: \"mouseout\",\n position: {\n x: z[0],\n y: z[1]\n }\n });\n }, !1), t.registerBinding(t.container, \"mouseover\", function(S) {\n var z = t.projectIntoViewport(S.clientX, S.clientY);\n t.cy.emit({\n originalEvent: S,\n type: \"mouseover\",\n position: {\n x: z[0],\n y: z[1]\n }\n });\n }, !1);\n var L, B, I, M, A, R, K, H, q, ee, se, oe, ne, ue = function(S, z, ae, j) {\n return Math.sqrt((ae - S) * (ae - S) + (j - z) * (j - z));\n }, te = function(S, z, ae, j) {\n return (ae - S) * (ae - S) + (j - z) * (j - z);\n }, $;\n t.registerBinding(t.container, \"touchstart\", $ = function(S) {\n if (t.hasTouchStarted = !0, !!k(S)) {\n y(), t.touchData.capture = !0, t.data.bgActivePosistion = void 0;\n var z = t.cy, ae = t.touchData.now, j = t.touchData.earlier;\n if (S.touches[0]) {\n var Y = t.projectIntoViewport(S.touches[0].clientX, S.touches[0].clientY);\n ae[0] = Y[0], ae[1] = Y[1];\n }\n if (S.touches[1]) {\n var Y = t.projectIntoViewport(S.touches[1].clientX, S.touches[1].clientY);\n ae[2] = Y[0], ae[3] = Y[1];\n }\n if (S.touches[2]) {\n var Y = t.projectIntoViewport(S.touches[2].clientX, S.touches[2].clientY);\n ae[4] = Y[0], ae[5] = Y[1];\n }\n if (S.touches[1]) {\n t.touchData.singleTouchMoved = !0, m(t.dragData.touchDragEles);\n var pe = t.findContainerClientCoords();\n q = pe[0], ee = pe[1], se = pe[2], oe = pe[3], L = S.touches[0].clientX - q, B = S.touches[0].clientY - ee, I = S.touches[1].clientX - q, M = S.touches[1].clientY - ee, ne = 0 <= L && L <= se && 0 <= I && I <= se && 0 <= B && B <= oe && 0 <= M && M <= oe;\n var re = z.pan(), ve = z.zoom();\n A = ue(L, B, I, M), R = te(L, B, I, M), K = [(L + I) / 2, (B + M) / 2], H = [(K[0] - re.x) / ve, (K[1] - re.y) / ve];\n var Ae = 200, Me = Ae * Ae;\n if (R < Me && !S.touches[2]) {\n var _e = t.findNearestElement(ae[0], ae[1], !0, !0), Ne = t.findNearestElement(ae[2], ae[3], !0, !0);\n _e && _e.isNode() ? (_e.activate().emit({\n originalEvent: S,\n type: \"cxttapstart\",\n position: {\n x: ae[0],\n y: ae[1]\n }\n }), t.touchData.start = _e) : Ne && Ne.isNode() ? (Ne.activate().emit({\n originalEvent: S,\n type: \"cxttapstart\",\n position: {\n x: ae[0],\n y: ae[1]\n }\n }), t.touchData.start = Ne) : z.emit({\n originalEvent: S,\n type: \"cxttapstart\",\n position: {\n x: ae[0],\n y: ae[1]\n }\n }), t.touchData.start && (t.touchData.start._private.grabbed = !1), t.touchData.cxt = !0, t.touchData.cxtDragged = !1, t.data.bgActivePosistion = void 0, t.redraw();\n return;\n }\n }\n if (S.touches[2])\n z.boxSelectionEnabled() && S.preventDefault();\n else if (!S.touches[1]) {\n if (S.touches[0]) {\n var Te = t.findNearestElements(ae[0], ae[1], !0, !0), Oe = Te[0];\n if (Oe != null && (Oe.activate(), t.touchData.start = Oe, t.touchData.starts = Te, t.nodeIsGrabbable(Oe))) {\n var ut = t.dragData.touchDragEles = z.collection(), nt = null;\n t.redrawHint(\"eles\", !0), t.redrawHint(\"drag\", !0), Oe.selected() ? (nt = z.$(function(Pt) {\n return Pt.selected() && t.nodeIsGrabbable(Pt);\n }), f(nt, {\n addToList: ut\n })) : p(Oe, {\n addToList: ut\n }), c(Oe);\n var kt = function(Mt) {\n return {\n originalEvent: S,\n type: Mt,\n position: {\n x: ae[0],\n y: ae[1]\n }\n };\n };\n Oe.emit(kt(\"grabon\")), nt ? nt.forEach(function(Pt) {\n Pt.emit(kt(\"grab\"));\n }) : Oe.emit(kt(\"grab\"));\n }\n n(Oe, [\"touchstart\", \"tapstart\", \"vmousedown\"], S, {\n x: ae[0],\n y: ae[1]\n }), Oe == null && (t.data.bgActivePosistion = {\n x: Y[0],\n y: Y[1]\n }, t.redrawHint(\"select\", !0), t.redraw()), t.touchData.singleTouchMoved = !1, t.touchData.singleTouchStartTime = +/* @__PURE__ */ new Date(), clearTimeout(t.touchData.tapholdTimeout), t.touchData.tapholdTimeout = setTimeout(function() {\n t.touchData.singleTouchMoved === !1 && !t.pinching && !t.touchData.selecting && n(t.touchData.start, [\"taphold\"], S, {\n x: ae[0],\n y: ae[1]\n });\n }, t.tapholdDuration);\n }\n }\n if (S.touches.length >= 1) {\n for (var St = t.touchData.startPosition = [null, null, null, null, null, null], wt = 0; wt < ae.length; wt++)\n St[wt] = j[wt] = ae[wt];\n var Zt = S.touches[0];\n t.touchData.startGPosition = [Zt.clientX, Zt.clientY];\n }\n }\n }, !1);\n var G;\n t.registerBinding(e, \"touchmove\", G = function(S) {\n var z = t.touchData.capture;\n if (!(!z && !k(S))) {\n var ae = t.selection, j = t.cy, Y = t.touchData.now, pe = t.touchData.earlier, re = j.zoom();\n if (S.touches[0]) {\n var ve = t.projectIntoViewport(S.touches[0].clientX, S.touches[0].clientY);\n Y[0] = ve[0], Y[1] = ve[1];\n }\n if (S.touches[1]) {\n var ve = t.projectIntoViewport(S.touches[1].clientX, S.touches[1].clientY);\n Y[2] = ve[0], Y[3] = ve[1];\n }\n if (S.touches[2]) {\n var ve = t.projectIntoViewport(S.touches[2].clientX, S.touches[2].clientY);\n Y[4] = ve[0], Y[5] = ve[1];\n }\n var Ae = t.touchData.startGPosition, Me;\n if (z && S.touches[0] && Ae) {\n for (var _e = [], Ne = 0; Ne < Y.length; Ne++)\n _e[Ne] = Y[Ne] - pe[Ne];\n var Te = S.touches[0].clientX - Ae[0], Oe = Te * Te, ut = S.touches[0].clientY - Ae[1], nt = ut * ut, kt = Oe + nt;\n Me = kt >= t.touchTapThreshold2;\n }\n if (z && t.touchData.cxt) {\n S.preventDefault();\n var St = S.touches[0].clientX - q, wt = S.touches[0].clientY - ee, Zt = S.touches[1].clientX - q, Pt = S.touches[1].clientY - ee, Mt = te(St, wt, Zt, Pt), gr = Mt / R, Xt = 150, jt = Xt * Xt, wr = 1.5, Pr = wr * wr;\n if (gr >= Pr || Mt >= jt) {\n t.touchData.cxt = !1, t.data.bgActivePosistion = void 0, t.redrawHint(\"select\", !0);\n var ur = {\n originalEvent: S,\n type: \"cxttapend\",\n position: {\n x: Y[0],\n y: Y[1]\n }\n };\n t.touchData.start ? (t.touchData.start.unactivate().emit(ur), t.touchData.start = null) : j.emit(ur);\n }\n }\n if (z && t.touchData.cxt) {\n var ur = {\n originalEvent: S,\n type: \"cxtdrag\",\n position: {\n x: Y[0],\n y: Y[1]\n }\n };\n t.data.bgActivePosistion = void 0, t.redrawHint(\"select\", !0), t.touchData.start ? t.touchData.start.emit(ur) : j.emit(ur), t.touchData.start && (t.touchData.start._private.grabbed = !1), t.touchData.cxtDragged = !0;\n var xt = t.findNearestElement(Y[0], Y[1], !0, !0);\n (!t.touchData.cxtOver || xt !== t.touchData.cxtOver) && (t.touchData.cxtOver && t.touchData.cxtOver.emit({\n originalEvent: S,\n type: \"cxtdragout\",\n position: {\n x: Y[0],\n y: Y[1]\n }\n }), t.touchData.cxtOver = xt, xt && xt.emit({\n originalEvent: S,\n type: \"cxtdragover\",\n position: {\n x: Y[0],\n y: Y[1]\n }\n }));\n } else if (z && S.touches[2] && j.boxSelectionEnabled())\n S.preventDefault(), t.data.bgActivePosistion = void 0, this.lastThreeTouch = +/* @__PURE__ */ new Date(), t.touchData.selecting || j.emit({\n originalEvent: S,\n type: \"boxstart\",\n position: {\n x: Y[0],\n y: Y[1]\n }\n }), t.touchData.selecting = !0, t.touchData.didSelect = !0, ae[4] = 1, !ae || ae.length === 0 || ae[0] === void 0 ? (ae[0] = (Y[0] + Y[2] + Y[4]) / 3, ae[1] = (Y[1] + Y[3] + Y[5]) / 3, ae[2] = (Y[0] + Y[2] + Y[4]) / 3 + 1, ae[3] = (Y[1] + Y[3] + Y[5]) / 3 + 1) : (ae[2] = (Y[0] + Y[2] + Y[4]) / 3, ae[3] = (Y[1] + Y[3] + Y[5]) / 3), t.redrawHint(\"select\", !0), t.redraw();\n else if (z && S.touches[1] && !t.touchData.didSelect && j.zoomingEnabled() && j.panningEnabled() && j.userZoomingEnabled() && j.userPanningEnabled()) {\n S.preventDefault(), t.data.bgActivePosistion = void 0, t.redrawHint(\"select\", !0);\n var Tt = t.dragData.touchDragEles;\n if (Tt) {\n t.redrawHint(\"drag\", !0);\n for (var Bt = 0; Bt < Tt.length; Bt++) {\n var kn = Tt[Bt]._private;\n kn.grabbed = !1, kn.rscratch.inDragLayer = !1;\n }\n }\n var W = t.touchData.start, St = S.touches[0].clientX - q, wt = S.touches[0].clientY - ee, Zt = S.touches[1].clientX - q, Pt = S.touches[1].clientY - ee, we = ue(St, wt, Zt, Pt), We = we / A;\n if (ne) {\n var at = St - L, Gr = wt - B, Sn = Zt - I, Oa = Pt - M, sn = (at + Sn) / 2, xr = (Gr + Oa) / 2, Tn = j.zoom(), ml = Tn * We, Bo = j.pan(), Lc = H[0] * Tn + Bo.x, Ic = H[1] * Tn + Bo.y, v0 = {\n x: -ml / Tn * (Lc - Bo.x - sn) + Lc,\n y: -ml / Tn * (Ic - Bo.y - xr) + Ic\n };\n if (W && W.active()) {\n var Tt = t.dragData.touchDragEles;\n m(Tt), t.redrawHint(\"drag\", !0), t.redrawHint(\"eles\", !0), W.unactivate().emit(\"freeon\"), Tt.emit(\"free\"), t.dragData.didDrag && (W.emit(\"dragfreeon\"), Tt.emit(\"dragfree\"));\n }\n j.viewport({\n zoom: ml,\n pan: v0,\n cancelOnFailedZoom: !0\n }), j.emit(\"pinchzoom\"), A = we, L = St, B = wt, I = Zt, M = Pt, t.pinching = !0;\n }\n if (S.touches[0]) {\n var ve = t.projectIntoViewport(S.touches[0].clientX, S.touches[0].clientY);\n Y[0] = ve[0], Y[1] = ve[1];\n }\n if (S.touches[1]) {\n var ve = t.projectIntoViewport(S.touches[1].clientX, S.touches[1].clientY);\n Y[2] = ve[0], Y[3] = ve[1];\n }\n if (S.touches[2]) {\n var ve = t.projectIntoViewport(S.touches[2].clientX, S.touches[2].clientY);\n Y[4] = ve[0], Y[5] = ve[1];\n }\n } else if (S.touches[0] && !t.touchData.didSelect) {\n var Or = t.touchData.start, yl = t.touchData.last, xt;\n if (!t.hoverData.draggingEles && !t.swipePanning && (xt = t.findNearestElement(Y[0], Y[1], !0, !0)), z && Or != null && S.preventDefault(), z && Or != null && t.nodeIsDraggable(Or))\n if (Me) {\n var Tt = t.dragData.touchDragEles, Fc = !t.dragData.didDrag;\n Fc && f(Tt, {\n inDragLayer: !0\n }), t.dragData.didDrag = !0;\n var ki = {\n x: 0,\n y: 0\n };\n if (be(_e[0]) && be(_e[1]) && (ki.x += _e[0], ki.y += _e[1], Fc)) {\n t.redrawHint(\"eles\", !0);\n var Lr = t.touchData.dragDelta;\n Lr && be(Lr[0]) && be(Lr[1]) && (ki.x += Lr[0], ki.y += Lr[1]);\n }\n t.hoverData.draggingEles = !0, Tt.silentShift(ki).emit(\"position drag\"), t.redrawHint(\"drag\", !0), t.touchData.startPosition[0] == pe[0] && t.touchData.startPosition[1] == pe[1] && t.redrawHint(\"eles\", !0), t.redraw();\n } else {\n var Lr = t.touchData.dragDelta = t.touchData.dragDelta || [];\n Lr.length === 0 ? (Lr.push(_e[0]), Lr.push(_e[1])) : (Lr[0] += _e[0], Lr[1] += _e[1]);\n }\n if (n(Or || xt, [\"touchmove\", \"tapdrag\", \"vmousemove\"], S, {\n x: Y[0],\n y: Y[1]\n }), (!Or || !Or.grabbed()) && xt != yl && (yl && yl.emit({\n originalEvent: S,\n type: \"tapdragout\",\n position: {\n x: Y[0],\n y: Y[1]\n }\n }), xt && xt.emit({\n originalEvent: S,\n type: \"tapdragover\",\n position: {\n x: Y[0],\n y: Y[1]\n }\n })), t.touchData.last = xt, z)\n for (var Bt = 0; Bt < Y.length; Bt++)\n Y[Bt] && t.touchData.startPosition[Bt] && Me && (t.touchData.singleTouchMoved = !0);\n if (z && (Or == null || Or.pannable()) && j.panningEnabled() && j.userPanningEnabled()) {\n var h0 = i(Or, t.touchData.starts);\n h0 && (S.preventDefault(), t.data.bgActivePosistion || (t.data.bgActivePosistion = Ha(t.touchData.startPosition)), t.swipePanning ? (j.panBy({\n x: _e[0] * re,\n y: _e[1] * re\n }), j.emit(\"dragpan\")) : Me && (t.swipePanning = !0, j.panBy({\n x: Te * re,\n y: ut * re\n }), j.emit(\"dragpan\"), Or && (Or.unactivate(), t.redrawHint(\"select\", !0), t.touchData.start = null)));\n var ve = t.projectIntoViewport(S.touches[0].clientX, S.touches[0].clientY);\n Y[0] = ve[0], Y[1] = ve[1];\n }\n }\n for (var Ne = 0; Ne < Y.length; Ne++)\n pe[Ne] = Y[Ne];\n z && S.touches.length > 0 && !t.hoverData.draggingEles && !t.swipePanning && t.data.bgActivePosistion != null && (t.data.bgActivePosistion = void 0, t.redrawHint(\"select\", !0), t.redraw());\n }\n }, !1);\n var Q;\n t.registerBinding(e, \"touchcancel\", Q = function(S) {\n var z = t.touchData.start;\n t.touchData.capture = !1, z && z.unactivate();\n });\n var ge, Ee, fe, me;\n if (t.registerBinding(e, \"touchend\", ge = function(S) {\n var z = t.touchData.start, ae = t.touchData.capture;\n if (ae)\n S.touches.length === 0 && (t.touchData.capture = !1), S.preventDefault();\n else\n return;\n var j = t.selection;\n t.swipePanning = !1, t.hoverData.draggingEles = !1;\n var Y = t.cy, pe = Y.zoom(), re = t.touchData.now, ve = t.touchData.earlier;\n if (S.touches[0]) {\n var Ae = t.projectIntoViewport(S.touches[0].clientX, S.touches[0].clientY);\n re[0] = Ae[0], re[1] = Ae[1];\n }\n if (S.touches[1]) {\n var Ae = t.projectIntoViewport(S.touches[1].clientX, S.touches[1].clientY);\n re[2] = Ae[0], re[3] = Ae[1];\n }\n if (S.touches[2]) {\n var Ae = t.projectIntoViewport(S.touches[2].clientX, S.touches[2].clientY);\n re[4] = Ae[0], re[5] = Ae[1];\n }\n z && z.unactivate();\n var Me;\n if (t.touchData.cxt) {\n if (Me = {\n originalEvent: S,\n type: \"cxttapend\",\n position: {\n x: re[0],\n y: re[1]\n }\n }, z ? z.emit(Me) : Y.emit(Me), !t.touchData.cxtDragged) {\n var _e = {\n originalEvent: S,\n type: \"cxttap\",\n position: {\n x: re[0],\n y: re[1]\n }\n };\n z ? z.emit(_e) : Y.emit(_e);\n }\n t.touchData.start && (t.touchData.start._private.grabbed = !1), t.touchData.cxt = !1, t.touchData.start = null, t.redraw();\n return;\n }\n if (!S.touches[2] && Y.boxSelectionEnabled() && t.touchData.selecting) {\n t.touchData.selecting = !1;\n var Ne = Y.collection(t.getAllInBox(j[0], j[1], j[2], j[3]));\n j[0] = void 0, j[1] = void 0, j[2] = void 0, j[3] = void 0, j[4] = 0, t.redrawHint(\"select\", !0), Y.emit({\n type: \"boxend\",\n originalEvent: S,\n position: {\n x: re[0],\n y: re[1]\n }\n });\n var Te = function(jt) {\n return jt.selectable() && !jt.selected();\n };\n Ne.emit(\"box\").stdFilter(Te).select().emit(\"boxselect\"), Ne.nonempty() && t.redrawHint(\"eles\", !0), t.redraw();\n }\n if (z != null && z.unactivate(), S.touches[2])\n t.data.bgActivePosistion = void 0, t.redrawHint(\"select\", !0);\n else if (!S.touches[1]) {\n if (!S.touches[0]) {\n if (!S.touches[0]) {\n t.data.bgActivePosistion = void 0, t.redrawHint(\"select\", !0);\n var Oe = t.dragData.touchDragEles;\n if (z != null) {\n var ut = z._private.grabbed;\n m(Oe), t.redrawHint(\"drag\", !0), t.redrawHint(\"eles\", !0), ut && (z.emit(\"freeon\"), Oe.emit(\"free\"), t.dragData.didDrag && (z.emit(\"dragfreeon\"), Oe.emit(\"dragfree\"))), n(z, [\"touchend\", \"tapend\", \"vmouseup\", \"tapdragout\"], S, {\n x: re[0],\n y: re[1]\n }), z.unactivate(), t.touchData.start = null;\n } else {\n var nt = t.findNearestElement(re[0], re[1], !0, !0);\n n(nt, [\"touchend\", \"tapend\", \"vmouseup\", \"tapdragout\"], S, {\n x: re[0],\n y: re[1]\n });\n }\n var kt = t.touchData.startPosition[0] - re[0], St = kt * kt, wt = t.touchData.startPosition[1] - re[1], Zt = wt * wt, Pt = St + Zt, Mt = Pt * pe * pe;\n t.touchData.singleTouchMoved || (z || Y.$(\":selected\").unselect([\"tapunselect\"]), n(z, [\"tap\", \"vclick\"], S, {\n x: re[0],\n y: re[1]\n }), Ee = !1, S.timeStamp - me <= Y.multiClickDebounceTime() ? (fe && clearTimeout(fe), Ee = !0, me = null, n(z, [\"dbltap\", \"vdblclick\"], S, {\n x: re[0],\n y: re[1]\n })) : (fe = setTimeout(function() {\n Ee || n(z, [\"onetap\", \"voneclick\"], S, {\n x: re[0],\n y: re[1]\n });\n }, Y.multiClickDebounceTime()), me = S.timeStamp)), z != null && !t.dragData.didDrag && z._private.selectable && Mt < t.touchTapThreshold2 && !t.pinching && (Y.selectionType() === \"single\" ? (Y.$(r).unmerge(z).unselect([\"tapunselect\"]), z.select([\"tapselect\"])) : z.selected() ? z.unselect([\"tapunselect\"]) : z.select([\"tapselect\"]), t.redrawHint(\"eles\", !0)), t.touchData.singleTouchMoved = !0;\n }\n }\n }\n for (var gr = 0; gr < re.length; gr++)\n ve[gr] = re[gr];\n t.dragData.didDrag = !1, S.touches.length === 0 && (t.touchData.dragDelta = [], t.touchData.startPosition = [null, null, null, null, null, null], t.touchData.startGPosition = null, t.touchData.didSelect = !1), S.touches.length < 2 && (S.touches.length === 1 && (t.touchData.startGPosition = [S.touches[0].clientX, S.touches[0].clientY]), t.pinching = !1, t.redrawHint(\"eles\", !0), t.redraw());\n }, !1), typeof TouchEvent > \"u\") {\n var xe = [], ke = function(S) {\n return {\n clientX: S.clientX,\n clientY: S.clientY,\n force: 1,\n identifier: S.pointerId,\n pageX: S.pageX,\n pageY: S.pageY,\n radiusX: S.width / 2,\n radiusY: S.height / 2,\n screenX: S.screenX,\n screenY: S.screenY,\n target: S.target\n };\n }, Ce = function(S) {\n return {\n event: S,\n touch: ke(S)\n };\n }, De = function(S) {\n xe.push(Ce(S));\n }, qe = function(S) {\n for (var z = 0; z < xe.length; z++) {\n var ae = xe[z];\n if (ae.event.pointerId === S.pointerId) {\n xe.splice(z, 1);\n return;\n }\n }\n }, Ke = function(S) {\n var z = xe.filter(function(ae) {\n return ae.event.pointerId === S.pointerId;\n })[0];\n z.event = S, z.touch = ke(S);\n }, Be = function(S) {\n S.touches = xe.map(function(z) {\n return z.touch;\n });\n }, Ge = function(S) {\n return S.pointerType === \"mouse\" || S.pointerType === 4;\n };\n t.registerBinding(t.container, \"pointerdown\", function(le) {\n Ge(le) || (le.preventDefault(), De(le), Be(le), $(le));\n }), t.registerBinding(t.container, \"pointerup\", function(le) {\n Ge(le) || (qe(le), Be(le), ge(le));\n }), t.registerBinding(t.container, \"pointercancel\", function(le) {\n Ge(le) || (qe(le), Be(le), Q(le));\n }), t.registerBinding(t.container, \"pointermove\", function(le) {\n Ge(le) || (le.preventDefault(), Ke(le), Be(le), G(le));\n });\n }\n};\nvar Cn = {};\nCn.generatePolygon = function(t, e) {\n return this.nodeShapes[t] = {\n renderer: this,\n name: t,\n points: e,\n draw: function(n, a, i, o, s, u) {\n this.renderer.nodeShapeImpl(\"polygon\", n, a, i, o, s, this.points);\n },\n intersectLine: function(n, a, i, o, s, u, l, c) {\n return oo(s, u, this.points, n, a, i / 2, o / 2, l);\n },\n checkPoint: function(n, a, i, o, s, u, l, c) {\n return mn(n, a, this.points, u, l, o, s, [0, -1], i);\n }\n };\n};\nCn.generateEllipse = function() {\n return this.nodeShapes.ellipse = {\n renderer: this,\n name: \"ellipse\",\n draw: function(e, r, n, a, i, o) {\n this.renderer.nodeShapeImpl(this.name, e, r, n, a, i);\n },\n intersectLine: function(e, r, n, a, i, o, s, u) {\n return n4(i, o, e, r, n / 2 + s, a / 2 + s);\n },\n checkPoint: function(e, r, n, a, i, o, s, u) {\n return la(e, r, a, i, o, s, n);\n }\n };\n};\nCn.generateRoundPolygon = function(t, e) {\n return this.nodeShapes[t] = {\n renderer: this,\n name: t,\n points: e,\n getOrCreateCorners: function(n, a, i, o, s, u, l) {\n if (u[l] !== void 0 && u[l + \"-cx\"] === n && u[l + \"-cy\"] === a)\n return u[l];\n u[l] = new Array(e.length / 2), u[l + \"-cx\"] = n, u[l + \"-cy\"] = a;\n var c = i / 2, d = o / 2;\n s = s === \"auto\" ? mp(i, o) : s;\n for (var v = new Array(e.length / 2), h = 0; h < e.length / 2; h++)\n v[h] = {\n x: n + c * e[h * 2],\n y: a + d * e[h * 2 + 1]\n };\n var f, p, m, g, y = v.length;\n for (p = v[y - 1], f = 0; f < y; f++)\n m = v[f % y], g = v[(f + 1) % y], u[l][f] = Tc(p, m, g, s), p = m, m = g;\n return u[l];\n },\n draw: function(n, a, i, o, s, u, l) {\n this.renderer.nodeShapeImpl(\"round-polygon\", n, a, i, o, s, this.points, this.getOrCreateCorners(a, i, o, s, u, l, \"drawCorners\"));\n },\n intersectLine: function(n, a, i, o, s, u, l, c, d) {\n return a4(s, u, this.points, n, a, i, o, l, this.getOrCreateCorners(n, a, i, o, c, d, \"corners\"));\n },\n checkPoint: function(n, a, i, o, s, u, l, c, d) {\n return r4(n, a, this.points, u, l, o, s, this.getOrCreateCorners(u, l, o, s, c, d, \"corners\"));\n }\n };\n};\nCn.generateRoundRectangle = function() {\n return this.nodeShapes[\"round-rectangle\"] = this.nodeShapes.roundrectangle = {\n renderer: this,\n name: \"round-rectangle\",\n points: sr(4, 0),\n draw: function(e, r, n, a, i, o) {\n this.renderer.nodeShapeImpl(this.name, e, r, n, a, i, this.points, o);\n },\n intersectLine: function(e, r, n, a, i, o, s, u) {\n return pp(i, o, e, r, n, a, s, u);\n },\n checkPoint: function(e, r, n, a, i, o, s, u) {\n var l = a / 2, c = i / 2;\n u = u === \"auto\" ? ba(a, i) : u, u = Math.min(l, c, u);\n var d = u * 2;\n return !!(mn(e, r, this.points, o, s, a, i - d, [0, -1], n) || mn(e, r, this.points, o, s, a - d, i, [0, -1], n) || la(e, r, d, d, o - l + u, s - c + u, n) || la(e, r, d, d, o + l - u, s - c + u, n) || la(e, r, d, d, o + l - u, s + c - u, n) || la(e, r, d, d, o - l + u, s + c - u, n));\n }\n };\n};\nCn.generateCutRectangle = function() {\n return this.nodeShapes[\"cut-rectangle\"] = this.nodeShapes.cutrectangle = {\n renderer: this,\n name: \"cut-rectangle\",\n cornerLength: hc(),\n points: sr(4, 0),\n draw: function(e, r, n, a, i, o) {\n this.renderer.nodeShapeImpl(this.name, e, r, n, a, i, null, o);\n },\n generateCutTrianglePts: function(e, r, n, a, i) {\n var o = i === \"auto\" ? this.cornerLength : i, s = r / 2, u = e / 2, l = n - u, c = n + u, d = a - s, v = a + s;\n return {\n topLeft: [l, d + o, l + o, d, l + o, d + o],\n topRight: [c - o, d, c, d + o, c - o, d + o],\n bottomRight: [c, v - o, c - o, v, c - o, v - o],\n bottomLeft: [l + o, v, l, v - o, l + o, v - o]\n };\n },\n intersectLine: function(e, r, n, a, i, o, s, u) {\n var l = this.generateCutTrianglePts(n + 2 * s, a + 2 * s, e, r, u), c = [].concat.apply([], [l.topLeft.splice(0, 4), l.topRight.splice(0, 4), l.bottomRight.splice(0, 4), l.bottomLeft.splice(0, 4)]);\n return oo(i, o, c, e, r);\n },\n checkPoint: function(e, r, n, a, i, o, s, u) {\n var l = u === \"auto\" ? this.cornerLength : u;\n if (mn(e, r, this.points, o, s, a, i - 2 * l, [0, -1], n) || mn(e, r, this.points, o, s, a - 2 * l, i, [0, -1], n))\n return !0;\n var c = this.generateCutTrianglePts(a, i, o, s);\n return dr(e, r, c.topLeft) || dr(e, r, c.topRight) || dr(e, r, c.bottomRight) || dr(e, r, c.bottomLeft);\n }\n };\n};\nCn.generateBarrel = function() {\n return this.nodeShapes.barrel = {\n renderer: this,\n name: \"barrel\",\n points: sr(4, 0),\n draw: function(e, r, n, a, i, o) {\n this.renderer.nodeShapeImpl(this.name, e, r, n, a, i);\n },\n intersectLine: function(e, r, n, a, i, o, s, u) {\n var l = 0.15, c = 0.5, d = 0.85, v = this.generateBarrelBezierPts(n + 2 * s, a + 2 * s, e, r), h = function(m) {\n var g = Ga({\n x: m[0],\n y: m[1]\n }, {\n x: m[2],\n y: m[3]\n }, {\n x: m[4],\n y: m[5]\n }, l), y = Ga({\n x: m[0],\n y: m[1]\n }, {\n x: m[2],\n y: m[3]\n }, {\n x: m[4],\n y: m[5]\n }, c), b = Ga({\n x: m[0],\n y: m[1]\n }, {\n x: m[2],\n y: m[3]\n }, {\n x: m[4],\n y: m[5]\n }, d);\n return [m[0], m[1], g.x, g.y, y.x, y.y, b.x, b.y, m[4], m[5]];\n }, f = [].concat(h(v.topLeft), h(v.topRight), h(v.bottomRight), h(v.bottomLeft));\n return oo(i, o, f, e, r);\n },\n generateBarrelBezierPts: function(e, r, n, a) {\n var i = r / 2, o = e / 2, s = n - o, u = n + o, l = a - i, c = a + i, d = lu(e, r), v = d.heightOffset, h = d.widthOffset, f = d.ctrlPtOffsetPct * e, p = {\n topLeft: [s, l + v, s + f, l, s + h, l],\n topRight: [u - h, l, u - f, l, u, l + v],\n bottomRight: [u, c - v, u - f, c, u - h, c],\n bottomLeft: [s + h, c, s + f, c, s, c - v]\n };\n return p.topLeft.isTop = !0, p.topRight.isTop = !0, p.bottomLeft.isBottom = !0, p.bottomRight.isBottom = !0, p;\n },\n checkPoint: function(e, r, n, a, i, o, s, u) {\n var l = lu(a, i), c = l.heightOffset, d = l.widthOffset;\n if (mn(e, r, this.points, o, s, a, i - 2 * c, [0, -1], n) || mn(e, r, this.points, o, s, a - 2 * d, i, [0, -1], n))\n return !0;\n for (var v = this.generateBarrelBezierPts(a, i, o, s), h = function(T, k, _) {\n var D = _[4], O = _[2], F = _[0], L = _[5], B = _[1], I = Math.min(D, F), M = Math.max(D, F), A = Math.min(L, B), R = Math.max(L, B);\n if (I <= T && T <= M && A <= k && k <= R) {\n var K = i4(D, O, F), H = Q5(K[0], K[1], K[2], T), q = H.filter(function(ee) {\n return 0 <= ee && ee <= 1;\n });\n if (q.length > 0)\n return q[0];\n }\n return null;\n }, f = Object.keys(v), p = 0; p < f.length; p++) {\n var m = f[p], g = v[m], y = h(e, r, g);\n if (y != null) {\n var b = g[5], w = g[3], C = g[1], E = Nt(b, w, C, y);\n if (g.isTop && E <= r || g.isBottom && r <= E)\n return !0;\n }\n }\n return !1;\n }\n };\n};\nCn.generateBottomRoundrectangle = function() {\n return this.nodeShapes[\"bottom-round-rectangle\"] = this.nodeShapes.bottomroundrectangle = {\n renderer: this,\n name: \"bottom-round-rectangle\",\n points: sr(4, 0),\n draw: function(e, r, n, a, i, o) {\n this.renderer.nodeShapeImpl(this.name, e, r, n, a, i, this.points, o);\n },\n intersectLine: function(e, r, n, a, i, o, s, u) {\n var l = e - (n / 2 + s), c = r - (a / 2 + s), d = c, v = e + (n / 2 + s), h = Nn(i, o, e, r, l, c, v, d, !1);\n return h.length > 0 ? h : pp(i, o, e, r, n, a, s, u);\n },\n checkPoint: function(e, r, n, a, i, o, s, u) {\n u = u === \"auto\" ? ba(a, i) : u;\n var l = 2 * u;\n if (mn(e, r, this.points, o, s, a, i - l, [0, -1], n) || mn(e, r, this.points, o, s, a - l, i, [0, -1], n))\n return !0;\n var c = a / 2 + 2 * n, d = i / 2 + 2 * n, v = [o - c, s - d, o - c, s, o + c, s, o + c, s - d];\n return !!(dr(e, r, v) || la(e, r, l, l, o + a / 2 - u, s + i / 2 - u, n) || la(e, r, l, l, o - a / 2 + u, s + i / 2 - u, n));\n }\n };\n};\nCn.registerNodeShapes = function() {\n var t = this.nodeShapes = {}, e = this;\n this.generateEllipse(), this.generatePolygon(\"triangle\", sr(3, 0)), this.generateRoundPolygon(\"round-triangle\", sr(3, 0)), this.generatePolygon(\"rectangle\", sr(4, 0)), t.square = t.rectangle, this.generateRoundRectangle(), this.generateCutRectangle(), this.generateBarrel(), this.generateBottomRoundrectangle();\n {\n var r = [0, 1, 1, 0, 0, -1, -1, 0];\n this.generatePolygon(\"diamond\", r), this.generateRoundPolygon(\"round-diamond\", r);\n }\n this.generatePolygon(\"pentagon\", sr(5, 0)), this.generateRoundPolygon(\"round-pentagon\", sr(5, 0)), this.generatePolygon(\"hexagon\", sr(6, 0)), this.generateRoundPolygon(\"round-hexagon\", sr(6, 0)), this.generatePolygon(\"heptagon\", sr(7, 0)), this.generateRoundPolygon(\"round-heptagon\", sr(7, 0)), this.generatePolygon(\"octagon\", sr(8, 0)), this.generateRoundPolygon(\"round-octagon\", sr(8, 0));\n var n = new Array(20);\n {\n var a = su(5, 0), i = su(5, Math.PI / 5), o = 0.5 * (3 - Math.sqrt(5));\n o *= 1.57;\n for (var s = 0; s < i.length / 2; s++)\n i[s * 2] *= o, i[s * 2 + 1] *= o;\n for (var s = 0; s < 20 / 4; s++)\n n[s * 4] = a[s * 2], n[s * 4 + 1] = a[s * 2 + 1], n[s * 4 + 2] = i[s * 2], n[s * 4 + 3] = i[s * 2 + 1];\n }\n n = gp(n), this.generatePolygon(\"star\", n), this.generatePolygon(\"vee\", [-1, -1, 0, -0.333, 1, -1, 0, 1]), this.generatePolygon(\"rhomboid\", [-1, -1, 0.333, -1, 1, 1, -0.333, 1]), this.generatePolygon(\"right-rhomboid\", [-0.333, -1, 1, -1, 0.333, 1, -1, 1]), this.nodeShapes.concavehexagon = this.generatePolygon(\"concave-hexagon\", [-1, -0.95, -0.75, 0, -1, 0.95, 1, 0.95, 0.75, 0, 1, -0.95]);\n {\n var u = [-1, -1, 0.25, -1, 1, 0, 0.25, 1, -1, 1];\n this.generatePolygon(\"tag\", u), this.generateRoundPolygon(\"round-tag\", u);\n }\n t.makePolygon = function(l) {\n var c = l.join(\"$\"), d = \"polygon-\" + c, v;\n return (v = this[d]) ? v : e.generatePolygon(d, l);\n };\n};\nvar Ao = {};\nAo.timeToRender = function() {\n return this.redrawTotalTime / this.redrawCount;\n};\nAo.redraw = function(t) {\n t = t || cp();\n var e = this;\n e.averageRedrawTime === void 0 && (e.averageRedrawTime = 0), e.lastRedrawTime === void 0 && (e.lastRedrawTime = 0), e.lastDrawTime === void 0 && (e.lastDrawTime = 0), e.requestedFrame = !0, e.renderOptions = t;\n};\nAo.beforeRender = function(t, e) {\n if (!this.destroyed) {\n e == null && yt(\"Priority is not optional for beforeRender\");\n var r = this.beforeRenderCallbacks;\n r.push({\n fn: t,\n priority: e\n }), r.sort(function(n, a) {\n return a.priority - n.priority;\n });\n }\n};\nvar iv = function(e, r, n) {\n for (var a = e.beforeRenderCallbacks, i = 0; i < a.length; i++)\n a[i].fn(r, n);\n};\nAo.startRenderLoop = function() {\n var t = this, e = t.cy;\n if (!t.renderLoopStarted) {\n t.renderLoopStarted = !0;\n var r = function n(a) {\n if (!t.destroyed) {\n if (!e.batching()) if (t.requestedFrame && !t.skipFrame) {\n iv(t, !0, a);\n var i = gn();\n t.render(t.renderOptions);\n var o = t.lastDrawTime = gn();\n t.averageRedrawTime === void 0 && (t.averageRedrawTime = o - i), t.redrawCount === void 0 && (t.redrawCount = 0), t.redrawCount++, t.redrawTotalTime === void 0 && (t.redrawTotalTime = 0);\n var s = o - i;\n t.redrawTotalTime += s, t.lastRedrawTime = s, t.averageRedrawTime = t.averageRedrawTime / 2 + s / 2, t.requestedFrame = !1;\n } else\n iv(t, !1, a);\n t.skipFrame = !1, Ps(n);\n }\n };\n Ps(r);\n }\n};\nvar zP = function(e) {\n this.init(e);\n}, pg = zP, xi = pg.prototype;\nxi.clientFunctions = [\"redrawHint\", \"render\", \"renderTo\", \"matchCanvasSize\", \"nodeShapeImpl\", \"arrowShapeImpl\"];\nxi.init = function(t) {\n var e = this;\n e.options = t, e.cy = t.cy;\n var r = e.container = t.cy.container(), n = e.cy.window();\n if (n) {\n var a = n.document, i = a.head, o = \"__________cytoscape_stylesheet\", s = \"__________cytoscape_container\", u = a.getElementById(o) != null;\n if (r.className.indexOf(s) < 0 && (r.className = (r.className || \"\") + \" \" + s), !u) {\n var l = a.createElement(\"style\");\n l.id = o, l.textContent = \".\" + s + \" { position: relative; }\", i.insertBefore(l, i.children[0]);\n }\n var c = n.getComputedStyle(r), d = c.getPropertyValue(\"position\");\n d === \"static\" && tt(\"A Cytoscape container has style position:static and so can not use UI extensions properly\");\n }\n e.selection = [void 0, void 0, void 0, void 0, 0], e.bezierProjPcts = [0.05, 0.225, 0.4, 0.5, 0.6, 0.775, 0.95], e.hoverData = {\n down: null,\n last: null,\n downTime: null,\n triggerMode: null,\n dragging: !1,\n initialPan: [null, null],\n capture: !1\n }, e.dragData = {\n possibleDragElements: []\n }, e.touchData = {\n start: null,\n capture: !1,\n // These 3 fields related to tap, taphold events\n startPosition: [null, null, null, null, null, null],\n singleTouchStartTime: null,\n singleTouchMoved: !0,\n now: [null, null, null, null, null, null],\n earlier: [null, null, null, null, null, null]\n }, e.redraws = 0, e.showFps = t.showFps, e.debug = t.debug, e.hideEdgesOnViewport = t.hideEdgesOnViewport, e.textureOnViewport = t.textureOnViewport, e.wheelSensitivity = t.wheelSensitivity, e.motionBlurEnabled = t.motionBlur, e.forcedPixelRatio = be(t.pixelRatio) ? t.pixelRatio : null, e.motionBlur = t.motionBlur, e.motionBlurOpacity = t.motionBlurOpacity, e.motionBlurTransparency = 1 - e.motionBlurOpacity, e.motionBlurPxRatio = 1, e.mbPxRBlurry = 1, e.minMbLowQualFrames = 4, e.fullQualityMb = !1, e.clearedForMotionBlur = [], e.desktopTapThreshold = t.desktopTapThreshold, e.desktopTapThreshold2 = t.desktopTapThreshold * t.desktopTapThreshold, e.touchTapThreshold = t.touchTapThreshold, e.touchTapThreshold2 = t.touchTapThreshold * t.touchTapThreshold, e.tapholdDuration = 500, e.bindings = [], e.beforeRenderCallbacks = [], e.beforeRenderPriorities = {\n // higher priority execs before lower one\n animations: 400,\n eleCalcs: 300,\n eleTxrDeq: 200,\n lyrTxrDeq: 150,\n lyrTxrSkip: 100\n }, e.registerNodeShapes(), e.registerArrowShapes(), e.registerCalculationListeners();\n};\nxi.notify = function(t, e) {\n var r = this, n = r.cy;\n if (!this.destroyed) {\n if (t === \"init\") {\n r.load();\n return;\n }\n if (t === \"destroy\") {\n r.destroy();\n return;\n }\n (t === \"add\" || t === \"remove\" || t === \"move\" && n.hasCompoundNodes() || t === \"load\" || t === \"zorder\" || t === \"mount\") && r.invalidateCachedZSortedEles(), t === \"viewport\" && r.redrawHint(\"select\", !0), (t === \"load\" || t === \"resize\" || t === \"mount\") && (r.invalidateContainerClientCoordsCache(), r.matchCanvasSize(r.container)), r.redrawHint(\"eles\", !0), r.redrawHint(\"drag\", !0), this.startRenderLoop(), this.redraw();\n }\n};\nxi.destroy = function() {\n var t = this;\n t.destroyed = !0, t.cy.stopAnimationLoop();\n for (var e = 0; e < t.bindings.length; e++) {\n var r = t.bindings[e], n = r, a = n.target;\n (a.off || a.removeEventListener).apply(a, n.args);\n }\n if (t.bindings = [], t.beforeRenderCallbacks = [], t.onUpdateEleCalcsFns = [], t.removeObserver && t.removeObserver.disconnect(), t.styleObserver && t.styleObserver.disconnect(), t.resizeObserver && t.resizeObserver.disconnect(), t.labelCalcDiv)\n try {\n document.body.removeChild(t.labelCalcDiv);\n } catch {\n }\n};\nxi.isHeadless = function() {\n return !1;\n};\n[Sc, vg, hg, wi, Cn, Ao].forEach(function(t) {\n Re(xi, t);\n});\nvar ql = 1e3 / 60, gg = {\n setupDequeueing: function(e) {\n return function() {\n var n = this, a = this.renderer;\n if (!n.dequeueingSetup) {\n n.dequeueingSetup = !0;\n var i = tl(function() {\n a.redrawHint(\"eles\", !0), a.redrawHint(\"drag\", !0), a.redraw();\n }, e.deqRedrawThreshold), o = function(l, c) {\n var d = gn(), v = a.averageRedrawTime, h = a.lastRedrawTime, f = [], p = a.cy.extent(), m = a.getPixelRatio();\n for (l || a.flushRenderedStyleQueue(); ; ) {\n var g = gn(), y = g - d, b = g - c;\n if (h < ql) {\n var w = ql - (l ? v : 0);\n if (b >= e.deqFastCost * w)\n break;\n } else if (l) {\n if (y >= e.deqCost * h || y >= e.deqAvgCost * v)\n break;\n } else if (b >= e.deqNoDrawCost * ql)\n break;\n var C = e.deq(n, m, p);\n if (C.length > 0)\n for (var E = 0; E < C.length; E++)\n f.push(C[E]);\n else\n break;\n }\n f.length > 0 && (e.onDeqd(n, f), !l && e.shouldRedraw(n, f, m, p) && i());\n }, s = e.priority || cc;\n a.beforeRender(o, s(n));\n }\n };\n }\n}, VP = /* @__PURE__ */ function() {\n function t(e) {\n var r = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : Os;\n ic(this, t), this.idsByKey = new Xr(), this.keyForId = new Xr(), this.cachesByLvl = new Xr(), this.lvls = [], this.getKey = e, this.doesEleInvalidateKey = r;\n }\n return oc(t, [{\n key: \"getIdsFor\",\n value: function(r) {\n r == null && yt(\"Can not get id list for null key\");\n var n = this.idsByKey, a = this.idsByKey.get(r);\n return a || (a = new vi(), n.set(r, a)), a;\n }\n }, {\n key: \"addIdForKey\",\n value: function(r, n) {\n r != null && this.getIdsFor(r).add(n);\n }\n }, {\n key: \"deleteIdForKey\",\n value: function(r, n) {\n r != null && this.getIdsFor(r).delete(n);\n }\n }, {\n key: \"getNumberOfIdsForKey\",\n value: function(r) {\n return r == null ? 0 : this.getIdsFor(r).size;\n }\n }, {\n key: \"updateKeyMappingFor\",\n value: function(r) {\n var n = r.id(), a = this.keyForId.get(n), i = this.getKey(r);\n this.deleteIdForKey(a, n), this.addIdForKey(i, n), this.keyForId.set(n, i);\n }\n }, {\n key: \"deleteKeyMappingFor\",\n value: function(r) {\n var n = r.id(), a = this.keyForId.get(n);\n this.deleteIdForKey(a, n), this.keyForId.delete(n);\n }\n }, {\n key: \"keyHasChangedFor\",\n value: function(r) {\n var n = r.id(), a = this.keyForId.get(n), i = this.getKey(r);\n return a !== i;\n }\n }, {\n key: \"isInvalid\",\n value: function(r) {\n return this.keyHasChangedFor(r) || this.doesEleInvalidateKey(r);\n }\n }, {\n key: \"getCachesAt\",\n value: function(r) {\n var n = this.cachesByLvl, a = this.lvls, i = n.get(r);\n return i || (i = new Xr(), n.set(r, i), a.push(r)), i;\n }\n }, {\n key: \"getCache\",\n value: function(r, n) {\n return this.getCachesAt(n).get(r);\n }\n }, {\n key: \"get\",\n value: function(r, n) {\n var a = this.getKey(r), i = this.getCache(a, n);\n return i != null && this.updateKeyMappingFor(r), i;\n }\n }, {\n key: \"getForCachedKey\",\n value: function(r, n) {\n var a = this.keyForId.get(r.id()), i = this.getCache(a, n);\n return i;\n }\n }, {\n key: \"hasCache\",\n value: function(r, n) {\n return this.getCachesAt(n).has(r);\n }\n }, {\n key: \"has\",\n value: function(r, n) {\n var a = this.getKey(r);\n return this.hasCache(a, n);\n }\n }, {\n key: \"setCache\",\n value: function(r, n, a) {\n a.key = r, this.getCachesAt(n).set(r, a);\n }\n }, {\n key: \"set\",\n value: function(r, n, a) {\n var i = this.getKey(r);\n this.setCache(i, n, a), this.updateKeyMappingFor(r);\n }\n }, {\n key: \"deleteCache\",\n value: function(r, n) {\n this.getCachesAt(n).delete(r);\n }\n }, {\n key: \"delete\",\n value: function(r, n) {\n var a = this.getKey(r);\n this.deleteCache(a, n);\n }\n }, {\n key: \"invalidateKey\",\n value: function(r) {\n var n = this;\n this.lvls.forEach(function(a) {\n return n.deleteCache(r, a);\n });\n }\n // returns true if no other eles reference the invalidated cache (n.b. other eles may need the cache with the same key)\n }, {\n key: \"invalidate\",\n value: function(r) {\n var n = r.id(), a = this.keyForId.get(n);\n this.deleteKeyMappingFor(r);\n var i = this.doesEleInvalidateKey(r);\n return i && this.invalidateKey(a), i || this.getNumberOfIdsForKey(a) === 0;\n }\n }]), t;\n}(), ov = 25, ns = 50, ms = -4, bu = 3, HP = 7.99, qP = 8, KP = 1024, UP = 1024, GP = 1024, WP = 0.2, YP = 0.8, ZP = 10, XP = 0.15, jP = 0.1, QP = 0.9, JP = 0.9, eO = 100, tO = 1, qa = {\n dequeue: \"dequeue\",\n downscale: \"downscale\",\n highQuality: \"highQuality\"\n}, rO = Wt({\n getKey: null,\n doesEleInvalidateKey: Os,\n drawElement: null,\n getBoundingBox: null,\n getRotationPoint: null,\n getRotationOffset: null,\n isVisible: sp,\n allowEdgeTxrCaching: !0,\n allowParentTxrCaching: !0\n}), Ri = function(e, r) {\n var n = this;\n n.renderer = e, n.onDequeues = [];\n var a = rO(r);\n Re(n, a), n.lookup = new VP(a.getKey, a.doesEleInvalidateKey), n.setupDequeueing();\n}, At = Ri.prototype;\nAt.reasons = qa;\nAt.getTextureQueue = function(t) {\n var e = this;\n return e.eleImgCaches = e.eleImgCaches || {}, e.eleImgCaches[t] = e.eleImgCaches[t] || [];\n};\nAt.getRetiredTextureQueue = function(t) {\n var e = this, r = e.eleImgCaches.retired = e.eleImgCaches.retired || {}, n = r[t] = r[t] || [];\n return n;\n};\nAt.getElementQueue = function() {\n var t = this, e = t.eleCacheQueue = t.eleCacheQueue || new Oo(function(r, n) {\n return n.reqs - r.reqs;\n });\n return e;\n};\nAt.getElementKeyToQueue = function() {\n var t = this, e = t.eleKeyToCacheQueue = t.eleKeyToCacheQueue || {};\n return e;\n};\nAt.getElement = function(t, e, r, n, a) {\n var i = this, o = this.renderer, s = o.cy.zoom(), u = this.lookup;\n if (!e || e.w === 0 || e.h === 0 || isNaN(e.w) || isNaN(e.h) || !t.visible() || t.removed() || !i.allowEdgeTxrCaching && t.isEdge() || !i.allowParentTxrCaching && t.isParent())\n return null;\n if (n == null && (n = Math.ceil(fc(s * r))), n < ms)\n n = ms;\n else if (s >= HP || n > bu)\n return null;\n var l = Math.pow(2, n), c = e.h * l, d = e.w * l, v = o.eleTextBiggerThanMin(t, l);\n if (!this.isVisible(t, v))\n return null;\n var h = u.get(t, n);\n if (h && h.invalidated && (h.invalidated = !1, h.texture.invalidatedWidth -= h.width), h)\n return h;\n var f;\n if (c <= ov ? f = ov : c <= ns ? f = ns : f = Math.ceil(c / ns) * ns, c > GP || d > UP)\n return null;\n var p = i.getTextureQueue(f), m = p[p.length - 2], g = function() {\n return i.recycleTexture(f, d) || i.addTexture(f, d);\n };\n m || (m = p[p.length - 1]), m || (m = g()), m.width - m.usedWidth < d && (m = g());\n for (var y = function(I) {\n return I && I.scaledLabelShown === v;\n }, b = a && a === qa.dequeue, w = a && a === qa.highQuality, C = a && a === qa.downscale, E, x = n + 1; x <= bu; x++) {\n var T = u.get(t, x);\n if (T) {\n E = T;\n break;\n }\n }\n var k = E && E.level === n + 1 ? E : null, _ = function() {\n m.context.drawImage(k.texture.canvas, k.x, 0, k.width, k.height, m.usedWidth, 0, d, c);\n };\n if (m.context.setTransform(1, 0, 0, 1, 0, 0), m.context.clearRect(m.usedWidth, 0, d, f), y(k))\n _();\n else if (y(E))\n if (w) {\n for (var D = E.level; D > n; D--)\n k = i.getElement(t, e, r, D, qa.downscale);\n _();\n } else\n return i.queueElement(t, E.level - 1), E;\n else {\n var O;\n if (!b && !w && !C)\n for (var F = n - 1; F >= ms; F--) {\n var L = u.get(t, F);\n if (L) {\n O = L;\n break;\n }\n }\n if (y(O))\n return i.queueElement(t, n), O;\n m.context.translate(m.usedWidth, 0), m.context.scale(l, l), this.drawElement(m.context, t, e, v, !1), m.context.scale(1 / l, 1 / l), m.context.translate(-m.usedWidth, 0);\n }\n return h = {\n x: m.usedWidth,\n texture: m,\n level: n,\n scale: l,\n width: d,\n height: c,\n scaledLabelShown: v\n }, m.usedWidth += Math.ceil(d + qP), m.eleCaches.push(h), u.set(t, n, h), i.checkTextureFullness(m), h;\n};\nAt.invalidateElements = function(t) {\n for (var e = 0; e < t.length; e++)\n this.invalidateElement(t[e]);\n};\nAt.invalidateElement = function(t) {\n var e = this, r = e.lookup, n = [], a = r.isInvalid(t);\n if (a) {\n for (var i = ms; i <= bu; i++) {\n var o = r.getForCachedKey(t, i);\n o && n.push(o);\n }\n var s = r.invalidate(t);\n if (s)\n for (var u = 0; u < n.length; u++) {\n var l = n[u], c = l.texture;\n c.invalidatedWidth += l.width, l.invalidated = !0, e.checkTextureUtility(c);\n }\n e.removeFromQueue(t);\n }\n};\nAt.checkTextureUtility = function(t) {\n t.invalidatedWidth >= WP * t.width && this.retireTexture(t);\n};\nAt.checkTextureFullness = function(t) {\n var e = this, r = e.getTextureQueue(t.height);\n t.usedWidth / t.width > YP && t.fullnessChecks >= ZP ? Kn(r, t) : t.fullnessChecks++;\n};\nAt.retireTexture = function(t) {\n var e = this, r = t.height, n = e.getTextureQueue(r), a = this.lookup;\n Kn(n, t), t.retired = !0;\n for (var i = t.eleCaches, o = 0; o < i.length; o++) {\n var s = i[o];\n a.deleteCache(s.key, s.level);\n }\n dc(i);\n var u = e.getRetiredTextureQueue(r);\n u.push(t);\n};\nAt.addTexture = function(t, e) {\n var r = this, n = r.getTextureQueue(t), a = {};\n return n.push(a), a.eleCaches = [], a.height = t, a.width = Math.max(KP, e), a.usedWidth = 0, a.invalidatedWidth = 0, a.fullnessChecks = 0, a.canvas = r.renderer.makeOffscreenCanvas(a.width, a.height), a.context = a.canvas.getContext(\"2d\"), a;\n};\nAt.recycleTexture = function(t, e) {\n for (var r = this, n = r.getTextureQueue(t), a = r.getRetiredTextureQueue(t), i = 0; i < a.length; i++) {\n var o = a[i];\n if (o.width >= e)\n return o.retired = !1, o.usedWidth = 0, o.invalidatedWidth = 0, o.fullnessChecks = 0, dc(o.eleCaches), o.context.setTransform(1, 0, 0, 1, 0, 0), o.context.clearRect(0, 0, o.width, o.height), Kn(a, o), n.push(o), o;\n }\n};\nAt.queueElement = function(t, e) {\n var r = this, n = r.getElementQueue(), a = r.getElementKeyToQueue(), i = this.getKey(t), o = a[i];\n if (o)\n o.level = Math.max(o.level, e), o.eles.merge(t), o.reqs++, n.updateItem(o);\n else {\n var s = {\n eles: t.spawn().merge(t),\n level: e,\n reqs: 1,\n key: i\n };\n n.push(s), a[i] = s;\n }\n};\nAt.dequeue = function(t) {\n for (var e = this, r = e.getElementQueue(), n = e.getElementKeyToQueue(), a = [], i = e.lookup, o = 0; o < tO && r.size() > 0; o++) {\n var s = r.pop(), u = s.key, l = s.eles[0], c = i.hasCache(l, s.level);\n if (n[u] = null, c)\n continue;\n a.push(s);\n var d = e.getBoundingBox(l);\n e.getElement(l, d, t, s.level, qa.dequeue);\n }\n return a;\n};\nAt.removeFromQueue = function(t) {\n var e = this, r = e.getElementQueue(), n = e.getElementKeyToQueue(), a = this.getKey(t), i = n[a];\n i != null && (i.eles.length === 1 ? (i.reqs = uc, r.updateItem(i), r.pop(), n[a] = null) : i.eles.unmerge(t));\n};\nAt.onDequeue = function(t) {\n this.onDequeues.push(t);\n};\nAt.offDequeue = function(t) {\n Kn(this.onDequeues, t);\n};\nAt.setupDequeueing = gg.setupDequeueing({\n deqRedrawThreshold: eO,\n deqCost: XP,\n deqAvgCost: jP,\n deqNoDrawCost: QP,\n deqFastCost: JP,\n deq: function(e, r, n) {\n return e.dequeue(r, n);\n },\n onDeqd: function(e, r) {\n for (var n = 0; n < e.onDequeues.length; n++) {\n var a = e.onDequeues[n];\n a(r);\n }\n },\n shouldRedraw: function(e, r, n, a) {\n for (var i = 0; i < r.length; i++)\n for (var o = r[i].eles, s = 0; s < o.length; s++) {\n var u = o[s].boundingBox();\n if (vc(u, a))\n return !0;\n }\n return !1;\n },\n priority: function(e) {\n return e.renderer.beforeRenderPriorities.eleTxrDeq;\n }\n});\nvar nO = 1, Ui = -4, $s = 2, aO = 3.99, iO = 50, oO = 50, sO = 0.15, lO = 0.1, uO = 0.9, cO = 0.9, dO = 1, sv = 250, fO = 4e3 * 4e3, vO = !0, mg = function(e) {\n var r = this, n = r.renderer = e, a = n.cy;\n r.layersByLevel = {}, r.firstGet = !0, r.lastInvalidationTime = gn() - 2 * sv, r.skipping = !1, r.eleTxrDeqs = a.collection(), r.scheduleElementRefinement = tl(function() {\n r.refineElementTextures(r.eleTxrDeqs), r.eleTxrDeqs.unmerge(r.eleTxrDeqs);\n }, oO), n.beforeRender(function(o, s) {\n s - r.lastInvalidationTime <= sv ? r.skipping = !0 : r.skipping = !1;\n }, n.beforeRenderPriorities.lyrTxrSkip);\n var i = function(s, u) {\n return u.reqs - s.reqs;\n };\n r.layersQueue = new Oo(i), r.setupDequeueing();\n}, Yt = mg.prototype, lv = 0, hO = Math.pow(2, 53) - 1;\nYt.makeLayer = function(t, e) {\n var r = Math.pow(2, e), n = Math.ceil(t.w * r), a = Math.ceil(t.h * r), i = this.renderer.makeOffscreenCanvas(n, a), o = {\n id: lv = ++lv % hO,\n bb: t,\n level: e,\n width: n,\n height: a,\n canvas: i,\n context: i.getContext(\"2d\"),\n eles: [],\n elesQueue: [],\n reqs: 0\n }, s = o.context, u = -o.bb.x1, l = -o.bb.y1;\n return s.scale(r, r), s.translate(u, l), o;\n};\nYt.getLayers = function(t, e, r) {\n var n = this, a = n.renderer, i = a.cy, o = i.zoom(), s = n.firstGet;\n if (n.firstGet = !1, r == null) {\n if (r = Math.ceil(fc(o * e)), r < Ui)\n r = Ui;\n else if (o >= aO || r > $s)\n return null;\n }\n n.validateLayersElesOrdering(r, t);\n var u = n.layersByLevel, l = Math.pow(2, r), c = u[r] = u[r] || [], d, v = n.levelIsComplete(r, t), h, f = function() {\n var _ = function(B) {\n if (n.validateLayersElesOrdering(B, t), n.levelIsComplete(B, t))\n return h = u[B], !0;\n }, D = function(B) {\n if (!h)\n for (var I = r + B; Ui <= I && I <= $s && !_(I); I += B)\n ;\n };\n D(1), D(-1);\n for (var O = c.length - 1; O >= 0; O--) {\n var F = c[O];\n F.invalid && Kn(c, F);\n }\n };\n if (!v)\n f();\n else\n return c;\n var p = function() {\n if (!d) {\n d = pr();\n for (var _ = 0; _ < t.length; _++)\n vp(d, t[_].boundingBox());\n }\n return d;\n }, m = function(_) {\n _ = _ || {};\n var D = _.after;\n p();\n var O = d.w * l * (d.h * l);\n if (O > fO)\n return null;\n var F = n.makeLayer(d, r);\n if (D != null) {\n var L = c.indexOf(D) + 1;\n c.splice(L, 0, F);\n } else (_.insert === void 0 || _.insert) && c.unshift(F);\n return F;\n };\n if (n.skipping && !s)\n return null;\n for (var g = null, y = t.length / nO, b = !s, w = 0; w < t.length; w++) {\n var C = t[w], E = C._private.rscratch, x = E.imgLayerCaches = E.imgLayerCaches || {}, T = x[r];\n if (T) {\n g = T;\n continue;\n }\n if ((!g || g.eles.length >= y || !hp(g.bb, C.boundingBox())) && (g = m({\n insert: !0,\n after: g\n }), !g))\n return null;\n h || b ? n.queueLayer(g, C) : n.drawEleInLayer(g, C, r, e), g.eles.push(C), x[r] = g;\n }\n return h || (b ? null : c);\n};\nYt.getEleLevelForLayerLevel = function(t, e) {\n return t;\n};\nYt.drawEleInLayer = function(t, e, r, n) {\n var a = this, i = this.renderer, o = t.context, s = e.boundingBox();\n s.w === 0 || s.h === 0 || !e.visible() || (r = a.getEleLevelForLayerLevel(r, n), i.setImgSmoothing(o, !1), i.drawCachedElement(o, e, null, null, r, vO), i.setImgSmoothing(o, !0));\n};\nYt.levelIsComplete = function(t, e) {\n var r = this, n = r.layersByLevel[t];\n if (!n || n.length === 0)\n return !1;\n for (var a = 0, i = 0; i < n.length; i++) {\n var o = n[i];\n if (o.reqs > 0 || o.invalid)\n return !1;\n a += o.eles.length;\n }\n return a === e.length;\n};\nYt.validateLayersElesOrdering = function(t, e) {\n var r = this.layersByLevel[t];\n if (r)\n for (var n = 0; n < r.length; n++) {\n for (var a = r[n], i = -1, o = 0; o < e.length; o++)\n if (a.eles[0] === e[o]) {\n i = o;\n break;\n }\n if (i < 0) {\n this.invalidateLayer(a);\n continue;\n }\n for (var s = i, o = 0; o < a.eles.length; o++)\n if (a.eles[o] !== e[s + o]) {\n this.invalidateLayer(a);\n break;\n }\n }\n};\nYt.updateElementsInLayers = function(t, e) {\n for (var r = this, n = Do(t[0]), a = 0; a < t.length; a++)\n for (var i = n ? null : t[a], o = n ? t[a] : t[a].ele, s = o._private.rscratch, u = s.imgLayerCaches = s.imgLayerCaches || {}, l = Ui; l <= $s; l++) {\n var c = u[l];\n c && (i && r.getEleLevelForLayerLevel(c.level) !== i.level || e(c, o, i));\n }\n};\nYt.haveLayers = function() {\n for (var t = this, e = !1, r = Ui; r <= $s; r++) {\n var n = t.layersByLevel[r];\n if (n && n.length > 0) {\n e = !0;\n break;\n }\n }\n return e;\n};\nYt.invalidateElements = function(t) {\n var e = this;\n t.length !== 0 && (e.lastInvalidationTime = gn(), !(t.length === 0 || !e.haveLayers()) && e.updateElementsInLayers(t, function(n, a, i) {\n e.invalidateLayer(n);\n }));\n};\nYt.invalidateLayer = function(t) {\n if (this.lastInvalidationTime = gn(), !t.invalid) {\n var e = t.level, r = t.eles, n = this.layersByLevel[e];\n Kn(n, t), t.elesQueue = [], t.invalid = !0, t.replacement && (t.replacement.invalid = !0);\n for (var a = 0; a < r.length; a++) {\n var i = r[a]._private.rscratch.imgLayerCaches;\n i && (i[e] = null);\n }\n }\n};\nYt.refineElementTextures = function(t) {\n var e = this;\n e.updateElementsInLayers(t, function(n, a, i) {\n var o = n.replacement;\n if (o || (o = n.replacement = e.makeLayer(n.bb, n.level), o.replaces = n, o.eles = n.eles), !o.reqs)\n for (var s = 0; s < o.eles.length; s++)\n e.queueLayer(o, o.eles[s]);\n });\n};\nYt.enqueueElementRefinement = function(t) {\n this.eleTxrDeqs.merge(t), this.scheduleElementRefinement();\n};\nYt.queueLayer = function(t, e) {\n var r = this, n = r.layersQueue, a = t.elesQueue, i = a.hasId = a.hasId || {};\n if (!t.replacement) {\n if (e) {\n if (i[e.id()])\n return;\n a.push(e), i[e.id()] = !0;\n }\n t.reqs ? (t.reqs++, n.updateItem(t)) : (t.reqs = 1, n.push(t));\n }\n};\nYt.dequeue = function(t) {\n for (var e = this, r = e.layersQueue, n = [], a = 0; a < dO && r.size() !== 0; ) {\n var i = r.peek();\n if (i.replacement) {\n r.pop();\n continue;\n }\n if (i.replaces && i !== i.replaces.replacement) {\n r.pop();\n continue;\n }\n if (i.invalid) {\n r.pop();\n continue;\n }\n var o = i.elesQueue.shift();\n o && (e.drawEleInLayer(i, o, i.level, t), a++), n.length === 0 && n.push(!0), i.elesQueue.length === 0 && (r.pop(), i.reqs = 0, i.replaces && e.applyLayerReplacement(i), e.requestRedraw());\n }\n return n;\n};\nYt.applyLayerReplacement = function(t) {\n var e = this, r = e.layersByLevel[t.level], n = t.replaces, a = r.indexOf(n);\n if (!(a < 0 || n.invalid)) {\n r[a] = t;\n for (var i = 0; i < t.eles.length; i++) {\n var o = t.eles[i]._private, s = o.imgLayerCaches = o.imgLayerCaches || {};\n s && (s[t.level] = t);\n }\n e.requestRedraw();\n }\n};\nYt.requestRedraw = tl(function() {\n var t = this.renderer;\n t.redrawHint(\"eles\", !0), t.redrawHint(\"drag\", !0), t.redraw();\n}, 100);\nYt.setupDequeueing = gg.setupDequeueing({\n deqRedrawThreshold: iO,\n deqCost: sO,\n deqAvgCost: lO,\n deqNoDrawCost: uO,\n deqFastCost: cO,\n deq: function(e, r) {\n return e.dequeue(r);\n },\n onDeqd: cc,\n shouldRedraw: sp,\n priority: function(e) {\n return e.renderer.beforeRenderPriorities.lyrTxrDeq;\n }\n});\nvar yg = {}, uv;\nfunction pO(t, e) {\n for (var r = 0; r < e.length; r++) {\n var n = e[r];\n t.lineTo(n.x, n.y);\n }\n}\nfunction gO(t, e, r) {\n for (var n, a = 0; a < e.length; a++) {\n var i = e[a];\n a === 0 && (n = i), t.lineTo(i.x, i.y);\n }\n t.quadraticCurveTo(r.x, r.y, n.x, n.y);\n}\nfunction cv(t, e, r) {\n t.beginPath && t.beginPath();\n for (var n = e, a = 0; a < n.length; a++) {\n var i = n[a];\n t.lineTo(i.x, i.y);\n }\n var o = r, s = r[0];\n t.moveTo(s.x, s.y);\n for (var a = 1; a < o.length; a++) {\n var i = o[a];\n t.lineTo(i.x, i.y);\n }\n t.closePath && t.closePath();\n}\nfunction mO(t, e, r, n, a) {\n t.beginPath && t.beginPath(), t.arc(r, n, a, 0, Math.PI * 2, !1);\n var i = e, o = i[0];\n t.moveTo(o.x, o.y);\n for (var s = 0; s < i.length; s++) {\n var u = i[s];\n t.lineTo(u.x, u.y);\n }\n t.closePath && t.closePath();\n}\nfunction yO(t, e, r, n) {\n t.arc(e, r, n, 0, Math.PI * 2, !1);\n}\nyg.arrowShapeImpl = function(t) {\n return (uv || (uv = {\n polygon: pO,\n \"triangle-backcurve\": gO,\n \"triangle-tee\": cv,\n \"circle-triangle\": mO,\n \"triangle-cross\": cv,\n circle: yO\n }))[t];\n};\nvar on = {};\non.drawElement = function(t, e, r, n, a, i) {\n var o = this;\n e.isNode() ? o.drawNode(t, e, r, n, a, i) : o.drawEdge(t, e, r, n, a, i);\n};\non.drawElementOverlay = function(t, e) {\n var r = this;\n e.isNode() ? r.drawNodeOverlay(t, e) : r.drawEdgeOverlay(t, e);\n};\non.drawElementUnderlay = function(t, e) {\n var r = this;\n e.isNode() ? r.drawNodeUnderlay(t, e) : r.drawEdgeUnderlay(t, e);\n};\non.drawCachedElementPortion = function(t, e, r, n, a, i, o, s) {\n var u = this, l = r.getBoundingBox(e);\n if (!(l.w === 0 || l.h === 0)) {\n var c = r.getElement(e, l, n, a, i);\n if (c != null) {\n var d = s(u, e);\n if (d === 0)\n return;\n var v = o(u, e), h = l.x1, f = l.y1, p = l.w, m = l.h, g, y, b, w, C;\n if (v !== 0) {\n var E = r.getRotationPoint(e);\n b = E.x, w = E.y, t.translate(b, w), t.rotate(v), C = u.getImgSmoothing(t), C || u.setImgSmoothing(t, !0);\n var x = r.getRotationOffset(e);\n g = x.x, y = x.y;\n } else\n g = h, y = f;\n var T;\n d !== 1 && (T = t.globalAlpha, t.globalAlpha = T * d), t.drawImage(c.texture.canvas, c.x, 0, c.width, c.height, g, y, p, m), d !== 1 && (t.globalAlpha = T), v !== 0 && (t.rotate(-v), t.translate(-b, -w), C || u.setImgSmoothing(t, !1));\n } else\n r.drawElement(t, e);\n }\n};\nvar bO = function() {\n return 0;\n}, wO = function(e, r) {\n return e.getTextAngle(r, null);\n}, xO = function(e, r) {\n return e.getTextAngle(r, \"source\");\n}, CO = function(e, r) {\n return e.getTextAngle(r, \"target\");\n}, EO = function(e, r) {\n return r.effectiveOpacity();\n}, Kl = function(e, r) {\n return r.pstyle(\"text-opacity\").pfValue * r.effectiveOpacity();\n};\non.drawCachedElement = function(t, e, r, n, a, i) {\n var o = this, s = o.data, u = s.eleTxrCache, l = s.lblTxrCache, c = s.slbTxrCache, d = s.tlbTxrCache, v = e.boundingBox(), h = i === !0 ? u.reasons.highQuality : null;\n if (!(v.w === 0 || v.h === 0 || !e.visible()) && (!n || vc(v, n))) {\n var f = e.isEdge(), p = e.element()._private.rscratch.badLine;\n o.drawElementUnderlay(t, e), o.drawCachedElementPortion(t, e, u, r, a, h, bO, EO), (!f || !p) && o.drawCachedElementPortion(t, e, l, r, a, h, wO, Kl), f && !p && (o.drawCachedElementPortion(t, e, c, r, a, h, xO, Kl), o.drawCachedElementPortion(t, e, d, r, a, h, CO, Kl)), o.drawElementOverlay(t, e);\n }\n};\non.drawElements = function(t, e) {\n for (var r = this, n = 0; n < e.length; n++) {\n var a = e[n];\n r.drawElement(t, a);\n }\n};\non.drawCachedElements = function(t, e, r, n) {\n for (var a = this, i = 0; i < e.length; i++) {\n var o = e[i];\n a.drawCachedElement(t, o, r, n);\n }\n};\non.drawCachedNodes = function(t, e, r, n) {\n for (var a = this, i = 0; i < e.length; i++) {\n var o = e[i];\n o.isNode() && a.drawCachedElement(t, o, r, n);\n }\n};\non.drawLayeredElements = function(t, e, r, n) {\n var a = this, i = a.data.lyrTxrCache.getLayers(e, r);\n if (i)\n for (var o = 0; o < i.length; o++) {\n var s = i[o], u = s.bb;\n u.w === 0 || u.h === 0 || t.drawImage(s.canvas, u.x1, u.y1, u.w, u.h);\n }\n else\n a.drawCachedElements(t, e, r, n);\n};\nvar En = {};\nEn.drawEdge = function(t, e, r) {\n var n = arguments.length > 3 && arguments[3] !== void 0 ? arguments[3] : !0, a = arguments.length > 4 && arguments[4] !== void 0 ? arguments[4] : !0, i = arguments.length > 5 && arguments[5] !== void 0 ? arguments[5] : !0, o = this, s = e._private.rscratch;\n if (!(i && !e.visible()) && !(s.badLine || s.allpts == null || isNaN(s.allpts[0]))) {\n var u;\n r && (u = r, t.translate(-u.x1, -u.y1));\n var l = i ? e.pstyle(\"opacity\").value : 1, c = i ? e.pstyle(\"line-opacity\").value : 1, d = e.pstyle(\"curve-style\").value, v = e.pstyle(\"line-style\").value, h = e.pstyle(\"width\").pfValue, f = e.pstyle(\"line-cap\").value, p = e.pstyle(\"line-outline-width\").value, m = e.pstyle(\"line-outline-color\").value, g = l * c, y = l * c, b = function() {\n var B = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : g;\n d === \"straight-triangle\" ? (o.eleStrokeStyle(t, e, B), o.drawEdgeTrianglePath(e, t, s.allpts)) : (t.lineWidth = h, t.lineCap = f, o.eleStrokeStyle(t, e, B), o.drawEdgePath(e, t, s.allpts, v), t.lineCap = \"butt\");\n }, w = function() {\n var B = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : g;\n if (t.lineWidth = h + p, t.lineCap = f, p > 0)\n o.colorStrokeStyle(t, m[0], m[1], m[2], B);\n else {\n t.lineCap = \"butt\";\n return;\n }\n d === \"straight-triangle\" ? o.drawEdgeTrianglePath(e, t, s.allpts) : (o.drawEdgePath(e, t, s.allpts, v), t.lineCap = \"butt\");\n }, C = function() {\n a && o.drawEdgeOverlay(t, e);\n }, E = function() {\n a && o.drawEdgeUnderlay(t, e);\n }, x = function() {\n var B = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : y;\n o.drawArrowheads(t, e, B);\n }, T = function() {\n o.drawElementText(t, e, null, n);\n };\n t.lineJoin = \"round\";\n var k = e.pstyle(\"ghost\").value === \"yes\";\n if (k) {\n var _ = e.pstyle(\"ghost-offset-x\").pfValue, D = e.pstyle(\"ghost-offset-y\").pfValue, O = e.pstyle(\"ghost-opacity\").value, F = g * O;\n t.translate(_, D), b(F), x(F), t.translate(-_, -D);\n } else\n w();\n E(), b(), x(), C(), T(), r && t.translate(u.x1, u.y1);\n }\n};\nvar bg = function(e) {\n if (![\"overlay\", \"underlay\"].includes(e))\n throw new Error(\"Invalid state\");\n return function(r, n) {\n if (n.visible()) {\n var a = n.pstyle(\"\".concat(e, \"-opacity\")).value;\n if (a !== 0) {\n var i = this, o = i.usePaths(), s = n._private.rscratch, u = n.pstyle(\"\".concat(e, \"-padding\")).pfValue, l = 2 * u, c = n.pstyle(\"\".concat(e, \"-color\")).value;\n r.lineWidth = l, s.edgeType === \"self\" && !o ? r.lineCap = \"butt\" : r.lineCap = \"round\", i.colorStrokeStyle(r, c[0], c[1], c[2], a), i.drawEdgePath(n, r, s.allpts, \"solid\");\n }\n }\n };\n};\nEn.drawEdgeOverlay = bg(\"overlay\");\nEn.drawEdgeUnderlay = bg(\"underlay\");\nEn.drawEdgePath = function(t, e, r, n) {\n var a = t._private.rscratch, i = e, o, s = !1, u = this.usePaths(), l = t.pstyle(\"line-dash-pattern\").pfValue, c = t.pstyle(\"line-dash-offset\").pfValue;\n if (u) {\n var d = r.join(\"$\"), v = a.pathCacheKey && a.pathCacheKey === d;\n v ? (o = e = a.pathCache, s = !0) : (o = e = new Path2D(), a.pathCacheKey = d, a.pathCache = o);\n }\n if (i.setLineDash)\n switch (n) {\n case \"dotted\":\n i.setLineDash([1, 1]);\n break;\n case \"dashed\":\n i.setLineDash(l), i.lineDashOffset = c;\n break;\n case \"solid\":\n i.setLineDash([]);\n break;\n }\n if (!s && !a.badLine)\n switch (e.beginPath && e.beginPath(), e.moveTo(r[0], r[1]), a.edgeType) {\n case \"bezier\":\n case \"self\":\n case \"compound\":\n case \"multibezier\":\n for (var h = 2; h + 3 < r.length; h += 4)\n e.quadraticCurveTo(r[h], r[h + 1], r[h + 2], r[h + 3]);\n break;\n case \"straight\":\n case \"haystack\":\n for (var f = 2; f + 1 < r.length; f += 2)\n e.lineTo(r[f], r[f + 1]);\n break;\n case \"segments\":\n if (a.isRound) {\n var p = Wh(a.roundCorners), m;\n try {\n for (p.s(); !(m = p.n()).done; ) {\n var g = m.value;\n lg(e, g);\n }\n } catch (b) {\n p.e(b);\n } finally {\n p.f();\n }\n e.lineTo(r[r.length - 2], r[r.length - 1]);\n } else\n for (var y = 2; y + 1 < r.length; y += 2)\n e.lineTo(r[y], r[y + 1]);\n break;\n }\n e = i, u ? e.stroke(o) : e.stroke(), e.setLineDash && e.setLineDash([]);\n};\nEn.drawEdgeTrianglePath = function(t, e, r) {\n e.fillStyle = e.strokeStyle;\n for (var n = t.pstyle(\"width\").pfValue, a = 0; a + 1 < r.length; a += 2) {\n var i = [r[a + 2] - r[a], r[a + 3] - r[a + 1]], o = Math.sqrt(i[0] * i[0] + i[1] * i[1]), s = [i[1] / o, -i[0] / o], u = [s[0] * n / 2, s[1] * n / 2];\n e.beginPath(), e.moveTo(r[a] - u[0], r[a + 1] - u[1]), e.lineTo(r[a] + u[0], r[a + 1] + u[1]), e.lineTo(r[a + 2], r[a + 3]), e.closePath(), e.fill();\n }\n};\nEn.drawArrowheads = function(t, e, r) {\n var n = e._private.rscratch, a = n.edgeType === \"haystack\";\n a || this.drawArrowhead(t, e, \"source\", n.arrowStartX, n.arrowStartY, n.srcArrowAngle, r), this.drawArrowhead(t, e, \"mid-target\", n.midX, n.midY, n.midtgtArrowAngle, r), this.drawArrowhead(t, e, \"mid-source\", n.midX, n.midY, n.midsrcArrowAngle, r), a || this.drawArrowhead(t, e, \"target\", n.arrowEndX, n.arrowEndY, n.tgtArrowAngle, r);\n};\nEn.drawArrowhead = function(t, e, r, n, a, i, o) {\n if (!(isNaN(n) || n == null || isNaN(a) || a == null || isNaN(i) || i == null)) {\n var s = this, u = e.pstyle(r + \"-arrow-shape\").value;\n if (u !== \"none\") {\n var l = e.pstyle(r + \"-arrow-fill\").value === \"hollow\" ? \"both\" : \"filled\", c = e.pstyle(r + \"-arrow-fill\").value, d = e.pstyle(\"width\").pfValue, v = e.pstyle(r + \"-arrow-width\"), h = v.value === \"match-line\" ? d : v.pfValue;\n v.units === \"%\" && (h *= d);\n var f = e.pstyle(\"opacity\").value;\n o === void 0 && (o = f);\n var p = t.globalCompositeOperation;\n (o !== 1 || c === \"hollow\") && (t.globalCompositeOperation = \"destination-out\", s.colorFillStyle(t, 255, 255, 255, 1), s.colorStrokeStyle(t, 255, 255, 255, 1), s.drawArrowShape(e, t, l, d, u, h, n, a, i), t.globalCompositeOperation = p);\n var m = e.pstyle(r + \"-arrow-color\").value;\n s.colorFillStyle(t, m[0], m[1], m[2], o), s.colorStrokeStyle(t, m[0], m[1], m[2], o), s.drawArrowShape(e, t, c, d, u, h, n, a, i);\n }\n }\n};\nEn.drawArrowShape = function(t, e, r, n, a, i, o, s, u) {\n var l = this, c = this.usePaths() && a !== \"triangle-cross\", d = !1, v, h = e, f = {\n x: o,\n y: s\n }, p = t.pstyle(\"arrow-scale\").value, m = this.getArrowWidth(n, p), g = l.arrowShapes[a];\n if (c) {\n var y = l.arrowPathCache = l.arrowPathCache || [], b = ma(a), w = y[b];\n w != null ? (v = e = w, d = !0) : (v = e = new Path2D(), y[b] = v);\n }\n d || (e.beginPath && e.beginPath(), c ? g.draw(e, 1, 0, {\n x: 0,\n y: 0\n }, 1) : g.draw(e, m, u, f, n), e.closePath && e.closePath()), e = h, c && (e.translate(o, s), e.rotate(u), e.scale(m, m)), (r === \"filled\" || r === \"both\") && (c ? e.fill(v) : e.fill()), (r === \"hollow\" || r === \"both\") && (e.lineWidth = i / (c ? m : 1), e.lineJoin = \"miter\", c ? e.stroke(v) : e.stroke()), c && (e.scale(1 / m, 1 / m), e.rotate(-u), e.translate(-o, -s));\n};\nvar Dc = {};\nDc.safeDrawImage = function(t, e, r, n, a, i, o, s, u, l) {\n if (!(a <= 0 || i <= 0 || u <= 0 || l <= 0))\n try {\n t.drawImage(e, r, n, a, i, o, s, u, l);\n } catch (c) {\n tt(c);\n }\n};\nDc.drawInscribedImage = function(t, e, r, n, a) {\n var i = this, o = r.position(), s = o.x, u = o.y, l = r.cy().style(), c = l.getIndexedStyle.bind(l), d = c(r, \"background-fit\", \"value\", n), v = c(r, \"background-repeat\", \"value\", n), h = r.width(), f = r.height(), p = r.padding() * 2, m = h + (c(r, \"background-width-relative-to\", \"value\", n) === \"inner\" ? 0 : p), g = f + (c(r, \"background-height-relative-to\", \"value\", n) === \"inner\" ? 0 : p), y = r._private.rscratch, b = c(r, \"background-clip\", \"value\", n), w = b === \"node\", C = c(r, \"background-image-opacity\", \"value\", n) * a, E = c(r, \"background-image-smoothing\", \"value\", n), x = r.pstyle(\"corner-radius\").value;\n x !== \"auto\" && (x = r.pstyle(\"corner-radius\").pfValue);\n var T = e.width || e.cachedW, k = e.height || e.cachedH;\n (T == null || k == null) && (document.body.appendChild(e), T = e.cachedW = e.width || e.offsetWidth, k = e.cachedH = e.height || e.offsetHeight, document.body.removeChild(e));\n var _ = T, D = k;\n if (c(r, \"background-width\", \"value\", n) !== \"auto\" && (c(r, \"background-width\", \"units\", n) === \"%\" ? _ = c(r, \"background-width\", \"pfValue\", n) * m : _ = c(r, \"background-width\", \"pfValue\", n)), c(r, \"background-height\", \"value\", n) !== \"auto\" && (c(r, \"background-height\", \"units\", n) === \"%\" ? D = c(r, \"background-height\", \"pfValue\", n) * g : D = c(r, \"background-height\", \"pfValue\", n)), !(_ === 0 || D === 0)) {\n if (d === \"contain\") {\n var O = Math.min(m / _, g / D);\n _ *= O, D *= O;\n } else if (d === \"cover\") {\n var O = Math.max(m / _, g / D);\n _ *= O, D *= O;\n }\n var F = s - m / 2, L = c(r, \"background-position-x\", \"units\", n), B = c(r, \"background-position-x\", \"pfValue\", n);\n L === \"%\" ? F += (m - _) * B : F += B;\n var I = c(r, \"background-offset-x\", \"units\", n), M = c(r, \"background-offset-x\", \"pfValue\", n);\n I === \"%\" ? F += (m - _) * M : F += M;\n var A = u - g / 2, R = c(r, \"background-position-y\", \"units\", n), K = c(r, \"background-position-y\", \"pfValue\", n);\n R === \"%\" ? A += (g - D) * K : A += K;\n var H = c(r, \"background-offset-y\", \"units\", n), q = c(r, \"background-offset-y\", \"pfValue\", n);\n H === \"%\" ? A += (g - D) * q : A += q, y.pathCache && (F -= s, A -= u, s = 0, u = 0);\n var ee = t.globalAlpha;\n t.globalAlpha = C;\n var se = i.getImgSmoothing(t), oe = !1;\n if (E === \"no\" && se ? (i.setImgSmoothing(t, !1), oe = !0) : E === \"yes\" && !se && (i.setImgSmoothing(t, !0), oe = !0), v === \"no-repeat\")\n w && (t.save(), y.pathCache ? t.clip(y.pathCache) : (i.nodeShapes[i.getNodeShape(r)].draw(t, s, u, m, g, x, y), t.clip())), i.safeDrawImage(t, e, 0, 0, T, k, F, A, _, D), w && t.restore();\n else {\n var ne = t.createPattern(e, v);\n t.fillStyle = ne, i.nodeShapes[i.getNodeShape(r)].draw(t, s, u, m, g, x, y), t.translate(F, A), t.fill(), t.translate(-F, -A);\n }\n t.globalAlpha = ee, oe && i.setImgSmoothing(t, se);\n }\n};\nvar Pa = {};\nPa.eleTextBiggerThanMin = function(t, e) {\n if (!e) {\n var r = t.cy().zoom(), n = this.getPixelRatio(), a = Math.ceil(fc(r * n));\n e = Math.pow(2, a);\n }\n var i = t.pstyle(\"font-size\").pfValue * e, o = t.pstyle(\"min-zoomed-font-size\").pfValue;\n return !(i < o);\n};\nPa.drawElementText = function(t, e, r, n, a) {\n var i = arguments.length > 5 && arguments[5] !== void 0 ? arguments[5] : !0, o = this;\n if (n == null) {\n if (i && !o.eleTextBiggerThanMin(e))\n return;\n } else if (n === !1)\n return;\n if (e.isNode()) {\n var s = e.pstyle(\"label\");\n if (!s || !s.value)\n return;\n var u = o.getLabelJustification(e);\n t.textAlign = u, t.textBaseline = \"bottom\";\n } else {\n var l = e.element()._private.rscratch.badLine, c = e.pstyle(\"label\"), d = e.pstyle(\"source-label\"), v = e.pstyle(\"target-label\");\n if (l || (!c || !c.value) && (!d || !d.value) && (!v || !v.value))\n return;\n t.textAlign = \"center\", t.textBaseline = \"bottom\";\n }\n var h = !r, f;\n r && (f = r, t.translate(-f.x1, -f.y1)), a == null ? (o.drawText(t, e, null, h, i), e.isEdge() && (o.drawText(t, e, \"source\", h, i), o.drawText(t, e, \"target\", h, i))) : o.drawText(t, e, a, h, i), r && t.translate(f.x1, f.y1);\n};\nPa.getFontCache = function(t) {\n var e;\n this.fontCaches = this.fontCaches || [];\n for (var r = 0; r < this.fontCaches.length; r++)\n if (e = this.fontCaches[r], e.context === t)\n return e;\n return e = {\n context: t\n }, this.fontCaches.push(e), e;\n};\nPa.setupTextStyle = function(t, e) {\n var r = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : !0, n = e.pstyle(\"font-style\").strValue, a = e.pstyle(\"font-size\").pfValue + \"px\", i = e.pstyle(\"font-family\").strValue, o = e.pstyle(\"font-weight\").strValue, s = r ? e.effectiveOpacity() * e.pstyle(\"text-opacity\").value : 1, u = e.pstyle(\"text-outline-opacity\").value * s, l = e.pstyle(\"color\").value, c = e.pstyle(\"text-outline-color\").value;\n t.font = n + \" \" + o + \" \" + a + \" \" + i, t.lineJoin = \"round\", this.colorFillStyle(t, l[0], l[1], l[2], s), this.colorStrokeStyle(t, c[0], c[1], c[2], u);\n};\nfunction Ul(t, e, r, n, a) {\n var i = arguments.length > 5 && arguments[5] !== void 0 ? arguments[5] : 5, o = arguments.length > 6 ? arguments[6] : void 0;\n t.beginPath(), t.moveTo(e + i, r), t.lineTo(e + n - i, r), t.quadraticCurveTo(e + n, r, e + n, r + i), t.lineTo(e + n, r + a - i), t.quadraticCurveTo(e + n, r + a, e + n - i, r + a), t.lineTo(e + i, r + a), t.quadraticCurveTo(e, r + a, e, r + a - i), t.lineTo(e, r + i), t.quadraticCurveTo(e, r, e + i, r), t.closePath(), o ? t.stroke() : t.fill();\n}\nPa.getTextAngle = function(t, e) {\n var r, n = t._private, a = n.rscratch, i = e ? e + \"-\" : \"\", o = t.pstyle(i + \"text-rotation\"), s = Nr(a, \"labelAngle\", e);\n return o.strValue === \"autorotate\" ? r = t.isEdge() ? s : 0 : o.strValue === \"none\" ? r = 0 : r = o.pfValue, r;\n};\nPa.drawText = function(t, e, r) {\n var n = arguments.length > 3 && arguments[3] !== void 0 ? arguments[3] : !0, a = arguments.length > 4 && arguments[4] !== void 0 ? arguments[4] : !0, i = e._private, o = i.rscratch, s = a ? e.effectiveOpacity() : 1;\n if (!(a && (s === 0 || e.pstyle(\"text-opacity\").value === 0))) {\n r === \"main\" && (r = null);\n var u = Nr(o, \"labelX\", r), l = Nr(o, \"labelY\", r), c, d, v = this.getLabelText(e, r);\n if (v != null && v !== \"\" && !isNaN(u) && !isNaN(l)) {\n this.setupTextStyle(t, e, a);\n var h = r ? r + \"-\" : \"\", f = Nr(o, \"labelWidth\", r), p = Nr(o, \"labelHeight\", r), m = e.pstyle(h + \"text-margin-x\").pfValue, g = e.pstyle(h + \"text-margin-y\").pfValue, y = e.isEdge(), b = e.pstyle(\"text-halign\").value, w = e.pstyle(\"text-valign\").value;\n y && (b = \"center\", w = \"center\"), u += m, l += g;\n var C;\n switch (n ? C = this.getTextAngle(e, r) : C = 0, C !== 0 && (c = u, d = l, t.translate(c, d), t.rotate(C), u = 0, l = 0), w) {\n case \"top\":\n break;\n case \"center\":\n l += p / 2;\n break;\n case \"bottom\":\n l += p;\n break;\n }\n var E = e.pstyle(\"text-background-opacity\").value, x = e.pstyle(\"text-border-opacity\").value, T = e.pstyle(\"text-border-width\").pfValue, k = e.pstyle(\"text-background-padding\").pfValue, _ = e.pstyle(\"text-background-shape\").strValue, D = _.indexOf(\"round\") === 0, O = 2;\n if (E > 0 || T > 0 && x > 0) {\n var F = u - k;\n switch (b) {\n case \"left\":\n F -= f;\n break;\n case \"center\":\n F -= f / 2;\n break;\n }\n var L = l - p - k, B = f + 2 * k, I = p + 2 * k;\n if (E > 0) {\n var M = t.fillStyle, A = e.pstyle(\"text-background-color\").value;\n t.fillStyle = \"rgba(\" + A[0] + \",\" + A[1] + \",\" + A[2] + \",\" + E * s + \")\", D ? Ul(t, F, L, B, I, O) : t.fillRect(F, L, B, I), t.fillStyle = M;\n }\n if (T > 0 && x > 0) {\n var R = t.strokeStyle, K = t.lineWidth, H = e.pstyle(\"text-border-color\").value, q = e.pstyle(\"text-border-style\").value;\n if (t.strokeStyle = \"rgba(\" + H[0] + \",\" + H[1] + \",\" + H[2] + \",\" + x * s + \")\", t.lineWidth = T, t.setLineDash)\n switch (q) {\n case \"dotted\":\n t.setLineDash([1, 1]);\n break;\n case \"dashed\":\n t.setLineDash([4, 2]);\n break;\n case \"double\":\n t.lineWidth = T / 4, t.setLineDash([]);\n break;\n case \"solid\":\n t.setLineDash([]);\n break;\n }\n if (D ? Ul(t, F, L, B, I, O, \"stroke\") : t.strokeRect(F, L, B, I), q === \"double\") {\n var ee = T / 2;\n D ? Ul(t, F + ee, L + ee, B - ee * 2, I - ee * 2, O, \"stroke\") : t.strokeRect(F + ee, L + ee, B - ee * 2, I - ee * 2);\n }\n t.setLineDash && t.setLineDash([]), t.lineWidth = K, t.strokeStyle = R;\n }\n }\n var se = 2 * e.pstyle(\"text-outline-width\").pfValue;\n if (se > 0 && (t.lineWidth = se), e.pstyle(\"text-wrap\").value === \"wrap\") {\n var oe = Nr(o, \"labelWrapCachedLines\", r), ne = Nr(o, \"labelLineHeight\", r), ue = f / 2, te = this.getLabelJustification(e);\n switch (te === \"auto\" || (b === \"left\" ? te === \"left\" ? u += -f : te === \"center\" && (u += -ue) : b === \"center\" ? te === \"left\" ? u += -ue : te === \"right\" && (u += ue) : b === \"right\" && (te === \"center\" ? u += ue : te === \"right\" && (u += f))), w) {\n case \"top\":\n l -= (oe.length - 1) * ne;\n break;\n case \"center\":\n case \"bottom\":\n l -= (oe.length - 1) * ne;\n break;\n }\n for (var $ = 0; $ < oe.length; $++)\n se > 0 && t.strokeText(oe[$], u, l), t.fillText(oe[$], u, l), l += ne;\n } else\n se > 0 && t.strokeText(v, u, l), t.fillText(v, u, l);\n C !== 0 && (t.rotate(-C), t.translate(-c, -d));\n }\n }\n};\nvar Ci = {};\nCi.drawNode = function(t, e, r) {\n var n = arguments.length > 3 && arguments[3] !== void 0 ? arguments[3] : !0, a = arguments.length > 4 && arguments[4] !== void 0 ? arguments[4] : !0, i = arguments.length > 5 && arguments[5] !== void 0 ? arguments[5] : !0, o = this, s, u, l = e._private, c = l.rscratch, d = e.position();\n if (!(!be(d.x) || !be(d.y)) && !(i && !e.visible())) {\n var v = i ? e.effectiveOpacity() : 1, h = o.usePaths(), f, p = !1, m = e.padding();\n s = e.width() + 2 * m, u = e.height() + 2 * m;\n var g;\n r && (g = r, t.translate(-g.x1, -g.y1));\n for (var y = e.pstyle(\"background-image\"), b = y.value, w = new Array(b.length), C = new Array(b.length), E = 0, x = 0; x < b.length; x++) {\n var T = b[x], k = w[x] = T != null && T !== \"none\";\n if (k) {\n var _ = e.cy().style().getIndexedStyle(e, \"background-image-crossorigin\", \"value\", x);\n E++, C[x] = o.getCachedImage(T, _, function() {\n l.backgroundTimestamp = Date.now(), e.emitAndNotify(\"background\");\n });\n }\n }\n var D = e.pstyle(\"background-blacken\").value, O = e.pstyle(\"border-width\").pfValue, F = e.pstyle(\"background-opacity\").value * v, L = e.pstyle(\"border-color\").value, B = e.pstyle(\"border-style\").value, I = e.pstyle(\"border-join\").value, M = e.pstyle(\"border-cap\").value, A = e.pstyle(\"border-position\").value, R = e.pstyle(\"border-dash-pattern\").pfValue, K = e.pstyle(\"border-dash-offset\").pfValue, H = e.pstyle(\"border-opacity\").value * v, q = e.pstyle(\"outline-width\").pfValue, ee = e.pstyle(\"outline-color\").value, se = e.pstyle(\"outline-style\").value, oe = e.pstyle(\"outline-opacity\").value * v, ne = e.pstyle(\"outline-offset\").value, ue = e.pstyle(\"corner-radius\").value;\n ue !== \"auto\" && (ue = e.pstyle(\"corner-radius\").pfValue);\n var te = function() {\n var pe = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : F;\n o.eleFillStyle(t, e, pe);\n }, $ = function() {\n var pe = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : H;\n o.colorStrokeStyle(t, L[0], L[1], L[2], pe);\n }, G = function() {\n var pe = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : oe;\n o.colorStrokeStyle(t, ee[0], ee[1], ee[2], pe);\n }, Q = function(pe, re, ve, Ae) {\n var Me = o.nodePathCache = o.nodePathCache || [], _e = op(ve === \"polygon\" ? ve + \",\" + Ae.join(\",\") : ve, \"\" + re, \"\" + pe, \"\" + ue), Ne = Me[_e], Te, Oe = !1;\n return Ne != null ? (Te = Ne, Oe = !0, c.pathCache = Te) : (Te = new Path2D(), Me[_e] = c.pathCache = Te), {\n path: Te,\n cacheHit: Oe\n };\n }, ge = e.pstyle(\"shape\").strValue, Ee = e.pstyle(\"shape-polygon-points\").pfValue;\n if (h) {\n t.translate(d.x, d.y);\n var fe = Q(s, u, ge, Ee);\n f = fe.path, p = fe.cacheHit;\n }\n var me = function() {\n if (!p) {\n var pe = d;\n h && (pe = {\n x: 0,\n y: 0\n }), o.nodeShapes[o.getNodeShape(e)].draw(f || t, pe.x, pe.y, s, u, ue, c);\n }\n h ? t.fill(f) : t.fill();\n }, xe = function() {\n for (var pe = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : v, re = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : !0, ve = l.backgrounding, Ae = 0, Me = 0; Me < C.length; Me++) {\n var _e = e.cy().style().getIndexedStyle(e, \"background-image-containment\", \"value\", Me);\n if (re && _e === \"over\" || !re && _e === \"inside\") {\n Ae++;\n continue;\n }\n w[Me] && C[Me].complete && !C[Me].error && (Ae++, o.drawInscribedImage(t, C[Me], e, Me, pe));\n }\n l.backgrounding = Ae !== E, ve !== l.backgrounding && e.updateStyle(!1);\n }, ke = function() {\n var pe = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : !1, re = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : v;\n o.hasPie(e) && (o.drawPie(t, e, re), pe && (h || o.nodeShapes[o.getNodeShape(e)].draw(t, d.x, d.y, s, u, ue, c)));\n }, Ce = function() {\n var pe = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : v, re = (D > 0 ? D : -D) * pe, ve = D > 0 ? 0 : 255;\n D !== 0 && (o.colorFillStyle(t, ve, ve, ve, re), h ? t.fill(f) : t.fill());\n }, De = function() {\n if (O > 0) {\n if (t.lineWidth = O, t.lineCap = M, t.lineJoin = I, t.setLineDash)\n switch (B) {\n case \"dotted\":\n t.setLineDash([1, 1]);\n break;\n case \"dashed\":\n t.setLineDash(R), t.lineDashOffset = K;\n break;\n case \"solid\":\n case \"double\":\n t.setLineDash([]);\n break;\n }\n if (A !== \"center\") {\n if (t.save(), t.lineWidth *= 2, A === \"inside\")\n h ? t.clip(f) : t.clip();\n else {\n var pe = new Path2D();\n pe.rect(-s / 2 - O, -u / 2 - O, s + 2 * O, u + 2 * O), pe.addPath(f), t.clip(pe, \"evenodd\");\n }\n h ? t.stroke(f) : t.stroke(), t.restore();\n } else\n h ? t.stroke(f) : t.stroke();\n if (B === \"double\") {\n t.lineWidth = O / 3;\n var re = t.globalCompositeOperation;\n t.globalCompositeOperation = \"destination-out\", h ? t.stroke(f) : t.stroke(), t.globalCompositeOperation = re;\n }\n t.setLineDash && t.setLineDash([]);\n }\n }, qe = function() {\n if (q > 0) {\n if (t.lineWidth = q, t.lineCap = \"butt\", t.setLineDash)\n switch (se) {\n case \"dotted\":\n t.setLineDash([1, 1]);\n break;\n case \"dashed\":\n t.setLineDash([4, 2]);\n break;\n case \"solid\":\n case \"double\":\n t.setLineDash([]);\n break;\n }\n var pe = d;\n h && (pe = {\n x: 0,\n y: 0\n });\n var re = o.getNodeShape(e), ve = O;\n A === \"inside\" && (ve = 0), A === \"outside\" && (ve *= 2);\n var Ae = (s + ve + (q + ne)) / s, Me = (u + ve + (q + ne)) / u, _e = s * Ae, Ne = u * Me, Te = o.nodeShapes[re].points, Oe;\n if (h) {\n var ut = Q(_e, Ne, re, Te);\n Oe = ut.path;\n }\n if (re === \"ellipse\")\n o.drawEllipsePath(Oe || t, pe.x, pe.y, _e, Ne);\n else if ([\"round-diamond\", \"round-heptagon\", \"round-hexagon\", \"round-octagon\", \"round-pentagon\", \"round-polygon\", \"round-triangle\", \"round-tag\"].includes(re)) {\n var nt = 0, kt = 0, St = 0;\n re === \"round-diamond\" ? nt = (ve + ne + q) * 1.4 : re === \"round-heptagon\" ? (nt = (ve + ne + q) * 1.075, St = -(ve / 2 + ne + q) / 35) : re === \"round-hexagon\" ? nt = (ve + ne + q) * 1.12 : re === \"round-pentagon\" ? (nt = (ve + ne + q) * 1.13, St = -(ve / 2 + ne + q) / 15) : re === \"round-tag\" ? (nt = (ve + ne + q) * 1.12, kt = (ve / 2 + q + ne) * 0.07) : re === \"round-triangle\" && (nt = (ve + ne + q) * (Math.PI / 2), St = -(ve + ne / 2 + q) / Math.PI), nt !== 0 && (Ae = (s + nt) / s, _e = s * Ae, [\"round-hexagon\", \"round-tag\"].includes(re) || (Me = (u + nt) / u, Ne = u * Me)), ue = ue === \"auto\" ? mp(_e, Ne) : ue;\n for (var wt = _e / 2, Zt = Ne / 2, Pt = ue + (ve + q + ne) / 2, Mt = new Array(Te.length / 2), gr = new Array(Te.length / 2), Xt = 0; Xt < Te.length / 2; Xt++)\n Mt[Xt] = {\n x: pe.x + kt + wt * Te[Xt * 2],\n y: pe.y + St + Zt * Te[Xt * 2 + 1]\n };\n var jt, wr, Pr, ur, xt = Mt.length;\n for (wr = Mt[xt - 1], jt = 0; jt < xt; jt++)\n Pr = Mt[jt % xt], ur = Mt[(jt + 1) % xt], gr[jt] = Tc(wr, Pr, ur, Pt), wr = Pr, Pr = ur;\n o.drawRoundPolygonPath(Oe || t, pe.x + kt, pe.y + St, s * Ae, u * Me, Te, gr);\n } else if ([\"roundrectangle\", \"round-rectangle\"].includes(re))\n ue = ue === \"auto\" ? ba(_e, Ne) : ue, o.drawRoundRectanglePath(Oe || t, pe.x, pe.y, _e, Ne, ue + (ve + q + ne) / 2);\n else if ([\"cutrectangle\", \"cut-rectangle\"].includes(re))\n ue = ue === \"auto\" ? hc() : ue, o.drawCutRectanglePath(Oe || t, pe.x, pe.y, _e, Ne, null, ue + (ve + q + ne) / 4);\n else if ([\"bottomroundrectangle\", \"bottom-round-rectangle\"].includes(re))\n ue = ue === \"auto\" ? ba(_e, Ne) : ue, o.drawBottomRoundRectanglePath(Oe || t, pe.x, pe.y, _e, Ne, ue + (ve + q + ne) / 2);\n else if (re === \"barrel\")\n o.drawBarrelPath(Oe || t, pe.x, pe.y, _e, Ne);\n else if (re.startsWith(\"polygon\") || [\"rhomboid\", \"right-rhomboid\", \"round-tag\", \"tag\", \"vee\"].includes(re)) {\n var Tt = (ve + q + ne) / s;\n Te = Ls(Is(Te, Tt)), o.drawPolygonPath(Oe || t, pe.x, pe.y, s, u, Te);\n } else {\n var Bt = (ve + q + ne) / s;\n Te = Ls(Is(Te, -Bt)), o.drawPolygonPath(Oe || t, pe.x, pe.y, s, u, Te);\n }\n if (h ? t.stroke(Oe) : t.stroke(), se === \"double\") {\n t.lineWidth = ve / 3;\n var kn = t.globalCompositeOperation;\n t.globalCompositeOperation = \"destination-out\", h ? t.stroke(Oe) : t.stroke(), t.globalCompositeOperation = kn;\n }\n t.setLineDash && t.setLineDash([]);\n }\n }, Ke = function() {\n a && o.drawNodeOverlay(t, e, d, s, u);\n }, Be = function() {\n a && o.drawNodeUnderlay(t, e, d, s, u);\n }, Ge = function() {\n o.drawElementText(t, e, null, n);\n }, le = e.pstyle(\"ghost\").value === \"yes\";\n if (le) {\n var S = e.pstyle(\"ghost-offset-x\").pfValue, z = e.pstyle(\"ghost-offset-y\").pfValue, ae = e.pstyle(\"ghost-opacity\").value, j = ae * v;\n t.translate(S, z), G(), qe(), te(ae * F), me(), xe(j, !0), $(ae * H), De(), ke(D !== 0 || O !== 0), xe(j, !1), Ce(j), t.translate(-S, -z);\n }\n h && t.translate(-d.x, -d.y), Be(), h && t.translate(d.x, d.y), G(), qe(), te(), me(), xe(v, !0), $(), De(), ke(D !== 0 || O !== 0), xe(v, !1), Ce(), h && t.translate(-d.x, -d.y), Ge(), Ke(), r && t.translate(g.x1, g.y1);\n }\n};\nvar wg = function(e) {\n if (![\"overlay\", \"underlay\"].includes(e))\n throw new Error(\"Invalid state\");\n return function(r, n, a, i, o) {\n var s = this;\n if (n.visible()) {\n var u = n.pstyle(\"\".concat(e, \"-padding\")).pfValue, l = n.pstyle(\"\".concat(e, \"-opacity\")).value, c = n.pstyle(\"\".concat(e, \"-color\")).value, d = n.pstyle(\"\".concat(e, \"-shape\")).value, v = n.pstyle(\"\".concat(e, \"-corner-radius\")).value;\n if (l > 0) {\n if (a = a || n.position(), i == null || o == null) {\n var h = n.padding();\n i = n.width() + 2 * h, o = n.height() + 2 * h;\n }\n s.colorFillStyle(r, c[0], c[1], c[2], l), s.nodeShapes[d].draw(r, a.x, a.y, i + u * 2, o + u * 2, v), r.fill();\n }\n }\n };\n};\nCi.drawNodeOverlay = wg(\"overlay\");\nCi.drawNodeUnderlay = wg(\"underlay\");\nCi.hasPie = function(t) {\n return t = t[0], t._private.hasPie;\n};\nCi.drawPie = function(t, e, r, n) {\n e = e[0], n = n || e.position();\n var a = e.cy().style(), i = e.pstyle(\"pie-size\"), o = n.x, s = n.y, u = e.width(), l = e.height(), c = Math.min(u, l) / 2, d = 0, v = this.usePaths();\n v && (o = 0, s = 0), i.units === \"%\" ? c = c * i.pfValue : i.pfValue !== void 0 && (c = i.pfValue / 2);\n for (var h = 1; h <= a.pieBackgroundN; h++) {\n var f = e.pstyle(\"pie-\" + h + \"-background-size\").value, p = e.pstyle(\"pie-\" + h + \"-background-color\").value, m = e.pstyle(\"pie-\" + h + \"-background-opacity\").value * r, g = f / 100;\n g + d > 1 && (g = 1 - d);\n var y = 1.5 * Math.PI + 2 * Math.PI * d, b = 2 * Math.PI * g, w = y + b;\n f === 0 || d >= 1 || d + g > 1 || (t.beginPath(), t.moveTo(o, s), t.arc(o, s, c, y, w), t.closePath(), this.colorFillStyle(t, p[0], p[1], p[2], m), t.fill(), d += g);\n }\n};\nvar br = {}, kO = 100;\nbr.getPixelRatio = function() {\n var t = this.data.contexts[0];\n if (this.forcedPixelRatio != null)\n return this.forcedPixelRatio;\n var e = this.cy.window(), r = t.backingStorePixelRatio || t.webkitBackingStorePixelRatio || t.mozBackingStorePixelRatio || t.msBackingStorePixelRatio || t.oBackingStorePixelRatio || t.backingStorePixelRatio || 1;\n return (e.devicePixelRatio || 1) / r;\n};\nbr.paintCache = function(t) {\n for (var e = this.paintCaches = this.paintCaches || [], r = !0, n, a = 0; a < e.length; a++)\n if (n = e[a], n.context === t) {\n r = !1;\n break;\n }\n return r && (n = {\n context: t\n }, e.push(n)), n;\n};\nbr.createGradientStyleFor = function(t, e, r, n, a) {\n var i, o = this.usePaths(), s = r.pstyle(e + \"-gradient-stop-colors\").value, u = r.pstyle(e + \"-gradient-stop-positions\").pfValue;\n if (n === \"radial-gradient\")\n if (r.isEdge()) {\n var l = r.sourceEndpoint(), c = r.targetEndpoint(), d = r.midpoint(), v = ya(l, d), h = ya(c, d);\n i = t.createRadialGradient(d.x, d.y, 0, d.x, d.y, Math.max(v, h));\n } else {\n var f = o ? {\n x: 0,\n y: 0\n } : r.position(), p = r.paddedWidth(), m = r.paddedHeight();\n i = t.createRadialGradient(f.x, f.y, 0, f.x, f.y, Math.max(p, m));\n }\n else if (r.isEdge()) {\n var g = r.sourceEndpoint(), y = r.targetEndpoint();\n i = t.createLinearGradient(g.x, g.y, y.x, y.y);\n } else {\n var b = o ? {\n x: 0,\n y: 0\n } : r.position(), w = r.paddedWidth(), C = r.paddedHeight(), E = w / 2, x = C / 2, T = r.pstyle(\"background-gradient-direction\").value;\n switch (T) {\n case \"to-bottom\":\n i = t.createLinearGradient(b.x, b.y - x, b.x, b.y + x);\n break;\n case \"to-top\":\n i = t.createLinearGradient(b.x, b.y + x, b.x, b.y - x);\n break;\n case \"to-left\":\n i = t.createLinearGradient(b.x + E, b.y, b.x - E, b.y);\n break;\n case \"to-right\":\n i = t.createLinearGradient(b.x - E, b.y, b.x + E, b.y);\n break;\n case \"to-bottom-right\":\n case \"to-right-bottom\":\n i = t.createLinearGradient(b.x - E, b.y - x, b.x + E, b.y + x);\n break;\n case \"to-top-right\":\n case \"to-right-top\":\n i = t.createLinearGradient(b.x - E, b.y + x, b.x + E, b.y - x);\n break;\n case \"to-bottom-left\":\n case \"to-left-bottom\":\n i = t.createLinearGradient(b.x + E, b.y - x, b.x - E, b.y + x);\n break;\n case \"to-top-left\":\n case \"to-left-top\":\n i = t.createLinearGradient(b.x + E, b.y + x, b.x - E, b.y - x);\n break;\n }\n }\n if (!i) return null;\n for (var k = u.length === s.length, _ = s.length, D = 0; D < _; D++)\n i.addColorStop(k ? u[D] : D / (_ - 1), \"rgba(\" + s[D][0] + \",\" + s[D][1] + \",\" + s[D][2] + \",\" + a + \")\");\n return i;\n};\nbr.gradientFillStyle = function(t, e, r, n) {\n var a = this.createGradientStyleFor(t, \"background\", e, r, n);\n if (!a) return null;\n t.fillStyle = a;\n};\nbr.colorFillStyle = function(t, e, r, n, a) {\n t.fillStyle = \"rgba(\" + e + \",\" + r + \",\" + n + \",\" + a + \")\";\n};\nbr.eleFillStyle = function(t, e, r) {\n var n = e.pstyle(\"background-fill\").value;\n if (n === \"linear-gradient\" || n === \"radial-gradient\")\n this.gradientFillStyle(t, e, n, r);\n else {\n var a = e.pstyle(\"background-color\").value;\n this.colorFillStyle(t, a[0], a[1], a[2], r);\n }\n};\nbr.gradientStrokeStyle = function(t, e, r, n) {\n var a = this.createGradientStyleFor(t, \"line\", e, r, n);\n if (!a) return null;\n t.strokeStyle = a;\n};\nbr.colorStrokeStyle = function(t, e, r, n, a) {\n t.strokeStyle = \"rgba(\" + e + \",\" + r + \",\" + n + \",\" + a + \")\";\n};\nbr.eleStrokeStyle = function(t, e, r) {\n var n = e.pstyle(\"line-fill\").value;\n if (n === \"linear-gradient\" || n === \"radial-gradient\")\n this.gradientStrokeStyle(t, e, n, r);\n else {\n var a = e.pstyle(\"line-color\").value;\n this.colorStrokeStyle(t, a[0], a[1], a[2], r);\n }\n};\nbr.matchCanvasSize = function(t) {\n var e = this, r = e.data, n = e.findContainerClientCoords(), a = n[2], i = n[3], o = e.getPixelRatio(), s = e.motionBlurPxRatio;\n (t === e.data.bufferCanvases[e.MOTIONBLUR_BUFFER_NODE] || t === e.data.bufferCanvases[e.MOTIONBLUR_BUFFER_DRAG]) && (o = s);\n var u = a * o, l = i * o, c;\n if (!(u === e.canvasWidth && l === e.canvasHeight)) {\n e.fontCaches = null;\n var d = r.canvasContainer;\n d.style.width = a + \"px\", d.style.height = i + \"px\";\n for (var v = 0; v < e.CANVAS_LAYERS; v++)\n c = r.canvases[v], c.width = u, c.height = l, c.style.width = a + \"px\", c.style.height = i + \"px\";\n for (var v = 0; v < e.BUFFER_COUNT; v++)\n c = r.bufferCanvases[v], c.width = u, c.height = l, c.style.width = a + \"px\", c.style.height = i + \"px\";\n e.textureMult = 1, o <= 1 && (c = r.bufferCanvases[e.TEXTURE_BUFFER], e.textureMult = 2, c.width = u * e.textureMult, c.height = l * e.textureMult), e.canvasWidth = u, e.canvasHeight = l;\n }\n};\nbr.renderTo = function(t, e, r, n) {\n this.render({\n forcedContext: t,\n forcedZoom: e,\n forcedPan: r,\n drawAllLayers: !0,\n forcedPxRatio: n\n });\n};\nbr.render = function(t) {\n t = t || cp();\n var e = t.forcedContext, r = t.drawAllLayers, n = t.drawOnlyNodeLayer, a = t.forcedZoom, i = t.forcedPan, o = this, s = t.forcedPxRatio === void 0 ? this.getPixelRatio() : t.forcedPxRatio, u = o.cy, l = o.data, c = l.canvasNeedsRedraw, d = o.textureOnViewport && !e && (o.pinching || o.hoverData.dragging || o.swipePanning || o.data.wheelZooming), v = t.motionBlur !== void 0 ? t.motionBlur : o.motionBlur, h = o.motionBlurPxRatio, f = u.hasCompoundNodes(), p = o.hoverData.draggingEles, m = !!(o.hoverData.selecting || o.touchData.selecting);\n v = v && !e && o.motionBlurEnabled && !m;\n var g = v;\n e || (o.prevPxRatio !== s && (o.invalidateContainerClientCoordsCache(), o.matchCanvasSize(o.container), o.redrawHint(\"eles\", !0), o.redrawHint(\"drag\", !0)), o.prevPxRatio = s), !e && o.motionBlurTimeout && clearTimeout(o.motionBlurTimeout), v && (o.mbFrames == null && (o.mbFrames = 0), o.mbFrames++, o.mbFrames < 3 && (g = !1), o.mbFrames > o.minMbLowQualFrames && (o.motionBlurPxRatio = o.mbPxRBlurry)), o.clearingMotionBlur && (o.motionBlurPxRatio = 1), o.textureDrawLastFrame && !d && (c[o.NODE] = !0, c[o.SELECT_BOX] = !0);\n var y = u.style(), b = u.zoom(), w = a !== void 0 ? a : b, C = u.pan(), E = {\n x: C.x,\n y: C.y\n }, x = {\n zoom: b,\n pan: {\n x: C.x,\n y: C.y\n }\n }, T = o.prevViewport, k = T === void 0 || x.zoom !== T.zoom || x.pan.x !== T.pan.x || x.pan.y !== T.pan.y;\n !k && !(p && !f) && (o.motionBlurPxRatio = 1), i && (E = i), w *= s, E.x *= s, E.y *= s;\n var _ = o.getCachedZSortedEles();\n function D(fe, me, xe, ke, Ce) {\n var De = fe.globalCompositeOperation;\n fe.globalCompositeOperation = \"destination-out\", o.colorFillStyle(fe, 255, 255, 255, o.motionBlurTransparency), fe.fillRect(me, xe, ke, Ce), fe.globalCompositeOperation = De;\n }\n function O(fe, me) {\n var xe, ke, Ce, De;\n !o.clearingMotionBlur && (fe === l.bufferContexts[o.MOTIONBLUR_BUFFER_NODE] || fe === l.bufferContexts[o.MOTIONBLUR_BUFFER_DRAG]) ? (xe = {\n x: C.x * h,\n y: C.y * h\n }, ke = b * h, Ce = o.canvasWidth * h, De = o.canvasHeight * h) : (xe = E, ke = w, Ce = o.canvasWidth, De = o.canvasHeight), fe.setTransform(1, 0, 0, 1, 0, 0), me === \"motionBlur\" ? D(fe, 0, 0, Ce, De) : !e && (me === void 0 || me) && fe.clearRect(0, 0, Ce, De), r || (fe.translate(xe.x, xe.y), fe.scale(ke, ke)), i && fe.translate(i.x, i.y), a && fe.scale(a, a);\n }\n if (d || (o.textureDrawLastFrame = !1), d) {\n if (o.textureDrawLastFrame = !0, !o.textureCache) {\n o.textureCache = {}, o.textureCache.bb = u.mutableElements().boundingBox(), o.textureCache.texture = o.data.bufferCanvases[o.TEXTURE_BUFFER];\n var F = o.data.bufferContexts[o.TEXTURE_BUFFER];\n F.setTransform(1, 0, 0, 1, 0, 0), F.clearRect(0, 0, o.canvasWidth * o.textureMult, o.canvasHeight * o.textureMult), o.render({\n forcedContext: F,\n drawOnlyNodeLayer: !0,\n forcedPxRatio: s * o.textureMult\n });\n var x = o.textureCache.viewport = {\n zoom: u.zoom(),\n pan: u.pan(),\n width: o.canvasWidth,\n height: o.canvasHeight\n };\n x.mpan = {\n x: (0 - x.pan.x) / x.zoom,\n y: (0 - x.pan.y) / x.zoom\n };\n }\n c[o.DRAG] = !1, c[o.NODE] = !1;\n var L = l.contexts[o.NODE], B = o.textureCache.texture, x = o.textureCache.viewport;\n L.setTransform(1, 0, 0, 1, 0, 0), v ? D(L, 0, 0, x.width, x.height) : L.clearRect(0, 0, x.width, x.height);\n var I = y.core(\"outside-texture-bg-color\").value, M = y.core(\"outside-texture-bg-opacity\").value;\n o.colorFillStyle(L, I[0], I[1], I[2], M), L.fillRect(0, 0, x.width, x.height);\n var b = u.zoom();\n O(L, !1), L.clearRect(x.mpan.x, x.mpan.y, x.width / x.zoom / s, x.height / x.zoom / s), L.drawImage(B, x.mpan.x, x.mpan.y, x.width / x.zoom / s, x.height / x.zoom / s);\n } else o.textureOnViewport && !e && (o.textureCache = null);\n var A = u.extent(), R = o.pinching || o.hoverData.dragging || o.swipePanning || o.data.wheelZooming || o.hoverData.draggingEles || o.cy.animated(), K = o.hideEdgesOnViewport && R, H = [];\n if (H[o.NODE] = !c[o.NODE] && v && !o.clearedForMotionBlur[o.NODE] || o.clearingMotionBlur, H[o.NODE] && (o.clearedForMotionBlur[o.NODE] = !0), H[o.DRAG] = !c[o.DRAG] && v && !o.clearedForMotionBlur[o.DRAG] || o.clearingMotionBlur, H[o.DRAG] && (o.clearedForMotionBlur[o.DRAG] = !0), c[o.NODE] || r || n || H[o.NODE]) {\n var q = v && !H[o.NODE] && h !== 1, L = e || (q ? o.data.bufferContexts[o.MOTIONBLUR_BUFFER_NODE] : l.contexts[o.NODE]), ee = v && !q ? \"motionBlur\" : void 0;\n O(L, ee), K ? o.drawCachedNodes(L, _.nondrag, s, A) : o.drawLayeredElements(L, _.nondrag, s, A), o.debug && o.drawDebugPoints(L, _.nondrag), !r && !v && (c[o.NODE] = !1);\n }\n if (!n && (c[o.DRAG] || r || H[o.DRAG])) {\n var q = v && !H[o.DRAG] && h !== 1, L = e || (q ? o.data.bufferContexts[o.MOTIONBLUR_BUFFER_DRAG] : l.contexts[o.DRAG]);\n O(L, v && !q ? \"motionBlur\" : void 0), K ? o.drawCachedNodes(L, _.drag, s, A) : o.drawCachedElements(L, _.drag, s, A), o.debug && o.drawDebugPoints(L, _.drag), !r && !v && (c[o.DRAG] = !1);\n }\n if (o.showFps || !n && c[o.SELECT_BOX] && !r) {\n var L = e || l.contexts[o.SELECT_BOX];\n if (O(L), o.selection[4] == 1 && (o.hoverData.selecting || o.touchData.selecting)) {\n var b = o.cy.zoom(), se = y.core(\"selection-box-border-width\").value / b;\n L.lineWidth = se, L.fillStyle = \"rgba(\" + y.core(\"selection-box-color\").value[0] + \",\" + y.core(\"selection-box-color\").value[1] + \",\" + y.core(\"selection-box-color\").value[2] + \",\" + y.core(\"selection-box-opacity\").value + \")\", L.fillRect(o.selection[0], o.selection[1], o.selection[2] - o.selection[0], o.selection[3] - o.selection[1]), se > 0 && (L.strokeStyle = \"rgba(\" + y.core(\"selection-box-border-color\").value[0] + \",\" + y.core(\"selection-box-border-color\").value[1] + \",\" + y.core(\"selection-box-border-color\").value[2] + \",\" + y.core(\"selection-box-opacity\").value + \")\", L.strokeRect(o.selection[0], o.selection[1], o.selection[2] - o.selection[0], o.selection[3] - o.selection[1]));\n }\n if (l.bgActivePosistion && !o.hoverData.selecting) {\n var b = o.cy.zoom(), oe = l.bgActivePosistion;\n L.fillStyle = \"rgba(\" + y.core(\"active-bg-color\").value[0] + \",\" + y.core(\"active-bg-color\").value[1] + \",\" + y.core(\"active-bg-color\").value[2] + \",\" + y.core(\"active-bg-opacity\").value + \")\", L.beginPath(), L.arc(oe.x, oe.y, y.core(\"active-bg-size\").pfValue / b, 0, 2 * Math.PI), L.fill();\n }\n var ne = o.lastRedrawTime;\n if (o.showFps && ne) {\n ne = Math.round(ne);\n var ue = Math.round(1e3 / ne);\n L.setTransform(1, 0, 0, 1, 0, 0), L.fillStyle = \"rgba(255, 0, 0, 0.75)\", L.strokeStyle = \"rgba(255, 0, 0, 0.75)\", L.lineWidth = 1, L.fillText(\"1 frame = \" + ne + \" ms = \" + ue + \" fps\", 0, 20);\n var te = 60;\n L.strokeRect(0, 30, 250, 20), L.fillRect(0, 30, 250 * Math.min(ue / te, 1), 20);\n }\n r || (c[o.SELECT_BOX] = !1);\n }\n if (v && h !== 1) {\n var $ = l.contexts[o.NODE], G = o.data.bufferCanvases[o.MOTIONBLUR_BUFFER_NODE], Q = l.contexts[o.DRAG], ge = o.data.bufferCanvases[o.MOTIONBLUR_BUFFER_DRAG], Ee = function(me, xe, ke) {\n me.setTransform(1, 0, 0, 1, 0, 0), ke || !g ? me.clearRect(0, 0, o.canvasWidth, o.canvasHeight) : D(me, 0, 0, o.canvasWidth, o.canvasHeight);\n var Ce = h;\n me.drawImage(\n xe,\n // img\n 0,\n 0,\n // sx, sy\n o.canvasWidth * Ce,\n o.canvasHeight * Ce,\n // sw, sh\n 0,\n 0,\n // x, y\n o.canvasWidth,\n o.canvasHeight\n // w, h\n );\n };\n (c[o.NODE] || H[o.NODE]) && (Ee($, G, H[o.NODE]), c[o.NODE] = !1), (c[o.DRAG] || H[o.DRAG]) && (Ee(Q, ge, H[o.DRAG]), c[o.DRAG] = !1);\n }\n o.prevViewport = x, o.clearingMotionBlur && (o.clearingMotionBlur = !1, o.motionBlurCleared = !0, o.motionBlur = !0), v && (o.motionBlurTimeout = setTimeout(function() {\n o.motionBlurTimeout = null, o.clearedForMotionBlur[o.NODE] = !1, o.clearedForMotionBlur[o.DRAG] = !1, o.motionBlur = !1, o.clearingMotionBlur = !d, o.mbFrames = 0, c[o.NODE] = !0, c[o.DRAG] = !0, o.redraw();\n }, kO)), e || u.emit(\"render\");\n};\nvar jn = {};\njn.drawPolygonPath = function(t, e, r, n, a, i) {\n var o = n / 2, s = a / 2;\n t.beginPath && t.beginPath(), t.moveTo(e + o * i[0], r + s * i[1]);\n for (var u = 1; u < i.length / 2; u++)\n t.lineTo(e + o * i[u * 2], r + s * i[u * 2 + 1]);\n t.closePath();\n};\njn.drawRoundPolygonPath = function(t, e, r, n, a, i, o) {\n o.forEach(function(s) {\n return lg(t, s);\n }), t.closePath();\n};\njn.drawRoundRectanglePath = function(t, e, r, n, a, i) {\n var o = n / 2, s = a / 2, u = i === \"auto\" ? ba(n, a) : Math.min(i, s, o);\n t.beginPath && t.beginPath(), t.moveTo(e, r - s), t.arcTo(e + o, r - s, e + o, r, u), t.arcTo(e + o, r + s, e, r + s, u), t.arcTo(e - o, r + s, e - o, r, u), t.arcTo(e - o, r - s, e, r - s, u), t.lineTo(e, r - s), t.closePath();\n};\njn.drawBottomRoundRectanglePath = function(t, e, r, n, a, i) {\n var o = n / 2, s = a / 2, u = i === \"auto\" ? ba(n, a) : i;\n t.beginPath && t.beginPath(), t.moveTo(e, r - s), t.lineTo(e + o, r - s), t.lineTo(e + o, r), t.arcTo(e + o, r + s, e, r + s, u), t.arcTo(e - o, r + s, e - o, r, u), t.lineTo(e - o, r - s), t.lineTo(e, r - s), t.closePath();\n};\njn.drawCutRectanglePath = function(t, e, r, n, a, i, o) {\n var s = n / 2, u = a / 2, l = o === \"auto\" ? hc() : o;\n t.beginPath && t.beginPath(), t.moveTo(e - s + l, r - u), t.lineTo(e + s - l, r - u), t.lineTo(e + s, r - u + l), t.lineTo(e + s, r + u - l), t.lineTo(e + s - l, r + u), t.lineTo(e - s + l, r + u), t.lineTo(e - s, r + u - l), t.lineTo(e - s, r - u + l), t.closePath();\n};\njn.drawBarrelPath = function(t, e, r, n, a) {\n var i = n / 2, o = a / 2, s = e - i, u = e + i, l = r - o, c = r + o, d = lu(n, a), v = d.widthOffset, h = d.heightOffset, f = d.ctrlPtOffsetPct * v;\n t.beginPath && t.beginPath(), t.moveTo(s, l + h), t.lineTo(s, c - h), t.quadraticCurveTo(s + f, c, s + v, c), t.lineTo(u - v, c), t.quadraticCurveTo(u - f, c, u, c - h), t.lineTo(u, l + h), t.quadraticCurveTo(u - f, l, u - v, l), t.lineTo(s + v, l), t.quadraticCurveTo(s + f, l, s, l + h), t.closePath();\n};\nvar dv = Math.sin(0), fv = Math.cos(0), wu = {}, xu = {}, xg = Math.PI / 40;\nfor (var $a = 0 * Math.PI; $a < 2 * Math.PI; $a += xg)\n wu[$a] = Math.sin($a), xu[$a] = Math.cos($a);\njn.drawEllipsePath = function(t, e, r, n, a) {\n if (t.beginPath && t.beginPath(), t.ellipse)\n t.ellipse(e, r, n / 2, a / 2, 0, 0, 2 * Math.PI);\n else\n for (var i, o, s = n / 2, u = a / 2, l = 0 * Math.PI; l < 2 * Math.PI; l += xg)\n i = e - s * wu[l] * dv + s * xu[l] * fv, o = r + u * xu[l] * dv + u * wu[l] * fv, l === 0 ? t.moveTo(i, o) : t.lineTo(i, o);\n t.closePath();\n};\nvar Mo = {};\nMo.createBuffer = function(t, e) {\n var r = document.createElement(\"canvas\");\n return r.width = t, r.height = e, [r, r.getContext(\"2d\")];\n};\nMo.bufferCanvasImage = function(t) {\n var e = this.cy, r = e.mutableElements(), n = r.boundingBox(), a = this.findContainerClientCoords(), i = t.full ? Math.ceil(n.w) : a[2], o = t.full ? Math.ceil(n.h) : a[3], s = be(t.maxWidth) || be(t.maxHeight), u = this.getPixelRatio(), l = 1;\n if (t.scale !== void 0)\n i *= t.scale, o *= t.scale, l = t.scale;\n else if (s) {\n var c = 1 / 0, d = 1 / 0;\n be(t.maxWidth) && (c = l * t.maxWidth / i), be(t.maxHeight) && (d = l * t.maxHeight / o), l = Math.min(c, d), i *= l, o *= l;\n }\n s || (i *= u, o *= u, l *= u);\n var v = document.createElement(\"canvas\");\n v.width = i, v.height = o, v.style.width = i + \"px\", v.style.height = o + \"px\";\n var h = v.getContext(\"2d\");\n if (i > 0 && o > 0) {\n h.clearRect(0, 0, i, o), h.globalCompositeOperation = \"source-over\";\n var f = this.getCachedZSortedEles();\n if (t.full)\n h.translate(-n.x1 * l, -n.y1 * l), h.scale(l, l), this.drawElements(h, f), h.scale(1 / l, 1 / l), h.translate(n.x1 * l, n.y1 * l);\n else {\n var p = e.pan(), m = {\n x: p.x * l,\n y: p.y * l\n };\n l *= e.zoom(), h.translate(m.x, m.y), h.scale(l, l), this.drawElements(h, f), h.scale(1 / l, 1 / l), h.translate(-m.x, -m.y);\n }\n t.bg && (h.globalCompositeOperation = \"destination-over\", h.fillStyle = t.bg, h.rect(0, 0, i, o), h.fill());\n }\n return v;\n};\nfunction SO(t, e) {\n for (var r = atob(t), n = new ArrayBuffer(r.length), a = new Uint8Array(n), i = 0; i < r.length; i++)\n a[i] = r.charCodeAt(i);\n return new Blob([n], {\n type: e\n });\n}\nfunction vv(t) {\n var e = t.indexOf(\",\");\n return t.substr(e + 1);\n}\nfunction Cg(t, e, r) {\n var n = function() {\n return e.toDataURL(r, t.quality);\n };\n switch (t.output) {\n case \"blob-promise\":\n return new hi(function(a, i) {\n try {\n e.toBlob(function(o) {\n o != null ? a(o) : i(new Error(\"`canvas.toBlob()` sent a null value in its callback\"));\n }, r, t.quality);\n } catch (o) {\n i(o);\n }\n });\n case \"blob\":\n return SO(vv(n()), r);\n case \"base64\":\n return vv(n());\n case \"base64uri\":\n default:\n return n();\n }\n}\nMo.png = function(t) {\n return Cg(t, this.bufferCanvasImage(t), \"image/png\");\n};\nMo.jpg = function(t) {\n return Cg(t, this.bufferCanvasImage(t), \"image/jpeg\");\n};\nvar Eg = {};\nEg.nodeShapeImpl = function(t, e, r, n, a, i, o, s) {\n switch (t) {\n case \"ellipse\":\n return this.drawEllipsePath(e, r, n, a, i);\n case \"polygon\":\n return this.drawPolygonPath(e, r, n, a, i, o);\n case \"round-polygon\":\n return this.drawRoundPolygonPath(e, r, n, a, i, o, s);\n case \"roundrectangle\":\n case \"round-rectangle\":\n return this.drawRoundRectanglePath(e, r, n, a, i, s);\n case \"cutrectangle\":\n case \"cut-rectangle\":\n return this.drawCutRectanglePath(e, r, n, a, i, o, s);\n case \"bottomroundrectangle\":\n case \"bottom-round-rectangle\":\n return this.drawBottomRoundRectanglePath(e, r, n, a, i, s);\n case \"barrel\":\n return this.drawBarrelPath(e, r, n, a, i);\n }\n};\nvar TO = kg, je = kg.prototype;\nje.CANVAS_LAYERS = 3;\nje.SELECT_BOX = 0;\nje.DRAG = 1;\nje.NODE = 2;\nje.BUFFER_COUNT = 3;\nje.TEXTURE_BUFFER = 0;\nje.MOTIONBLUR_BUFFER_NODE = 1;\nje.MOTIONBLUR_BUFFER_DRAG = 2;\nfunction kg(t) {\n var e = this, r = e.cy.window(), n = r.document;\n e.data = {\n canvases: new Array(je.CANVAS_LAYERS),\n contexts: new Array(je.CANVAS_LAYERS),\n canvasNeedsRedraw: new Array(je.CANVAS_LAYERS),\n bufferCanvases: new Array(je.BUFFER_COUNT),\n bufferContexts: new Array(je.CANVAS_LAYERS)\n };\n var a = \"-webkit-tap-highlight-color\", i = \"rgba(0,0,0,0)\";\n e.data.canvasContainer = n.createElement(\"div\");\n var o = e.data.canvasContainer.style;\n e.data.canvasContainer.style[a] = i, o.position = \"relative\", o.zIndex = \"0\", o.overflow = \"hidden\";\n var s = t.cy.container();\n s.appendChild(e.data.canvasContainer), s.style[a] = i;\n var u = {\n \"-webkit-user-select\": \"none\",\n \"-moz-user-select\": \"-moz-none\",\n \"user-select\": \"none\",\n \"-webkit-tap-highlight-color\": \"rgba(0,0,0,0)\",\n \"outline-style\": \"none\"\n };\n vT() && (u[\"-ms-touch-action\"] = \"none\", u[\"touch-action\"] = \"none\");\n for (var l = 0; l < je.CANVAS_LAYERS; l++) {\n var c = e.data.canvases[l] = n.createElement(\"canvas\");\n e.data.contexts[l] = c.getContext(\"2d\"), Object.keys(u).forEach(function(te) {\n c.style[te] = u[te];\n }), c.style.position = \"absolute\", c.setAttribute(\"data-id\", \"layer\" + l), c.style.zIndex = String(je.CANVAS_LAYERS - l), e.data.canvasContainer.appendChild(c), e.data.canvasNeedsRedraw[l] = !1;\n }\n e.data.topCanvas = e.data.canvases[0], e.data.canvases[je.NODE].setAttribute(\"data-id\", \"layer\" + je.NODE + \"-node\"), e.data.canvases[je.SELECT_BOX].setAttribute(\"data-id\", \"layer\" + je.SELECT_BOX + \"-selectbox\"), e.data.canvases[je.DRAG].setAttribute(\"data-id\", \"layer\" + je.DRAG + \"-drag\");\n for (var l = 0; l < je.BUFFER_COUNT; l++)\n e.data.bufferCanvases[l] = n.createElement(\"canvas\"), e.data.bufferContexts[l] = e.data.bufferCanvases[l].getContext(\"2d\"), e.data.bufferCanvases[l].style.position = \"absolute\", e.data.bufferCanvases[l].setAttribute(\"data-id\", \"buffer\" + l), e.data.bufferCanvases[l].style.zIndex = String(-l - 1), e.data.bufferCanvases[l].style.visibility = \"hidden\";\n e.pathsEnabled = !0;\n var d = pr(), v = function($) {\n return {\n x: ($.x1 + $.x2) / 2,\n y: ($.y1 + $.y2) / 2\n };\n }, h = function($) {\n return {\n x: -$.w / 2,\n y: -$.h / 2\n };\n }, f = function($) {\n var G = $[0]._private, Q = G.oldBackgroundTimestamp === G.backgroundTimestamp;\n return !Q;\n }, p = function($) {\n return $[0]._private.nodeKey;\n }, m = function($) {\n return $[0]._private.labelStyleKey;\n }, g = function($) {\n return $[0]._private.sourceLabelStyleKey;\n }, y = function($) {\n return $[0]._private.targetLabelStyleKey;\n }, b = function($, G, Q, ge, Ee) {\n return e.drawElement($, G, Q, !1, !1, Ee);\n }, w = function($, G, Q, ge, Ee) {\n return e.drawElementText($, G, Q, ge, \"main\", Ee);\n }, C = function($, G, Q, ge, Ee) {\n return e.drawElementText($, G, Q, ge, \"source\", Ee);\n }, E = function($, G, Q, ge, Ee) {\n return e.drawElementText($, G, Q, ge, \"target\", Ee);\n }, x = function($) {\n return $.boundingBox(), $[0]._private.bodyBounds;\n }, T = function($) {\n return $.boundingBox(), $[0]._private.labelBounds.main || d;\n }, k = function($) {\n return $.boundingBox(), $[0]._private.labelBounds.source || d;\n }, _ = function($) {\n return $.boundingBox(), $[0]._private.labelBounds.target || d;\n }, D = function($, G) {\n return G;\n }, O = function($) {\n return v(x($));\n }, F = function($, G, Q) {\n var ge = $ ? $ + \"-\" : \"\";\n return {\n x: G.x + Q.pstyle(ge + \"text-margin-x\").pfValue,\n y: G.y + Q.pstyle(ge + \"text-margin-y\").pfValue\n };\n }, L = function($, G, Q) {\n var ge = $[0]._private.rscratch;\n return {\n x: ge[G],\n y: ge[Q]\n };\n }, B = function($) {\n return F(\"\", L($, \"labelX\", \"labelY\"), $);\n }, I = function($) {\n return F(\"source\", L($, \"sourceLabelX\", \"sourceLabelY\"), $);\n }, M = function($) {\n return F(\"target\", L($, \"targetLabelX\", \"targetLabelY\"), $);\n }, A = function($) {\n return h(x($));\n }, R = function($) {\n return h(k($));\n }, K = function($) {\n return h(_($));\n }, H = function($) {\n var G = T($), Q = h(T($));\n if ($.isNode()) {\n switch ($.pstyle(\"text-halign\").value) {\n case \"left\":\n Q.x = -G.w;\n break;\n case \"right\":\n Q.x = 0;\n break;\n }\n switch ($.pstyle(\"text-valign\").value) {\n case \"top\":\n Q.y = -G.h;\n break;\n case \"bottom\":\n Q.y = 0;\n break;\n }\n }\n return Q;\n }, q = e.data.eleTxrCache = new Ri(e, {\n getKey: p,\n doesEleInvalidateKey: f,\n drawElement: b,\n getBoundingBox: x,\n getRotationPoint: O,\n getRotationOffset: A,\n allowEdgeTxrCaching: !1,\n allowParentTxrCaching: !1\n }), ee = e.data.lblTxrCache = new Ri(e, {\n getKey: m,\n drawElement: w,\n getBoundingBox: T,\n getRotationPoint: B,\n getRotationOffset: H,\n isVisible: D\n }), se = e.data.slbTxrCache = new Ri(e, {\n getKey: g,\n drawElement: C,\n getBoundingBox: k,\n getRotationPoint: I,\n getRotationOffset: R,\n isVisible: D\n }), oe = e.data.tlbTxrCache = new Ri(e, {\n getKey: y,\n drawElement: E,\n getBoundingBox: _,\n getRotationPoint: M,\n getRotationOffset: K,\n isVisible: D\n }), ne = e.data.lyrTxrCache = new mg(e);\n e.onUpdateEleCalcs(function($, G) {\n q.invalidateElements(G), ee.invalidateElements(G), se.invalidateElements(G), oe.invalidateElements(G), ne.invalidateElements(G);\n for (var Q = 0; Q < G.length; Q++) {\n var ge = G[Q]._private;\n ge.oldBackgroundTimestamp = ge.backgroundTimestamp;\n }\n });\n var ue = function($) {\n for (var G = 0; G < $.length; G++)\n ne.enqueueElementRefinement($[G].ele);\n };\n q.onDequeue(ue), ee.onDequeue(ue), se.onDequeue(ue), oe.onDequeue(ue);\n}\nje.redrawHint = function(t, e) {\n var r = this;\n switch (t) {\n case \"eles\":\n r.data.canvasNeedsRedraw[je.NODE] = e;\n break;\n case \"drag\":\n r.data.canvasNeedsRedraw[je.DRAG] = e;\n break;\n case \"select\":\n r.data.canvasNeedsRedraw[je.SELECT_BOX] = e;\n break;\n }\n};\nvar _O = typeof Path2D < \"u\";\nje.path2dEnabled = function(t) {\n if (t === void 0)\n return this.pathsEnabled;\n this.pathsEnabled = !!t;\n};\nje.usePaths = function() {\n return _O && this.pathsEnabled;\n};\nje.setImgSmoothing = function(t, e) {\n t.imageSmoothingEnabled != null ? t.imageSmoothingEnabled = e : (t.webkitImageSmoothingEnabled = e, t.mozImageSmoothingEnabled = e, t.msImageSmoothingEnabled = e);\n};\nje.getImgSmoothing = function(t) {\n return t.imageSmoothingEnabled != null ? t.imageSmoothingEnabled : t.webkitImageSmoothingEnabled || t.mozImageSmoothingEnabled || t.msImageSmoothingEnabled;\n};\nje.makeOffscreenCanvas = function(t, e) {\n var r;\n if ((typeof OffscreenCanvas > \"u\" ? \"undefined\" : Ft(OffscreenCanvas)) !== \"undefined\")\n r = new OffscreenCanvas(t, e);\n else {\n var n = this.cy.window(), a = n.document;\n r = a.createElement(\"canvas\"), r.width = t, r.height = e;\n }\n return r;\n};\n[yg, on, En, Dc, Pa, Ci, br, jn, Mo, Eg].forEach(function(t) {\n Re(je, t);\n});\nvar DO = [{\n name: \"null\",\n impl: ig\n}, {\n name: \"base\",\n impl: pg\n}, {\n name: \"canvas\",\n impl: TO\n}], PO = [{\n type: \"layout\",\n extensions: MP\n}, {\n type: \"renderer\",\n extensions: DO\n}], Sg = {}, Tg = {};\nfunction _g(t, e, r) {\n var n = r, a = function(T) {\n tt(\"Can not register `\" + e + \"` for `\" + t + \"` since `\" + T + \"` already exists in the prototype and can not be overridden\");\n };\n if (t === \"core\") {\n if (fo.prototype[e])\n return a(e);\n fo.prototype[e] = r;\n } else if (t === \"collection\") {\n if (Gt.prototype[e])\n return a(e);\n Gt.prototype[e] = r;\n } else if (t === \"layout\") {\n for (var i = function(T) {\n this.options = T, r.call(this, T), Xe(this._private) || (this._private = {}), this._private.cy = T.cy, this._private.listeners = [], this.createEmitter();\n }, o = i.prototype = Object.create(r.prototype), s = [], u = 0; u < s.length; u++) {\n var l = s[u];\n o[l] = o[l] || function() {\n return this;\n };\n }\n o.start && !o.run ? o.run = function() {\n return this.start(), this;\n } : !o.start && o.run && (o.start = function() {\n return this.run(), this;\n });\n var c = r.prototype.stop;\n o.stop = function() {\n var x = this.options;\n if (x && x.animate) {\n var T = this.animations;\n if (T)\n for (var k = 0; k < T.length; k++)\n T[k].stop();\n }\n return c ? c.call(this) : this.emit(\"layoutstop\"), this;\n }, o.destroy || (o.destroy = function() {\n return this;\n }), o.cy = function() {\n return this._private.cy;\n };\n var d = function(T) {\n return T._private.cy;\n }, v = {\n addEventFields: function(T, k) {\n k.layout = T, k.cy = d(T), k.target = T;\n },\n bubble: function() {\n return !0;\n },\n parent: function(T) {\n return d(T);\n }\n };\n Re(o, {\n createEmitter: function() {\n return this._private.emitter = new ul(v, this), this;\n },\n emitter: function() {\n return this._private.emitter;\n },\n on: function(T, k) {\n return this.emitter().on(T, k), this;\n },\n one: function(T, k) {\n return this.emitter().one(T, k), this;\n },\n once: function(T, k) {\n return this.emitter().one(T, k), this;\n },\n removeListener: function(T, k) {\n return this.emitter().removeListener(T, k), this;\n },\n removeAllListeners: function() {\n return this.emitter().removeAllListeners(), this;\n },\n emit: function(T, k) {\n return this.emitter().emit(T, k), this;\n }\n }), et.eventAliasesOn(o), n = i;\n } else if (t === \"renderer\" && e !== \"null\" && e !== \"base\") {\n var h = Dg(\"renderer\", \"base\"), f = h.prototype, p = r, m = r.prototype, g = function() {\n h.apply(this, arguments), p.apply(this, arguments);\n }, y = g.prototype;\n for (var b in f) {\n var w = f[b], C = m[b] != null;\n if (C)\n return a(b);\n y[b] = w;\n }\n for (var E in m)\n y[E] = m[E];\n f.clientFunctions.forEach(function(x) {\n y[x] = y[x] || function() {\n yt(\"Renderer does not implement `renderer.\" + x + \"()` on its prototype\");\n };\n }), n = g;\n } else if (t === \"__proto__\" || t === \"constructor\" || t === \"prototype\")\n return yt(t + \" is an illegal type to be registered, possibly lead to prototype pollutions\");\n return Jh({\n map: Sg,\n keys: [t, e],\n value: n\n });\n}\nfunction Dg(t, e) {\n return ep({\n map: Sg,\n keys: [t, e]\n });\n}\nfunction OO(t, e, r, n, a) {\n return Jh({\n map: Tg,\n keys: [t, e, r, n],\n value: a\n });\n}\nfunction LO(t, e, r, n) {\n return ep({\n map: Tg,\n keys: [t, e, r, n]\n });\n}\nvar Cu = function() {\n if (arguments.length === 2)\n return Dg.apply(null, arguments);\n if (arguments.length === 3)\n return _g.apply(null, arguments);\n if (arguments.length === 4)\n return LO.apply(null, arguments);\n if (arguments.length === 5)\n return OO.apply(null, arguments);\n yt(\"Invalid extension access syntax\");\n};\nfo.prototype.extension = Cu;\nPO.forEach(function(t) {\n t.extensions.forEach(function(e) {\n _g(t.type, e.name, e.impl);\n });\n});\nvar Pg = function t() {\n if (!(this instanceof t))\n return new t();\n this.length = 0;\n}, Ca = Pg.prototype;\nCa.instanceString = function() {\n return \"stylesheet\";\n};\nCa.selector = function(t) {\n var e = this.length++;\n return this[e] = {\n selector: t,\n properties: []\n }, this;\n};\nCa.css = function(t, e) {\n var r = this.length - 1;\n if (Fe(t))\n this[r].properties.push({\n name: t,\n value: e\n });\n else if (Xe(t))\n for (var n = t, a = Object.keys(n), i = 0; i < a.length; i++) {\n var o = a[i], s = n[o];\n if (s != null) {\n var u = rr.properties[o] || rr.properties[Js(o)];\n if (u != null) {\n var l = u.name, c = s;\n this[r].properties.push({\n name: l,\n value: c\n });\n }\n }\n }\n return this;\n};\nCa.style = Ca.css;\nCa.generateStyle = function(t) {\n var e = new rr(t);\n return this.appendToStyle(e);\n};\nCa.appendToStyle = function(t) {\n for (var e = 0; e < this.length; e++) {\n var r = this[e], n = r.selector, a = r.properties;\n t.selector(n);\n for (var i = 0; i < a.length; i++) {\n var o = a[i];\n t.css(o.name, o.value);\n }\n }\n return t;\n};\nvar IO = \"3.30.2\", Ea = function(e) {\n if (e === void 0 && (e = {}), Xe(e))\n return new fo(e);\n if (Fe(e))\n return Cu.apply(Cu, arguments);\n};\nEa.use = function(t) {\n var e = Array.prototype.slice.call(arguments, 1);\n return e.unshift(Ea), t.apply(null, e), this;\n};\nEa.warnings = function(t) {\n return lp(t);\n};\nEa.version = IO;\nEa.stylesheet = Ea.Stylesheet = Pg;\nlet FO = class extends EventTarget {\n constructor(r, n) {\n super();\n Ir(this, \"cyg\", null);\n Ir(this, \"nodes\", []);\n Ir(this, \"edges\", []);\n Ir(this, \"axons\", []);\n Ir(this, \"dendrites\", []);\n Ir(this, \"somas\", []);\n Ir(this, \"labelCache\", /* @__PURE__ */ new Map());\n Ir(this, \"graphCanvas\", null);\n this.labelCache = r, this.graphCanvas = n;\n }\n async addConnectivity(r) {\n var n;\n if (this.axons = r.axons.map((a) => JSON.stringify(a)), this.dendrites = r.dendrites.map((a) => JSON.stringify(a)), (n = r.somas) != null && n.length && (this.somas = r.somas.map((a) => JSON.stringify(a))), r.connectivity.length)\n for (const a of r.connectivity) {\n const i = await this.graphNode(a[0]), o = await this.graphNode(a[1]);\n this.nodes.push(i), this.nodes.push(o), this.edges.push({\n id: `${i.id}_${o.id}`,\n source: i.id,\n target: o.id\n });\n }\n else\n this.nodes.push({\n id: \"MISSING\",\n label: \"NO PATHS\"\n });\n }\n showConnectivity(r) {\n this.cyg = new RO(this, r), this.cyg.on(\"tap-node\", (n) => {\n const a = new CustomEvent(\"tap-node\", {\n detail: n.detail\n });\n this.dispatchEvent(a);\n });\n }\n selectConnectivity(r) {\n var n;\n if ((n = this.cyg) != null && n.cy) {\n let a = \"\";\n this.cyg.cy.elements().forEach((i) => {\n const o = i.data(\"label\"), s = Eu(o);\n $O(r, s) && (a = i.id());\n }), a && this.cyg.cy.$id(a).select();\n }\n }\n clearConnectivity() {\n var r;\n (r = this.cyg) != null && r.cy && (this.cyg.cy.remove(), this.cyg.cy = null);\n }\n reset() {\n var r;\n (r = this.cyg) != null && r.cy && this.cyg.cy.reset();\n }\n zoom(r) {\n var n;\n if ((n = this.cyg) != null && n.cy) {\n const a = this.cyg.cy.zoom(), i = this.cyg.cy.width(), o = this.cyg.cy.height(), s = {\n x: i / 2,\n y: o / 2\n };\n this.cyg.cy.zoom({\n level: a + r,\n renderedPosition: s\n });\n }\n }\n enableZoom(r) {\n var n;\n (n = this.cyg) != null && n.cy && this.cyg.cy.userZoomingEnabled(r);\n }\n get elements() {\n return [\n ...this.nodes.map((r) => ({ data: r })),\n ...this.edges.map((r) => ({ data: r }))\n ];\n }\n get roots() {\n return [\n ...this.dendrites,\n ...this.somas\n ];\n }\n async graphNode(r) {\n const n = JSON.stringify(r), a = [r[0], ...r[1]], i = [];\n for (const s of a) {\n const u = this.labelCache.has(s) ? this.labelCache.get(s) : \"\";\n i.push(u);\n }\n a.push(...i);\n const o = {\n id: n,\n label: a.join(`\n`)\n };\n return this.axons.includes(n) ? this.dendrites.includes(n) || this.somas.includes(n) ? o[\"both-a-d\"] = !0 : o.axon = !0 : (this.dendrites.includes(n) || this.somas.includes(n)) && (o.dendrite = !0), o;\n }\n on(r, n) {\n this.addEventListener(r, n);\n }\n};\nconst AO = \"#8300bf\", MO = \"#f3ecf6\", BO = [\n {\n selector: \"node\",\n style: {\n label: function(t) {\n return NO(t.data(\"label\"));\n },\n // 'background-color': '#80F0F0',\n \"background-color\": \"transparent\",\n \"background-opacity\": \"0\",\n \"text-valign\": \"center\",\n \"text-wrap\": \"wrap\",\n width: \"80px\",\n height: \"80px\",\n \"text-max-width\": \"80px\",\n \"font-size\": \"6px\",\n shape: \"round-rectangle\",\n \"border-width\": 1,\n \"border-style\": \"solid\",\n \"border-color\": \"gray\"\n }\n },\n {\n selector: \"node[axon]\",\n style: {\n // 'background-color': 'green',\n shape: \"round-diamond\",\n width: \"100px\",\n height: \"100px\"\n }\n },\n {\n selector: \"node[dendrite]\",\n style: {\n // 'background-color': 'red',\n shape: \"ellipse\"\n }\n },\n {\n selector: \"node[both-a-d]\",\n style: {\n // 'background-color': 'gray',\n shape: \"round-rectangle\"\n }\n },\n {\n selector: \"edge\",\n style: {\n width: 1,\n \"line-color\": \"dimgray\",\n \"target-arrow-color\": \"dimgray\",\n \"target-arrow-shape\": \"triangle\",\n \"curve-style\": \"bezier\"\n }\n },\n {\n selector: \"node.active\",\n style: {\n \"border-color\": AO,\n \"background-color\": MO,\n \"background-opacity\": 0.75\n }\n }\n];\nfunction NO(t) {\n const e = t.split(`\n`), r = e.length / 2, n = e.slice(r);\n return Og(n.join(`\n`));\n}\nfunction Og(t) {\n return t.split(`\n`).map((e) => e && e[0] >= \"a\" && e[0] <= \"z\" ? e.charAt(0).toUpperCase() + e.slice(1) : e).join(`\n`);\n}\nfunction Eu(t) {\n const e = t ? t.split(`\n`) : [], r = [];\n for (let n = 0; n < e.length / 2; n++)\n r.push({\n id: e[n],\n label: e[n + e.length / 2]\n });\n return r;\n}\nfunction $O(t, e) {\n t.sort((r, n) => r.id < n.id ? -1 : r.id > n.id ? 1 : 0), e.sort((r, n) => r.id < n.id ? -1 : r.id > n.id ? 1 : 0);\n for (let r = 0; r < t.length; r++)\n if (JSON.stringify(t[r]) !== JSON.stringify(e[r]))\n return !1;\n return !0;\n}\nclass RO extends EventTarget {\n constructor(r, n) {\n var a;\n super();\n Ir(this, \"cy\");\n Ir(this, \"tooltip\");\n this.cy = Ea({\n container: n,\n elements: r.elements,\n layout: {\n name: \"breadthfirst\",\n circle: !1,\n roots: r.roots\n },\n directed: !0,\n style: BO,\n minZoom: 0.5,\n maxZoom: 10,\n wheelSensitivity: 0.4\n }).on(\"mouseover\", \"node\", this.overNode.bind(this)).on(\"mouseout\", \"node\", this.exitNode.bind(this)).on(\"position\", \"node\", this.moveNode.bind(this)), this.tooltip = document.createElement(\"div\"), this.tooltip.className = \"cy-graph-tooltip\", this.tooltip.hidden = !0, (a = n == null ? void 0 : n.lastChild) == null || a.appendChild(this.tooltip);\n }\n remove() {\n this.cy && this.cy.destroy();\n }\n checkRightBoundary(r) {\n var n;\n r + this.tooltip.offsetWidth >= ((n = this.tooltip.parentElement) == null ? void 0 : n.offsetWidth) && (this.tooltip.style.left = `${r - this.tooltip.offsetWidth}px`);\n }\n overNode(r) {\n const a = r.target.data(), { label: i } = a, s = Eu(i).map((u) => u.label + \" (\" + u.id + \")\");\n this.tooltip.innerText = Og(s.join(`\n`)), this.tooltip.style.left = `${r.renderedPosition.x}px`, this.tooltip.style.top = `${r.renderedPosition.y}px`, this.tooltip.style.maxWidth = \"240px\", this.tooltip.style.zIndex = 2, this.tooltip.hidden = !1, this.checkRightBoundary(r.renderedPosition.x), this.tapNode(r, !0);\n }\n moveNode(r) {\n const n = r.target;\n this.tooltip.style.left = `${n.renderedPosition().x}px`, this.tooltip.style.top = `${n.renderedPosition().y}px`, this.checkRightBoundary(n.renderedPosition().x);\n }\n exitNode(r) {\n this.tooltip.hidden = !0, this.tapNode(r, !1);\n }\n tapNode(r, n) {\n const a = r.target, i = a.data();\n let { label: o } = i;\n n ? a.addClass(\"active\") : (a.removeClass(\"active\"), o = \"\", setTimeout(() => {\n a.unselect();\n }));\n const s = Eu(o), u = new CustomEvent(\"tap-node\", {\n detail: s\n });\n this.dispatchEvent(u);\n }\n on(r, n) {\n this.addEventListener(r, n);\n }\n}\nconst zO = 1.3, VO = 24 * 60 * 60 * 1e3, HO = \"Reset position\", hv = \"Lock zoom\", qO = \"Unlock zoom\", KO = \"Zoom in\", UO = \"Zoom out\", pv = 0.25, GO = \"#8300bf\", WO = 3e3, YO = {\n name: \"ConnectivityGraph\",\n props: {\n /**\n * Entity to load its connectivity graph.\n */\n entry: {\n type: String,\n default: \"\"\n },\n mapServer: {\n type: String,\n default: \"\"\n },\n selectedConnectivityData: {\n type: Array,\n default: []\n }\n },\n data: function() {\n return {\n loading: !0,\n connectivityGraph: null,\n selectedSource: \"\",\n pathList: [],\n schemaVersion: \"\",\n knowledgeByPath: /* @__PURE__ */ new Map(),\n labelledTerms: /* @__PURE__ */ new Set(),\n labelCache: /* @__PURE__ */ new Map(),\n resetLabel: HO,\n zoomLockLabel: hv,\n zoomInLabel: KO,\n zoomOutLabel: UO,\n iconColor: GO,\n zoomEnabled: !1,\n connectivityError: null,\n timeoutID: void 0\n };\n },\n mounted() {\n this.refreshCache(), this.loadCacheData(), this.run().then((t) => {\n this.showGraph(this.entry);\n });\n },\n methods: {\n loadCacheData: function() {\n const t = sessionStorage.getItem(\"connectivity-graph-source\"), e = sessionStorage.getItem(\"connectivity-graph-labels\"), r = sessionStorage.getItem(\"connectivity-graph-pathlist\"), n = sessionStorage.getItem(\"connectivity-graph-schema-version\");\n if (t && (this.selectedSource = t), r && (this.pathList = JSON.parse(r)), e) {\n const a = JSON.parse(e);\n this.labelCache = new Map(Object.entries(a));\n }\n n && (this.schemaVersion = n);\n },\n removeAllCacheData: function() {\n [\n \"connectivity-graph-expiry\",\n \"connectivity-graph-source\",\n \"connectivity-graph-labels\",\n \"connectivity-graph-pathlist\",\n \"connectivity-graph-schema-version\"\n ].forEach((e) => {\n sessionStorage.removeItem(e);\n });\n },\n refreshCache: function() {\n const t = sessionStorage.getItem(\"connectivity-graph-expiry\");\n (/* @__PURE__ */ new Date()).getTime() > t && this.removeAllCacheData();\n },\n updateCacheExpiry: function() {\n const e = (/* @__PURE__ */ new Date()).getTime() + VO;\n sessionStorage.setItem(\"connectivity-graph-expiry\", e);\n },\n run: async function() {\n if (this.schemaVersion || (this.schemaVersion = await this.getSchemaVersion(), sessionStorage.setItem(\"connectivity-graph-schema-version\", this.schemaVersion), this.updateCacheExpiry()), this.schemaVersion < zO) {\n console.warn(\"No Server!\");\n return;\n }\n this.showSpinner(), this.selectedSource || (this.selectedSource = await this.setSourceList(), sessionStorage.setItem(\"connectivity-graph-source\", this.selectedSource), this.updateCacheExpiry()), await this.setPathList(this.selectedSource), this.hideSpinner();\n },\n showGraph: async function(t) {\n const e = this.$refs.graphCanvas;\n this.showSpinner(), this.connectivityGraph = new FO(this.labelCache, e), await this.connectivityGraph.addConnectivity(this.knowledgeByPath.get(t)), this.hideSpinner(), this.connectivityGraph.showConnectivity(e), this.selectedConnectivityData.length && this.connectivityGraph.selectConnectivity(this.selectedConnectivityData), this.connectivityGraph.on(\"tap-node\", (r) => {\n const n = r.detail;\n this.$emit(\"tap-node\", n);\n });\n },\n query: async function(t, e) {\n const r = `${this.mapServer}knowledge/query/`, n = { sql: t, params: e };\n try {\n const a = await fetch(r, {\n method: \"POST\",\n headers: {\n Accept: \"application/json; charset=utf-8\",\n \"Cache-Control\": \"no-store\",\n \"Content-Type\": \"application/json\"\n },\n body: JSON.stringify(n)\n });\n if (!a.ok)\n throw new Error(`Cannot access ${r}`);\n return await a.json();\n } catch {\n return {\n values: []\n };\n }\n },\n setSourceList: async function() {\n const t = await this.getJsonData(`${this.mapServer}knowledge/sources`), e = t ? t.sources || [] : [];\n let r = \"\";\n for (const n of e)\n n && r === \"\" && (r = n);\n return r;\n },\n loadPathData: async function(t) {\n const e = await this.query(\n `select entity, knowledge from knowledge\n where entity like 'ilxtr:%' and source=?\n order by entity`,\n [t]\n );\n return e ? e.values : [];\n },\n setPathList: async function(t) {\n this.pathList.length || (this.pathList = await this.loadPathData(t), sessionStorage.setItem(\"connectivity-graph-pathlist\", JSON.stringify(this.pathList)), this.updateCacheExpiry()), this.knowledgeByPath.clear(), this.labelledTerms = /* @__PURE__ */ new Set();\n for (const [e, r] of this.pathList) {\n const n = JSON.parse(r);\n \"connectivity\" in n && (this.knowledgeByPath.set(e, n), this.cacheLabels(n));\n }\n return this.labelCache.size || await this.getCachedTermLabels(), \"\";\n },\n getSchemaVersion: async function() {\n const t = await this.getJsonData(`${this.mapServer}knowledge/schema-version`);\n return t && +t.version || 0;\n },\n getJsonData: async function(t) {\n try {\n const e = await fetch(t, {\n method: \"GET\",\n headers: {\n Accept: \"application/json; charset=utf-8\",\n \"Cache-Control\": \"no-store\",\n \"Content-Type\": \"application/json\"\n }\n });\n return e.ok || console.error(`Cannot access ${t}`), await e.json();\n } catch {\n return null;\n }\n },\n getCachedTermLabels: async function() {\n if (this.labelledTerms.size) {\n const t = await this.query(\n `select entity, knowledge from knowledge\n where entity in (?${\", ?\".repeat(this.labelledTerms.size - 1)})\n order by source desc`,\n [...this.labelledTerms.values()]\n );\n let e = null;\n for (const [n, a] of t.values)\n if (n !== e) {\n const i = JSON.parse(a);\n this.labelCache.set(n, i.label || n), e = n;\n }\n const r = Object.fromEntries(this.labelCache);\n sessionStorage.setItem(\"connectivity-graph-labels\", JSON.stringify(r)), this.updateCacheExpiry();\n }\n },\n cacheNodeLabels: function(t) {\n for (const e of [t[0], ...t[1]])\n this.labelledTerms.add(e);\n },\n cacheLabels: async function(t) {\n for (const e of t.connectivity)\n this.cacheNodeLabels(e[0]), this.cacheNodeLabels(e[1]);\n },\n showSpinner: function() {\n this.loading = !0;\n },\n hideSpinner: function() {\n this.loading = !1;\n },\n reset: function() {\n this.connectivityGraph.reset();\n },\n zoomIn: function() {\n this.connectivityGraph.zoom(pv);\n },\n zoomOut: function() {\n this.connectivityGraph.zoom(-pv);\n },\n /**\n * Enable/disable user zoom for scrolling\n */\n toggleZoom: function() {\n this.zoomEnabled = !this.zoomEnabled, this.zoomLockLabel = this.zoomEnabled ? qO : hv, this.connectivityGraph.enableZoom(!this.zoomEnabled);\n },\n showErrorMessage: function(t) {\n this.connectivityError = { ...t }, this.timeoutID && clearTimeout(this.timeoutID), this.timeoutID = setTimeout(() => {\n this.connectivityError = null;\n }, WO);\n }\n }\n}, ZO = { class: \"connectivity-graph\" }, XO = {\n ref: \"graphCanvas\",\n class: \"graph-canvas\"\n}, jO = { class: \"control-panel control-panel-tools\" }, QO = { class: \"visually-hidden\" }, JO = { class: \"visually-hidden\" }, eL = { class: \"visually-hidden\" }, tL = { class: \"visually-hidden\" }, rL = /* @__PURE__ */ A0('