import {
hn,
wn
} from "./chunk-EEZUFMIV.js";
import {
Comment,
Fragment,
Teleport,
Text,
Transition,
cloneVNode,
computed,
createApp,
createBaseVNode,
createBlock,
createCommentVNode,
createElementBlock,
createSlots,
createStaticVNode,
createTextVNode,
createVNode,
defineComponent,
effectScope,
getCurrentInstance,
getCurrentScope,
h,
hasInjectionContext,
inject,
isReactive,
isRef,
markRaw,
mergeProps,
nextTick,
normalizeClass,
normalizeStyle,
onActivated,
onBeforeMount,
onBeforeUnmount,
onDeactivated,
onMounted,
onScopeDispose,
onUnmounted,
onUpdated,
openBlock,
popScopeId,
provide,
pushScopeId,
reactive,
readonly,
ref,
renderList,
renderSlot,
resolveComponent,
resolveDirective,
resolveDynamicComponent,
shallowRef,
toDisplayString,
toHandlerKey,
toHandlers,
toRaw,
toRef,
toRefs,
unref,
useAttrs,
useSlots,
vModelCheckbox,
vModelRadio,
vModelText,
vShow,
warn,
watch,
watchEffect,
withCtx,
withDirectives,
withKeys,
withModifiers
} from "./chunk-6UGCK2MK.js";
import "./chunk-DC5AMYBS.js";
// node_modules/@abi-software/flatmapvuer/node_modules/@abi-software/map-utilities/dist/map-utilities.js
var v0 = Object.defineProperty;
var h0 = (t20, e, r) => e in t20 ? v0(t20, e, { enumerable: true, configurable: true, writable: true, value: r }) : t20[e] = r;
var Fr = (t20, e, r) => h0(t20, typeof e != "symbol" ? e + "" : e, r);
var cn = (t20, e, { checkForDefaultPrevented: r = true } = {}) => (a) => {
const i = t20 == null ? void 0 : t20(a);
if (r === false || !i)
return e == null ? void 0 : e(a);
};
var Ic;
var _t = typeof window < "u";
var I0 = (t20) => typeof t20 == "string";
var bv = () => {
};
var Gl = _t && ((Ic = window == null ? void 0 : window.navigator) == null ? void 0 : Ic.userAgent) && /iP(ad|hone|od)/.test(window.navigator.userAgent);
function wv(t20) {
return typeof t20 == "function" ? t20() : unref(t20);
}
function A0(t20) {
return t20;
}
function Rs(t20) {
return getCurrentScope() ? (onScopeDispose(t20), true) : false;
}
function M0(t20, e = true) {
getCurrentInstance() ? onMounted(t20) : e ? t20() : nextTick(t20);
}
function vn(t20) {
var e;
const r = wv(t20);
return (e = r == null ? void 0 : r.$el) != null ? e : r;
}
var zs = _t ? window : void 0;
function kr(...t20) {
let e, r, n, a;
if (I0(t20[0]) || Array.isArray(t20[0]) ? ([r, n, a] = t20, e = zs) : [e, r, n, a] = t20, !e)
return bv;
Array.isArray(r) || (r = [r]), Array.isArray(n) || (n = [n]);
const i = [], o = () => {
i.forEach((c) => c()), i.length = 0;
}, s = (c, d, v, h6) => (c.addEventListener(d, v, h6), () => c.removeEventListener(d, v, h6)), u = watch(() => [vn(e), wv(a)], ([c, d]) => {
o(), c && i.push(...r.flatMap((v) => n.map((h6) => s(c, v, h6, d))));
}, { immediate: true, flush: "post" }), l = () => {
u(), o();
};
return Rs(l), l;
}
var Ac = false;
function B0(t20, e, r = {}) {
const { window: n = zs, ignore: a = [], capture: i = true, detectIframe: o = false } = r;
if (!n)
return;
Gl && !Ac && (Ac = true, Array.from(n.document.body.children).forEach((v) => v.addEventListener("click", bv)));
let s = true;
const u = (v) => a.some((h6) => {
if (typeof h6 == "string")
return Array.from(n.document.querySelectorAll(h6)).some((f) => f === v.target || v.composedPath().includes(f));
{
const f = vn(h6);
return f && (v.target === f || v.composedPath().includes(f));
}
}), c = [
kr(n, "click", (v) => {
const h6 = vn(t20);
if (!(!h6 || h6 === v.target || v.composedPath().includes(h6))) {
if (v.detail === 0 && (s = !u(v)), !s) {
s = true;
return;
}
e(v);
}
}, { passive: true, capture: i }),
kr(n, "pointerdown", (v) => {
const h6 = vn(t20);
h6 && (s = !v.composedPath().includes(h6) && !u(v));
}, { passive: true }),
o && kr(n, "blur", (v) => {
var h6;
const f = vn(t20);
((h6 = n.document.activeElement) == null ? void 0 : h6.tagName) === "IFRAME" && !(f != null && f.contains(n.document.activeElement)) && e(v);
})
].filter(Boolean);
return () => c.forEach((v) => v());
}
function xv(t20, e = false) {
const r = ref(), n = () => r.value = !!t20();
return n(), M0(n, e), r;
}
var Mc = typeof globalThis < "u" ? globalThis : typeof window < "u" ? window : typeof global < "u" ? global : typeof self < "u" ? self : {};
var Bc = "__vueuse_ssr_handlers__";
Mc[Bc] = Mc[Bc] || {};
var Nc = Object.getOwnPropertySymbols;
var N0 = Object.prototype.hasOwnProperty;
var $0 = Object.prototype.propertyIsEnumerable;
var R0 = (t20, e) => {
var r = {};
for (var n in t20)
N0.call(t20, n) && e.indexOf(n) < 0 && (r[n] = t20[n]);
if (t20 != null && Nc)
for (var n of Nc(t20))
e.indexOf(n) < 0 && $0.call(t20, n) && (r[n] = t20[n]);
return r;
};
function dn(t20, e, r = {}) {
const n = r, { window: a = zs } = n, i = R0(n, ["window"]);
let o;
const s = xv(() => a && "ResizeObserver" in a), u = () => {
o && (o.disconnect(), o = void 0);
}, l = watch(() => vn(t20), (d) => {
u(), s.value && a && d && (o = new ResizeObserver(e), o.observe(d, i));
}, { immediate: true, flush: "post" }), c = () => {
u(), l();
};
return Rs(c), {
isSupported: s,
stop: c
};
}
var $c = Object.getOwnPropertySymbols;
var z0 = Object.prototype.hasOwnProperty;
var V0 = Object.prototype.propertyIsEnumerable;
var H0 = (t20, e) => {
var r = {};
for (var n in t20)
z0.call(t20, n) && e.indexOf(n) < 0 && (r[n] = t20[n]);
if (t20 != null && $c)
for (var n of $c(t20))
e.indexOf(n) < 0 && V0.call(t20, n) && (r[n] = t20[n]);
return r;
};
function q0(t20, e, r = {}) {
const n = r, { window: a = zs } = n, i = H0(n, ["window"]);
let o;
const s = xv(() => a && "MutationObserver" in a), u = () => {
o && (o.disconnect(), o = void 0);
}, l = watch(() => vn(t20), (d) => {
u(), s.value && a && d && (o = new MutationObserver(e), o.observe(d, i));
}, { immediate: true }), c = () => {
u(), l();
};
return Rs(c), {
isSupported: s,
stop: c
};
}
var Rc;
(function(t20) {
t20.UP = "UP", t20.RIGHT = "RIGHT", t20.DOWN = "DOWN", t20.LEFT = "LEFT", t20.NONE = "NONE";
})(Rc || (Rc = {}));
var K0 = Object.defineProperty;
var zc = Object.getOwnPropertySymbols;
var U0 = Object.prototype.hasOwnProperty;
var G0 = Object.prototype.propertyIsEnumerable;
var Vc = (t20, e, r) => e in t20 ? K0(t20, e, { enumerable: true, configurable: true, writable: true, value: r }) : t20[e] = r;
var W0 = (t20, e) => {
for (var r in e || (e = {}))
U0.call(e, r) && Vc(t20, r, e[r]);
if (zc)
for (var r of zc(e))
G0.call(e, r) && Vc(t20, r, e[r]);
return t20;
};
var Y0 = {
easeInSine: [0.12, 0, 0.39, 0],
easeOutSine: [0.61, 1, 0.88, 1],
easeInOutSine: [0.37, 0, 0.63, 1],
easeInQuad: [0.11, 0, 0.5, 0],
easeOutQuad: [0.5, 1, 0.89, 1],
easeInOutQuad: [0.45, 0, 0.55, 1],
easeInCubic: [0.32, 0, 0.67, 0],
easeOutCubic: [0.33, 1, 0.68, 1],
easeInOutCubic: [0.65, 0, 0.35, 1],
easeInQuart: [0.5, 0, 0.75, 0],
easeOutQuart: [0.25, 1, 0.5, 1],
easeInOutQuart: [0.76, 0, 0.24, 1],
easeInQuint: [0.64, 0, 0.78, 0],
easeOutQuint: [0.22, 1, 0.36, 1],
easeInOutQuint: [0.83, 0, 0.17, 1],
easeInExpo: [0.7, 0, 0.84, 0],
easeOutExpo: [0.16, 1, 0.3, 1],
easeInOutExpo: [0.87, 0, 0.13, 1],
easeInCirc: [0.55, 0, 1, 0.45],
easeOutCirc: [0, 0.55, 0.45, 1],
easeInOutCirc: [0.85, 0, 0.15, 1],
easeInBack: [0.36, 0, 0.66, -0.56],
easeOutBack: [0.34, 1.56, 0.64, 1],
easeInOutBack: [0.68, -0.6, 0.32, 1.6]
};
W0({
linear: A0
}, Y0);
var Z0 = () => _t && /firefox/i.test(window.navigator.userAgent);
var Su = (t20) => {
let e, r;
return t20.type === "touchend" ? (r = t20.changedTouches[0].clientY, e = t20.changedTouches[0].clientX) : t20.type.startsWith("touch") ? (r = t20.touches[0].clientY, e = t20.touches[0].clientX) : (r = t20.clientY, e = t20.clientX), {
clientX: e,
clientY: r
};
};
Object.freeze({});
Object.freeze([]);
var Wi = () => {
};
var X0 = Object.prototype.hasOwnProperty;
var va = (t20, e) => X0.call(t20, e);
var fr = Array.isArray;
var lr = (t20) => typeof t20 == "function";
var tr = (t20) => typeof t20 == "string";
var Ht = (t20) => t20 !== null && typeof t20 == "object";
var j0 = Object.prototype.toString;
var Q0 = (t20) => j0.call(t20);
var bl = (t20) => Q0(t20).slice(8, -1);
var Cv = (t20) => {
const e = /* @__PURE__ */ Object.create(null);
return (r) => e[r] || (e[r] = t20(r));
};
var J0 = /-(\w)/g;
var em = Cv((t20) => t20.replace(J0, (e, r) => r ? r.toUpperCase() : ""));
var tm = /\B([A-Z])/g;
var rm = Cv(
(t20) => t20.replace(tm, "-$1").toLowerCase()
);
var Ev = typeof global == "object" && global && global.Object === Object && global;
var nm = typeof self == "object" && self && self.Object === Object && self;
var nn = Ev || nm || Function("return this")();
var en = nn.Symbol;
var kv = Object.prototype;
var am = kv.hasOwnProperty;
var im = kv.toString;
var Si = en ? en.toStringTag : void 0;
function om(t20) {
var e = am.call(t20, Si), r = t20[Si];
try {
t20[Si] = void 0;
var n = true;
} catch {
}
var a = im.call(t20);
return n && (e ? t20[Si] = r : delete t20[Si]), a;
}
var sm = Object.prototype;
var lm = sm.toString;
function um(t20) {
return lm.call(t20);
}
var cm = "[object Null]";
var dm = "[object Undefined]";
var Hc = en ? en.toStringTag : void 0;
function ci(t20) {
return t20 == null ? t20 === void 0 ? dm : cm : Hc && Hc in Object(t20) ? om(t20) : um(t20);
}
function ja(t20) {
return t20 != null && typeof t20 == "object";
}
var fm = "[object Symbol]";
function Vs(t20) {
return typeof t20 == "symbol" || ja(t20) && ci(t20) == fm;
}
function vm(t20, e) {
for (var r = -1, n = t20 == null ? 0 : t20.length, a = Array(n); ++r < n; )
a[r] = e(t20[r], r, t20);
return a;
}
var Vr = Array.isArray;
var hm = 1 / 0;
var qc = en ? en.prototype : void 0;
var Kc = qc ? qc.toString : void 0;
function Sv(t20) {
if (typeof t20 == "string")
return t20;
if (Vr(t20))
return vm(t20, Sv) + "";
if (Vs(t20))
return Kc ? Kc.call(t20) : "";
var e = t20 + "";
return e == "0" && 1 / t20 == -hm ? "-0" : e;
}
var pm = /\s/;
function gm(t20) {
for (var e = t20.length; e-- && pm.test(t20.charAt(e)); )
;
return e;
}
var mm = /^\s+/;
function ym(t20) {
return t20 && t20.slice(0, gm(t20) + 1).replace(mm, "");
}
function Vn(t20) {
var e = typeof t20;
return t20 != null && (e == "object" || e == "function");
}
var Uc = NaN;
var bm = /^[-+]0x[0-9a-f]+$/i;
var wm = /^0b[01]+$/i;
var xm = /^0o[0-7]+$/i;
var Cm = parseInt;
function Gc(t20) {
if (typeof t20 == "number")
return t20;
if (Vs(t20))
return Uc;
if (Vn(t20)) {
var e = typeof t20.valueOf == "function" ? t20.valueOf() : t20;
t20 = Vn(e) ? e + "" : e;
}
if (typeof t20 != "string")
return t20 === 0 ? t20 : +t20;
t20 = ym(t20);
var r = wm.test(t20);
return r || xm.test(t20) ? Cm(t20.slice(2), r ? 2 : 8) : bm.test(t20) ? Uc : +t20;
}
function Tv(t20) {
return t20;
}
var Em = "[object AsyncFunction]";
var km = "[object Function]";
var Sm = "[object GeneratorFunction]";
var Tm = "[object Proxy]";
function _v(t20) {
if (!Vn(t20))
return false;
var e = ci(t20);
return e == km || e == Sm || e == Em || e == Tm;
}
var wl = nn["__core-js_shared__"];
var Wc = function() {
var t20 = /[^.]+$/.exec(wl && wl.keys && wl.keys.IE_PROTO || "");
return t20 ? "Symbol(src)_1." + t20 : "";
}();
function _m(t20) {
return !!Wc && Wc in t20;
}
var Dm = Function.prototype;
var Pm = Dm.toString;
function ka(t20) {
if (t20 != null) {
try {
return Pm.call(t20);
} catch {
}
try {
return t20 + "";
} catch {
}
}
return "";
}
var Om = /[\\^$.*+?()[\]{}|]/g;
var Lm = /^\[object .+?Constructor\]$/;
var Fm = Function.prototype;
var Im = Object.prototype;
var Am = Fm.toString;
var Mm = Im.hasOwnProperty;
var Bm = RegExp(
"^" + Am.call(Mm).replace(Om, "\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g, "$1.*?") + "$"
);
function Nm(t20) {
if (!Vn(t20) || _m(t20))
return false;
var e = _v(t20) ? Bm : Lm;
return e.test(ka(t20));
}
function $m(t20, e) {
return t20 == null ? void 0 : t20[e];
}
function Sa(t20, e) {
var r = $m(t20, e);
return Nm(r) ? r : void 0;
}
var Wl = Sa(nn, "WeakMap");
function Rm(t20, e, r) {
switch (r.length) {
case 0:
return t20.call(e);
case 1:
return t20.call(e, r[0]);
case 2:
return t20.call(e, r[0], r[1]);
case 3:
return t20.call(e, r[0], r[1], r[2]);
}
return t20.apply(e, r);
}
var zm = 800;
var Vm = 16;
var Hm = Date.now;
function qm(t20) {
var e = 0, r = 0;
return function() {
var n = Hm(), a = Vm - (n - r);
if (r = n, a > 0) {
if (++e >= zm)
return arguments[0];
} else
e = 0;
return t20.apply(void 0, arguments);
};
}
function Km(t20) {
return function() {
return t20;
};
}
var ws = function() {
try {
var t20 = Sa(Object, "defineProperty");
return t20({}, "", {}), t20;
} catch {
}
}();
var Um = ws ? function(t20, e) {
return ws(t20, "toString", {
configurable: true,
enumerable: false,
value: Km(e),
writable: true
});
} : Tv;
var Gm = qm(Um);
function Wm(t20, e, r, n) {
t20.length;
for (var a = r + 1; a--; )
if (e(t20[a], a, t20))
return a;
return -1;
}
var Ym = 9007199254740991;
var Zm = /^(?:0|[1-9]\d*)$/;
function Tu(t20, e) {
var r = typeof t20;
return e = e ?? Ym, !!e && (r == "number" || r != "symbol" && Zm.test(t20)) && t20 > -1 && t20 % 1 == 0 && t20 < e;
}
function Xm(t20, e, r) {
e == "__proto__" && ws ? ws(t20, e, {
configurable: true,
enumerable: true,
value: r,
writable: true
}) : t20[e] = r;
}
function _u(t20, e) {
return t20 === e || t20 !== t20 && e !== e;
}
var jm = Object.prototype;
var Qm = jm.hasOwnProperty;
function Jm(t20, e, r) {
var n = t20[e];
(!(Qm.call(t20, e) && _u(n, r)) || r === void 0 && !(e in t20)) && Xm(t20, e, r);
}
var Yc = Math.max;
function ey(t20, e, r) {
return e = Yc(e === void 0 ? t20.length - 1 : e, 0), function() {
for (var n = arguments, a = -1, i = Yc(n.length - e, 0), o = Array(i); ++a < i; )
o[a] = n[e + a];
a = -1;
for (var s = Array(e + 1); ++a < e; )
s[a] = n[a];
return s[e] = r(o), Rm(t20, this, s);
};
}
var ty = 9007199254740991;
function Du(t20) {
return typeof t20 == "number" && t20 > -1 && t20 % 1 == 0 && t20 <= ty;
}
function ry(t20) {
return t20 != null && Du(t20.length) && !_v(t20);
}
var ny = Object.prototype;
function ay(t20) {
var e = t20 && t20.constructor, r = typeof e == "function" && e.prototype || ny;
return t20 === r;
}
function iy(t20, e) {
for (var r = -1, n = Array(t20); ++r < t20; )
n[r] = e(r);
return n;
}
var oy = "[object Arguments]";
function Zc(t20) {
return ja(t20) && ci(t20) == oy;
}
var Dv = Object.prototype;
var sy = Dv.hasOwnProperty;
var ly = Dv.propertyIsEnumerable;
var Pu = Zc(/* @__PURE__ */ function() {
return arguments;
}()) ? Zc : function(t20) {
return ja(t20) && sy.call(t20, "callee") && !ly.call(t20, "callee");
};
function uy() {
return false;
}
var Pv = typeof exports == "object" && exports && !exports.nodeType && exports;
var Xc = Pv && typeof module == "object" && module && !module.nodeType && module;
var cy = Xc && Xc.exports === Pv;
var jc = cy ? nn.Buffer : void 0;
var dy = jc ? jc.isBuffer : void 0;
var Yl = dy || uy;
var fy = "[object Arguments]";
var vy = "[object Array]";
var hy = "[object Boolean]";
var py = "[object Date]";
var gy = "[object Error]";
var my = "[object Function]";
var yy = "[object Map]";
var by = "[object Number]";
var wy = "[object Object]";
var xy = "[object RegExp]";
var Cy = "[object Set]";
var Ey = "[object String]";
var ky = "[object WeakMap]";
var Sy = "[object ArrayBuffer]";
var Ty = "[object DataView]";
var _y = "[object Float32Array]";
var Dy = "[object Float64Array]";
var Py = "[object Int8Array]";
var Oy = "[object Int16Array]";
var Ly = "[object Int32Array]";
var Fy = "[object Uint8Array]";
var Iy = "[object Uint8ClampedArray]";
var Ay = "[object Uint16Array]";
var My = "[object Uint32Array]";
var ft = {};
ft[_y] = ft[Dy] = ft[Py] = ft[Oy] = ft[Ly] = ft[Fy] = ft[Iy] = ft[Ay] = ft[My] = true;
ft[fy] = ft[vy] = ft[Sy] = ft[hy] = ft[Ty] = ft[py] = ft[gy] = ft[my] = ft[yy] = ft[by] = ft[wy] = ft[xy] = ft[Cy] = ft[Ey] = ft[ky] = false;
function By(t20) {
return ja(t20) && Du(t20.length) && !!ft[ci(t20)];
}
function Ny(t20) {
return function(e) {
return t20(e);
};
}
var Ov = typeof exports == "object" && exports && !exports.nodeType && exports;
var zi = Ov && typeof module == "object" && module && !module.nodeType && module;
var $y = zi && zi.exports === Ov;
var xl = $y && Ev.process;
var Qc = function() {
try {
var t20 = zi && zi.require && zi.require("util").types;
return t20 || xl && xl.binding && xl.binding("util");
} catch {
}
}();
var Jc = Qc && Qc.isTypedArray;
var Lv = Jc ? Ny(Jc) : By;
var Ry = Object.prototype;
var zy = Ry.hasOwnProperty;
function Vy(t20, e) {
var r = Vr(t20), n = !r && Pu(t20), a = !r && !n && Yl(t20), i = !r && !n && !a && Lv(t20), o = r || n || a || i, s = o ? iy(t20.length, String) : [], u = s.length;
for (var l in t20)
zy.call(t20, l) && !(o && // Safari 9 has enumerable `arguments.length` in strict mode.
(l == "length" || // Node.js 0.10 has enumerable non-index properties on buffers.
a && (l == "offset" || l == "parent") || // PhantomJS 2 has enumerable non-index properties on typed arrays.
i && (l == "buffer" || l == "byteLength" || l == "byteOffset") || // Skip index properties.
Tu(l, u))) && s.push(l);
return s;
}
function Hy(t20, e) {
return function(r) {
return t20(e(r));
};
}
var qy = Hy(Object.keys, Object);
var Ky = Object.prototype;
var Uy = Ky.hasOwnProperty;
function Gy(t20) {
if (!ay(t20))
return qy(t20);
var e = [];
for (var r in Object(t20))
Uy.call(t20, r) && r != "constructor" && e.push(r);
return e;
}
function Fv(t20) {
return ry(t20) ? Vy(t20) : Gy(t20);
}
var Wy = /\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/;
var Yy = /^\w*$/;
function Ou(t20, e) {
if (Vr(t20))
return false;
var r = typeof t20;
return r == "number" || r == "symbol" || r == "boolean" || t20 == null || Vs(t20) ? true : Yy.test(t20) || !Wy.test(t20) || e != null && t20 in Object(e);
}
var Yi = Sa(Object, "create");
function Zy() {
this.__data__ = Yi ? Yi(null) : {}, this.size = 0;
}
function Xy(t20) {
var e = this.has(t20) && delete this.__data__[t20];
return this.size -= e ? 1 : 0, e;
}
var jy = "__lodash_hash_undefined__";
var Qy = Object.prototype;
var Jy = Qy.hasOwnProperty;
function e1(t20) {
var e = this.__data__;
if (Yi) {
var r = e[t20];
return r === jy ? void 0 : r;
}
return Jy.call(e, t20) ? e[t20] : void 0;
}
var t1 = Object.prototype;
var r1 = t1.hasOwnProperty;
function n1(t20) {
var e = this.__data__;
return Yi ? e[t20] !== void 0 : r1.call(e, t20);
}
var a1 = "__lodash_hash_undefined__";
function i1(t20, e) {
var r = this.__data__;
return this.size += this.has(t20) ? 0 : 1, r[t20] = Yi && e === void 0 ? a1 : e, this;
}
function ha(t20) {
var e = -1, r = t20 == null ? 0 : t20.length;
for (this.clear(); ++e < r; ) {
var n = t20[e];
this.set(n[0], n[1]);
}
}
ha.prototype.clear = Zy;
ha.prototype.delete = Xy;
ha.prototype.get = e1;
ha.prototype.has = n1;
ha.prototype.set = i1;
function o1() {
this.__data__ = [], this.size = 0;
}
function Hs(t20, e) {
for (var r = t20.length; r--; )
if (_u(t20[r][0], e))
return r;
return -1;
}
var s1 = Array.prototype;
var l1 = s1.splice;
function u1(t20) {
var e = this.__data__, r = Hs(e, t20);
if (r < 0)
return false;
var n = e.length - 1;
return r == n ? e.pop() : l1.call(e, r, 1), --this.size, true;
}
function c1(t20) {
var e = this.__data__, r = Hs(e, t20);
return r < 0 ? void 0 : e[r][1];
}
function d1(t20) {
return Hs(this.__data__, t20) > -1;
}
function f1(t20, e) {
var r = this.__data__, n = Hs(r, t20);
return n < 0 ? (++this.size, r.push([t20, e])) : r[n][1] = e, this;
}
function bn(t20) {
var e = -1, r = t20 == null ? 0 : t20.length;
for (this.clear(); ++e < r; ) {
var n = t20[e];
this.set(n[0], n[1]);
}
}
bn.prototype.clear = o1;
bn.prototype.delete = u1;
bn.prototype.get = c1;
bn.prototype.has = d1;
bn.prototype.set = f1;
var Zi = Sa(nn, "Map");
function v1() {
this.size = 0, this.__data__ = {
hash: new ha(),
map: new (Zi || bn)(),
string: new ha()
};
}
function h1(t20) {
var e = typeof t20;
return e == "string" || e == "number" || e == "symbol" || e == "boolean" ? t20 !== "__proto__" : t20 === null;
}
function qs(t20, e) {
var r = t20.__data__;
return h1(e) ? r[typeof e == "string" ? "string" : "hash"] : r.map;
}
function p1(t20) {
var e = qs(this, t20).delete(t20);
return this.size -= e ? 1 : 0, e;
}
function g1(t20) {
return qs(this, t20).get(t20);
}
function m1(t20) {
return qs(this, t20).has(t20);
}
function y1(t20, e) {
var r = qs(this, t20), n = r.size;
return r.set(t20, e), this.size += r.size == n ? 0 : 1, this;
}
function wn2(t20) {
var e = -1, r = t20 == null ? 0 : t20.length;
for (this.clear(); ++e < r; ) {
var n = t20[e];
this.set(n[0], n[1]);
}
}
wn2.prototype.clear = v1;
wn2.prototype.delete = p1;
wn2.prototype.get = g1;
wn2.prototype.has = m1;
wn2.prototype.set = y1;
var b1 = "Expected a function";
function Lu(t20, e) {
if (typeof t20 != "function" || e != null && typeof e != "function")
throw new TypeError(b1);
var r = function() {
var n = arguments, a = e ? e.apply(this, n) : n[0], i = r.cache;
if (i.has(a))
return i.get(a);
var o = t20.apply(this, n);
return r.cache = i.set(a, o) || i, o;
};
return r.cache = new (Lu.Cache || wn2)(), r;
}
Lu.Cache = wn2;
var w1 = 500;
function x1(t20) {
var e = Lu(t20, function(n) {
return r.size === w1 && r.clear(), n;
}), r = e.cache;
return e;
}
var C1 = /[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g;
var E1 = /\\(\\)?/g;
var k1 = x1(function(t20) {
var e = [];
return t20.charCodeAt(0) === 46 && e.push(""), t20.replace(C1, function(r, n, a, i) {
e.push(a ? i.replace(E1, "$1") : n || r);
}), e;
});
function S1(t20) {
return t20 == null ? "" : Sv(t20);
}
function Ks(t20, e) {
return Vr(t20) ? t20 : Ou(t20, e) ? [t20] : k1(S1(t20));
}
var T1 = 1 / 0;
function mo(t20) {
if (typeof t20 == "string" || Vs(t20))
return t20;
var e = t20 + "";
return e == "0" && 1 / t20 == -T1 ? "-0" : e;
}
function Fu(t20, e) {
e = Ks(e, t20);
for (var r = 0, n = e.length; t20 != null && r < n; )
t20 = t20[mo(e[r++])];
return r && r == n ? t20 : void 0;
}
function fn(t20, e, r) {
var n = t20 == null ? void 0 : Fu(t20, e);
return n === void 0 ? r : n;
}
function Iv(t20, e) {
for (var r = -1, n = e.length, a = t20.length; ++r < n; )
t20[a + r] = e[r];
return t20;
}
var ed = en ? en.isConcatSpreadable : void 0;
function _1(t20) {
return Vr(t20) || Pu(t20) || !!(ed && t20 && t20[ed]);
}
function D1(t20, e, r, n, a) {
var i = -1, o = t20.length;
for (r || (r = _1), a || (a = []); ++i < o; ) {
var s = t20[i];
r(s) ? Iv(a, s) : a[a.length] = s;
}
return a;
}
function P1(t20) {
var e = t20 == null ? 0 : t20.length;
return e ? D1(t20) : [];
}
function O1(t20) {
return Gm(ey(t20, void 0, P1), t20 + "");
}
function In() {
if (!arguments.length)
return [];
var t20 = arguments[0];
return Vr(t20) ? t20 : [t20];
}
function L1() {
this.__data__ = new bn(), this.size = 0;
}
function F1(t20) {
var e = this.__data__, r = e.delete(t20);
return this.size = e.size, r;
}
function I1(t20) {
return this.__data__.get(t20);
}
function A1(t20) {
return this.__data__.has(t20);
}
var M1 = 200;
function B1(t20, e) {
var r = this.__data__;
if (r instanceof bn) {
var n = r.__data__;
if (!Zi || n.length < M1 - 1)
return n.push([t20, e]), this.size = ++r.size, this;
r = this.__data__ = new wn2(n);
}
return r.set(t20, e), this.size = r.size, this;
}
function hn2(t20) {
var e = this.__data__ = new bn(t20);
this.size = e.size;
}
hn2.prototype.clear = L1;
hn2.prototype.delete = F1;
hn2.prototype.get = I1;
hn2.prototype.has = A1;
hn2.prototype.set = B1;
function N1(t20, e) {
for (var r = -1, n = t20 == null ? 0 : t20.length, a = 0, i = []; ++r < n; ) {
var o = t20[r];
e(o, r, t20) && (i[a++] = o);
}
return i;
}
function $1() {
return [];
}
var R1 = Object.prototype;
var z1 = R1.propertyIsEnumerable;
var td = Object.getOwnPropertySymbols;
var V1 = td ? function(t20) {
return t20 == null ? [] : (t20 = Object(t20), N1(td(t20), function(e) {
return z1.call(t20, e);
}));
} : $1;
function H1(t20, e, r) {
var n = e(t20);
return Vr(t20) ? n : Iv(n, r(t20));
}
function rd(t20) {
return H1(t20, Fv, V1);
}
var Zl = Sa(nn, "DataView");
var Xl = Sa(nn, "Promise");
var jl = Sa(nn, "Set");
var nd = "[object Map]";
var q1 = "[object Object]";
var ad = "[object Promise]";
var id = "[object Set]";
var od = "[object WeakMap]";
var sd = "[object DataView]";
var K1 = ka(Zl);
var U1 = ka(Zi);
var G1 = ka(Xl);
var W1 = ka(jl);
var Y1 = ka(Wl);
var Fn = ci;
(Zl && Fn(new Zl(new ArrayBuffer(1))) != sd || Zi && Fn(new Zi()) != nd || Xl && Fn(Xl.resolve()) != ad || jl && Fn(new jl()) != id || Wl && Fn(new Wl()) != od) && (Fn = function(t20) {
var e = ci(t20), r = e == q1 ? t20.constructor : void 0, n = r ? ka(r) : "";
if (n)
switch (n) {
case K1:
return sd;
case U1:
return nd;
case G1:
return ad;
case W1:
return id;
case Y1:
return od;
}
return e;
});
var ld = nn.Uint8Array;
var Z1 = "__lodash_hash_undefined__";
function X1(t20) {
return this.__data__.set(t20, Z1), this;
}
function j1(t20) {
return this.__data__.has(t20);
}
function xs(t20) {
var e = -1, r = t20 == null ? 0 : t20.length;
for (this.__data__ = new wn2(); ++e < r; )
this.add(t20[e]);
}
xs.prototype.add = xs.prototype.push = X1;
xs.prototype.has = j1;
function Q1(t20, e) {
for (var r = -1, n = t20 == null ? 0 : t20.length; ++r < n; )
if (e(t20[r], r, t20))
return true;
return false;
}
function J1(t20, e) {
return t20.has(e);
}
var eb = 1;
var tb = 2;
function Av(t20, e, r, n, a, i) {
var o = r & eb, s = t20.length, u = e.length;
if (s != u && !(o && u > s))
return false;
var l = i.get(t20), c = i.get(e);
if (l && c)
return l == e && c == t20;
var d = -1, v = true, h6 = r & tb ? new xs() : void 0;
for (i.set(t20, e), i.set(e, t20); ++d < s; ) {
var f = t20[d], p = e[d];
if (n)
var m = o ? n(p, f, d, e, t20, i) : n(f, p, d, t20, e, i);
if (m !== void 0) {
if (m)
continue;
v = false;
break;
}
if (h6) {
if (!Q1(e, function(g, y) {
if (!J1(h6, y) && (f === g || a(f, g, r, n, i)))
return h6.push(y);
})) {
v = false;
break;
}
} else if (!(f === p || a(f, p, r, n, i))) {
v = false;
break;
}
}
return i.delete(t20), i.delete(e), v;
}
function rb(t20) {
var e = -1, r = Array(t20.size);
return t20.forEach(function(n, a) {
r[++e] = [a, n];
}), r;
}
function nb(t20) {
var e = -1, r = Array(t20.size);
return t20.forEach(function(n) {
r[++e] = n;
}), r;
}
var ab = 1;
var ib = 2;
var ob = "[object Boolean]";
var sb = "[object Date]";
var lb = "[object Error]";
var ub = "[object Map]";
var cb = "[object Number]";
var db = "[object RegExp]";
var fb = "[object Set]";
var vb = "[object String]";
var hb = "[object Symbol]";
var pb = "[object ArrayBuffer]";
var gb = "[object DataView]";
var ud = en ? en.prototype : void 0;
var Cl = ud ? ud.valueOf : void 0;
function mb(t20, e, r, n, a, i, o) {
switch (r) {
case gb:
if (t20.byteLength != e.byteLength || t20.byteOffset != e.byteOffset)
return false;
t20 = t20.buffer, e = e.buffer;
case pb:
return !(t20.byteLength != e.byteLength || !i(new ld(t20), new ld(e)));
case ob:
case sb:
case cb:
return _u(+t20, +e);
case lb:
return t20.name == e.name && t20.message == e.message;
case db:
case vb:
return t20 == e + "";
case ub:
var s = rb;
case fb:
var u = n & ab;
if (s || (s = nb), t20.size != e.size && !u)
return false;
var l = o.get(t20);
if (l)
return l == e;
n |= ib, o.set(t20, e);
var c = Av(s(t20), s(e), n, a, i, o);
return o.delete(t20), c;
case hb:
if (Cl)
return Cl.call(t20) == Cl.call(e);
}
return false;
}
var yb = 1;
var bb = Object.prototype;
var wb = bb.hasOwnProperty;
function xb(t20, e, r, n, a, i) {
var o = r & yb, s = rd(t20), u = s.length, l = rd(e), c = l.length;
if (u != c && !o)
return false;
for (var d = u; d--; ) {
var v = s[d];
if (!(o ? v in e : wb.call(e, v)))
return false;
}
var h6 = i.get(t20), f = i.get(e);
if (h6 && f)
return h6 == e && f == t20;
var p = true;
i.set(t20, e), i.set(e, t20);
for (var m = o; ++d < u; ) {
v = s[d];
var g = t20[v], y = e[v];
if (n)
var b = o ? n(y, g, v, e, t20, i) : n(g, y, v, t20, e, i);
if (!(b === void 0 ? g === y || a(g, y, r, n, i) : b)) {
p = false;
break;
}
m || (m = v == "constructor");
}
if (p && !m) {
var w = t20.constructor, C = e.constructor;
w != C && "constructor" in t20 && "constructor" in e && !(typeof w == "function" && w instanceof w && typeof C == "function" && C instanceof C) && (p = false);
}
return i.delete(t20), i.delete(e), p;
}
var Cb = 1;
var cd = "[object Arguments]";
var dd = "[object Array]";
var No = "[object Object]";
var Eb = Object.prototype;
var fd = Eb.hasOwnProperty;
function kb(t20, e, r, n, a, i) {
var o = Vr(t20), s = Vr(e), u = o ? dd : Fn(t20), l = s ? dd : Fn(e);
u = u == cd ? No : u, l = l == cd ? No : l;
var c = u == No, d = l == No, v = u == l;
if (v && Yl(t20)) {
if (!Yl(e))
return false;
o = true, c = false;
}
if (v && !c)
return i || (i = new hn2()), o || Lv(t20) ? Av(t20, e, r, n, a, i) : mb(t20, e, u, r, n, a, i);
if (!(r & Cb)) {
var h6 = c && fd.call(t20, "__wrapped__"), f = d && fd.call(e, "__wrapped__");
if (h6 || f) {
var p = h6 ? t20.value() : t20, m = f ? e.value() : e;
return i || (i = new hn2()), a(p, m, r, n, i);
}
}
return v ? (i || (i = new hn2()), xb(t20, e, r, n, a, i)) : false;
}
function Us(t20, e, r, n, a) {
return t20 === e ? true : t20 == null || e == null || !ja(t20) && !ja(e) ? t20 !== t20 && e !== e : kb(t20, e, r, n, Us, a);
}
var Sb = 1;
var Tb = 2;
function _b(t20, e, r, n) {
var a = r.length, i = a;
if (t20 == null)
return !i;
for (t20 = Object(t20); a--; ) {
var o = r[a];
if (o[2] ? o[1] !== t20[o[0]] : !(o[0] in t20))
return false;
}
for (; ++a < i; ) {
o = r[a];
var s = o[0], u = t20[s], l = o[1];
if (o[2]) {
if (u === void 0 && !(s in t20))
return false;
} else {
var c = new hn2(), d;
if (!(d === void 0 ? Us(l, u, Sb | Tb, n, c) : d))
return false;
}
}
return true;
}
function Mv(t20) {
return t20 === t20 && !Vn(t20);
}
function Db(t20) {
for (var e = Fv(t20), r = e.length; r--; ) {
var n = e[r], a = t20[n];
e[r] = [n, a, Mv(a)];
}
return e;
}
function Bv(t20, e) {
return function(r) {
return r == null ? false : r[t20] === e && (e !== void 0 || t20 in Object(r));
};
}
function Pb(t20) {
var e = Db(t20);
return e.length == 1 && e[0][2] ? Bv(e[0][0], e[0][1]) : function(r) {
return r === t20 || _b(r, t20, e);
};
}
function Ob(t20, e) {
return t20 != null && e in Object(t20);
}
function Lb(t20, e, r) {
e = Ks(e, t20);
for (var n = -1, a = e.length, i = false; ++n < a; ) {
var o = mo(e[n]);
if (!(i = t20 != null && r(t20, o)))
break;
t20 = t20[o];
}
return i || ++n != a ? i : (a = t20 == null ? 0 : t20.length, !!a && Du(a) && Tu(o, a) && (Vr(t20) || Pu(t20)));
}
function Nv(t20, e) {
return t20 != null && Lb(t20, e, Ob);
}
var Fb = 1;
var Ib = 2;
function Ab(t20, e) {
return Ou(t20) && Mv(e) ? Bv(mo(t20), e) : function(r) {
var n = fn(r, t20);
return n === void 0 && n === e ? Nv(r, t20) : Us(e, n, Fb | Ib);
};
}
function Mb(t20) {
return function(e) {
return e == null ? void 0 : e[t20];
};
}
function Bb(t20) {
return function(e) {
return Fu(e, t20);
};
}
function Nb(t20) {
return Ou(t20) ? Mb(mo(t20)) : Bb(t20);
}
function $b(t20) {
return typeof t20 == "function" ? t20 : t20 == null ? Tv : typeof t20 == "object" ? Vr(t20) ? Ab(t20[0], t20[1]) : Pb(t20) : Nb(t20);
}
var El = function() {
return nn.Date.now();
};
var Rb = "Expected a function";
var zb = Math.max;
var Vb = Math.min;
function $v(t20, e, r) {
var n, a, i, o, s, u, l = 0, c = false, d = false, v = true;
if (typeof t20 != "function")
throw new TypeError(Rb);
e = Gc(e) || 0, Vn(r) && (c = !!r.leading, d = "maxWait" in r, i = d ? zb(Gc(r.maxWait) || 0, e) : i, v = "trailing" in r ? !!r.trailing : v);
function h6(E) {
var x = n, T = a;
return n = a = void 0, l = E, o = t20.apply(T, x), o;
}
function f(E) {
return l = E, s = setTimeout(g, e), c ? h6(E) : o;
}
function p(E) {
var x = E - u, T = E - l, k = e - x;
return d ? Vb(k, i - T) : k;
}
function m(E) {
var x = E - u, T = E - l;
return u === void 0 || x >= e || x < 0 || d && T >= i;
}
function g() {
var E = El();
if (m(E))
return y(E);
s = setTimeout(g, p(E));
}
function y(E) {
return s = void 0, v && n ? h6(E) : (n = a = void 0, o);
}
function b() {
s !== void 0 && clearTimeout(s), l = 0, n = u = a = s = void 0;
}
function w() {
return s === void 0 ? o : y(El());
}
function C() {
var E = El(), x = m(E);
if (n = arguments, a = this, u = E, x) {
if (s === void 0)
return f(u);
if (d)
return clearTimeout(s), s = setTimeout(g, e), h6(u);
}
return s === void 0 && (s = setTimeout(g, e)), o;
}
return C.cancel = b, C.flush = w, C;
}
function Hb(t20, e, r) {
var n = t20 == null ? 0 : t20.length;
if (!n)
return -1;
var a = n - 1;
return Wm(t20, $b(e), a);
}
function Cs(t20) {
for (var e = -1, r = t20 == null ? 0 : t20.length, n = {}; ++e < r; ) {
var a = t20[e];
n[a[0]] = a[1];
}
return n;
}
function Es(t20, e) {
return Us(t20, e);
}
function $n(t20) {
return t20 == null;
}
function qb(t20) {
return t20 === void 0;
}
function Kb(t20, e, r, n) {
if (!Vn(t20))
return t20;
e = Ks(e, t20);
for (var a = -1, i = e.length, o = i - 1, s = t20; s != null && ++a < i; ) {
var u = mo(e[a]), l = r;
if (u === "__proto__" || u === "constructor" || u === "prototype")
return t20;
if (a != o) {
var c = s[u];
l = void 0, l === void 0 && (l = Vn(c) ? c : Tu(e[a + 1]) ? [] : {});
}
Jm(s, u, l), s = s[u];
}
return t20;
}
function Ub(t20, e, r) {
for (var n = -1, a = e.length, i = {}; ++n < a; ) {
var o = e[n], s = Fu(t20, o);
r(s, o) && Kb(i, Ks(o, t20), s);
}
return i;
}
function Gb(t20, e) {
return Ub(t20, e, function(r, n) {
return Nv(t20, n);
});
}
var Rv = O1(function(t20, e) {
return t20 == null ? {} : Gb(t20, e);
});
var Mn = (t20) => t20 === void 0;
var Qa = (t20) => typeof t20 == "boolean";
var qt = (t20) => typeof t20 == "number";
var ua = (t20) => typeof Element > "u" ? false : t20 instanceof Element;
var ks = (t20) => $n(t20);
var Wb = (t20) => tr(t20) ? !Number.isNaN(Number(t20)) : false;
var Yb = (t20 = "") => t20.replace(/[|\\{}()[\]^$+*?.]/g, "\\$&").replace(/-/g, "\\x2d");
var vd = (t20) => Object.keys(t20);
var zv = class extends Error {
constructor(e) {
super(e), this.name = "ElementPlusError";
}
};
function Zb(t20, e) {
throw new zv(`[${t20}] ${e}`);
}
function Dt(t20, e) {
if (true) {
const r = tr(t20) ? new zv(`[${t20}] ${e}`) : t20;
console.warn(r);
}
}
var Xb = "utils/dom/style";
var Vv = (t20 = "") => t20.split(" ").filter((e) => !!e.trim());
var Ql = (t20, e) => {
!t20 || !e.trim() || t20.classList.add(...Vv(e));
};
var ca = (t20, e) => {
!t20 || !e.trim() || t20.classList.remove(...Vv(e));
};
var Ti = (t20, e) => {
var r;
if (!_t || !t20 || !e)
return "";
let n = em(e);
n === "float" && (n = "cssFloat");
try {
const a = t20.style[n];
if (a)
return a;
const i = (r = document.defaultView) == null ? void 0 : r.getComputedStyle(t20, "");
return i ? i[n] : "";
} catch {
return t20.style[n];
}
};
function Ja(t20, e = "px") {
if (!t20)
return "";
if (qt(t20) || Wb(t20))
return `${t20}${e}`;
if (tr(t20))
return t20;
Dt(Xb, "binding value must be a string or number");
}
function jb(t20, e) {
if (!_t)
return;
if (!e) {
t20.scrollTop = 0;
return;
}
const r = [];
let n = e.offsetParent;
for (; n !== null && t20 !== n && t20.contains(n); )
r.push(n), n = n.offsetParent;
const a = e.offsetTop + r.reduce((u, l) => u + l.offsetTop, 0), i = a + e.offsetHeight, o = t20.scrollTop, s = o + t20.clientHeight;
a < o ? t20.scrollTop = a : i > s && (t20.scrollTop = i - t20.clientHeight);
}
var Qb = defineComponent({
name: "Aim",
__name: "aim",
setup(t20) {
return (e, r) => (openBlock(), createElementBlock("svg", {
xmlns: "http://www.w3.org/2000/svg",
viewBox: "0 0 1024 1024"
}, [
createBaseVNode("path", {
fill: "currentColor",
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"
}),
createBaseVNode("path", {
fill: "currentColor",
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"
})
]));
}
});
var Jb = Qb;
var e2 = defineComponent({
name: "ArrowDown",
__name: "arrow-down",
setup(t20) {
return (e, r) => (openBlock(), createElementBlock("svg", {
xmlns: "http://www.w3.org/2000/svg",
viewBox: "0 0 1024 1024"
}, [
createBaseVNode("path", {
fill: "currentColor",
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"
})
]));
}
});
var Gs = e2;
var t2 = defineComponent({
name: "ArrowUp",
__name: "arrow-up",
setup(t20) {
return (e, r) => (openBlock(), createElementBlock("svg", {
xmlns: "http://www.w3.org/2000/svg",
viewBox: "0 0 1024 1024"
}, [
createBaseVNode("path", {
fill: "currentColor",
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"
})
]));
}
});
var Hv = t2;
var r2 = defineComponent({
name: "CaretRight",
__name: "caret-right",
setup(t20) {
return (e, r) => (openBlock(), createElementBlock("svg", {
xmlns: "http://www.w3.org/2000/svg",
viewBox: "0 0 1024 1024"
}, [
createBaseVNode("path", {
fill: "currentColor",
d: "M384 192v640l384-320.064z"
})
]));
}
});
var n2 = r2;
var a2 = defineComponent({
name: "CircleCheck",
__name: "circle-check",
setup(t20) {
return (e, r) => (openBlock(), createElementBlock("svg", {
xmlns: "http://www.w3.org/2000/svg",
viewBox: "0 0 1024 1024"
}, [
createBaseVNode("path", {
fill: "currentColor",
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"
}),
createBaseVNode("path", {
fill: "currentColor",
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"
})
]));
}
});
var i2 = a2;
var o2 = defineComponent({
name: "CircleClose",
__name: "circle-close",
setup(t20) {
return (e, r) => (openBlock(), createElementBlock("svg", {
xmlns: "http://www.w3.org/2000/svg",
viewBox: "0 0 1024 1024"
}, [
createBaseVNode("path", {
fill: "currentColor",
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"
}),
createBaseVNode("path", {
fill: "currentColor",
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"
})
]));
}
});
var Iu = o2;
var s2 = defineComponent({
name: "Close",
__name: "close",
setup(t20) {
return (e, r) => (openBlock(), createElementBlock("svg", {
xmlns: "http://www.w3.org/2000/svg",
viewBox: "0 0 1024 1024"
}, [
createBaseVNode("path", {
fill: "currentColor",
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"
})
]));
}
});
var Ss = s2;
var l2 = defineComponent({
name: "CopyDocument",
__name: "copy-document",
setup(t20) {
return (e, r) => (openBlock(), createElementBlock("svg", {
xmlns: "http://www.w3.org/2000/svg",
viewBox: "0 0 1024 1024"
}, [
createBaseVNode("path", {
fill: "currentColor",
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"
}),
createBaseVNode("path", {
fill: "currentColor",
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"
})
]));
}
});
var u2 = l2;
var c2 = defineComponent({
name: "Delete",
__name: "delete",
setup(t20) {
return (e, r) => (openBlock(), createElementBlock("svg", {
xmlns: "http://www.w3.org/2000/svg",
viewBox: "0 0 1024 1024"
}, [
createBaseVNode("path", {
fill: "currentColor",
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"
})
]));
}
});
var d2 = c2;
var f2 = defineComponent({
name: "Edit",
__name: "edit",
setup(t20) {
return (e, r) => (openBlock(), createElementBlock("svg", {
xmlns: "http://www.w3.org/2000/svg",
viewBox: "0 0 1024 1024"
}, [
createBaseVNode("path", {
fill: "currentColor",
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"
}),
createBaseVNode("path", {
fill: "currentColor",
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"
})
]));
}
});
var v2 = f2;
var h2 = defineComponent({
name: "Finished",
__name: "finished",
setup(t20) {
return (e, r) => (openBlock(), createElementBlock("svg", {
xmlns: "http://www.w3.org/2000/svg",
viewBox: "0 0 1024 1024"
}, [
createBaseVNode("path", {
fill: "currentColor",
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"
})
]));
}
});
var p2 = h2;
var g2 = defineComponent({
name: "Hide",
__name: "hide",
setup(t20) {
return (e, r) => (openBlock(), createElementBlock("svg", {
xmlns: "http://www.w3.org/2000/svg",
viewBox: "0 0 1024 1024"
}, [
createBaseVNode("path", {
fill: "currentColor",
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"
}),
createBaseVNode("path", {
fill: "currentColor",
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"
})
]));
}
});
var m2 = g2;
var y2 = defineComponent({
name: "Loading",
__name: "loading",
setup(t20) {
return (e, r) => (openBlock(), createElementBlock("svg", {
xmlns: "http://www.w3.org/2000/svg",
viewBox: "0 0 1024 1024"
}, [
createBaseVNode("path", {
fill: "currentColor",
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"
})
]));
}
});
var Au = y2;
var b2 = defineComponent({
name: "Lock",
__name: "lock",
setup(t20) {
return (e, r) => (openBlock(), createElementBlock("svg", {
xmlns: "http://www.w3.org/2000/svg",
viewBox: "0 0 1024 1024"
}, [
createBaseVNode("path", {
fill: "currentColor",
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"
}),
createBaseVNode("path", {
fill: "currentColor",
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"
})
]));
}
});
var w2 = b2;
var x2 = defineComponent({
name: "Notebook",
__name: "notebook",
setup(t20) {
return (e, r) => (openBlock(), createElementBlock("svg", {
xmlns: "http://www.w3.org/2000/svg",
viewBox: "0 0 1024 1024"
}, [
createBaseVNode("path", {
fill: "currentColor",
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"
}),
createBaseVNode("path", {
fill: "currentColor",
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"
})
]));
}
});
var C2 = x2;
var E2 = defineComponent({
name: "Unlock",
__name: "unlock",
setup(t20) {
return (e, r) => (openBlock(), createElementBlock("svg", {
xmlns: "http://www.w3.org/2000/svg",
viewBox: "0 0 1024 1024"
}, [
createBaseVNode("path", {
fill: "currentColor",
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"
}),
createBaseVNode("path", {
fill: "currentColor",
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"
})
]));
}
});
var k2 = E2;
var S2 = defineComponent({
name: "View",
__name: "view",
setup(t20) {
return (e, r) => (openBlock(), createElementBlock("svg", {
xmlns: "http://www.w3.org/2000/svg",
viewBox: "0 0 1024 1024"
}, [
createBaseVNode("path", {
fill: "currentColor",
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"
})
]));
}
});
var T2 = S2;
var _2 = defineComponent({
name: "Warning",
__name: "warning",
setup(t20) {
return (e, r) => (openBlock(), createElementBlock("svg", {
xmlns: "http://www.w3.org/2000/svg",
viewBox: "0 0 1024 1024"
}, [
createBaseVNode("path", {
fill: "currentColor",
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"
})
]));
}
});
var D2 = _2;
var P2 = defineComponent({
name: "ZoomIn",
__name: "zoom-in",
setup(t20) {
return (e, r) => (openBlock(), createElementBlock("svg", {
xmlns: "http://www.w3.org/2000/svg",
viewBox: "0 0 1024 1024"
}, [
createBaseVNode("path", {
fill: "currentColor",
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"
})
]));
}
});
var O2 = P2;
var L2 = defineComponent({
name: "ZoomOut",
__name: "zoom-out",
setup(t20) {
return (e, r) => (openBlock(), createElementBlock("svg", {
xmlns: "http://www.w3.org/2000/svg",
viewBox: "0 0 1024 1024"
}, [
createBaseVNode("path", {
fill: "currentColor",
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"
})
]));
}
});
var F2 = L2;
var qv = "__epPropKey";
var $e = (t20) => t20;
var I2 = (t20) => Ht(t20) && !!t20[qv];
var Ws = (t20, e) => {
if (!Ht(t20) || I2(t20))
return t20;
const { values: r, required: n, default: a, type: i, validator: o } = t20, u = {
type: i,
required: !!n,
validator: r || o ? (l) => {
let c = false, d = [];
if (r && (d = Array.from(r), va(t20, "default") && d.push(a), c || (c = d.includes(l))), o && (c || (c = o(l))), !c && d.length > 0) {
const v = [...new Set(d)].map((h6) => JSON.stringify(h6)).join(", ");
warn(`Invalid prop: validation failed${e ? ` for prop "${e}"` : ""}. Expected one of [${v}], got value ${JSON.stringify(l)}.`);
}
return c;
} : void 0,
[qv]: true
};
return va(t20, "default") && (u.default = a), u;
};
var rt = (t20) => Cs(Object.entries(t20).map(([e, r]) => [
e,
Ws(r, e)
]));
var Hn = $e([
String,
Object,
Function
]);
var Kv = {
validating: Au,
success: i2,
error: Iu
};
var $t = (t20, e) => {
if (t20.install = (r) => {
for (const n of [t20, ...Object.values(e ?? {})])
r.component(n.name, n);
}, e)
for (const [r, n] of Object.entries(e))
t20[r] = n;
return t20;
};
var A2 = (t20, e) => (t20.install = (r) => {
r.directive(e, t20);
}, t20);
var xn = (t20) => (t20.install = Wi, t20);
var Lt = {
tab: "Tab",
enter: "Enter",
space: "Space",
left: "ArrowLeft",
up: "ArrowUp",
right: "ArrowRight",
down: "ArrowDown",
esc: "Escape",
delete: "Delete",
backspace: "Backspace",
numpadEnter: "NumpadEnter",
pageUp: "PageUp",
pageDown: "PageDown",
home: "Home",
end: "End"
};
var zt = "update:modelValue";
var Mu = "change";
var Uv = ["", "default", "small", "large"];
var M2 = (t20) => /([\uAC00-\uD7AF\u3130-\u318F])+/gi.test(t20);
var Ra = (t20) => t20;
var B2 = ["class", "style"];
var N2 = /^on[A-Z]/;
var $2 = (t20 = {}) => {
const { excludeListeners: e = false, excludeKeys: r } = t20, n = computed(() => ((r == null ? void 0 : r.value) || []).concat(B2)), a = getCurrentInstance();
return a ? computed(() => {
var i;
return Cs(Object.entries((i = a.proxy) == null ? void 0 : i.$attrs).filter(([o]) => !n.value.includes(o) && !(e && N2.test(o))));
}) : (Dt("use-attrs", "getCurrentInstance() returned null. useAttrs() must be called at the top of a setup function"), computed(() => ({})));
};
var as = ({ from: t20, replacement: e, scope: r, version: n, ref: a, type: i = "API" }, o) => {
watch(() => unref(o), (s) => {
s && Dt(r, `[${i}] ${t20} is about to be deprecated in version ${n}, please use ${e} instead.
For more detail, please visit: ${a}
`);
}, {
immediate: true
});
};
var R2 = {
name: "en",
el: {
breadcrumb: {
label: "Breadcrumb"
},
colorpicker: {
confirm: "OK",
clear: "Clear",
defaultLabel: "color picker",
description: "current color is {color}. press enter to select a new color.",
alphaLabel: "pick alpha value"
},
datepicker: {
now: "Now",
today: "Today",
cancel: "Cancel",
clear: "Clear",
confirm: "OK",
dateTablePrompt: "Use the arrow keys and enter to select the day of the month",
monthTablePrompt: "Use the arrow keys and enter to select the month",
yearTablePrompt: "Use the arrow keys and enter to select the year",
selectedDate: "Selected date",
selectDate: "Select date",
selectTime: "Select time",
startDate: "Start Date",
startTime: "Start Time",
endDate: "End Date",
endTime: "End Time",
prevYear: "Previous Year",
nextYear: "Next Year",
prevMonth: "Previous Month",
nextMonth: "Next Month",
year: "",
month1: "January",
month2: "February",
month3: "March",
month4: "April",
month5: "May",
month6: "June",
month7: "July",
month8: "August",
month9: "September",
month10: "October",
month11: "November",
month12: "December",
week: "week",
weeks: {
sun: "Sun",
mon: "Mon",
tue: "Tue",
wed: "Wed",
thu: "Thu",
fri: "Fri",
sat: "Sat"
},
weeksFull: {
sun: "Sunday",
mon: "Monday",
tue: "Tuesday",
wed: "Wednesday",
thu: "Thursday",
fri: "Friday",
sat: "Saturday"
},
months: {
jan: "Jan",
feb: "Feb",
mar: "Mar",
apr: "Apr",
may: "May",
jun: "Jun",
jul: "Jul",
aug: "Aug",
sep: "Sep",
oct: "Oct",
nov: "Nov",
dec: "Dec"
}
},
inputNumber: {
decrease: "decrease number",
increase: "increase number"
},
select: {
loading: "Loading",
noMatch: "No matching data",
noData: "No data",
placeholder: "Select"
},
mention: {
loading: "Loading"
},
dropdown: {
toggleDropdown: "Toggle Dropdown"
},
cascader: {
noMatch: "No matching data",
loading: "Loading",
placeholder: "Select",
noData: "No data"
},
pagination: {
goto: "Go to",
pagesize: "/page",
total: "Total {total}",
pageClassifier: "",
page: "Page",
prev: "Go to previous page",
next: "Go to next page",
currentPage: "page {pager}",
prevPages: "Previous {pager} pages",
nextPages: "Next {pager} pages",
deprecationWarning: "Deprecated usages detected, please refer to the el-pagination documentation for more details"
},
dialog: {
close: "Close this dialog"
},
drawer: {
close: "Close this dialog"
},
messagebox: {
title: "Message",
confirm: "OK",
cancel: "Cancel",
error: "Illegal input",
close: "Close this dialog"
},
upload: {
deleteTip: "press delete to remove",
delete: "Delete",
preview: "Preview",
continue: "Continue"
},
slider: {
defaultLabel: "slider between {min} and {max}",
defaultRangeStartLabel: "pick start value",
defaultRangeEndLabel: "pick end value"
},
table: {
emptyText: "No Data",
confirmFilter: "Confirm",
resetFilter: "Reset",
clearFilter: "All",
sumText: "Sum"
},
tour: {
next: "Next",
previous: "Previous",
finish: "Finish"
},
tree: {
emptyText: "No Data"
},
transfer: {
noMatch: "No matching data",
noData: "No data",
titles: ["List 1", "List 2"],
filterPlaceholder: "Enter keyword",
noCheckedFormat: "{total} items",
hasCheckedFormat: "{checked}/{total} checked"
},
image: {
error: "FAILED"
},
pageHeader: {
title: "Back"
},
popconfirm: {
confirmButtonText: "Yes",
cancelButtonText: "No"
},
carousel: {
leftArrow: "Carousel arrow left",
rightArrow: "Carousel arrow right",
indicator: "Carousel switch to index {index}"
}
}
};
var z2 = (t20) => (e, r) => V2(e, r, unref(t20));
var V2 = (t20, e, r) => fn(r, t20, t20).replace(/\{(\w+)\}/g, (n, a) => {
var i;
return `${(i = e == null ? void 0 : e[a]) != null ? i : `{${a}}`}`;
});
var H2 = (t20) => {
const e = computed(() => unref(t20).name), r = isRef(t20) ? t20 : ref(t20);
return {
lang: e,
locale: r,
t: z2(t20)
};
};
var Gv = Symbol("localeContextKey");
var yo = (t20) => {
const e = t20 || inject(Gv, ref());
return H2(computed(() => e.value || R2));
};
var is = "el";
var q2 = "is-";
var Qn = (t20, e, r, n, a) => {
let i = `${t20}-${e}`;
return r && (i += `-${r}`), n && (i += `__${n}`), a && (i += `--${a}`), i;
};
var Wv = Symbol("namespaceContextKey");
var Bu = (t20) => {
const e = t20 || (getCurrentInstance() ? inject(Wv, ref(is)) : ref(is));
return computed(() => unref(e) || is);
};
var He = (t20, e) => {
const r = Bu(e);
return {
namespace: r,
b: (p = "") => Qn(r.value, t20, p, "", ""),
e: (p) => p ? Qn(r.value, t20, "", p, "") : "",
m: (p) => p ? Qn(r.value, t20, "", "", p) : "",
be: (p, m) => p && m ? Qn(r.value, t20, p, m, "") : "",
em: (p, m) => p && m ? Qn(r.value, t20, "", p, m) : "",
bm: (p, m) => p && m ? Qn(r.value, t20, p, "", m) : "",
bem: (p, m, g) => p && m && g ? Qn(r.value, t20, p, m, g) : "",
is: (p, ...m) => {
const g = m.length >= 1 ? m[0] : true;
return p && g ? `${q2}${p}` : "";
},
cssVar: (p) => {
const m = {};
for (const g in p)
p[g] && (m[`--${r.value}-${g}`] = p[g]);
return m;
},
cssVarName: (p) => `--${r.value}-${p}`,
cssVarBlock: (p) => {
const m = {};
for (const g in p)
p[g] && (m[`--${r.value}-${t20}-${g}`] = p[g]);
return m;
},
cssVarBlockName: (p) => `--${r.value}-${t20}-${p}`
};
};
var K2 = Ws({
type: $e(Boolean),
default: null
});
var U2 = Ws({
type: $e(Function)
});
var G2 = (t20) => {
const e = `update:${t20}`, r = `onUpdate:${t20}`, n = [e], a = {
[t20]: K2,
[r]: U2
};
return {
useModelToggle: ({
indicator: o,
toggleReason: s,
shouldHideWhenRouteChanges: u,
shouldProceed: l,
onShow: c,
onHide: d
}) => {
const v = getCurrentInstance(), { emit: h6 } = v, f = v.props, p = computed(() => lr(f[r])), m = computed(() => f[t20] === null), g = (x) => {
o.value !== true && (o.value = true, s && (s.value = x), lr(c) && c(x));
}, y = (x) => {
o.value !== false && (o.value = false, s && (s.value = x), lr(d) && d(x));
}, b = (x) => {
if (f.disabled === true || lr(l) && !l())
return;
const T = p.value && _t;
T && h6(e, true), (m.value || !T) && g(x);
}, w = (x) => {
if (f.disabled === true || !_t)
return;
const T = p.value && _t;
T && h6(e, false), (m.value || !T) && y(x);
}, C = (x) => {
Qa(x) && (f.disabled && x ? p.value && h6(e, false) : o.value !== x && (x ? g() : y()));
}, E = () => {
o.value ? w() : b();
};
return watch(() => f[t20], C), u && v.appContext.config.globalProperties.$route !== void 0 && watch(() => ({
...v.proxy.$route
}), () => {
u.value && o.value && w();
}), onMounted(() => {
C(f[t20]);
}), {
hide: w,
show: b,
toggle: E,
hasUpdateHandler: p
};
},
useModelToggleProps: a,
useModelToggleEmits: n
};
};
var Yv = (t20) => {
const e = getCurrentInstance();
return computed(() => {
var r, n;
return (n = (r = e == null ? void 0 : e.proxy) == null ? void 0 : r.$props) == null ? void 0 : n[t20];
});
};
var vr = "top";
var _r = "bottom";
var Dr = "right";
var hr = "left";
var Nu = "auto";
var bo = [vr, _r, Dr, hr];
var ei = "start";
var Xi = "end";
var W2 = "clippingParents";
var Zv = "viewport";
var _i = "popper";
var Y2 = "reference";
var hd = bo.reduce(function(t20, e) {
return t20.concat([e + "-" + ei, e + "-" + Xi]);
}, []);
var Ys = [].concat(bo, [Nu]).reduce(function(t20, e) {
return t20.concat([e, e + "-" + ei, e + "-" + Xi]);
}, []);
var Z2 = "beforeRead";
var X2 = "read";
var j2 = "afterRead";
var Q2 = "beforeMain";
var J2 = "main";
var ew = "afterMain";
var tw = "beforeWrite";
var rw = "write";
var nw = "afterWrite";
var aw = [Z2, X2, j2, Q2, J2, ew, tw, rw, nw];
function tn(t20) {
return t20 ? (t20.nodeName || "").toLowerCase() : null;
}
function Kr(t20) {
if (t20 == null) return window;
if (t20.toString() !== "[object Window]") {
var e = t20.ownerDocument;
return e && e.defaultView || window;
}
return t20;
}
function ti(t20) {
var e = Kr(t20).Element;
return t20 instanceof e || t20 instanceof Element;
}
function Tr(t20) {
var e = Kr(t20).HTMLElement;
return t20 instanceof e || t20 instanceof HTMLElement;
}
function $u(t20) {
if (typeof ShadowRoot > "u") return false;
var e = Kr(t20).ShadowRoot;
return t20 instanceof e || t20 instanceof ShadowRoot;
}
function iw(t20) {
var e = t20.state;
Object.keys(e.elements).forEach(function(r) {
var n = e.styles[r] || {}, a = e.attributes[r] || {}, i = e.elements[r];
!Tr(i) || !tn(i) || (Object.assign(i.style, n), Object.keys(a).forEach(function(o) {
var s = a[o];
s === false ? i.removeAttribute(o) : i.setAttribute(o, s === true ? "" : s);
}));
});
}
function ow(t20) {
var e = t20.state, r = { popper: { position: e.options.strategy, left: "0", top: "0", margin: "0" }, arrow: { position: "absolute" }, reference: {} };
return Object.assign(e.elements.popper.style, r.popper), e.styles = r, e.elements.arrow && Object.assign(e.elements.arrow.style, r.arrow), function() {
Object.keys(e.elements).forEach(function(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) {
return u[l] = "", u;
}, {});
!Tr(a) || !tn(a) || (Object.assign(a.style, s), Object.keys(i).forEach(function(u) {
a.removeAttribute(u);
}));
});
};
}
var Xv = { name: "applyStyles", enabled: true, phase: "write", fn: iw, effect: ow, requires: ["computeStyles"] };
function Qr(t20) {
return t20.split("-")[0];
}
var da = Math.max;
var Ts = Math.min;
var ri = Math.round;
function ni(t20, e) {
e === void 0 && (e = false);
var r = t20.getBoundingClientRect(), n = 1, a = 1;
if (Tr(t20) && e) {
var i = t20.offsetHeight, o = t20.offsetWidth;
o > 0 && (n = ri(r.width) / o || 1), i > 0 && (a = ri(r.height) / i || 1);
}
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 };
}
function Ru(t20) {
var e = ni(t20), r = t20.offsetWidth, n = t20.offsetHeight;
return Math.abs(e.width - r) <= 1 && (r = e.width), Math.abs(e.height - n) <= 1 && (n = e.height), { x: t20.offsetLeft, y: t20.offsetTop, width: r, height: n };
}
function jv(t20, e) {
var r = e.getRootNode && e.getRootNode();
if (t20.contains(e)) return true;
if (r && $u(r)) {
var n = e;
do {
if (n && t20.isSameNode(n)) return true;
n = n.parentNode || n.host;
} while (n);
}
return false;
}
function pn(t20) {
return Kr(t20).getComputedStyle(t20);
}
function sw(t20) {
return ["table", "td", "th"].indexOf(tn(t20)) >= 0;
}
function Yn(t20) {
return ((ti(t20) ? t20.ownerDocument : t20.document) || window.document).documentElement;
}
function Zs(t20) {
return tn(t20) === "html" ? t20 : t20.assignedSlot || t20.parentNode || ($u(t20) ? t20.host : null) || Yn(t20);
}
function pd(t20) {
return !Tr(t20) || pn(t20).position === "fixed" ? null : t20.offsetParent;
}
function lw(t20) {
var e = navigator.userAgent.toLowerCase().indexOf("firefox") !== -1, r = navigator.userAgent.indexOf("Trident") !== -1;
if (r && Tr(t20)) {
var n = pn(t20);
if (n.position === "fixed") return null;
}
var a = Zs(t20);
for ($u(a) && (a = a.host); Tr(a) && ["html", "body"].indexOf(tn(a)) < 0; ) {
var i = pn(a);
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;
a = a.parentNode;
}
return null;
}
function wo(t20) {
for (var e = Kr(t20), r = pd(t20); r && sw(r) && pn(r).position === "static"; ) r = pd(r);
return r && (tn(r) === "html" || tn(r) === "body" && pn(r).position === "static") ? e : r || lw(t20) || e;
}
function zu(t20) {
return ["top", "bottom"].indexOf(t20) >= 0 ? "x" : "y";
}
function Vi(t20, e, r) {
return da(t20, Ts(e, r));
}
function uw(t20, e, r) {
var n = Vi(t20, e, r);
return n > r ? r : n;
}
function Qv() {
return { top: 0, right: 0, bottom: 0, left: 0 };
}
function Jv(t20) {
return Object.assign({}, Qv(), t20);
}
function eh(t20, e) {
return e.reduce(function(r, n) {
return r[n] = t20, r;
}, {});
}
var cw = function(t20, e) {
return t20 = typeof t20 == "function" ? t20(Object.assign({}, e.rects, { placement: e.placement })) : t20, Jv(typeof t20 != "number" ? t20 : eh(t20, bo));
};
function dw(t20) {
var e, r = t20.state, n = t20.name, a = t20.options, i = r.elements.arrow, o = r.modifiersData.popperOffsets, s = Qr(r.placement), u = zu(s), l = [hr, Dr].indexOf(s) >= 0, c = l ? "height" : "width";
if (!(!i || !o)) {
var d = cw(a.padding, r), v = Ru(i), h6 = 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[h6], C = y - v[c] - d[f], E = y / 2 - v[c] / 2 + b, x = Vi(w, E, C), T = u;
r.modifiersData[n] = (e = {}, e[T] = x, e.centerOffset = x - E, e);
}
}
function fw(t20) {
var e = t20.state, r = t20.options, n = r.element, a = n === void 0 ? "[data-popper-arrow]" : n;
a != null && (typeof a == "string" && (a = e.elements.popper.querySelector(a), !a) || !jv(e.elements.popper, a) || (e.elements.arrow = a));
}
var vw = { name: "arrow", enabled: true, phase: "main", fn: dw, effect: fw, requires: ["popperOffsets"], requiresIfExists: ["preventOverflow"] };
function ai(t20) {
return t20.split("-")[1];
}
var hw = { top: "auto", right: "auto", bottom: "auto", left: "auto" };
function pw(t20) {
var e = t20.x, r = t20.y, n = window, a = n.devicePixelRatio || 1;
return { x: ri(e * a) / a || 0, y: ri(r * a) / a || 0 };
}
function gd(t20) {
var e, r = t20.popper, n = t20.popperRect, a = t20.placement, i = t20.variation, o = t20.offsets, s = t20.position, u = t20.gpuAcceleration, l = t20.adaptive, c = t20.roundOffsets, d = t20.isFixed, v = o.x, h6 = v === void 0 ? 0 : v, f = o.y, p = f === void 0 ? 0 : f, m = typeof c == "function" ? c({ x: h6, y: p }) : { x: h6, y: p };
h6 = m.x, p = m.y;
var g = o.hasOwnProperty("x"), y = o.hasOwnProperty("y"), b = hr, w = vr, C = window;
if (l) {
var E = wo(r), x = "clientHeight", T = "clientWidth";
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) {
w = _r;
var k = d && E === C && C.visualViewport ? C.visualViewport.height : E[x];
p -= k - n.height, p *= u ? 1 : -1;
}
if (a === hr || (a === vr || a === _r) && i === Xi) {
b = Dr;
var _ = d && E === C && C.visualViewport ? C.visualViewport.width : E[T];
h6 -= _ - n.width, h6 *= u ? 1 : -1;
}
}
var D = Object.assign({ position: s }, l && hw), O = c === true ? pw({ x: h6, y: p }) : { x: h6, y: p };
if (h6 = O.x, p = O.y, u) {
var I;
return Object.assign({}, D, (I = {}, I[w] = y ? "0" : "", I[b] = g ? "0" : "", I.transform = (C.devicePixelRatio || 1) <= 1 ? "translate(" + h6 + "px, " + p + "px)" : "translate3d(" + h6 + "px, " + p + "px, 0)", I));
}
return Object.assign({}, D, (e = {}, e[w] = y ? p + "px" : "", e[b] = g ? h6 + "px" : "", e.transform = "", e));
}
function gw(t20) {
var e = t20.state, r = t20.options, n = r.gpuAcceleration, a = n === void 0 ? true : n, i = r.adaptive, o = i === void 0 ? true : i, s = r.roundOffsets, u = s === void 0 ? true : 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" };
e.modifiersData.popperOffsets != null && (e.styles.popper = Object.assign({}, e.styles.popper, gd(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, gd(Object.assign({}, l, { offsets: e.modifiersData.arrow, position: "absolute", adaptive: false, roundOffsets: u })))), e.attributes.popper = Object.assign({}, e.attributes.popper, { "data-popper-placement": e.placement });
}
var th = { name: "computeStyles", enabled: true, phase: "beforeWrite", fn: gw, data: {} };
var $o = { passive: true };
function mw(t20) {
var e = t20.state, r = t20.instance, n = t20.options, a = n.scroll, i = a === void 0 ? true : a, o = n.resize, s = o === void 0 ? true : o, u = Kr(e.elements.popper), l = [].concat(e.scrollParents.reference, e.scrollParents.popper);
return i && l.forEach(function(c) {
c.addEventListener("scroll", r.update, $o);
}), s && u.addEventListener("resize", r.update, $o), function() {
i && l.forEach(function(c) {
c.removeEventListener("scroll", r.update, $o);
}), s && u.removeEventListener("resize", r.update, $o);
};
}
var rh = { name: "eventListeners", enabled: true, phase: "write", fn: function() {
}, effect: mw, data: {} };
var yw = { left: "right", right: "left", bottom: "top", top: "bottom" };
function os(t20) {
return t20.replace(/left|right|bottom|top/g, function(e) {
return yw[e];
});
}
var bw = { start: "end", end: "start" };
function md(t20) {
return t20.replace(/start|end/g, function(e) {
return bw[e];
});
}
function Vu(t20) {
var e = Kr(t20), r = e.pageXOffset, n = e.pageYOffset;
return { scrollLeft: r, scrollTop: n };
}
function Hu(t20) {
return ni(Yn(t20)).left + Vu(t20).scrollLeft;
}
function ww(t20) {
var e = Kr(t20), r = Yn(t20), n = e.visualViewport, a = r.clientWidth, i = r.clientHeight, o = 0, s = 0;
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 + Hu(t20), y: s };
}
function xw(t20) {
var e, r = Yn(t20), n = Vu(t20), a = (e = t20.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 + Hu(t20), u = -n.scrollTop;
return pn(a || r).direction === "rtl" && (s += da(r.clientWidth, a ? a.clientWidth : 0) - i), { width: i, height: o, x: s, y: u };
}
function qu(t20) {
var e = pn(t20), r = e.overflow, n = e.overflowX, a = e.overflowY;
return /auto|scroll|overlay|hidden/.test(r + a + n);
}
function nh(t20) {
return ["html", "body", "#document"].indexOf(tn(t20)) >= 0 ? t20.ownerDocument.body : Tr(t20) && qu(t20) ? t20 : nh(Zs(t20));
}
function Hi(t20, e) {
var r;
e === void 0 && (e = []);
var n = nh(t20), a = n === ((r = t20.ownerDocument) == null ? void 0 : r.body), i = Kr(n), o = a ? [i].concat(i.visualViewport || [], qu(n) ? n : []) : n, s = e.concat(o);
return a ? s : s.concat(Hi(Zs(o)));
}
function Jl(t20) {
return Object.assign({}, t20, { left: t20.x, top: t20.y, right: t20.x + t20.width, bottom: t20.y + t20.height });
}
function Cw(t20) {
var e = ni(t20);
return e.top = e.top + t20.clientTop, e.left = e.left + t20.clientLeft, e.bottom = e.top + t20.clientHeight, e.right = e.left + t20.clientWidth, e.width = t20.clientWidth, e.height = t20.clientHeight, e.x = e.left, e.y = e.top, e;
}
function yd(t20, e) {
return e === Zv ? Jl(ww(t20)) : ti(e) ? Cw(e) : Jl(xw(Yn(t20)));
}
function Ew(t20) {
var e = Hi(Zs(t20)), r = ["absolute", "fixed"].indexOf(pn(t20).position) >= 0, n = r && Tr(t20) ? wo(t20) : t20;
return ti(n) ? e.filter(function(a) {
return ti(a) && jv(a, n) && tn(a) !== "body";
}) : [];
}
function kw(t20, e, r) {
var n = e === "clippingParents" ? Ew(t20) : [].concat(e), a = [].concat(n, [r]), i = a[0], o = a.reduce(function(s, u) {
var l = yd(t20, u);
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;
}, yd(t20, i));
return o.width = o.right - o.left, o.height = o.bottom - o.top, o.x = o.left, o.y = o.top, o;
}
function ah(t20) {
var e = t20.reference, r = t20.element, n = t20.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;
switch (a) {
case vr:
u = { x: o, y: e.y - r.height };
break;
case _r:
u = { x: o, y: e.y + e.height };
break;
case Dr:
u = { x: e.x + e.width, y: s };
break;
case hr:
u = { x: e.x - r.width, y: s };
break;
default:
u = { x: e.x, y: e.y };
}
var l = a ? zu(a) : null;
if (l != null) {
var c = l === "y" ? "height" : "width";
switch (i) {
case ei:
u[l] = u[l] - (e[c] / 2 - r[c] / 2);
break;
case Xi:
u[l] = u[l] + (e[c] / 2 - r[c] / 2);
break;
}
}
return u;
}
function ji(t20, e) {
e === void 0 && (e = {});
var r = e, n = r.placement, a = n === void 0 ? t20.placement : n, i = r.boundary, o = i === void 0 ? W2 : i, s = r.rootBoundary, u = s === void 0 ? Zv : s, l = r.elementContext, c = l === void 0 ? _i : l, d = r.altBoundary, v = d === void 0 ? false : d, h6 = r.padding, f = h6 === void 0 ? 0 : h6, p = Jv(typeof f != "number" ? f : eh(f, bo)), m = c === _i ? Y2 : _i, g = t20.rects.popper, y = t20.elements[v ? m : c], b = kw(ti(y) ? y : y.contextElement || Yn(t20.elements.popper), o, u), w = ni(t20.elements.reference), C = ah({ 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 = t20.modifiersData.offset;
if (c === _i && k) {
var _ = k[a];
Object.keys(T).forEach(function(D) {
var O = [Dr, _r].indexOf(D) >= 0 ? 1 : -1, I = [vr, _r].indexOf(D) >= 0 ? "y" : "x";
T[D] += _[I] * O;
});
}
return T;
}
function Sw(t20, e) {
e === void 0 && (e = {});
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 ? hd : hd.filter(function(f) {
return ai(f) === c;
}) : bo, v = d.filter(function(f) {
return l.indexOf(f) >= 0;
});
v.length === 0 && (v = d);
var h6 = v.reduce(function(f, p) {
return f[p] = ji(t20, { placement: p, boundary: a, rootBoundary: i, padding: o })[Qr(p)], f;
}, {});
return Object.keys(h6).sort(function(f, p) {
return h6[f] - h6[p];
});
}
function Tw(t20) {
if (Qr(t20) === Nu) return [];
var e = os(t20);
return [md(t20), e, md(e)];
}
function _w(t20) {
var e = t20.state, r = t20.options, n = t20.name;
if (!e.modifiersData[n]._skip) {
for (var a = r.mainAxis, i = a === void 0 ? true : a, o = r.altAxis, s = o === void 0 ? true : o, u = r.fallbackPlacements, l = r.padding, c = r.boundary, d = r.rootBoundary, v = r.altBoundary, h6 = r.flipVariations, f = h6 === void 0 ? true : h6, p = r.allowedAutoPlacements, m = e.options.placement, g = Qr(m), y = g === m, b = u || (y || !f ? [os(m)] : Tw(m)), w = [m].concat(b).reduce(function(se2, oe) {
return se2.concat(Qr(oe) === Nu ? Sw(e, { placement: oe, boundary: c, rootBoundary: d, padding: l, flipVariations: f, allowedAutoPlacements: p }) : oe);
}, []), C = e.rects.reference, E = e.rects.popper, x = /* @__PURE__ */ new Map(), T = true, k = w[0], _ = 0; _ < w.length; _++) {
var D = w[_], O = Qr(D), I = ai(D) === ei, L = [vr, _r].indexOf(O) >= 0, B = L ? "width" : "height", F = ji(e, { placement: D, boundary: c, rootBoundary: d, altBoundary: v, padding: l }), M = L ? I ? Dr : hr : I ? _r : vr;
C[B] > E[B] && (M = os(M));
var A = os(M), R = [];
if (i && R.push(F[O] <= 0), s && R.push(F[M] <= 0, F[A] <= 0), R.every(function(se2) {
return se2;
})) {
k = D, T = false;
break;
}
x.set(D, R);
}
if (T) for (var K10 = f ? 3 : 1, H = function(se2) {
var oe = w.find(function(ae) {
var ue = x.get(ae);
if (ue) return ue.slice(0, se2).every(function(te) {
return te;
});
});
if (oe) return k = oe, "break";
}, q = K10; q > 0; q--) {
var ee = H(q);
if (ee === "break") break;
}
e.placement !== k && (e.modifiersData[n]._skip = true, e.placement = k, e.reset = true);
}
}
var Dw = { name: "flip", enabled: true, phase: "main", fn: _w, requiresIfExists: ["offset"], data: { _skip: false } };
function bd(t20, e, r) {
return r === void 0 && (r = { x: 0, y: 0 }), { top: t20.top - e.height - r.y, right: t20.right - e.width + r.x, bottom: t20.bottom - e.height + r.y, left: t20.left - e.width - r.x };
}
function wd(t20) {
return [vr, Dr, _r, hr].some(function(e) {
return t20[e] >= 0;
});
}
function Pw(t20) {
var e = t20.state, r = t20.name, n = e.rects.reference, a = e.rects.popper, i = e.modifiersData.preventOverflow, o = ji(e, { elementContext: "reference" }), s = ji(e, { altBoundary: true }), u = bd(o, n), l = bd(s, a, i), c = wd(u), d = wd(l);
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 });
}
var Ow = { name: "hide", enabled: true, phase: "main", requiresIfExists: ["preventOverflow"], fn: Pw };
function Lw(t20, e, r) {
var n = Qr(t20), a = [hr, vr].indexOf(n) >= 0 ? -1 : 1, i = typeof r == "function" ? r(Object.assign({}, e, { placement: t20 })) : r, o = i[0], s = i[1];
return o = o || 0, s = (s || 0) * a, [hr, Dr].indexOf(n) >= 0 ? { x: s, y: o } : { x: o, y: s };
}
function Fw(t20) {
var e = t20.state, r = t20.options, n = t20.name, a = r.offset, i = a === void 0 ? [0, 0] : a, o = Ys.reduce(function(c, d) {
return c[d] = Lw(d, e.rects, i), c;
}, {}), s = o[e.placement], u = s.x, l = s.y;
e.modifiersData.popperOffsets != null && (e.modifiersData.popperOffsets.x += u, e.modifiersData.popperOffsets.y += l), e.modifiersData[n] = o;
}
var Iw = { name: "offset", enabled: true, phase: "main", requires: ["popperOffsets"], fn: Fw };
function Aw(t20) {
var e = t20.state, r = t20.name;
e.modifiersData[r] = ah({ reference: e.rects.reference, element: e.rects.popper, strategy: "absolute", placement: e.placement });
}
var ih = { name: "popperOffsets", enabled: true, phase: "read", fn: Aw, data: {} };
function Mw(t20) {
return t20 === "x" ? "y" : "x";
}
function Bw(t20) {
var e = t20.state, r = t20.options, n = t20.name, a = r.mainAxis, i = a === void 0 ? true : a, o = r.altAxis, s = o === void 0 ? false : o, u = r.boundary, l = r.rootBoundary, c = r.altBoundary, d = r.padding, v = r.tether, h6 = v === void 0 ? true : 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 = zu(g), C = Mw(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 };
if (E) {
if (i) {
var I, L = w === "y" ? vr : hr, B = w === "y" ? _r : Dr, F = w === "y" ? "height" : "width", M = E[w], A = M + m[L], R = M - m[B], K10 = h6 ? -T[F] / 2 : 0, H = y === ei ? x[F] : T[F], q = y === ei ? -T[F] : -x[F], ee = e.elements.arrow, se2 = h6 && ee ? Ru(ee) : { width: 0, height: 0 }, oe = e.modifiersData["arrow#persistent"] ? e.modifiersData["arrow#persistent"].padding : Qv(), ae = oe[L], ue = oe[B], te = Vi(0, x[F], se2[F]), $ = b ? x[F] / 2 - K10 - te - ae - _.mainAxis : H - te - ae - _.mainAxis, G = b ? -x[F] / 2 + K10 + te + ue + _.mainAxis : q + te + ue + _.mainAxis, Q = e.elements.arrow && wo(e.elements.arrow), ge2 = Q ? w === "y" ? Q.clientTop || 0 : Q.clientLeft || 0 : 0, Ee2 = (I = D == null ? void 0 : D[w]) != null ? I : 0, fe = M + $ - Ee2 - ge2, me = M + G - Ee2, xe = Vi(h6 ? Ts(A, fe) : A, M, h6 ? da(R, me) : R);
E[w] = xe, O[w] = xe - M;
}
if (s) {
var ke2, 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 = (ke2 = D == null ? void 0 : D[C]) != null ? ke2 : 0, z = le ? Be : qe - x[Ke] - T[Ke] - S + _.altAxis, ie = le ? qe + x[Ke] + T[Ke] - S - _.altAxis : Ge, j = h6 && le ? uw(z, qe, ie) : Vi(h6 ? z : Be, qe, h6 ? ie : Ge);
E[C] = j, O[C] = j - qe;
}
e.modifiersData[n] = O;
}
}
var Nw = { name: "preventOverflow", enabled: true, phase: "main", fn: Bw, requiresIfExists: ["offset"] };
function $w(t20) {
return { scrollLeft: t20.scrollLeft, scrollTop: t20.scrollTop };
}
function Rw(t20) {
return t20 === Kr(t20) || !Tr(t20) ? Vu(t20) : $w(t20);
}
function zw(t20) {
var e = t20.getBoundingClientRect(), r = ri(e.width) / t20.offsetWidth || 1, n = ri(e.height) / t20.offsetHeight || 1;
return r !== 1 || n !== 1;
}
function Vw(t20, e, r) {
r === void 0 && (r = false);
var n = Tr(e), a = Tr(e) && zw(e), i = Yn(e), o = ni(t20, a), s = { scrollLeft: 0, scrollTop: 0 }, u = { x: 0, y: 0 };
return (n || !n && !r) && ((tn(e) !== "body" || qu(i)) && (s = Rw(e)), Tr(e) ? (u = ni(e, true), u.x += e.clientLeft, u.y += e.clientTop) : i && (u.x = Hu(i))), { x: o.left + s.scrollLeft - u.x, y: o.top + s.scrollTop - u.y, width: o.width, height: o.height };
}
function Hw(t20) {
var e = /* @__PURE__ */ new Map(), r = /* @__PURE__ */ new Set(), n = [];
t20.forEach(function(i) {
e.set(i.name, i);
});
function a(i) {
r.add(i.name);
var o = [].concat(i.requires || [], i.requiresIfExists || []);
o.forEach(function(s) {
if (!r.has(s)) {
var u = e.get(s);
u && a(u);
}
}), n.push(i);
}
return t20.forEach(function(i) {
r.has(i.name) || a(i);
}), n;
}
function qw(t20) {
var e = Hw(t20);
return aw.reduce(function(r, n) {
return r.concat(e.filter(function(a) {
return a.phase === n;
}));
}, []);
}
function Kw(t20) {
var e;
return function() {
return e || (e = new Promise(function(r) {
Promise.resolve().then(function() {
e = void 0, r(t20());
});
})), e;
};
}
function Uw(t20) {
var e = t20.reduce(function(r, n) {
var a = r[n.name];
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;
}, {});
return Object.keys(e).map(function(r) {
return e[r];
});
}
var xd = { placement: "bottom", modifiers: [], strategy: "absolute" };
function Cd() {
for (var t20 = arguments.length, e = new Array(t20), r = 0; r < t20; r++) e[r] = arguments[r];
return !e.some(function(n) {
return !(n && typeof n.getBoundingClientRect == "function");
});
}
function Ku(t20) {
t20 === void 0 && (t20 = {});
var e = t20, r = e.defaultModifiers, n = r === void 0 ? [] : r, a = e.defaultOptions, i = a === void 0 ? xd : a;
return function(o, s, u) {
u === void 0 && (u = i);
var l = { placement: "bottom", orderedModifiers: [], options: Object.assign({}, xd, i), modifiersData: {}, elements: { reference: o, popper: s }, attributes: {}, styles: {} }, c = [], d = false, v = { state: l, setOptions: function(p) {
var m = typeof p == "function" ? p(l.options) : p;
f(), l.options = Object.assign({}, i, l.options, m), l.scrollParents = { reference: ti(o) ? Hi(o) : o.contextElement ? Hi(o.contextElement) : [], popper: Hi(s) };
var g = qw(Uw([].concat(n, l.options.modifiers)));
return l.orderedModifiers = g.filter(function(y) {
return y.enabled;
}), h6(), v.update();
}, forceUpdate: function() {
if (!d) {
var p = l.elements, m = p.reference, g = p.popper;
if (Cd(m, g)) {
l.rects = { reference: Vw(m, wo(g), l.options.strategy === "fixed"), popper: Ru(g) }, l.reset = false, l.placement = l.options.placement, l.orderedModifiers.forEach(function(T) {
return l.modifiersData[T.name] = Object.assign({}, T.data);
});
for (var y = 0; y < l.orderedModifiers.length; y++) {
if (l.reset === true) {
l.reset = false, y = -1;
continue;
}
var b = l.orderedModifiers[y], w = b.fn, C = b.options, E = C === void 0 ? {} : C, x = b.name;
typeof w == "function" && (l = w({ state: l, options: E, name: x, instance: v }) || l);
}
}
}
}, update: Kw(function() {
return new Promise(function(p) {
v.forceUpdate(), p(l);
});
}), destroy: function() {
f(), d = true;
} };
if (!Cd(o, s)) return v;
v.setOptions(u).then(function(p) {
!d && u.onFirstUpdate && u.onFirstUpdate(p);
});
function h6() {
l.orderedModifiers.forEach(function(p) {
var m = p.name, g = p.options, y = g === void 0 ? {} : g, b = p.effect;
if (typeof b == "function") {
var w = b({ state: l, name: m, instance: v, options: y }), C = function() {
};
c.push(w || C);
}
});
}
function f() {
c.forEach(function(p) {
return p();
}), c = [];
}
return v;
};
}
Ku();
var Gw = [rh, ih, th, Xv];
Ku({ defaultModifiers: Gw });
var Ww = [rh, ih, th, Xv, Iw, Dw, Nw, vw, Ow];
var Yw = Ku({ defaultModifiers: Ww });
var Zw = (t20, e, r = {}) => {
const n = {
name: "updateState",
enabled: true,
phase: "write",
fn: ({ state: u }) => {
const l = Xw(u);
Object.assign(o.value, l);
},
requires: ["computeStyles"]
}, a = computed(() => {
const { onFirstUpdate: u, placement: l, strategy: c, modifiers: d } = unref(r);
return {
onFirstUpdate: u,
placement: l || "bottom",
strategy: c || "absolute",
modifiers: [
...d || [],
n,
{ name: "applyStyles", enabled: false }
]
};
}), i = shallowRef(), o = ref({
styles: {
popper: {
position: unref(a).strategy,
left: "0",
top: "0"
},
arrow: {
position: "absolute"
}
},
attributes: {}
}), s = () => {
i.value && (i.value.destroy(), i.value = void 0);
};
return watch(a, (u) => {
const l = unref(i);
l && l.setOptions(u);
}, {
deep: true
}), watch([t20, e], ([u, l]) => {
s(), !(!u || !l) && (i.value = Yw(u, l, unref(a)));
}), onBeforeUnmount(() => {
s();
}), {
state: computed(() => {
var u;
return { ...((u = unref(i)) == null ? void 0 : u.state) || {} };
}),
styles: computed(() => unref(o).styles),
attributes: computed(() => unref(o).attributes),
update: () => {
var u;
return (u = unref(i)) == null ? void 0 : u.update();
},
forceUpdate: () => {
var u;
return (u = unref(i)) == null ? void 0 : u.forceUpdate();
},
instanceRef: computed(() => unref(i))
};
};
function Xw(t20) {
const e = Object.keys(t20.elements), r = Cs(e.map((a) => [a, t20.styles[a] || {}])), n = Cs(e.map((a) => [a, t20.attributes[a]]));
return {
styles: r,
attributes: n
};
}
function Ed() {
let t20;
const e = (n, a) => {
r(), t20 = window.setTimeout(n, a);
}, r = () => window.clearTimeout(t20);
return Rs(() => r()), {
registerTimeout: e,
cancelTimeout: r
};
}
var eu = {
prefix: Math.floor(Math.random() * 1e4),
current: 0
};
var jw = Symbol("elIdInjection");
var oh = () => getCurrentInstance() ? inject(jw, eu) : eu;
var Xs = (t20) => {
const e = oh();
!_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
usage: app.provide(ID_INJECTION_KEY, {
prefix: number,
current: number,
})`);
const r = Bu();
return computed(() => unref(t20) || `${r.value}-id-${e.prefix}-${e.current++}`);
};
var za = [];
var kd = (t20) => {
const e = t20;
e.key === Lt.esc && za.forEach((r) => r(e));
};
var Qw = (t20) => {
onMounted(() => {
za.length === 0 && document.addEventListener("keydown", kd), _t && za.push(t20);
}), onBeforeUnmount(() => {
za = za.filter((e) => e !== t20), za.length === 0 && _t && document.removeEventListener("keydown", kd);
});
};
var Sd;
var sh = () => {
const t20 = Bu(), e = oh(), r = computed(() => `${t20.value}-popper-container-${e.prefix}`), n = computed(() => `#${r.value}`);
return {
id: r,
selector: n
};
};
var Jw = (t20) => {
const e = document.createElement("div");
return e.id = t20, document.body.appendChild(e), e;
};
var ex = () => {
const { id: t20, selector: e } = sh();
return onBeforeMount(() => {
_t && (!Sd || !document.body.querySelector(e.value)) && (Sd = Jw(t20.value));
}), {
id: t20,
selector: e
};
};
var tx = rt({
showAfter: {
type: Number,
default: 0
},
hideAfter: {
type: Number,
default: 200
},
autoClose: {
type: Number,
default: 0
}
});
var rx = ({
showAfter: t20,
hideAfter: e,
autoClose: r,
open: n,
close: a
}) => {
const { registerTimeout: i } = Ed(), {
registerTimeout: o,
cancelTimeout: s
} = Ed();
return {
onOpen: (c) => {
i(() => {
n(c);
const d = unref(r);
qt(d) && d > 0 && o(() => {
a(c);
}, d);
}, unref(t20));
},
onClose: (c) => {
s(), i(() => {
a(c);
}, unref(e));
}
};
};
var lh = Symbol("elForwardRef");
var nx = (t20) => {
provide(lh, {
setForwardRef: (r) => {
t20.value = r;
}
});
};
var ax = (t20) => ({
mounted(e) {
t20(e);
},
updated(e) {
t20(e);
},
unmounted() {
t20(null);
}
});
var Td = {
current: 0
};
var _d = ref(0);
var uh = 2e3;
var Dd = Symbol("elZIndexContextKey");
var ch = Symbol("zIndexContextKey");
var dh = (t20) => {
const e = getCurrentInstance() ? inject(Dd, Td) : Td, r = t20 || (getCurrentInstance() ? inject(ch, void 0) : void 0), n = computed(() => {
const o = unref(r);
return qt(o) ? o : uh;
}), a = computed(() => n.value + _d.value), i = () => (e.current++, _d.value = e.current, a.value);
return !_t && !inject(Dd) && Dt("ZIndexInjection", `Looks like you are using server rendering, you must provide a z-index provider to ensure the hydration process to be succeed
usage: app.provide(ZINDEX_INJECTION_KEY, { current: 0 })`), {
initialZIndex: n,
currentZIndex: a,
nextZIndex: i
};
};
function ix(t20) {
let e;
function r() {
if (t20.value == null)
return;
const { selectionStart: a, selectionEnd: i, value: o } = t20.value;
if (a == null || i == null)
return;
const s = o.slice(0, Math.max(0, a)), u = o.slice(Math.max(0, i));
e = {
selectionStart: a,
selectionEnd: i,
value: o,
beforeTxt: s,
afterTxt: u
};
}
function n() {
if (t20.value == null || e == null)
return;
const { value: a } = t20.value, { beforeTxt: i, afterTxt: o, selectionStart: s } = e;
if (i == null || o == null || s == null)
return;
let u = a.length;
if (a.endsWith(o))
u = a.length - o.length;
else if (a.startsWith(i))
u = i.length;
else {
const l = i[s - 1], c = a.indexOf(l, s - 1);
c !== -1 && (u = c + 1);
}
t20.value.setSelectionRange(u, u);
}
return [r, n];
}
var di = Ws({
type: String,
values: Uv,
required: false
});
var fh = Symbol("size");
var ox = () => {
const t20 = inject(fh, {});
return computed(() => unref(t20.size) || "");
};
function Uu(t20, {
beforeFocus: e,
afterFocus: r,
beforeBlur: n,
afterBlur: a
} = {}) {
const i = getCurrentInstance(), { emit: o } = i, s = shallowRef(), u = ref(false), l = (v) => {
lr(e) && e(v) || u.value || (u.value = true, o("focus", v), r == null || r());
}, c = (v) => {
var h6;
lr(n) && n(v) || v.relatedTarget && ((h6 = s.value) != null && h6.contains(v.relatedTarget)) || (u.value = false, o("blur", v), a == null || a());
}, d = () => {
var v, h6;
(v = s.value) != null && v.contains(document.activeElement) && s.value !== document.activeElement || (h6 = t20.value) == null || h6.focus();
};
return watch(s, (v) => {
v && v.setAttribute("tabindex", "-1");
}), kr(s, "focus", l, true), kr(s, "blur", c, true), kr(s, "click", d, true), false, {
isFocused: u,
wrapperRef: s,
handleFocus: l,
handleBlur: c
};
}
function vh({
afterComposition: t20,
emit: e
}) {
const r = ref(false), n = (s) => {
e == null || e("compositionstart", s), r.value = true;
}, a = (s) => {
var u;
e == null || e("compositionupdate", s);
const l = (u = s.target) == null ? void 0 : u.value, c = l[l.length - 1] || "";
r.value = !M2(c);
}, i = (s) => {
e == null || e("compositionend", s), r.value && (r.value = false, nextTick(() => t20(s)));
};
return {
isComposing: r,
handleComposition: (s) => {
s.type === "compositionend" ? i(s) : a(s);
},
handleCompositionStart: n,
handleCompositionUpdate: a,
handleCompositionEnd: i
};
}
var hh = Symbol("emptyValuesContextKey");
var sx = "use-empty-values";
var lx = ["", void 0, null];
var ux = void 0;
var cx = rt({
emptyValues: Array,
valueOnClear: {
type: [String, Number, Boolean, Function],
default: void 0,
validator: (t20) => lr(t20) ? !t20() : !t20
}
});
var dx = (t20, e) => {
const r = getCurrentInstance() ? inject(hh, ref({})) : ref({}), n = computed(() => t20.emptyValues || r.value.emptyValues || lx), a = computed(() => lr(t20.valueOnClear) ? t20.valueOnClear() : t20.valueOnClear !== void 0 ? t20.valueOnClear : lr(r.value.valueOnClear) ? r.value.valueOnClear() : r.value.valueOnClear !== void 0 ? r.value.valueOnClear : ux), i = (o) => n.value.includes(o);
return n.value.includes(a.value) || Dt(sx, "value-on-clear should be a value of empty-values"), {
emptyValues: n,
valueOnClear: a,
isEmptyValue: i
};
};
var fx = rt({
ariaLabel: String,
ariaOrientation: {
type: String,
values: ["horizontal", "vertical", "undefined"]
},
ariaControls: String
});
var Zn = (t20) => Rv(fx, t20);
var ph = Symbol();
var _s = ref();
function Gu(t20, e = void 0) {
const r = getCurrentInstance() ? inject(ph, _s) : _s;
return t20 ? computed(() => {
var n, a;
return (a = (n = r.value) == null ? void 0 : n[t20]) != null ? a : e;
}) : r;
}
function vx(t20, e) {
const r = Gu(), n = He(t20, computed(() => {
var s;
return ((s = r.value) == null ? void 0 : s.namespace) || is;
})), a = yo(computed(() => {
var s;
return (s = r.value) == null ? void 0 : s.locale;
})), i = dh(computed(() => {
var s;
return ((s = r.value) == null ? void 0 : s.zIndex) || uh;
})), o = computed(() => {
var s;
return unref(e) || ((s = r.value) == null ? void 0 : s.size) || "";
});
return hx(computed(() => unref(r) || {})), {
ns: n,
locale: a,
zIndex: i,
size: o
};
}
var hx = (t20, e, r = false) => {
var n;
const a = !!getCurrentInstance(), i = a ? Gu() : void 0, o = (n = void 0) != null ? n : a ? provide : void 0;
if (!o) {
Dt("provideGlobalConfig", "provideGlobalConfig() can only be used inside setup().");
return;
}
const s = computed(() => {
const u = unref(t20);
return i != null && i.value ? px(i.value, u) : u;
});
return o(ph, s), o(Gv, computed(() => s.value.locale)), o(Wv, computed(() => s.value.namespace)), o(ch, computed(() => s.value.zIndex)), o(fh, {
size: computed(() => s.value.size || "")
}), o(hh, computed(() => ({
emptyValues: s.value.emptyValues,
valueOnClear: s.value.valueOnClear
}))), (r || !_s.value) && (_s.value = s.value), s;
};
var px = (t20, e) => {
const r = [.../* @__PURE__ */ new Set([...vd(t20), ...vd(e)])], n = {};
for (const a of r)
n[a] = e[a] !== void 0 ? e[a] : t20[a];
return n;
};
var ze = (t20, e) => {
const r = t20.__vccOpts || t20;
for (const [n, a] of e)
r[n] = a;
return r;
};
var gx = rt({
size: {
type: $e([Number, String])
},
color: {
type: String
}
});
var mx = defineComponent({
name: "ElIcon",
inheritAttrs: false
});
var yx = defineComponent({
...mx,
props: gx,
setup(t20) {
const e = t20, r = He("icon"), n = computed(() => {
const { size: a, color: i } = e;
return !a && !i ? {} : {
fontSize: Mn(a) ? void 0 : Ja(a),
"--color": i
};
});
return (a, i) => (openBlock(), createElementBlock("i", mergeProps({
class: unref(r).b(),
style: unref(n)
}, a.$attrs), [
renderSlot(a.$slots, "default")
], 16));
}
});
var bx = ze(yx, [["__file", "icon.vue"]]);
var Vt = $t(bx);
var Wu = Symbol("formContextKey");
var Qi = Symbol("formItemContextKey");
var pa = (t20, e = {}) => {
const r = ref(void 0), n = e.prop ? r : Yv("size"), a = e.global ? r : ox(), i = e.form ? { size: void 0 } : inject(Wu, void 0), o = e.formItem ? { size: void 0 } : inject(Qi, void 0);
return computed(() => n.value || unref(t20) || (o == null ? void 0 : o.size) || (i == null ? void 0 : i.size) || a.value || "");
};
var xo = (t20) => {
const e = Yv("disabled"), r = inject(Wu, void 0);
return computed(() => e.value || unref(t20) || (r == null ? void 0 : r.disabled) || false);
};
var Ta = () => {
const t20 = inject(Wu, void 0), e = inject(Qi, void 0);
return {
form: t20,
formItem: e
};
};
var Co = (t20, {
formItemContext: e,
disableIdGeneration: r,
disableIdManagement: n
}) => {
r || (r = ref(false)), n || (n = ref(false));
const a = ref();
let i;
const o = computed(() => {
var s;
return !!(!(t20.label || t20.ariaLabel) && e && e.inputIds && ((s = e.inputIds) == null ? void 0 : s.length) <= 1);
});
return onMounted(() => {
i = watch([toRef(t20, "id"), r], ([s, u]) => {
const l = s ?? (u ? void 0 : Xs().value);
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);
}, { immediate: true });
}), onUnmounted(() => {
i && i(), e != null && e.removeInputId && a.value && e.removeInputId(a.value);
}), {
isLabeledByFormItem: o,
inputId: a
};
};
var Ir;
var wx = `
height:0 !important;
visibility:hidden !important;
${Z0() ? "" : "overflow:hidden !important;"}
position:absolute !important;
z-index:-1000 !important;
top:0 !important;
right:0 !important;
`;
var xx = [
"letter-spacing",
"line-height",
"padding-top",
"padding-bottom",
"font-family",
"font-weight",
"font-size",
"text-rendering",
"text-transform",
"width",
"text-indent",
"padding-left",
"padding-right",
"border-width",
"box-sizing"
];
function Cx(t20) {
const e = window.getComputedStyle(t20), 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"));
return { contextStyle: xx.map((o) => `${o}:${e.getPropertyValue(o)}`).join(";"), paddingSize: n, borderSize: a, boxSizing: r };
}
function Pd(t20, e = 1, r) {
var n;
Ir || (Ir = document.createElement("textarea"), document.body.appendChild(Ir));
const { paddingSize: a, borderSize: i, boxSizing: o, contextStyle: s } = Cx(t20);
Ir.setAttribute("style", `${s};${wx}`), Ir.value = t20.value || t20.placeholder || "";
let u = Ir.scrollHeight;
const l = {};
o === "border-box" ? u = u + i : o === "content-box" && (u = u - a), Ir.value = "";
const c = Ir.scrollHeight - a;
if (qt(e)) {
let d = c * e;
o === "border-box" && (d = d + a + i), u = Math.max(d, u), l.minHeight = `${d}px`;
}
if (qt(r)) {
let d = c * r;
o === "border-box" && (d = d + a + i), u = Math.min(d, u);
}
return l.height = `${u}px`, (n = Ir.parentNode) == null || n.removeChild(Ir), Ir = void 0, l;
}
var Ex = rt({
id: {
type: String,
default: void 0
},
size: di,
disabled: Boolean,
modelValue: {
type: $e([
String,
Number,
Object
]),
default: ""
},
maxlength: {
type: [String, Number]
},
minlength: {
type: [String, Number]
},
type: {
type: String,
default: "text"
},
resize: {
type: String,
values: ["none", "both", "horizontal", "vertical"]
},
autosize: {
type: $e([Boolean, Object]),
default: false
},
autocomplete: {
type: String,
default: "off"
},
formatter: {
type: Function
},
parser: {
type: Function
},
placeholder: {
type: String
},
form: {
type: String
},
readonly: Boolean,
clearable: Boolean,
showPassword: Boolean,
showWordLimit: Boolean,
suffixIcon: {
type: Hn
},
prefixIcon: {
type: Hn
},
containerRole: {
type: String,
default: void 0
},
tabindex: {
type: [String, Number],
default: 0
},
validateEvent: {
type: Boolean,
default: true
},
inputStyle: {
type: $e([Object, Array, String]),
default: () => Ra({})
},
autofocus: Boolean,
rows: {
type: Number,
default: 2
},
...Zn(["ariaLabel"])
});
var kx = {
[zt]: (t20) => tr(t20),
input: (t20) => tr(t20),
change: (t20) => tr(t20),
focus: (t20) => t20 instanceof FocusEvent,
blur: (t20) => t20 instanceof FocusEvent,
clear: () => true,
mouseleave: (t20) => t20 instanceof MouseEvent,
mouseenter: (t20) => t20 instanceof MouseEvent,
keydown: (t20) => t20 instanceof Event,
compositionstart: (t20) => t20 instanceof CompositionEvent,
compositionupdate: (t20) => t20 instanceof CompositionEvent,
compositionend: (t20) => t20 instanceof CompositionEvent
};
var Sx = defineComponent({
name: "ElInput",
inheritAttrs: false
});
var Tx = defineComponent({
...Sx,
props: Ex,
emits: kx,
setup(t20, { expose: e, emit: r }) {
const n = t20, a = useAttrs(), i = useSlots(), o = computed(() => {
const S = {};
return n.containerRole === "combobox" && (S["aria-haspopup"] = a["aria-haspopup"], S["aria-owns"] = a["aria-owns"], S["aria-expanded"] = a["aria-expanded"]), S;
}), s = computed(() => [
n.type === "textarea" ? m.b() : p.b(),
p.m(h6.value),
p.is("disabled", f.value),
p.is("exceed", ee.value),
{
[p.b("group")]: i.prepend || i.append,
[p.m("prefix")]: i.prefix || n.prefixIcon,
[p.m("suffix")]: i.suffix || n.suffixIcon || n.clearable || n.showPassword,
[p.bm("suffix", "password-clear")]: R.value && K10.value,
[p.b("hidden")]: n.type === "hidden"
},
a.class
]), u = computed(() => [
p.e("wrapper"),
p.is("focus", k.value)
]), l = $2({
excludeKeys: computed(() => Object.keys(o.value))
}), { form: c, formItem: d } = Ta(), { inputId: v } = Co(n, {
formItemContext: d
}), h6 = pa(), f = xo(), p = He("input"), m = He("textarea"), g = shallowRef(), y = shallowRef(), b = ref(false), w = ref(false), C = ref(), E = shallowRef(n.inputStyle), x = computed(() => g.value || y.value), { wrapperRef: T, isFocused: k, handleFocus: _, handleBlur: D } = Uu(x, {
beforeFocus() {
return f.value;
},
afterBlur() {
var S;
n.validateEvent && ((S = d == null ? void 0 : d.validate) == null || S.call(d, "blur").catch((z) => Dt(z)));
}
}), O = computed(() => {
var S;
return (S = c == null ? void 0 : c.statusIcon) != null ? S : false;
}), I = computed(() => (d == null ? void 0 : d.validateState) || ""), L = computed(() => I.value && Kv[I.value]), B = computed(() => w.value ? T2 : m2), F = computed(() => [
a.style
]), M = computed(() => [
n.inputStyle,
E.value,
{ resize: n.resize }
]), A = computed(() => $n(n.modelValue) ? "" : String(n.modelValue)), R = computed(() => n.clearable && !f.value && !n.readonly && !!A.value && (k.value || b.value)), K10 = computed(() => n.showPassword && !f.value && !n.readonly && !!A.value && (!!A.value || k.value)), H = computed(() => n.showWordLimit && !!n.maxlength && (n.type === "text" || n.type === "textarea") && !f.value && !n.readonly && !n.showPassword), q = computed(() => A.value.length), ee = computed(() => !!H.value && q.value > Number(n.maxlength)), se2 = computed(() => !!i.suffix || !!n.suffixIcon || R.value || n.showPassword || H.value || !!I.value && O.value), [oe, ae] = ix(g);
dn(y, (S) => {
if ($(), !H.value || n.resize !== "both")
return;
const z = S[0], { width: ie } = z.contentRect;
C.value = {
right: `calc(100% - ${ie + 15 + 6}px)`
};
});
const ue = () => {
const { type: S, autosize: z } = n;
if (!(!_t || S !== "textarea" || !y.value))
if (z) {
const ie = Ht(z) ? z.minRows : void 0, j = Ht(z) ? z.maxRows : void 0, Y = Pd(y.value, ie, j);
E.value = {
overflowY: "hidden",
...Y
}, nextTick(() => {
y.value.offsetHeight, E.value = Y;
});
} else
E.value = {
minHeight: Pd(y.value).minHeight
};
}, $ = /* @__PURE__ */ ((S) => {
let z = false;
return () => {
var ie;
if (z || !n.autosize)
return;
((ie = y.value) == null ? void 0 : ie.offsetParent) === null || (S(), z = true);
};
})(ue), G = () => {
const S = x.value, z = n.formatter ? n.formatter(A.value) : A.value;
!S || S.value === z || (S.value = z);
}, Q = async (S) => {
oe();
let { value: z } = S.target;
if (n.formatter && (z = n.parser ? n.parser(z) : z), !Ee2.value) {
if (z === A.value) {
G();
return;
}
r(zt, z), r("input", z), await nextTick(), G(), ae();
}
}, ge2 = (S) => {
r("change", S.target.value);
}, {
isComposing: Ee2,
handleCompositionStart: fe,
handleCompositionUpdate: me,
handleCompositionEnd: xe
} = vh({ emit: r, afterComposition: Q }), ke2 = () => {
w.value = !w.value, Ce();
}, Ce = async () => {
var S;
await nextTick(), (S = x.value) == null || S.focus();
}, De = () => {
var S;
return (S = x.value) == null ? void 0 : S.blur();
}, qe = (S) => {
b.value = false, r("mouseleave", S);
}, Ke = (S) => {
b.value = true, r("mouseenter", S);
}, Be = (S) => {
r("keydown", S);
}, Ge = () => {
var S;
(S = x.value) == null || S.select();
}, le = () => {
r(zt, ""), r("change", ""), r("clear"), r("input", "");
};
return watch(() => n.modelValue, () => {
var S;
nextTick(() => ue()), n.validateEvent && ((S = d == null ? void 0 : d.validate) == null || S.call(d, "change").catch((z) => Dt(z)));
}), watch(A, () => G()), watch(() => n.type, async () => {
await nextTick(), G(), ue();
}), onMounted(() => {
!n.formatter && n.parser && Dt("ElInput", "If you set the parser, you also need to set the formatter."), G(), nextTick(ue);
}), e({
input: g,
textarea: y,
ref: x,
textareaStyle: M,
autosize: toRef(n, "autosize"),
isComposing: Ee2,
focus: Ce,
blur: De,
select: Ge,
clear: le,
resizeTextarea: ue
}), (S, z) => (openBlock(), createElementBlock("div", mergeProps(unref(o), {
class: [
unref(s),
{
[unref(p).bm("group", "append")]: S.$slots.append,
[unref(p).bm("group", "prepend")]: S.$slots.prepend
}
],
style: unref(F),
role: S.containerRole,
onMouseenter: Ke,
onMouseleave: qe
}), [
createCommentVNode(" input "),
S.type !== "textarea" ? (openBlock(), createElementBlock(Fragment, { key: 0 }, [
createCommentVNode(" prepend slot "),
S.$slots.prepend ? (openBlock(), createElementBlock("div", {
key: 0,
class: normalizeClass(unref(p).be("group", "prepend"))
}, [
renderSlot(S.$slots, "prepend")
], 2)) : createCommentVNode("v-if", true),
createBaseVNode("div", {
ref_key: "wrapperRef",
ref: T,
class: normalizeClass(unref(u))
}, [
createCommentVNode(" prefix slot "),
S.$slots.prefix || S.prefixIcon ? (openBlock(), createElementBlock("span", {
key: 0,
class: normalizeClass(unref(p).e("prefix"))
}, [
createBaseVNode("span", {
class: normalizeClass(unref(p).e("prefix-inner"))
}, [
renderSlot(S.$slots, "prefix"),
S.prefixIcon ? (openBlock(), createBlock(unref(Vt), {
key: 0,
class: normalizeClass(unref(p).e("icon"))
}, {
default: withCtx(() => [
(openBlock(), createBlock(resolveDynamicComponent(S.prefixIcon)))
]),
_: 1
}, 8, ["class"])) : createCommentVNode("v-if", true)
], 2)
], 2)) : createCommentVNode("v-if", true),
createBaseVNode("input", mergeProps({
id: unref(v),
ref_key: "input",
ref: g,
class: unref(p).e("inner")
}, unref(l), {
minlength: S.minlength,
maxlength: S.maxlength,
type: S.showPassword ? w.value ? "text" : "password" : S.type,
disabled: unref(f),
readonly: S.readonly,
autocomplete: S.autocomplete,
tabindex: S.tabindex,
"aria-label": S.ariaLabel,
placeholder: S.placeholder,
style: S.inputStyle,
form: S.form,
autofocus: S.autofocus,
onCompositionstart: unref(fe),
onCompositionupdate: unref(me),
onCompositionend: unref(xe),
onInput: Q,
onChange: ge2,
onKeydown: Be
}), null, 16, ["id", "minlength", "maxlength", "type", "disabled", "readonly", "autocomplete", "tabindex", "aria-label", "placeholder", "form", "autofocus", "onCompositionstart", "onCompositionupdate", "onCompositionend"]),
createCommentVNode(" suffix slot "),
unref(se2) ? (openBlock(), createElementBlock("span", {
key: 1,
class: normalizeClass(unref(p).e("suffix"))
}, [
createBaseVNode("span", {
class: normalizeClass(unref(p).e("suffix-inner"))
}, [
!unref(R) || !unref(K10) || !unref(H) ? (openBlock(), createElementBlock(Fragment, { key: 0 }, [
renderSlot(S.$slots, "suffix"),
S.suffixIcon ? (openBlock(), createBlock(unref(Vt), {
key: 0,
class: normalizeClass(unref(p).e("icon"))
}, {
default: withCtx(() => [
(openBlock(), createBlock(resolveDynamicComponent(S.suffixIcon)))
]),
_: 1
}, 8, ["class"])) : createCommentVNode("v-if", true)
], 64)) : createCommentVNode("v-if", true),
unref(R) ? (openBlock(), createBlock(unref(Vt), {
key: 1,
class: normalizeClass([unref(p).e("icon"), unref(p).e("clear")]),
onMousedown: withModifiers(unref(Wi), ["prevent"]),
onClick: le
}, {
default: withCtx(() => [
createVNode(unref(Iu))
]),
_: 1
}, 8, ["class", "onMousedown"])) : createCommentVNode("v-if", true),
unref(K10) ? (openBlock(), createBlock(unref(Vt), {
key: 2,
class: normalizeClass([unref(p).e("icon"), unref(p).e("password")]),
onClick: ke2
}, {
default: withCtx(() => [
(openBlock(), createBlock(resolveDynamicComponent(unref(B))))
]),
_: 1
}, 8, ["class"])) : createCommentVNode("v-if", true),
unref(H) ? (openBlock(), createElementBlock("span", {
key: 3,
class: normalizeClass(unref(p).e("count"))
}, [
createBaseVNode("span", {
class: normalizeClass(unref(p).e("count-inner"))
}, toDisplayString(unref(q)) + " / " + toDisplayString(S.maxlength), 3)
], 2)) : createCommentVNode("v-if", true),
unref(I) && unref(L) && unref(O) ? (openBlock(), createBlock(unref(Vt), {
key: 4,
class: normalizeClass([
unref(p).e("icon"),
unref(p).e("validateIcon"),
unref(p).is("loading", unref(I) === "validating")
])
}, {
default: withCtx(() => [
(openBlock(), createBlock(resolveDynamicComponent(unref(L))))
]),
_: 1
}, 8, ["class"])) : createCommentVNode("v-if", true)
], 2)
], 2)) : createCommentVNode("v-if", true)
], 2),
createCommentVNode(" append slot "),
S.$slots.append ? (openBlock(), createElementBlock("div", {
key: 1,
class: normalizeClass(unref(p).be("group", "append"))
}, [
renderSlot(S.$slots, "append")
], 2)) : createCommentVNode("v-if", true)
], 64)) : (openBlock(), createElementBlock(Fragment, { key: 1 }, [
createCommentVNode(" textarea "),
createBaseVNode("textarea", mergeProps({
id: unref(v),
ref_key: "textarea",
ref: y,
class: [unref(m).e("inner"), unref(p).is("focus", unref(k))]
}, unref(l), {
minlength: S.minlength,
maxlength: S.maxlength,
tabindex: S.tabindex,
disabled: unref(f),
readonly: S.readonly,
autocomplete: S.autocomplete,
style: unref(M),
"aria-label": S.ariaLabel,
placeholder: S.placeholder,
form: S.form,
autofocus: S.autofocus,
rows: S.rows,
onCompositionstart: unref(fe),
onCompositionupdate: unref(me),
onCompositionend: unref(xe),
onInput: Q,
onFocus: unref(_),
onBlur: unref(D),
onChange: ge2,
onKeydown: Be
}), null, 16, ["id", "minlength", "maxlength", "tabindex", "disabled", "readonly", "autocomplete", "aria-label", "placeholder", "form", "autofocus", "rows", "onCompositionstart", "onCompositionupdate", "onCompositionend", "onFocus", "onBlur"]),
unref(H) ? (openBlock(), createElementBlock("span", {
key: 0,
style: normalizeStyle(C.value),
class: normalizeClass(unref(p).e("count"))
}, toDisplayString(unref(q)) + " / " + toDisplayString(S.maxlength), 7)) : createCommentVNode("v-if", true)
], 64))
], 16, ["role"]));
}
});
var _x = ze(Tx, [["__file", "input.vue"]]);
var Eo = $t(_x);
var La = 4;
var Dx = {
vertical: {
offset: "offsetHeight",
scroll: "scrollTop",
scrollSize: "scrollHeight",
size: "height",
key: "vertical",
axis: "Y",
client: "clientY",
direction: "top"
},
horizontal: {
offset: "offsetWidth",
scroll: "scrollLeft",
scrollSize: "scrollWidth",
size: "width",
key: "horizontal",
axis: "X",
client: "clientX",
direction: "left"
}
};
var Px = ({
move: t20,
size: e,
bar: r
}) => ({
[r.size]: e,
transform: `translate${r.axis}(${t20}%)`
});
var Yu = Symbol("scrollbarContextKey");
var Ox = rt({
vertical: Boolean,
size: String,
move: Number,
ratio: {
type: Number,
required: true
},
always: Boolean
});
var Lx = "Thumb";
var Fx = defineComponent({
__name: "thumb",
props: Ox,
setup(t20) {
const e = t20, r = inject(Yu), n = He("scrollbar");
r || Zb(Lx, "can not inject scrollbar context");
const a = ref(), i = ref(), o = ref({}), s = ref(false);
let u = false, l = false, c = _t ? document.onselectstart : null;
const d = computed(() => Dx[e.vertical ? "vertical" : "horizontal"]), v = computed(() => Px({
size: e.size,
move: e.move,
bar: d.value
})), h6 = computed(() => a.value[d.value.offset] ** 2 / r.wrapElement[d.value.scrollSize] / e.ratio / i.value[d.value.offset]), f = (E) => {
var x;
if (E.stopPropagation(), E.ctrlKey || [1, 2].includes(E.button))
return;
(x = window.getSelection()) == null || x.removeAllRanges(), m(E);
const T = E.currentTarget;
T && (o.value[d.value.axis] = T[d.value.offset] - (E[d.value.client] - T.getBoundingClientRect()[d.value.direction]));
}, p = (E) => {
if (!i.value || !a.value || !r.wrapElement)
return;
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 * h6.value / a.value[d.value.offset];
r.wrapElement[d.value.scroll] = k * r.wrapElement[d.value.scrollSize] / 100;
}, m = (E) => {
E.stopImmediatePropagation(), u = true, document.addEventListener("mousemove", g), document.addEventListener("mouseup", y), c = document.onselectstart, document.onselectstart = () => false;
}, g = (E) => {
if (!a.value || !i.value || u === false)
return;
const x = o.value[d.value.axis];
if (!x)
return;
const T = (a.value.getBoundingClientRect()[d.value.direction] - E[d.value.client]) * -1, k = i.value[d.value.offset] - x, _ = (T - k) * 100 * h6.value / a.value[d.value.offset];
r.wrapElement[d.value.scroll] = _ * r.wrapElement[d.value.scrollSize] / 100;
}, y = () => {
u = false, o.value[d.value.axis] = 0, document.removeEventListener("mousemove", g), document.removeEventListener("mouseup", y), C(), l && (s.value = false);
}, b = () => {
l = false, s.value = !!e.size;
}, w = () => {
l = true, s.value = u;
};
onBeforeUnmount(() => {
C(), document.removeEventListener("mouseup", y);
});
const C = () => {
document.onselectstart !== c && (document.onselectstart = c);
};
return kr(toRef(r, "scrollbarElement"), "mousemove", b), kr(toRef(r, "scrollbarElement"), "mouseleave", w), (E, x) => (openBlock(), createBlock(Transition, {
name: unref(n).b("fade"),
persisted: ""
}, {
default: withCtx(() => [
withDirectives(createBaseVNode("div", {
ref_key: "instance",
ref: a,
class: normalizeClass([unref(n).e("bar"), unref(n).is(unref(d).key)]),
onMousedown: p
}, [
createBaseVNode("div", {
ref_key: "thumb",
ref: i,
class: normalizeClass(unref(n).e("thumb")),
style: normalizeStyle(unref(v)),
onMousedown: f
}, null, 38)
], 34), [
[vShow, E.always || s.value]
])
]),
_: 1
}, 8, ["name"]));
}
});
var Od = ze(Fx, [["__file", "thumb.vue"]]);
var Ix = rt({
always: {
type: Boolean,
default: true
},
minSize: {
type: Number,
required: true
}
});
var Ax = defineComponent({
__name: "bar",
props: Ix,
setup(t20, { expose: e }) {
const r = t20, n = inject(Yu), a = ref(0), i = ref(0), o = ref(""), s = ref(""), u = ref(1), l = ref(1);
return e({
handleScroll: (v) => {
if (v) {
const h6 = v.offsetHeight - La, f = v.offsetWidth - La;
i.value = v.scrollTop * 100 / h6 * u.value, a.value = v.scrollLeft * 100 / f * l.value;
}
},
update: () => {
const v = n == null ? void 0 : n.wrapElement;
if (!v)
return;
const h6 = v.offsetHeight - La, f = v.offsetWidth - La, p = h6 ** 2 / v.scrollHeight, m = f ** 2 / v.scrollWidth, g = Math.max(p, r.minSize), y = Math.max(m, r.minSize);
u.value = p / (h6 - p) / (g / (h6 - g)), l.value = m / (f - m) / (y / (f - y)), s.value = g + La < h6 ? `${g}px` : "", o.value = y + La < f ? `${y}px` : "";
}
}), (v, h6) => (openBlock(), createElementBlock(Fragment, null, [
createVNode(Od, {
move: a.value,
ratio: l.value,
size: o.value,
always: v.always
}, null, 8, ["move", "ratio", "size", "always"]),
createVNode(Od, {
move: i.value,
ratio: u.value,
size: s.value,
vertical: "",
always: v.always
}, null, 8, ["move", "ratio", "size", "always"])
], 64));
}
});
var Mx = ze(Ax, [["__file", "bar.vue"]]);
var Bx = rt({
height: {
type: [String, Number],
default: ""
},
maxHeight: {
type: [String, Number],
default: ""
},
native: {
type: Boolean,
default: false
},
wrapStyle: {
type: $e([String, Object, Array]),
default: ""
},
wrapClass: {
type: [String, Array],
default: ""
},
viewClass: {
type: [String, Array],
default: ""
},
viewStyle: {
type: [String, Array, Object],
default: ""
},
noresize: Boolean,
tag: {
type: String,
default: "div"
},
always: Boolean,
minSize: {
type: Number,
default: 20
},
tabindex: {
type: [String, Number],
default: void 0
},
id: String,
role: String,
...Zn(["ariaLabel", "ariaOrientation"])
});
var Nx = {
scroll: ({
scrollTop: t20,
scrollLeft: e
}) => [t20, e].every(qt)
};
var tu = "ElScrollbar";
var $x = defineComponent({
name: tu
});
var Rx = defineComponent({
...$x,
props: Bx,
emits: Nx,
setup(t20, { expose: e, emit: r }) {
const n = t20, a = He("scrollbar");
let i, o, s = 0, u = 0;
const l = ref(), c = ref(), d = ref(), v = ref(), h6 = computed(() => {
const C = {};
return n.height && (C.height = Ja(n.height)), n.maxHeight && (C.maxHeight = Ja(n.maxHeight)), [n.wrapStyle, C];
}), f = computed(() => [
n.wrapClass,
a.e("wrap"),
{ [a.em("wrap", "hidden-default")]: !n.native }
]), p = computed(() => [a.e("view"), n.viewClass]), m = () => {
var C;
c.value && ((C = v.value) == null || C.handleScroll(c.value), s = c.value.scrollTop, u = c.value.scrollLeft, r("scroll", {
scrollTop: c.value.scrollTop,
scrollLeft: c.value.scrollLeft
}));
};
function g(C, E) {
Ht(C) ? c.value.scrollTo(C) : qt(C) && qt(E) && c.value.scrollTo(C, E);
}
const y = (C) => {
if (!qt(C)) {
Dt(tu, "value must be a number");
return;
}
c.value.scrollTop = C;
}, b = (C) => {
if (!qt(C)) {
Dt(tu, "value must be a number");
return;
}
c.value.scrollLeft = C;
}, w = () => {
var C;
(C = v.value) == null || C.update();
};
return watch(() => n.noresize, (C) => {
C ? (i == null || i(), o == null || o()) : ({ stop: i } = dn(d, w), o = kr("resize", w));
}, { immediate: true }), watch(() => [n.maxHeight, n.height], () => {
n.native || nextTick(() => {
var C;
w(), c.value && ((C = v.value) == null || C.handleScroll(c.value));
});
}), provide(Yu, reactive({
scrollbarElement: l,
wrapElement: c
})), onActivated(() => {
c.value && (c.value.scrollTop = s, c.value.scrollLeft = u);
}), onMounted(() => {
n.native || nextTick(() => {
w();
});
}), onUpdated(() => w()), e({
wrapRef: c,
update: w,
scrollTo: g,
setScrollTop: y,
setScrollLeft: b,
handleScroll: m
}), (C, E) => (openBlock(), createElementBlock("div", {
ref_key: "scrollbarRef",
ref: l,
class: normalizeClass(unref(a).b())
}, [
createBaseVNode("div", {
ref_key: "wrapRef",
ref: c,
class: normalizeClass(unref(f)),
style: normalizeStyle(unref(h6)),
tabindex: C.tabindex,
onScroll: m
}, [
(openBlock(), createBlock(resolveDynamicComponent(C.tag), {
id: C.id,
ref_key: "resizeRef",
ref: d,
class: normalizeClass(unref(p)),
style: normalizeStyle(C.viewStyle),
role: C.role,
"aria-label": C.ariaLabel,
"aria-orientation": C.ariaOrientation
}, {
default: withCtx(() => [
renderSlot(C.$slots, "default")
]),
_: 3
}, 8, ["id", "class", "style", "role", "aria-label", "aria-orientation"]))
], 46, ["tabindex"]),
C.native ? createCommentVNode("v-if", true) : (openBlock(), createBlock(Mx, {
key: 0,
ref_key: "barRef",
ref: v,
always: C.always,
"min-size": C.minSize
}, null, 8, ["always", "min-size"]))
], 2));
}
});
var zx = ze(Rx, [["__file", "scrollbar.vue"]]);
var Vx = $t(zx);
var Zu = Symbol("popper");
var gh = Symbol("popperContent");
var Hx = [
"dialog",
"grid",
"group",
"listbox",
"menu",
"navigation",
"tooltip",
"tree"
];
var mh = rt({
role: {
type: String,
values: Hx,
default: "tooltip"
}
});
var qx = defineComponent({
name: "ElPopper",
inheritAttrs: false
});
var Kx = defineComponent({
...qx,
props: mh,
setup(t20, { expose: e }) {
const r = t20, n = ref(), a = ref(), i = ref(), o = ref(), s = computed(() => r.role), u = {
triggerRef: n,
popperInstanceRef: a,
contentRef: i,
referenceRef: o,
role: s
};
return e(u), provide(Zu, u), (l, c) => renderSlot(l.$slots, "default");
}
});
var Ux = ze(Kx, [["__file", "popper.vue"]]);
var yh = rt({
arrowOffset: {
type: Number,
default: 5
}
});
var Gx = defineComponent({
name: "ElPopperArrow",
inheritAttrs: false
});
var Wx = defineComponent({
...Gx,
props: yh,
setup(t20, { expose: e }) {
const r = t20, n = He("popper"), { arrowOffset: a, arrowRef: i, arrowStyle: o } = inject(gh, void 0);
return watch(() => r.arrowOffset, (s) => {
a.value = s;
}), onBeforeUnmount(() => {
i.value = void 0;
}), e({
arrowRef: i
}), (s, u) => (openBlock(), createElementBlock("span", {
ref_key: "arrowRef",
ref: i,
class: normalizeClass(unref(n).e("arrow")),
style: normalizeStyle(unref(o)),
"data-popper-arrow": ""
}, null, 6));
}
});
var Yx = ze(Wx, [["__file", "arrow.vue"]]);
var kl = "ElOnlyChild";
var Zx = defineComponent({
name: kl,
setup(t20, {
slots: e,
attrs: r
}) {
var n;
const a = inject(lh), i = ax((n = a == null ? void 0 : a.setForwardRef) != null ? n : Wi);
return () => {
var o;
const s = (o = e.default) == null ? void 0 : o.call(e, r);
if (!s)
return null;
if (s.length > 1)
return Dt(kl, "requires exact only one valid child."), null;
const u = bh(s);
return u ? withDirectives(cloneVNode(u, r), [[i]]) : (Dt(kl, "no valid child node found"), null);
};
}
});
function bh(t20) {
if (!t20)
return null;
const e = t20;
for (const r of e) {
if (Ht(r))
switch (r.type) {
case Comment:
continue;
case Text:
case "svg":
return Ld(r);
case Fragment:
return bh(r.children);
default:
return r;
}
return Ld(r);
}
return null;
}
function Ld(t20) {
const e = He("only-child");
return createVNode("span", {
class: e.e("content")
}, [t20]);
}
var wh = rt({
virtualRef: {
type: $e(Object)
},
virtualTriggering: Boolean,
onMouseenter: {
type: $e(Function)
},
onMouseleave: {
type: $e(Function)
},
onClick: {
type: $e(Function)
},
onKeydown: {
type: $e(Function)
},
onFocus: {
type: $e(Function)
},
onBlur: {
type: $e(Function)
},
onContextmenu: {
type: $e(Function)
},
id: String,
open: Boolean
});
var Xx = defineComponent({
name: "ElPopperTrigger",
inheritAttrs: false
});
var jx = defineComponent({
...Xx,
props: wh,
setup(t20, { expose: e }) {
const r = t20, { role: n, triggerRef: a } = inject(Zu, void 0);
nx(a);
const i = computed(() => s.value ? r.id : void 0), o = computed(() => {
if (n && n.value === "tooltip")
return r.open && r.id ? r.id : void 0;
}), s = computed(() => {
if (n && n.value !== "tooltip")
return n.value;
}), u = computed(() => s.value ? `${r.open}` : void 0);
let l;
const c = [
"onMouseenter",
"onMouseleave",
"onClick",
"onKeydown",
"onFocus",
"onBlur",
"onContextmenu"
];
return onMounted(() => {
watch(() => r.virtualRef, (d) => {
d && (a.value = vn(d));
}, {
immediate: true
}), watch(a, (d, v) => {
l == null || l(), l = void 0, ua(d) && (c.forEach((h6) => {
var f;
const p = r[h6];
p && (d.addEventListener(h6.slice(2).toLowerCase(), p), (f = v == null ? void 0 : v.removeEventListener) == null || f.call(v, h6.slice(2).toLowerCase(), p));
}), l = watch([i, o, s, u], (h6) => {
[
"aria-controls",
"aria-describedby",
"aria-haspopup",
"aria-expanded"
].forEach((f, p) => {
$n(h6[p]) ? d.removeAttribute(f) : d.setAttribute(f, h6[p]);
});
}, { immediate: true })), ua(v) && [
"aria-controls",
"aria-describedby",
"aria-haspopup",
"aria-expanded"
].forEach((h6) => v.removeAttribute(h6));
}, {
immediate: true
});
}), onBeforeUnmount(() => {
if (l == null || l(), l = void 0, a.value && ua(a.value)) {
const d = a.value;
c.forEach((v) => {
const h6 = r[v];
h6 && d.removeEventListener(v.slice(2).toLowerCase(), h6);
}), a.value = void 0;
}
}), e({
triggerRef: a
}), (d, v) => d.virtualTriggering ? createCommentVNode("v-if", true) : (openBlock(), createBlock(unref(Zx), mergeProps({ key: 0 }, d.$attrs, {
"aria-controls": unref(i),
"aria-describedby": unref(o),
"aria-expanded": unref(u),
"aria-haspopup": unref(s)
}), {
default: withCtx(() => [
renderSlot(d.$slots, "default")
]),
_: 3
}, 16, ["aria-controls", "aria-describedby", "aria-expanded", "aria-haspopup"]));
}
});
var Qx = ze(jx, [["__file", "trigger.vue"]]);
var Sl = "focus-trap.focus-after-trapped";
var Tl = "focus-trap.focus-after-released";
var Jx = "focus-trap.focusout-prevented";
var Fd = {
cancelable: true,
bubbles: false
};
var eC = {
cancelable: true,
bubbles: false
};
var Id = "focusAfterTrapped";
var Ad = "focusAfterReleased";
var tC = Symbol("elFocusTrap");
var Xu = ref();
var js = ref(0);
var ju = ref(0);
var Ro = 0;
var xh = (t20) => {
const e = [], r = document.createTreeWalker(t20, NodeFilter.SHOW_ELEMENT, {
acceptNode: (n) => {
const a = n.tagName === "INPUT" && n.type === "hidden";
return n.disabled || n.hidden || a ? NodeFilter.FILTER_SKIP : n.tabIndex >= 0 || n === document.activeElement ? NodeFilter.FILTER_ACCEPT : NodeFilter.FILTER_SKIP;
}
});
for (; r.nextNode(); )
e.push(r.currentNode);
return e;
};
var Md = (t20, e) => {
for (const r of t20)
if (!rC(r, e))
return r;
};
var rC = (t20, e) => {
if (false)
return false;
if (getComputedStyle(t20).visibility === "hidden")
return true;
for (; t20; ) {
if (e && t20 === e)
return false;
if (getComputedStyle(t20).display === "none")
return true;
t20 = t20.parentElement;
}
return false;
};
var nC = (t20) => {
const e = xh(t20), r = Md(e, t20), n = Md(e.reverse(), t20);
return [r, n];
};
var aC = (t20) => t20 instanceof HTMLInputElement && "select" in t20;
var On = (t20, e) => {
if (t20 && t20.focus) {
const r = document.activeElement;
t20.focus({ preventScroll: true }), ju.value = window.performance.now(), t20 !== r && aC(t20) && e && t20.select();
}
};
function Bd(t20, e) {
const r = [...t20], n = t20.indexOf(e);
return n !== -1 && r.splice(n, 1), r;
}
var iC = () => {
let t20 = [];
return {
push: (n) => {
const a = t20[0];
a && n !== a && a.pause(), t20 = Bd(t20, n), t20.unshift(n);
},
remove: (n) => {
var a, i;
t20 = Bd(t20, n), (i = (a = t20[0]) == null ? void 0 : a.resume) == null || i.call(a);
}
};
};
var oC = (t20, e = false) => {
const r = document.activeElement;
for (const n of t20)
if (On(n, e), document.activeElement !== r)
return;
};
var Nd = iC();
var sC = () => js.value > ju.value;
var zo = () => {
Xu.value = "pointer", js.value = window.performance.now();
};
var $d = () => {
Xu.value = "keyboard", js.value = window.performance.now();
};
var lC = () => (onMounted(() => {
Ro === 0 && (document.addEventListener("mousedown", zo), document.addEventListener("touchstart", zo), document.addEventListener("keydown", $d)), Ro++;
}), onBeforeUnmount(() => {
Ro--, Ro <= 0 && (document.removeEventListener("mousedown", zo), document.removeEventListener("touchstart", zo), document.removeEventListener("keydown", $d));
}), {
focusReason: Xu,
lastUserFocusTimestamp: js,
lastAutomatedFocusTimestamp: ju
});
var Vo = (t20) => new CustomEvent(Jx, {
...eC,
detail: t20
});
var uC = defineComponent({
name: "ElFocusTrap",
inheritAttrs: false,
props: {
loop: Boolean,
trapped: Boolean,
focusTrapEl: Object,
focusStartEl: {
type: [Object, String],
default: "first"
}
},
emits: [
Id,
Ad,
"focusin",
"focusout",
"focusout-prevented",
"release-requested"
],
setup(t20, { emit: e }) {
const r = ref();
let n, a;
const { focusReason: i } = lC();
Qw((f) => {
t20.trapped && !o.paused && e("release-requested", f);
});
const o = {
paused: false,
pause() {
this.paused = true;
},
resume() {
this.paused = false;
}
}, s = (f) => {
if (!t20.loop && !t20.trapped || o.paused)
return;
const { key: p, altKey: m, ctrlKey: g, metaKey: y, currentTarget: b, shiftKey: w } = f, { loop: C } = t20, E = p === Lt.tab && !m && !g && !y, x = document.activeElement;
if (E && x) {
const T = b, [k, _] = nC(T);
if (k && _) {
if (!w && x === _) {
const O = Vo({
focusReason: i.value
});
e("focusout-prevented", O), O.defaultPrevented || (f.preventDefault(), C && On(k, true));
} else if (w && [k, T].includes(x)) {
const O = Vo({
focusReason: i.value
});
e("focusout-prevented", O), O.defaultPrevented || (f.preventDefault(), C && On(_, true));
}
} else if (x === T) {
const O = Vo({
focusReason: i.value
});
e("focusout-prevented", O), O.defaultPrevented || f.preventDefault();
}
}
};
provide(tC, {
focusTrapRef: r,
onKeydown: s
}), watch(() => t20.focusTrapEl, (f) => {
f && (r.value = f);
}, { immediate: true }), watch([r], ([f], [p]) => {
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));
});
const u = (f) => {
e(Id, f);
}, l = (f) => e(Ad, f), c = (f) => {
const p = unref(r);
if (!p)
return;
const m = f.target, g = f.relatedTarget, y = m && p.contains(m);
t20.trapped || g && p.contains(g) || (n = g), y && e("focusin", f), !o.paused && t20.trapped && (y ? a = m : On(a, true));
}, d = (f) => {
const p = unref(r);
if (!(o.paused || !p))
if (t20.trapped) {
const m = f.relatedTarget;
!$n(m) && !p.contains(m) && setTimeout(() => {
if (!o.paused && t20.trapped) {
const g = Vo({
focusReason: i.value
});
e("focusout-prevented", g), g.defaultPrevented || On(a, true);
}
}, 0);
} else {
const m = f.target;
m && p.contains(m) || e("focusout", f);
}
};
async function v() {
await nextTick();
const f = unref(r);
if (f) {
Nd.push(o);
const p = f.contains(document.activeElement) ? n : document.activeElement;
if (n = p, !f.contains(p)) {
const g = new Event(Sl, Fd);
f.addEventListener(Sl, u), f.dispatchEvent(g), g.defaultPrevented || nextTick(() => {
let y = t20.focusStartEl;
tr(y) || (On(y), document.activeElement !== y && (y = "first")), y === "first" && oC(xh(f), true), (document.activeElement === p || y === "container") && On(f);
});
}
}
}
function h6() {
const f = unref(r);
if (f) {
f.removeEventListener(Sl, u);
const p = new CustomEvent(Tl, {
...Fd,
detail: {
focusReason: i.value
}
});
f.addEventListener(Tl, l), f.dispatchEvent(p), !p.defaultPrevented && (i.value == "keyboard" || !sC() || f.contains(document.activeElement)) && On(n ?? document.body), f.removeEventListener(Tl, l), Nd.remove(o);
}
}
return onMounted(() => {
t20.trapped && v(), watch(() => t20.trapped, (f) => {
f ? v() : h6();
});
}), onBeforeUnmount(() => {
t20.trapped && h6(), r.value && (r.value.removeEventListener("keydown", s), r.value.removeEventListener("focusin", c), r.value.removeEventListener("focusout", d), r.value = void 0);
}), {
onKeydown: s
};
}
});
function cC(t20, e, r, n, a, i) {
return renderSlot(t20.$slots, "default", { handleKeydown: t20.onKeydown });
}
var dC = ze(uC, [["render", cC], ["__file", "focus-trap.vue"]]);
var fC = ["fixed", "absolute"];
var vC = rt({
boundariesPadding: {
type: Number,
default: 0
},
fallbackPlacements: {
type: $e(Array),
default: void 0
},
gpuAcceleration: {
type: Boolean,
default: true
},
offset: {
type: Number,
default: 12
},
placement: {
type: String,
values: Ys,
default: "bottom"
},
popperOptions: {
type: $e(Object),
default: () => ({})
},
strategy: {
type: String,
values: fC,
default: "absolute"
}
});
var Ch = rt({
...vC,
id: String,
style: {
type: $e([String, Array, Object])
},
className: {
type: $e([String, Array, Object])
},
effect: {
type: $e(String),
default: "dark"
},
visible: Boolean,
enterable: {
type: Boolean,
default: true
},
pure: Boolean,
focusOnShow: {
type: Boolean,
default: false
},
trapping: {
type: Boolean,
default: false
},
popperClass: {
type: $e([String, Array, Object])
},
popperStyle: {
type: $e([String, Array, Object])
},
referenceEl: {
type: $e(Object)
},
triggerTargetEl: {
type: $e(Object)
},
stopPopperMouseEvent: {
type: Boolean,
default: true
},
virtualTriggering: Boolean,
zIndex: Number,
...Zn(["ariaLabel"])
});
var hC = {
mouseenter: (t20) => t20 instanceof MouseEvent,
mouseleave: (t20) => t20 instanceof MouseEvent,
focus: () => true,
blur: () => true,
close: () => true
};
var pC = (t20, e = []) => {
const { placement: r, strategy: n, popperOptions: a } = t20, i = {
placement: r,
strategy: n,
...a,
modifiers: [...mC(t20), ...e]
};
return yC(i, a == null ? void 0 : a.modifiers), i;
};
var gC = (t20) => {
if (_t)
return vn(t20);
};
function mC(t20) {
const { offset: e, gpuAcceleration: r, fallbackPlacements: n } = t20;
return [
{
name: "offset",
options: {
offset: [0, e ?? 12]
}
},
{
name: "preventOverflow",
options: {
padding: {
top: 2,
bottom: 2,
left: 5,
right: 5
}
}
},
{
name: "flip",
options: {
padding: 5,
fallbackPlacements: n
}
},
{
name: "computeStyles",
options: {
gpuAcceleration: r
}
}
];
}
function yC(t20, e) {
e && (t20.modifiers = [...t20.modifiers, ...e ?? []]);
}
var bC = 0;
var wC = (t20) => {
const { popperInstanceRef: e, contentRef: r, triggerRef: n, role: a } = inject(Zu, void 0), i = ref(), o = ref(), s = computed(() => ({
name: "eventListeners",
enabled: !!t20.visible
})), u = computed(() => {
var g;
const y = unref(i), b = (g = unref(o)) != null ? g : bC;
return {
name: "arrow",
enabled: !qb(y),
options: {
element: y,
padding: b
}
};
}), l = computed(() => ({
onFirstUpdate: () => {
f();
},
...pC(t20, [
unref(u),
unref(s)
])
})), c = computed(() => gC(t20.referenceEl) || unref(n)), { attributes: d, state: v, styles: h6, update: f, forceUpdate: p, instanceRef: m } = Zw(c, r, l);
return watch(m, (g) => e.value = g), onMounted(() => {
watch(() => {
var g;
return (g = unref(c)) == null ? void 0 : g.getBoundingClientRect();
}, () => {
f();
});
}), {
attributes: d,
arrowRef: i,
contentRef: r,
instanceRef: m,
state: v,
styles: h6,
role: a,
forceUpdate: p,
update: f
};
};
var xC = (t20, {
attributes: e,
styles: r,
role: n
}) => {
const { nextZIndex: a } = dh(), i = He("popper"), o = computed(() => unref(e).popper), s = ref(qt(t20.zIndex) ? t20.zIndex : a()), u = computed(() => [
i.b(),
i.is("pure", t20.pure),
i.is(t20.effect),
t20.popperClass
]), l = computed(() => [
{ zIndex: unref(s) },
unref(r).popper,
t20.popperStyle || {}
]), c = computed(() => n.value === "dialog" ? "false" : void 0), d = computed(() => unref(r).arrow || {});
return {
ariaModal: c,
arrowStyle: d,
contentAttrs: o,
contentClass: u,
contentStyle: l,
contentZIndex: s,
updateZIndex: () => {
s.value = qt(t20.zIndex) ? t20.zIndex : a();
}
};
};
var CC = (t20, e) => {
const r = ref(false), n = ref();
return {
focusStartRef: n,
trapped: r,
onFocusAfterReleased: (l) => {
var c;
((c = l.detail) == null ? void 0 : c.focusReason) !== "pointer" && (n.value = "first", e("blur"));
},
onFocusAfterTrapped: () => {
e("focus");
},
onFocusInTrap: (l) => {
t20.visible && !r.value && (l.target && (n.value = l.target), r.value = true);
},
onFocusoutPrevented: (l) => {
t20.trapping || (l.detail.focusReason === "pointer" && l.preventDefault(), r.value = false);
},
onReleaseRequested: () => {
r.value = false, e("close");
}
};
};
var EC = defineComponent({
name: "ElPopperContent"
});
var kC = defineComponent({
...EC,
props: Ch,
emits: hC,
setup(t20, { expose: e, emit: r }) {
const n = t20, {
focusStartRef: a,
trapped: i,
onFocusAfterReleased: o,
onFocusAfterTrapped: s,
onFocusInTrap: u,
onFocusoutPrevented: l,
onReleaseRequested: c
} = CC(n, r), { attributes: d, arrowRef: v, contentRef: h6, styles: f, instanceRef: p, role: m, update: g } = wC(n), {
ariaModal: y,
arrowStyle: b,
contentAttrs: w,
contentClass: C,
contentStyle: E,
updateZIndex: x
} = xC(n, {
styles: f,
attributes: d,
role: m
}), T = inject(Qi, void 0), k = ref();
provide(gh, {
arrowStyle: b,
arrowRef: v,
arrowOffset: k
}), T && provide(Qi, {
...T,
addInputId: Wi,
removeInputId: Wi
});
let _;
const D = (I = true) => {
g(), I && x();
}, O = () => {
D(false), n.visible && n.focusOnShow ? i.value = true : n.visible === false && (i.value = false);
};
return onMounted(() => {
watch(() => n.triggerTargetEl, (I, L) => {
_ == null || _(), _ = void 0;
const B = unref(I || h6.value), F = unref(L || h6.value);
ua(B) && (_ = watch([m, () => n.ariaLabel, y, () => n.id], (M) => {
["role", "aria-label", "aria-modal", "id"].forEach((A, R) => {
$n(M[R]) ? B.removeAttribute(A) : B.setAttribute(A, M[R]);
});
}, { immediate: true })), F !== B && ua(F) && ["role", "aria-label", "aria-modal", "id"].forEach((M) => {
F.removeAttribute(M);
});
}, { immediate: true }), watch(() => n.visible, O, { immediate: true });
}), onBeforeUnmount(() => {
_ == null || _(), _ = void 0;
}), e({
popperContentRef: h6,
popperInstanceRef: p,
updatePopper: D,
contentStyle: E
}), (I, L) => (openBlock(), createElementBlock("div", mergeProps({
ref_key: "contentRef",
ref: h6
}, unref(w), {
style: unref(E),
class: unref(C),
tabindex: "-1",
onMouseenter: (B) => I.$emit("mouseenter", B),
onMouseleave: (B) => I.$emit("mouseleave", B)
}), [
createVNode(unref(dC), {
trapped: unref(i),
"trap-on-focus-in": true,
"focus-trap-el": unref(h6),
"focus-start-el": unref(a),
onFocusAfterTrapped: unref(s),
onFocusAfterReleased: unref(o),
onFocusin: unref(u),
onFocusoutPrevented: unref(l),
onReleaseRequested: unref(c)
}, {
default: withCtx(() => [
renderSlot(I.$slots, "default")
]),
_: 3
}, 8, ["trapped", "focus-trap-el", "focus-start-el", "onFocusAfterTrapped", "onFocusAfterReleased", "onFocusin", "onFocusoutPrevented", "onReleaseRequested"])
], 16, ["onMouseenter", "onMouseleave"]));
}
});
var SC = ze(kC, [["__file", "content.vue"]]);
var TC = $t(Ux);
var Qu = Symbol("elTooltip");
var cr = rt({
...tx,
...Ch,
appendTo: {
type: $e([String, Object])
},
content: {
type: String,
default: ""
},
rawContent: Boolean,
persistent: Boolean,
visible: {
type: $e(Boolean),
default: null
},
transition: String,
teleported: {
type: Boolean,
default: true
},
disabled: Boolean,
...Zn(["ariaLabel"])
});
var Ji = rt({
...wh,
disabled: Boolean,
trigger: {
type: $e([String, Array]),
default: "hover"
},
triggerKeys: {
type: $e(Array),
default: () => [Lt.enter, Lt.space]
}
});
var {
useModelToggleProps: _C,
useModelToggleEmits: DC,
useModelToggle: PC
} = G2("visible");
var OC = rt({
...mh,
..._C,
...cr,
...Ji,
...yh,
showArrow: {
type: Boolean,
default: true
}
});
var LC = [
...DC,
"before-show",
"before-hide",
"show",
"hide",
"open",
"close"
];
var FC = (t20, e) => fr(t20) ? t20.includes(e) : t20 === e;
var Fa = (t20, e, r) => (n) => {
FC(unref(t20), e) && r(n);
};
var IC = defineComponent({
name: "ElTooltipTrigger"
});
var AC = defineComponent({
...IC,
props: Ji,
setup(t20, { expose: e }) {
const r = t20, n = He("tooltip"), { controlled: a, id: i, open: o, onOpen: s, onClose: u, onToggle: l } = inject(Qu, void 0), c = ref(null), d = () => {
if (unref(a) || r.disabled)
return true;
}, v = toRef(r, "trigger"), h6 = cn(d, Fa(v, "hover", s)), f = cn(d, Fa(v, "hover", u)), p = cn(d, Fa(v, "click", (w) => {
w.button === 0 && l(w);
})), m = cn(d, Fa(v, "focus", s)), g = cn(d, Fa(v, "focus", u)), y = cn(d, Fa(v, "contextmenu", (w) => {
w.preventDefault(), l(w);
})), b = cn(d, (w) => {
const { code: C } = w;
r.triggerKeys.includes(C) && (w.preventDefault(), l(w));
});
return e({
triggerRef: c
}), (w, C) => (openBlock(), createBlock(unref(Qx), {
id: unref(i),
"virtual-ref": w.virtualRef,
open: unref(o),
"virtual-triggering": w.virtualTriggering,
class: normalizeClass(unref(n).e("trigger")),
onBlur: unref(g),
onClick: unref(p),
onContextmenu: unref(y),
onFocus: unref(m),
onMouseenter: unref(h6),
onMouseleave: unref(f),
onKeydown: unref(b)
}, {
default: withCtx(() => [
renderSlot(w.$slots, "default")
]),
_: 3
}, 8, ["id", "virtual-ref", "open", "virtual-triggering", "class", "onBlur", "onClick", "onContextmenu", "onFocus", "onMouseenter", "onMouseleave", "onKeydown"]));
}
});
var MC = ze(AC, [["__file", "trigger.vue"]]);
var BC = rt({
to: {
type: $e([String, Object]),
required: true
},
disabled: Boolean
});
var NC = defineComponent({
__name: "teleport",
props: BC,
setup(t20) {
return (e, r) => e.disabled ? renderSlot(e.$slots, "default", { key: 0 }) : (openBlock(), createBlock(Teleport, {
key: 1,
to: e.to
}, [
renderSlot(e.$slots, "default")
], 8, ["to"]));
}
});
var $C = ze(NC, [["__file", "teleport.vue"]]);
var RC = $t($C);
var zC = defineComponent({
name: "ElTooltipContent",
inheritAttrs: false
});
var VC = defineComponent({
...zC,
props: cr,
setup(t20, { expose: e }) {
const r = t20, { selector: n } = sh(), a = He("tooltip"), i = ref(null);
let o;
const {
controlled: s,
id: u,
open: l,
trigger: c,
onClose: d,
onOpen: v,
onShow: h6,
onHide: f,
onBeforeShow: p,
onBeforeHide: m
} = inject(Qu, void 0), g = computed(() => r.transition || `${a.namespace.value}-fade-in-linear`), y = computed(() => false ? true : r.persistent);
onBeforeUnmount(() => {
o == null || o();
});
const b = computed(() => unref(y) ? true : unref(l)), w = computed(() => r.disabled ? false : unref(l)), C = computed(() => r.appendTo || n.value), E = computed(() => {
var F;
return (F = r.style) != null ? F : {};
}), x = ref(true), T = () => {
f(), x.value = true;
}, k = () => {
if (unref(s))
return true;
}, _ = cn(k, () => {
r.enterable && unref(c) === "hover" && v();
}), D = cn(k, () => {
unref(c) === "hover" && d();
}), O = () => {
var F, M;
(M = (F = i.value) == null ? void 0 : F.updatePopper) == null || M.call(F), p == null || p();
}, I = () => {
m == null || m();
}, L = () => {
h6(), o = B0(computed(() => {
var F;
return (F = i.value) == null ? void 0 : F.popperContentRef;
}), () => {
if (unref(s))
return;
unref(c) !== "hover" && d();
});
}, B = () => {
r.virtualTriggering || d();
};
return watch(() => unref(l), (F) => {
F ? x.value = false : o == null || o();
}, {
flush: "post"
}), watch(() => r.content, () => {
var F, M;
(M = (F = i.value) == null ? void 0 : F.updatePopper) == null || M.call(F);
}), e({
contentRef: i
}), (F, M) => (openBlock(), createBlock(unref(RC), {
disabled: !F.teleported,
to: unref(C)
}, {
default: withCtx(() => [
createVNode(Transition, {
name: unref(g),
onAfterLeave: T,
onBeforeEnter: O,
onAfterEnter: L,
onBeforeLeave: I
}, {
default: withCtx(() => [
unref(b) ? withDirectives((openBlock(), createBlock(unref(SC), mergeProps({
key: 0,
id: unref(u),
ref_key: "contentRef",
ref: i
}, F.$attrs, {
"aria-label": F.ariaLabel,
"aria-hidden": x.value,
"boundaries-padding": F.boundariesPadding,
"fallback-placements": F.fallbackPlacements,
"gpu-acceleration": F.gpuAcceleration,
offset: F.offset,
placement: F.placement,
"popper-options": F.popperOptions,
strategy: F.strategy,
effect: F.effect,
enterable: F.enterable,
pure: F.pure,
"popper-class": F.popperClass,
"popper-style": [F.popperStyle, unref(E)],
"reference-el": F.referenceEl,
"trigger-target-el": F.triggerTargetEl,
visible: unref(w),
"z-index": F.zIndex,
onMouseenter: unref(_),
onMouseleave: unref(D),
onBlur: B,
onClose: unref(d)
}), {
default: withCtx(() => [
renderSlot(F.$slots, "default")
]),
_: 3
}, 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"])), [
[vShow, unref(w)]
]) : createCommentVNode("v-if", true)
]),
_: 3
}, 8, ["name"])
]),
_: 3
}, 8, ["disabled", "to"]));
}
});
var HC = ze(VC, [["__file", "content.vue"]]);
var qC = defineComponent({
name: "ElTooltip"
});
var KC = defineComponent({
...qC,
props: OC,
emits: LC,
setup(t20, { expose: e, emit: r }) {
const n = t20;
ex();
const a = Xs(), i = ref(), o = ref(), s = () => {
var g;
const y = unref(i);
y && ((g = y.popperInstanceRef) == null || g.update());
}, u = ref(false), l = ref(), { show: c, hide: d, hasUpdateHandler: v } = PC({
indicator: u,
toggleReason: l
}), { onOpen: h6, onClose: f } = rx({
showAfter: toRef(n, "showAfter"),
hideAfter: toRef(n, "hideAfter"),
autoClose: toRef(n, "autoClose"),
open: c,
close: d
}), p = computed(() => Qa(n.visible) && !v.value);
provide(Qu, {
controlled: p,
id: a,
open: readonly(u),
trigger: toRef(n, "trigger"),
onOpen: (g) => {
h6(g);
},
onClose: (g) => {
f(g);
},
onToggle: (g) => {
unref(u) ? f(g) : h6(g);
},
onShow: () => {
r("show", l.value);
},
onHide: () => {
r("hide", l.value);
},
onBeforeShow: () => {
r("before-show", l.value);
},
onBeforeHide: () => {
r("before-hide", l.value);
},
updatePopper: s
}), watch(() => n.disabled, (g) => {
g && u.value && (u.value = false);
});
const m = (g) => {
var y, b;
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;
return w && w.contains(C);
};
return onDeactivated(() => u.value && d()), e({
popperRef: i,
contentRef: o,
isFocusInsideContent: m,
updatePopper: s,
onOpen: h6,
onClose: f,
hide: d
}), (g, y) => (openBlock(), createBlock(unref(TC), {
ref_key: "popperRef",
ref: i,
role: g.role
}, {
default: withCtx(() => [
createVNode(MC, {
disabled: g.disabled,
trigger: g.trigger,
"trigger-keys": g.triggerKeys,
"virtual-ref": g.virtualRef,
"virtual-triggering": g.virtualTriggering
}, {
default: withCtx(() => [
g.$slots.default ? renderSlot(g.$slots, "default", { key: 0 }) : createCommentVNode("v-if", true)
]),
_: 3
}, 8, ["disabled", "trigger", "trigger-keys", "virtual-ref", "virtual-triggering"]),
createVNode(HC, {
ref_key: "contentRef",
ref: o,
"aria-label": g.ariaLabel,
"boundaries-padding": g.boundariesPadding,
content: g.content,
disabled: g.disabled,
effect: g.effect,
enterable: g.enterable,
"fallback-placements": g.fallbackPlacements,
"hide-after": g.hideAfter,
"gpu-acceleration": g.gpuAcceleration,
offset: g.offset,
persistent: g.persistent,
"popper-class": g.popperClass,
"popper-style": g.popperStyle,
placement: g.placement,
"popper-options": g.popperOptions,
pure: g.pure,
"raw-content": g.rawContent,
"reference-el": g.referenceEl,
"trigger-target-el": g.triggerTargetEl,
"show-after": g.showAfter,
strategy: g.strategy,
teleported: g.teleported,
transition: g.transition,
"virtual-triggering": g.virtualTriggering,
"z-index": g.zIndex,
"append-to": g.appendTo
}, {
default: withCtx(() => [
renderSlot(g.$slots, "content", {}, () => [
g.rawContent ? (openBlock(), createElementBlock("span", {
key: 0,
innerHTML: g.content
}, null, 8, ["innerHTML"])) : (openBlock(), createElementBlock("span", { key: 1 }, toDisplayString(g.content), 1))
]),
g.showArrow ? (openBlock(), createBlock(unref(Yx), {
key: 0,
"arrow-offset": g.arrowOffset
}, null, 8, ["arrow-offset"])) : createCommentVNode("v-if", true)
]),
_: 3
}, 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"])
]),
_: 3
}, 8, ["role"]));
}
});
var UC = ze(KC, [["__file", "tooltip.vue"]]);
var ko = $t(UC);
var Eh = Symbol("buttonGroupContextKey");
var GC = (t20, e) => {
as({
from: "type.text",
replacement: "link",
version: "3.0.0",
scope: "props",
ref: "https://element-plus.org/en-US/component/button.html#button-attributes"
}, computed(() => t20.type === "text"));
const r = inject(Eh, void 0), n = Gu("button"), { form: a } = Ta(), i = pa(computed(() => r == null ? void 0 : r.size)), o = xo(), s = ref(), u = useSlots(), l = computed(() => t20.type || (r == null ? void 0 : r.type) || ""), c = computed(() => {
var f, p, m;
return (m = (p = t20.autoInsertSpace) != null ? p : (f = n.value) == null ? void 0 : f.autoInsertSpace) != null ? m : false;
}), d = computed(() => t20.tag === "button" ? {
ariaDisabled: o.value || t20.loading,
disabled: o.value || t20.loading,
autofocus: t20.autofocus,
type: t20.nativeType
} : {}), v = computed(() => {
var f;
const p = (f = u.default) == null ? void 0 : f.call(u);
if (c.value && (p == null ? void 0 : p.length) === 1) {
const m = p[0];
if ((m == null ? void 0 : m.type) === Text) {
const g = m.children;
return new RegExp("^\\p{Unified_Ideograph}{2}$", "u").test(g.trim());
}
}
return false;
});
return {
_disabled: o,
_size: i,
_type: l,
_ref: s,
_props: d,
shouldAddSpace: v,
handleClick: (f) => {
if (o.value || t20.loading) {
f.stopPropagation();
return;
}
t20.nativeType === "reset" && (a == null || a.resetFields()), e("click", f);
}
};
};
var WC = [
"default",
"primary",
"success",
"warning",
"info",
"danger",
"text",
""
];
var YC = ["button", "submit", "reset"];
var ru = rt({
size: di,
disabled: Boolean,
type: {
type: String,
values: WC,
default: ""
},
icon: {
type: Hn
},
nativeType: {
type: String,
values: YC,
default: "button"
},
loading: Boolean,
loadingIcon: {
type: Hn,
default: () => Au
},
plain: Boolean,
text: Boolean,
link: Boolean,
bg: Boolean,
autofocus: Boolean,
round: Boolean,
circle: Boolean,
color: String,
dark: Boolean,
autoInsertSpace: {
type: Boolean,
default: void 0
},
tag: {
type: $e([String, Object]),
default: "button"
}
});
var ZC = {
click: (t20) => t20 instanceof MouseEvent
};
function Kt(t20, e) {
XC(t20) && (t20 = "100%");
var r = jC(t20);
return t20 = e === 360 ? t20 : Math.min(e, Math.max(0, parseFloat(t20))), r && (t20 = parseInt(String(t20 * e), 10) / 100), Math.abs(t20 - e) < 1e-6 ? 1 : (e === 360 ? t20 = (t20 < 0 ? t20 % e + e : t20 % e) / parseFloat(String(e)) : t20 = t20 % e / parseFloat(String(e)), t20);
}
function Ho(t20) {
return Math.min(1, Math.max(0, t20));
}
function XC(t20) {
return typeof t20 == "string" && t20.indexOf(".") !== -1 && parseFloat(t20) === 1;
}
function jC(t20) {
return typeof t20 == "string" && t20.indexOf("%") !== -1;
}
function kh(t20) {
return t20 = parseFloat(t20), (isNaN(t20) || t20 < 0 || t20 > 1) && (t20 = 1), t20;
}
function qo(t20) {
return t20 <= 1 ? "".concat(Number(t20) * 100, "%") : t20;
}
function sa(t20) {
return t20.length === 1 ? "0" + t20 : String(t20);
}
function QC(t20, e, r) {
return {
r: Kt(t20, 255) * 255,
g: Kt(e, 255) * 255,
b: Kt(r, 255) * 255
};
}
function Rd(t20, e, r) {
t20 = Kt(t20, 255), e = Kt(e, 255), r = Kt(r, 255);
var n = Math.max(t20, e, r), a = Math.min(t20, e, r), i = 0, o = 0, s = (n + a) / 2;
if (n === a)
o = 0, i = 0;
else {
var u = n - a;
switch (o = s > 0.5 ? u / (2 - n - a) : u / (n + a), n) {
case t20:
i = (e - r) / u + (e < r ? 6 : 0);
break;
case e:
i = (r - t20) / u + 2;
break;
case r:
i = (t20 - e) / u + 4;
break;
}
i /= 6;
}
return { h: i, s: o, l: s };
}
function _l(t20, e, r) {
return r < 0 && (r += 1), r > 1 && (r -= 1), r < 1 / 6 ? t20 + (e - t20) * (6 * r) : r < 1 / 2 ? e : r < 2 / 3 ? t20 + (e - t20) * (2 / 3 - r) * 6 : t20;
}
function JC(t20, e, r) {
var n, a, i;
if (t20 = Kt(t20, 360), e = Kt(e, 100), r = Kt(r, 100), e === 0)
a = r, i = r, n = r;
else {
var o = r < 0.5 ? r * (1 + e) : r + e - r * e, s = 2 * r - o;
n = _l(s, o, t20 + 1 / 3), a = _l(s, o, t20), i = _l(s, o, t20 - 1 / 3);
}
return { r: n * 255, g: a * 255, b: i * 255 };
}
function zd(t20, e, r) {
t20 = Kt(t20, 255), e = Kt(e, 255), r = Kt(r, 255);
var n = Math.max(t20, e, r), a = Math.min(t20, e, r), i = 0, o = n, s = n - a, u = n === 0 ? 0 : s / n;
if (n === a)
i = 0;
else {
switch (n) {
case t20:
i = (e - r) / s + (e < r ? 6 : 0);
break;
case e:
i = (r - t20) / s + 2;
break;
case r:
i = (t20 - e) / s + 4;
break;
}
i /= 6;
}
return { h: i, s: u, v: o };
}
function eE(t20, e, r) {
t20 = Kt(t20, 360) * 6, e = Kt(e, 100), r = Kt(r, 100);
var n = Math.floor(t20), a = t20 - 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];
return { r: l * 255, g: c * 255, b: d * 255 };
}
function Vd(t20, e, r, n) {
var a = [
sa(Math.round(t20).toString(16)),
sa(Math.round(e).toString(16)),
sa(Math.round(r).toString(16))
];
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("");
}
function tE(t20, e, r, n, a) {
var i = [
sa(Math.round(t20).toString(16)),
sa(Math.round(e).toString(16)),
sa(Math.round(r).toString(16)),
sa(rE(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("");
}
function rE(t20) {
return Math.round(parseFloat(t20) * 255).toString(16);
}
function Hd(t20) {
return mr(t20) / 255;
}
function mr(t20) {
return parseInt(t20, 16);
}
function nE(t20) {
return {
r: t20 >> 16,
g: (t20 & 65280) >> 8,
b: t20 & 255
};
}
var nu = {
aliceblue: "#f0f8ff",
antiquewhite: "#faebd7",
aqua: "#00ffff",
aquamarine: "#7fffd4",
azure: "#f0ffff",
beige: "#f5f5dc",
bisque: "#ffe4c4",
black: "#000000",
blanchedalmond: "#ffebcd",
blue: "#0000ff",
blueviolet: "#8a2be2",
brown: "#a52a2a",
burlywood: "#deb887",
cadetblue: "#5f9ea0",
chartreuse: "#7fff00",
chocolate: "#d2691e",
coral: "#ff7f50",
cornflowerblue: "#6495ed",
cornsilk: "#fff8dc",
crimson: "#dc143c",
cyan: "#00ffff",
darkblue: "#00008b",
darkcyan: "#008b8b",
darkgoldenrod: "#b8860b",
darkgray: "#a9a9a9",
darkgreen: "#006400",
darkgrey: "#a9a9a9",
darkkhaki: "#bdb76b",
darkmagenta: "#8b008b",
darkolivegreen: "#556b2f",
darkorange: "#ff8c00",
darkorchid: "#9932cc",
darkred: "#8b0000",
darksalmon: "#e9967a",
darkseagreen: "#8fbc8f",
darkslateblue: "#483d8b",
darkslategray: "#2f4f4f",
darkslategrey: "#2f4f4f",
darkturquoise: "#00ced1",
darkviolet: "#9400d3",
deeppink: "#ff1493",
deepskyblue: "#00bfff",
dimgray: "#696969",
dimgrey: "#696969",
dodgerblue: "#1e90ff",
firebrick: "#b22222",
floralwhite: "#fffaf0",
forestgreen: "#228b22",
fuchsia: "#ff00ff",
gainsboro: "#dcdcdc",
ghostwhite: "#f8f8ff",
goldenrod: "#daa520",
gold: "#ffd700",
gray: "#808080",
green: "#008000",
greenyellow: "#adff2f",
grey: "#808080",
honeydew: "#f0fff0",
hotpink: "#ff69b4",
indianred: "#cd5c5c",
indigo: "#4b0082",
ivory: "#fffff0",
khaki: "#f0e68c",
lavenderblush: "#fff0f5",
lavender: "#e6e6fa",
lawngreen: "#7cfc00",
lemonchiffon: "#fffacd",
lightblue: "#add8e6",
lightcoral: "#f08080",
lightcyan: "#e0ffff",
lightgoldenrodyellow: "#fafad2",
lightgray: "#d3d3d3",
lightgreen: "#90ee90",
lightgrey: "#d3d3d3",
lightpink: "#ffb6c1",
lightsalmon: "#ffa07a",
lightseagreen: "#20b2aa",
lightskyblue: "#87cefa",
lightslategray: "#778899",
lightslategrey: "#778899",
lightsteelblue: "#b0c4de",
lightyellow: "#ffffe0",
lime: "#00ff00",
limegreen: "#32cd32",
linen: "#faf0e6",
magenta: "#ff00ff",
maroon: "#800000",
mediumaquamarine: "#66cdaa",
mediumblue: "#0000cd",
mediumorchid: "#ba55d3",
mediumpurple: "#9370db",
mediumseagreen: "#3cb371",
mediumslateblue: "#7b68ee",
mediumspringgreen: "#00fa9a",
mediumturquoise: "#48d1cc",
mediumvioletred: "#c71585",
midnightblue: "#191970",
mintcream: "#f5fffa",
mistyrose: "#ffe4e1",
moccasin: "#ffe4b5",
navajowhite: "#ffdead",
navy: "#000080",
oldlace: "#fdf5e6",
olive: "#808000",
olivedrab: "#6b8e23",
orange: "#ffa500",
orangered: "#ff4500",
orchid: "#da70d6",
palegoldenrod: "#eee8aa",
palegreen: "#98fb98",
paleturquoise: "#afeeee",
palevioletred: "#db7093",
papayawhip: "#ffefd5",
peachpuff: "#ffdab9",
peru: "#cd853f",
pink: "#ffc0cb",
plum: "#dda0dd",
powderblue: "#b0e0e6",
purple: "#800080",
rebeccapurple: "#663399",
red: "#ff0000",
rosybrown: "#bc8f8f",
royalblue: "#4169e1",
saddlebrown: "#8b4513",
salmon: "#fa8072",
sandybrown: "#f4a460",
seagreen: "#2e8b57",
seashell: "#fff5ee",
sienna: "#a0522d",
silver: "#c0c0c0",
skyblue: "#87ceeb",
slateblue: "#6a5acd",
slategray: "#708090",
slategrey: "#708090",
snow: "#fffafa",
springgreen: "#00ff7f",
steelblue: "#4682b4",
tan: "#d2b48c",
teal: "#008080",
thistle: "#d8bfd8",
tomato: "#ff6347",
turquoise: "#40e0d0",
violet: "#ee82ee",
wheat: "#f5deb3",
white: "#ffffff",
whitesmoke: "#f5f5f5",
yellow: "#ffff00",
yellowgreen: "#9acd32"
};
function aE(t20) {
var e = { r: 0, g: 0, b: 0 }, r = 1, n = null, a = null, i = null, o = false, s = false;
return typeof t20 == "string" && (t20 = sE(t20)), typeof t20 == "object" && (ln(t20.r) && ln(t20.g) && ln(t20.b) ? (e = QC(t20.r, t20.g, t20.b), o = true, s = String(t20.r).substr(-1) === "%" ? "prgb" : "rgb") : ln(t20.h) && ln(t20.s) && ln(t20.v) ? (n = qo(t20.s), a = qo(t20.v), e = eE(t20.h, n, a), o = true, s = "hsv") : ln(t20.h) && ln(t20.s) && ln(t20.l) && (n = qo(t20.s), i = qo(t20.l), e = JC(t20.h, n, i), o = true, s = "hsl"), Object.prototype.hasOwnProperty.call(t20, "a") && (r = t20.a)), r = kh(r), {
ok: o,
format: t20.format || s,
r: Math.min(255, Math.max(e.r, 0)),
g: Math.min(255, Math.max(e.g, 0)),
b: Math.min(255, Math.max(e.b, 0)),
a: r
};
}
var iE = "[-\\+]?\\d+%?";
var oE = "[-\\+]?\\d*\\.\\d+%?";
var Bn = "(?:".concat(oE, ")|(?:").concat(iE, ")");
var Dl = "[\\s|\\(]+(".concat(Bn, ")[,|\\s]+(").concat(Bn, ")[,|\\s]+(").concat(Bn, ")\\s*\\)?");
var Pl = "[\\s|\\(]+(".concat(Bn, ")[,|\\s]+(").concat(Bn, ")[,|\\s]+(").concat(Bn, ")[,|\\s]+(").concat(Bn, ")\\s*\\)?");
var Ar = {
CSS_UNIT: new RegExp(Bn),
rgb: new RegExp("rgb" + Dl),
rgba: new RegExp("rgba" + Pl),
hsl: new RegExp("hsl" + Dl),
hsla: new RegExp("hsla" + Pl),
hsv: new RegExp("hsv" + Dl),
hsva: new RegExp("hsva" + Pl),
hex3: /^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,
hex6: /^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/,
hex4: /^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,
hex8: /^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/
};
function sE(t20) {
if (t20 = t20.trim().toLowerCase(), t20.length === 0)
return false;
var e = false;
if (nu[t20])
t20 = nu[t20], e = true;
else if (t20 === "transparent")
return { r: 0, g: 0, b: 0, a: 0, format: "name" };
var r = Ar.rgb.exec(t20);
return r ? { r: r[1], g: r[2], b: r[3] } : (r = Ar.rgba.exec(t20), r ? { r: r[1], g: r[2], b: r[3], a: r[4] } : (r = Ar.hsl.exec(t20), r ? { h: r[1], s: r[2], l: r[3] } : (r = Ar.hsla.exec(t20), r ? { h: r[1], s: r[2], l: r[3], a: r[4] } : (r = Ar.hsv.exec(t20), r ? { h: r[1], s: r[2], v: r[3] } : (r = Ar.hsva.exec(t20), r ? { h: r[1], s: r[2], v: r[3], a: r[4] } : (r = Ar.hex8.exec(t20), r ? {
r: mr(r[1]),
g: mr(r[2]),
b: mr(r[3]),
a: Hd(r[4]),
format: e ? "name" : "hex8"
} : (r = Ar.hex6.exec(t20), r ? {
r: mr(r[1]),
g: mr(r[2]),
b: mr(r[3]),
format: e ? "name" : "hex"
} : (r = Ar.hex4.exec(t20), r ? {
r: mr(r[1] + r[1]),
g: mr(r[2] + r[2]),
b: mr(r[3] + r[3]),
a: Hd(r[4] + r[4]),
format: e ? "name" : "hex8"
} : (r = Ar.hex3.exec(t20), r ? {
r: mr(r[1] + r[1]),
g: mr(r[2] + r[2]),
b: mr(r[3] + r[3]),
format: e ? "name" : "hex"
} : false)))))))));
}
function ln(t20) {
return !!Ar.CSS_UNIT.exec(String(t20));
}
var lE = (
/** @class */
function() {
function t20(e, r) {
e === void 0 && (e = ""), r === void 0 && (r = {});
var n;
if (e instanceof t20)
return e;
typeof e == "number" && (e = nE(e)), this.originalInput = e;
var a = aE(e);
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;
}
return t20.prototype.isDark = function() {
return this.getBrightness() < 128;
}, t20.prototype.isLight = function() {
return !this.isDark();
}, t20.prototype.getBrightness = function() {
var e = this.toRgb();
return (e.r * 299 + e.g * 587 + e.b * 114) / 1e3;
}, t20.prototype.getLuminance = function() {
var e = this.toRgb(), r, n, a, i = e.r / 255, o = e.g / 255, s = e.b / 255;
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;
}, t20.prototype.getAlpha = function() {
return this.a;
}, t20.prototype.setAlpha = function(e) {
return this.a = kh(e), this.roundA = Math.round(100 * this.a) / 100, this;
}, t20.prototype.isMonochrome = function() {
var e = this.toHsl().s;
return e === 0;
}, t20.prototype.toHsv = function() {
var e = zd(this.r, this.g, this.b);
return { h: e.h * 360, s: e.s, v: e.v, a: this.a };
}, t20.prototype.toHsvString = function() {
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.v * 100);
return this.a === 1 ? "hsv(".concat(r, ", ").concat(n, "%, ").concat(a, "%)") : "hsva(".concat(r, ", ").concat(n, "%, ").concat(a, "%, ").concat(this.roundA, ")");
}, t20.prototype.toHsl = function() {
var e = Rd(this.r, this.g, this.b);
return { h: e.h * 360, s: e.s, l: e.l, a: this.a };
}, t20.prototype.toHslString = function() {
var e = Rd(this.r, this.g, this.b), r = Math.round(e.h * 360), n = Math.round(e.s * 100), a = Math.round(e.l * 100);
return this.a === 1 ? "hsl(".concat(r, ", ").concat(n, "%, ").concat(a, "%)") : "hsla(".concat(r, ", ").concat(n, "%, ").concat(a, "%, ").concat(this.roundA, ")");
}, t20.prototype.toHex = function(e) {
return e === void 0 && (e = false), Vd(this.r, this.g, this.b, e);
}, t20.prototype.toHexString = function(e) {
return e === void 0 && (e = false), "#" + this.toHex(e);
}, t20.prototype.toHex8 = function(e) {
return e === void 0 && (e = false), tE(this.r, this.g, this.b, this.a, e);
}, t20.prototype.toHex8String = function(e) {
return e === void 0 && (e = false), "#" + this.toHex8(e);
}, t20.prototype.toHexShortString = function(e) {
return e === void 0 && (e = false), this.a === 1 ? this.toHexString(e) : this.toHex8String(e);
}, t20.prototype.toRgb = function() {
return {
r: Math.round(this.r),
g: Math.round(this.g),
b: Math.round(this.b),
a: this.a
};
}, t20.prototype.toRgbString = function() {
var e = Math.round(this.r), r = Math.round(this.g), n = Math.round(this.b);
return this.a === 1 ? "rgb(".concat(e, ", ").concat(r, ", ").concat(n, ")") : "rgba(".concat(e, ", ").concat(r, ", ").concat(n, ", ").concat(this.roundA, ")");
}, t20.prototype.toPercentageRgb = function() {
var e = function(r) {
return "".concat(Math.round(Kt(r, 255) * 100), "%");
};
return {
r: e(this.r),
g: e(this.g),
b: e(this.b),
a: this.a
};
}, t20.prototype.toPercentageRgbString = function() {
var e = function(r) {
return Math.round(Kt(r, 255) * 100);
};
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, ")");
}, t20.prototype.toName = function() {
if (this.a === 0)
return "transparent";
if (this.a < 1)
return false;
for (var e = "#" + Vd(this.r, this.g, this.b, false), r = 0, n = Object.entries(nu); r < n.length; r++) {
var a = n[r], i = a[0], o = a[1];
if (e === o)
return i;
}
return false;
}, t20.prototype.toString = function(e) {
var r = !!e;
e = e ?? this.format;
var n = false, a = this.a < 1 && this.a >= 0, i = !r && a && (e.startsWith("hex") || e === "name");
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(true)), e === "hex4" && (n = this.toHex8String(true)), e === "hex8" && (n = this.toHex8String()), e === "name" && (n = this.toName()), e === "hsl" && (n = this.toHslString()), e === "hsv" && (n = this.toHsvString()), n || this.toHexString());
}, t20.prototype.toNumber = function() {
return (Math.round(this.r) << 16) + (Math.round(this.g) << 8) + Math.round(this.b);
}, t20.prototype.clone = function() {
return new t20(this.toString());
}, t20.prototype.lighten = function(e) {
e === void 0 && (e = 10);
var r = this.toHsl();
return r.l += e / 100, r.l = Ho(r.l), new t20(r);
}, t20.prototype.brighten = function(e) {
e === void 0 && (e = 10);
var r = this.toRgb();
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 t20(r);
}, t20.prototype.darken = function(e) {
e === void 0 && (e = 10);
var r = this.toHsl();
return r.l -= e / 100, r.l = Ho(r.l), new t20(r);
}, t20.prototype.tint = function(e) {
return e === void 0 && (e = 10), this.mix("white", e);
}, t20.prototype.shade = function(e) {
return e === void 0 && (e = 10), this.mix("black", e);
}, t20.prototype.desaturate = function(e) {
e === void 0 && (e = 10);
var r = this.toHsl();
return r.s -= e / 100, r.s = Ho(r.s), new t20(r);
}, t20.prototype.saturate = function(e) {
e === void 0 && (e = 10);
var r = this.toHsl();
return r.s += e / 100, r.s = Ho(r.s), new t20(r);
}, t20.prototype.greyscale = function() {
return this.desaturate(100);
}, t20.prototype.spin = function(e) {
var r = this.toHsl(), n = (r.h + e) % 360;
return r.h = n < 0 ? 360 + n : n, new t20(r);
}, t20.prototype.mix = function(e, r) {
r === void 0 && (r = 50);
var n = this.toRgb(), a = new t20(e).toRgb(), i = r / 100, o = {
r: (a.r - n.r) * i + n.r,
g: (a.g - n.g) * i + n.g,
b: (a.b - n.b) * i + n.b,
a: (a.a - n.a) * i + n.a
};
return new t20(o);
}, t20.prototype.analogous = function(e, r) {
e === void 0 && (e = 6), r === void 0 && (r = 30);
var n = this.toHsl(), a = 360 / r, i = [this];
for (n.h = (n.h - (a * e >> 1) + 720) % 360; --e; )
n.h = (n.h + a) % 360, i.push(new t20(n));
return i;
}, t20.prototype.complement = function() {
var e = this.toHsl();
return e.h = (e.h + 180) % 360, new t20(e);
}, t20.prototype.monochromatic = function(e) {
e === void 0 && (e = 6);
for (var r = this.toHsv(), n = r.h, a = r.s, i = r.v, o = [], s = 1 / e; e--; )
o.push(new t20({ h: n, s: a, v: i })), i = (i + s) % 1;
return o;
}, t20.prototype.splitcomplement = function() {
var e = this.toHsl(), r = e.h;
return [
this,
new t20({ h: (r + 72) % 360, s: e.s, l: e.l }),
new t20({ h: (r + 216) % 360, s: e.s, l: e.l })
];
}, t20.prototype.onBackground = function(e) {
var r = this.toRgb(), n = new t20(e).toRgb(), a = r.a + n.a * (1 - r.a);
return new t20({
r: (r.r * r.a + n.r * n.a * (1 - r.a)) / a,
g: (r.g * r.a + n.g * n.a * (1 - r.a)) / a,
b: (r.b * r.a + n.b * n.a * (1 - r.a)) / a,
a
});
}, t20.prototype.triad = function() {
return this.polyad(3);
}, t20.prototype.tetrad = function() {
return this.polyad(4);
}, t20.prototype.polyad = function(e) {
for (var r = this.toHsl(), n = r.h, a = [this], i = 360 / e, o = 1; o < e; o++)
a.push(new t20({ h: (n + o * i) % 360, s: r.s, l: r.l }));
return a;
}, t20.prototype.equals = function(e) {
return this.toRgbString() === new t20(e).toRgbString();
}, t20;
}()
);
function _n(t20, e = 20) {
return t20.mix("#141414", e).toString();
}
function uE(t20) {
const e = xo(), r = He("button");
return computed(() => {
let n = {}, a = t20.color;
if (a) {
const i = a.match(/var\((.*?)\)/);
i && (a = window.getComputedStyle(window.document.documentElement).getPropertyValue(i[1]));
const o = new lE(a), s = t20.dark ? o.tint(20).toString() : _n(o, 20);
if (t20.plain)
n = r.cssVarBlock({
"bg-color": t20.dark ? _n(o, 90) : o.tint(90).toString(),
"text-color": a,
"border-color": t20.dark ? _n(o, 50) : o.tint(50).toString(),
"hover-text-color": `var(${r.cssVarName("color-white")})`,
"hover-bg-color": a,
"hover-border-color": a,
"active-bg-color": s,
"active-text-color": `var(${r.cssVarName("color-white")})`,
"active-border-color": s
}), e.value && (n[r.cssVarBlockName("disabled-bg-color")] = t20.dark ? _n(o, 90) : o.tint(90).toString(), n[r.cssVarBlockName("disabled-text-color")] = t20.dark ? _n(o, 50) : o.tint(50).toString(), n[r.cssVarBlockName("disabled-border-color")] = t20.dark ? _n(o, 80) : o.tint(80).toString());
else {
const u = t20.dark ? _n(o, 30) : o.tint(30).toString(), l = o.isDark() ? `var(${r.cssVarName("color-white")})` : `var(${r.cssVarName("color-black")})`;
if (n = r.cssVarBlock({
"bg-color": a,
"text-color": l,
"border-color": a,
"hover-bg-color": u,
"hover-text-color": l,
"hover-border-color": u,
"active-bg-color": s,
"active-border-color": s
}), e.value) {
const c = t20.dark ? _n(o, 50) : o.tint(50).toString();
n[r.cssVarBlockName("disabled-bg-color")] = c, n[r.cssVarBlockName("disabled-text-color")] = t20.dark ? "rgba(255, 255, 255, 0.5)" : `var(${r.cssVarName("color-white")})`, n[r.cssVarBlockName("disabled-border-color")] = c;
}
}
}
return n;
});
}
var cE = defineComponent({
name: "ElButton"
});
var dE = defineComponent({
...cE,
props: ru,
emits: ZC,
setup(t20, { expose: e, emit: r }) {
const n = t20, a = uE(n), i = He("button"), { _ref: o, _size: s, _type: u, _disabled: l, _props: c, shouldAddSpace: d, handleClick: v } = GC(n, r), h6 = computed(() => [
i.b(),
i.m(u.value),
i.m(s.value),
i.is("disabled", l.value),
i.is("loading", n.loading),
i.is("plain", n.plain),
i.is("round", n.round),
i.is("circle", n.circle),
i.is("text", n.text),
i.is("link", n.link),
i.is("has-bg", n.bg)
]);
return e({
ref: o,
size: s,
type: u,
disabled: l,
shouldAddSpace: d
}), (f, p) => (openBlock(), createBlock(resolveDynamicComponent(f.tag), mergeProps({
ref_key: "_ref",
ref: o
}, unref(c), {
class: unref(h6),
style: unref(a),
onClick: unref(v)
}), {
default: withCtx(() => [
f.loading ? (openBlock(), createElementBlock(Fragment, { key: 0 }, [
f.$slots.loading ? renderSlot(f.$slots, "loading", { key: 0 }) : (openBlock(), createBlock(unref(Vt), {
key: 1,
class: normalizeClass(unref(i).is("loading"))
}, {
default: withCtx(() => [
(openBlock(), createBlock(resolveDynamicComponent(f.loadingIcon)))
]),
_: 1
}, 8, ["class"]))
], 64)) : f.icon || f.$slots.icon ? (openBlock(), createBlock(unref(Vt), { key: 1 }, {
default: withCtx(() => [
f.icon ? (openBlock(), createBlock(resolveDynamicComponent(f.icon), { key: 0 })) : renderSlot(f.$slots, "icon", { key: 1 })
]),
_: 3
})) : createCommentVNode("v-if", true),
f.$slots.default ? (openBlock(), createElementBlock("span", {
key: 2,
class: normalizeClass({ [unref(i).em("text", "expand")]: unref(d) })
}, [
renderSlot(f.$slots, "default")
], 2)) : createCommentVNode("v-if", true)
]),
_: 3
}, 16, ["class", "style", "onClick"]));
}
});
var fE = ze(dE, [["__file", "button.vue"]]);
var vE = {
size: ru.size,
type: ru.type
};
var hE = defineComponent({
name: "ElButtonGroup"
});
var pE = defineComponent({
...hE,
props: vE,
setup(t20) {
const e = t20;
provide(Eh, reactive({
size: toRef(e, "size"),
type: toRef(e, "type")
}));
const r = He("button");
return (n, a) => (openBlock(), createElementBlock("div", {
class: normalizeClass(unref(r).b("group"))
}, [
renderSlot(n.$slots, "default")
], 2));
}
});
var Sh = ze(pE, [["__file", "button-group.vue"]]);
var Hr = $t(fE, {
ButtonGroup: Sh
});
var gE = xn(Sh);
var Ln = /* @__PURE__ */ new Map();
if (_t) {
let t20;
document.addEventListener("mousedown", (e) => t20 = e), document.addEventListener("mouseup", (e) => {
if (t20) {
for (const r of Ln.values())
for (const { documentHandler: n } of r)
n(e, t20);
t20 = void 0;
}
});
}
function qd(t20, e) {
let r = [];
return Array.isArray(e.arg) ? r = e.arg : ua(e.arg) && r.push(e.arg), function(n, a) {
const i = e.instance.popperRef, o = n.target, s = a == null ? void 0 : a.target, u = !e || !e.instance, l = !o || !s, c = t20.contains(o) || t20.contains(s), d = t20 === o, v = r.length && r.some((f) => f == null ? void 0 : f.contains(o)) || r.length && r.includes(s), h6 = i && (i.contains(o) || i.contains(s));
u || l || c || d || v || h6 || e.value(n, a);
};
}
var Th = {
beforeMount(t20, e) {
Ln.has(t20) || Ln.set(t20, []), Ln.get(t20).push({
documentHandler: qd(t20, e),
bindingFn: e.value
});
},
updated(t20, e) {
Ln.has(t20) || Ln.set(t20, []);
const r = Ln.get(t20), n = r.findIndex((i) => i.bindingFn === e.oldValue), a = {
documentHandler: qd(t20, e),
bindingFn: e.value
};
n >= 0 ? r.splice(n, 1, a) : r.push(a);
},
unmounted(t20) {
Ln.delete(t20);
}
};
var mE = rt({
header: {
type: String,
default: ""
},
footer: {
type: String,
default: ""
},
bodyStyle: {
type: $e([String, Object, Array]),
default: ""
},
bodyClass: String,
shadow: {
type: String,
values: ["always", "hover", "never"],
default: "always"
}
});
var yE = defineComponent({
name: "ElCard"
});
var bE = defineComponent({
...yE,
props: mE,
setup(t20) {
const e = He("card");
return (r, n) => (openBlock(), createElementBlock("div", {
class: normalizeClass([unref(e).b(), unref(e).is(`${r.shadow}-shadow`)])
}, [
r.$slots.header || r.header ? (openBlock(), createElementBlock("div", {
key: 0,
class: normalizeClass(unref(e).e("header"))
}, [
renderSlot(r.$slots, "header", {}, () => [
createTextVNode(toDisplayString(r.header), 1)
])
], 2)) : createCommentVNode("v-if", true),
createBaseVNode("div", {
class: normalizeClass([unref(e).e("body"), r.bodyClass]),
style: normalizeStyle(r.bodyStyle)
}, [
renderSlot(r.$slots, "default")
], 6),
r.$slots.footer || r.footer ? (openBlock(), createElementBlock("div", {
key: 1,
class: normalizeClass(unref(e).e("footer"))
}, [
renderSlot(r.$slots, "footer", {}, () => [
createTextVNode(toDisplayString(r.footer), 1)
])
], 2)) : createCommentVNode("v-if", true)
], 2));
}
});
var wE = ze(bE, [["__file", "card.vue"]]);
var xE = $t(wE);
var _h = {
modelValue: {
type: [Number, String, Boolean],
default: void 0
},
label: {
type: [String, Boolean, Number, Object],
default: void 0
},
value: {
type: [String, Boolean, Number, Object],
default: void 0
},
indeterminate: Boolean,
disabled: Boolean,
checked: Boolean,
name: {
type: String,
default: void 0
},
trueValue: {
type: [String, Number],
default: void 0
},
falseValue: {
type: [String, Number],
default: void 0
},
trueLabel: {
type: [String, Number],
default: void 0
},
falseLabel: {
type: [String, Number],
default: void 0
},
id: {
type: String,
default: void 0
},
border: Boolean,
size: di,
tabindex: [String, Number],
validateEvent: {
type: Boolean,
default: true
},
...Zn(["ariaControls"])
};
var Dh = {
[zt]: (t20) => tr(t20) || qt(t20) || Qa(t20),
change: (t20) => tr(t20) || qt(t20) || Qa(t20)
};
var fi = Symbol("checkboxGroupContextKey");
var CE = ({
model: t20,
isChecked: e
}) => {
const r = inject(fi, void 0), n = computed(() => {
var i, o;
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;
return !Mn(s) && t20.value.length >= s && !e.value || !Mn(u) && t20.value.length <= u && e.value;
});
return {
isDisabled: xo(computed(() => (r == null ? void 0 : r.disabled.value) || n.value)),
isLimitDisabled: n
};
};
var EE = (t20, {
model: e,
isLimitExceeded: r,
hasOwnLabel: n,
isDisabled: a,
isLabeledByFormItem: i
}) => {
const o = inject(fi, void 0), { formItem: s } = Ta(), { emit: u } = getCurrentInstance();
function l(f) {
var p, m, g, y;
return [true, t20.trueValue, t20.trueLabel].includes(f) ? (m = (p = t20.trueValue) != null ? p : t20.trueLabel) != null ? m : true : (y = (g = t20.falseValue) != null ? g : t20.falseLabel) != null ? y : false;
}
function c(f, p) {
u("change", l(f), p);
}
function d(f) {
if (r.value)
return;
const p = f.target;
u("change", l(p.checked), f);
}
async function v(f) {
r.value || !n.value && !a.value && i.value && (f.composedPath().some((g) => g.tagName === "LABEL") || (e.value = l([false, t20.falseValue, t20.falseLabel].includes(e.value)), await nextTick(), c(e.value, f)));
}
const h6 = computed(() => (o == null ? void 0 : o.validateEvent) || t20.validateEvent);
return watch(() => t20.modelValue, () => {
h6.value && (s == null || s.validate("change").catch((f) => Dt(f)));
}), {
handleChange: d,
onClickRoot: v
};
};
var kE = (t20) => {
const e = ref(false), { emit: r } = getCurrentInstance(), n = inject(fi, void 0), a = computed(() => Mn(n) === false), i = ref(false), o = computed({
get() {
var s, u;
return a.value ? (s = n == null ? void 0 : n.modelValue) == null ? void 0 : s.value : (u = t20.modelValue) != null ? u : e.value;
},
set(s) {
var u, l;
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 === false && ((l = n == null ? void 0 : n.changeEvent) == null || l.call(n, s))) : (r(zt, s), e.value = s);
}
});
return {
model: o,
isGroup: a,
isLimitExceeded: i
};
};
var SE = (t20, e, { model: r }) => {
const n = inject(fi, void 0), a = ref(false), i = computed(() => ks(t20.value) ? t20.label : t20.value), o = computed(() => {
const c = r.value;
return Qa(c) ? c : fr(c) ? Ht(i.value) ? c.map(toRaw).some((d) => Es(d, i.value)) : c.map(toRaw).includes(i.value) : c != null ? c === t20.trueValue || c === t20.trueLabel : !!c;
}), s = pa(computed(() => {
var c;
return (c = n == null ? void 0 : n.size) == null ? void 0 : c.value;
}), {
prop: true
}), u = pa(computed(() => {
var c;
return (c = n == null ? void 0 : n.size) == null ? void 0 : c.value;
})), l = computed(() => !!e.default || !ks(i.value));
return {
checkboxButtonSize: s,
isChecked: o,
isFocused: a,
checkboxSize: u,
hasOwnLabel: l,
actualValue: i
};
};
var Ph = (t20, e) => {
const { formItem: r } = Ta(), { model: n, isGroup: a, isLimitExceeded: i } = kE(t20), {
isFocused: o,
isChecked: s,
checkboxButtonSize: u,
checkboxSize: l,
hasOwnLabel: c,
actualValue: d
} = SE(t20, e, { model: n }), { isDisabled: v } = CE({ model: n, isChecked: s }), { inputId: h6, isLabeledByFormItem: f } = Co(t20, {
formItemContext: r,
disableIdGeneration: c,
disableIdManagement: a
}), { handleChange: p, onClickRoot: m } = EE(t20, {
model: n,
isLimitExceeded: i,
hasOwnLabel: c,
isDisabled: v,
isLabeledByFormItem: f
});
return (() => {
function y() {
var b, w;
fr(n.value) && !n.value.includes(d.value) ? n.value.push(d.value) : n.value = (w = (b = t20.trueValue) != null ? b : t20.trueLabel) != null ? w : true;
}
t20.checked && y();
})(), as({
from: "label act as value",
replacement: "value",
version: "3.0.0",
scope: "el-checkbox",
ref: "https://element-plus.org/en-US/component/checkbox.html"
}, computed(() => a.value && ks(t20.value))), as({
from: "true-label",
replacement: "true-value",
version: "3.0.0",
scope: "el-checkbox",
ref: "https://element-plus.org/en-US/component/checkbox.html"
}, computed(() => !!t20.trueLabel)), as({
from: "false-label",
replacement: "false-value",
version: "3.0.0",
scope: "el-checkbox",
ref: "https://element-plus.org/en-US/component/checkbox.html"
}, computed(() => !!t20.falseLabel)), {
inputId: h6,
isLabeledByFormItem: f,
isChecked: s,
isDisabled: v,
isFocused: o,
checkboxButtonSize: u,
checkboxSize: l,
hasOwnLabel: c,
model: n,
actualValue: d,
handleChange: p,
onClickRoot: m
};
};
var TE = defineComponent({
name: "ElCheckbox"
});
var _E = defineComponent({
...TE,
props: _h,
emits: Dh,
setup(t20) {
const e = t20, r = useSlots(), {
inputId: n,
isLabeledByFormItem: a,
isChecked: i,
isDisabled: o,
isFocused: s,
checkboxSize: u,
hasOwnLabel: l,
model: c,
actualValue: d,
handleChange: v,
onClickRoot: h6
} = Ph(e, r), f = He("checkbox"), p = computed(() => [
f.b(),
f.m(u.value),
f.is("disabled", o.value),
f.is("bordered", e.border),
f.is("checked", i.value)
]), m = computed(() => [
f.e("input"),
f.is("disabled", o.value),
f.is("checked", i.value),
f.is("indeterminate", e.indeterminate),
f.is("focus", s.value)
]);
return (g, y) => (openBlock(), createBlock(resolveDynamicComponent(!unref(l) && unref(a) ? "span" : "label"), {
class: normalizeClass(unref(p)),
"aria-controls": g.indeterminate ? g.ariaControls : null,
onClick: unref(h6)
}, {
default: withCtx(() => {
var b, w, C, E;
return [
createBaseVNode("span", {
class: normalizeClass(unref(m))
}, [
g.trueValue || g.falseValue || g.trueLabel || g.falseLabel ? withDirectives((openBlock(), createElementBlock("input", {
key: 0,
id: unref(n),
"onUpdate:modelValue": (x) => isRef(c) ? c.value = x : null,
class: normalizeClass(unref(f).e("original")),
type: "checkbox",
indeterminate: g.indeterminate,
name: g.name,
tabindex: g.tabindex,
disabled: unref(o),
"true-value": (w = (b = g.trueValue) != null ? b : g.trueLabel) != null ? w : true,
"false-value": (E = (C = g.falseValue) != null ? C : g.falseLabel) != null ? E : false,
onChange: unref(v),
onFocus: (x) => s.value = true,
onBlur: (x) => s.value = false,
onClick: withModifiers(() => {
}, ["stop"])
}, null, 42, ["id", "onUpdate:modelValue", "indeterminate", "name", "tabindex", "disabled", "true-value", "false-value", "onChange", "onFocus", "onBlur", "onClick"])), [
[vModelCheckbox, unref(c)]
]) : withDirectives((openBlock(), createElementBlock("input", {
key: 1,
id: unref(n),
"onUpdate:modelValue": (x) => isRef(c) ? c.value = x : null,
class: normalizeClass(unref(f).e("original")),
type: "checkbox",
indeterminate: g.indeterminate,
disabled: unref(o),
value: unref(d),
name: g.name,
tabindex: g.tabindex,
onChange: unref(v),
onFocus: (x) => s.value = true,
onBlur: (x) => s.value = false,
onClick: withModifiers(() => {
}, ["stop"])
}, null, 42, ["id", "onUpdate:modelValue", "indeterminate", "disabled", "value", "name", "tabindex", "onChange", "onFocus", "onBlur", "onClick"])), [
[vModelCheckbox, unref(c)]
]),
createBaseVNode("span", {
class: normalizeClass(unref(f).e("inner"))
}, null, 2)
], 2),
unref(l) ? (openBlock(), createElementBlock("span", {
key: 0,
class: normalizeClass(unref(f).e("label"))
}, [
renderSlot(g.$slots, "default"),
g.$slots.default ? createCommentVNode("v-if", true) : (openBlock(), createElementBlock(Fragment, { key: 0 }, [
createTextVNode(toDisplayString(g.label), 1)
], 64))
], 2)) : createCommentVNode("v-if", true)
];
}),
_: 3
}, 8, ["class", "aria-controls", "onClick"]));
}
});
var DE = ze(_E, [["__file", "checkbox.vue"]]);
var PE = defineComponent({
name: "ElCheckboxButton"
});
var OE = defineComponent({
...PE,
props: _h,
emits: Dh,
setup(t20) {
const e = t20, r = useSlots(), {
isFocused: n,
isChecked: a,
isDisabled: i,
checkboxButtonSize: o,
model: s,
actualValue: u,
handleChange: l
} = Ph(e, r), c = inject(fi, void 0), d = He("checkbox"), v = computed(() => {
var f, p, m, g;
const y = (p = (f = c == null ? void 0 : c.fill) == null ? void 0 : f.value) != null ? p : "";
return {
backgroundColor: y,
borderColor: y,
color: (g = (m = c == null ? void 0 : c.textColor) == null ? void 0 : m.value) != null ? g : "",
boxShadow: y ? `-1px 0 0 0 ${y}` : void 0
};
}), h6 = computed(() => [
d.b("button"),
d.bm("button", o.value),
d.is("disabled", i.value),
d.is("checked", a.value),
d.is("focus", n.value)
]);
return (f, p) => {
var m, g, y, b;
return openBlock(), createElementBlock("label", {
class: normalizeClass(unref(h6))
}, [
f.trueValue || f.falseValue || f.trueLabel || f.falseLabel ? withDirectives((openBlock(), createElementBlock("input", {
key: 0,
"onUpdate:modelValue": (w) => isRef(s) ? s.value = w : null,
class: normalizeClass(unref(d).be("button", "original")),
type: "checkbox",
name: f.name,
tabindex: f.tabindex,
disabled: unref(i),
"true-value": (g = (m = f.trueValue) != null ? m : f.trueLabel) != null ? g : true,
"false-value": (b = (y = f.falseValue) != null ? y : f.falseLabel) != null ? b : false,
onChange: unref(l),
onFocus: (w) => n.value = true,
onBlur: (w) => n.value = false,
onClick: withModifiers(() => {
}, ["stop"])
}, null, 42, ["onUpdate:modelValue", "name", "tabindex", "disabled", "true-value", "false-value", "onChange", "onFocus", "onBlur", "onClick"])), [
[vModelCheckbox, unref(s)]
]) : withDirectives((openBlock(), createElementBlock("input", {
key: 1,
"onUpdate:modelValue": (w) => isRef(s) ? s.value = w : null,
class: normalizeClass(unref(d).be("button", "original")),
type: "checkbox",
name: f.name,
tabindex: f.tabindex,
disabled: unref(i),
value: unref(u),
onChange: unref(l),
onFocus: (w) => n.value = true,
onBlur: (w) => n.value = false,
onClick: withModifiers(() => {
}, ["stop"])
}, null, 42, ["onUpdate:modelValue", "name", "tabindex", "disabled", "value", "onChange", "onFocus", "onBlur", "onClick"])), [
[vModelCheckbox, unref(s)]
]),
f.$slots.default || f.label ? (openBlock(), createElementBlock("span", {
key: 2,
class: normalizeClass(unref(d).be("button", "inner")),
style: normalizeStyle(unref(a) ? unref(v) : void 0)
}, [
renderSlot(f.$slots, "default", {}, () => [
createTextVNode(toDisplayString(f.label), 1)
])
], 6)) : createCommentVNode("v-if", true)
], 2);
};
}
});
var Oh = ze(OE, [["__file", "checkbox-button.vue"]]);
var LE = rt({
modelValue: {
type: $e(Array),
default: () => []
},
disabled: Boolean,
min: Number,
max: Number,
size: di,
fill: String,
textColor: String,
tag: {
type: String,
default: "div"
},
validateEvent: {
type: Boolean,
default: true
},
...Zn(["ariaLabel"])
});
var FE = {
[zt]: (t20) => fr(t20),
change: (t20) => fr(t20)
};
var IE = defineComponent({
name: "ElCheckboxGroup"
});
var AE = defineComponent({
...IE,
props: LE,
emits: FE,
setup(t20, { emit: e }) {
const r = t20, n = He("checkbox"), { formItem: a } = Ta(), { inputId: i, isLabeledByFormItem: o } = Co(r, {
formItemContext: a
}), s = async (l) => {
e(zt, l), await nextTick(), e("change", l);
}, u = computed({
get() {
return r.modelValue;
},
set(l) {
s(l);
}
});
return provide(fi, {
...Rv(toRefs(r), [
"size",
"min",
"max",
"disabled",
"validateEvent",
"fill",
"textColor"
]),
modelValue: u,
changeEvent: s
}), watch(() => r.modelValue, () => {
r.validateEvent && (a == null || a.validate("change").catch((l) => Dt(l)));
}), (l, c) => {
var d;
return openBlock(), createBlock(resolveDynamicComponent(l.tag), {
id: unref(i),
class: normalizeClass(unref(n).b("group")),
role: "group",
"aria-label": unref(o) ? void 0 : l.ariaLabel || "checkbox-group",
"aria-labelledby": unref(o) ? (d = unref(a)) == null ? void 0 : d.labelId : void 0
}, {
default: withCtx(() => [
renderSlot(l.$slots, "default")
]),
_: 3
}, 8, ["id", "class", "aria-label", "aria-labelledby"]);
};
}
});
var Lh = ze(AE, [["__file", "checkbox-group.vue"]]);
var ME = $t(DE, {
CheckboxButton: Oh,
CheckboxGroup: Lh
});
xn(Oh);
xn(Lh);
var au = rt({
type: {
type: String,
values: ["primary", "success", "info", "warning", "danger"],
default: "primary"
},
closable: Boolean,
disableTransitions: Boolean,
hit: Boolean,
color: String,
size: {
type: String,
values: Uv
},
effect: {
type: String,
values: ["dark", "light", "plain"],
default: "light"
},
round: Boolean
});
var BE = {
close: (t20) => t20 instanceof MouseEvent,
click: (t20) => t20 instanceof MouseEvent
};
var NE = defineComponent({
name: "ElTag"
});
var $E = defineComponent({
...NE,
props: au,
emits: BE,
setup(t20, { emit: e }) {
const r = t20, n = pa(), a = He("tag"), i = computed(() => {
const { type: l, hit: c, effect: d, closable: v, round: h6 } = r;
return [
a.b(),
a.is("closable", v),
a.m(l || "primary"),
a.m(n.value),
a.m(d),
a.is("hit", c),
a.is("round", h6)
];
}), o = (l) => {
e("close", l);
}, s = (l) => {
e("click", l);
}, u = (l) => {
l.component.subTree.component.bum = null;
};
return (l, c) => l.disableTransitions ? (openBlock(), createElementBlock("span", {
key: 0,
class: normalizeClass(unref(i)),
style: normalizeStyle({ backgroundColor: l.color }),
onClick: s
}, [
createBaseVNode("span", {
class: normalizeClass(unref(a).e("content"))
}, [
renderSlot(l.$slots, "default")
], 2),
l.closable ? (openBlock(), createBlock(unref(Vt), {
key: 0,
class: normalizeClass(unref(a).e("close")),
onClick: withModifiers(o, ["stop"])
}, {
default: withCtx(() => [
createVNode(unref(Ss))
]),
_: 1
}, 8, ["class", "onClick"])) : createCommentVNode("v-if", true)
], 6)) : (openBlock(), createBlock(Transition, {
key: 1,
name: `${unref(a).namespace.value}-zoom-in-center`,
appear: "",
onVnodeMounted: u
}, {
default: withCtx(() => [
createBaseVNode("span", {
class: normalizeClass(unref(i)),
style: normalizeStyle({ backgroundColor: l.color }),
onClick: s
}, [
createBaseVNode("span", {
class: normalizeClass(unref(a).e("content"))
}, [
renderSlot(l.$slots, "default")
], 2),
l.closable ? (openBlock(), createBlock(unref(Vt), {
key: 0,
class: normalizeClass(unref(a).e("close")),
onClick: withModifiers(o, ["stop"])
}, {
default: withCtx(() => [
createVNode(unref(Ss))
]),
_: 1
}, 8, ["class", "onClick"])) : createCommentVNode("v-if", true)
], 6)
]),
_: 3
}, 8, ["name"]));
}
});
var RE = ze($E, [["__file", "tag.vue"]]);
var zE = $t(RE);
var Fh = Symbol("rowContextKey");
var VE = [
"start",
"center",
"end",
"space-around",
"space-between",
"space-evenly"
];
var HE = ["top", "middle", "bottom"];
var qE = rt({
tag: {
type: String,
default: "div"
},
gutter: {
type: Number,
default: 0
},
justify: {
type: String,
values: VE,
default: "start"
},
align: {
type: String,
values: HE
}
});
var KE = defineComponent({
name: "ElRow"
});
var UE = defineComponent({
...KE,
props: qE,
setup(t20) {
const e = t20, r = He("row"), n = computed(() => e.gutter);
provide(Fh, {
gutter: n
});
const a = computed(() => {
const o = {};
return e.gutter && (o.marginRight = o.marginLeft = `-${e.gutter / 2}px`), o;
}), i = computed(() => [
r.b(),
r.is(`justify-${e.justify}`, e.justify !== "start"),
r.is(`align-${e.align}`, !!e.align)
]);
return (o, s) => (openBlock(), createBlock(resolveDynamicComponent(o.tag), {
class: normalizeClass(unref(i)),
style: normalizeStyle(unref(a))
}, {
default: withCtx(() => [
renderSlot(o.$slots, "default")
]),
_: 3
}, 8, ["class", "style"]));
}
});
var GE = ze(UE, [["__file", "row.vue"]]);
var Qs = $t(GE);
var WE = rt({
tag: {
type: String,
default: "div"
},
span: {
type: Number,
default: 24
},
offset: {
type: Number,
default: 0
},
pull: {
type: Number,
default: 0
},
push: {
type: Number,
default: 0
},
xs: {
type: $e([Number, Object]),
default: () => Ra({})
},
sm: {
type: $e([Number, Object]),
default: () => Ra({})
},
md: {
type: $e([Number, Object]),
default: () => Ra({})
},
lg: {
type: $e([Number, Object]),
default: () => Ra({})
},
xl: {
type: $e([Number, Object]),
default: () => Ra({})
}
});
var YE = defineComponent({
name: "ElCol"
});
var ZE = defineComponent({
...YE,
props: WE,
setup(t20) {
const e = t20, { gutter: r } = inject(Fh, { gutter: computed(() => 0) }), n = He("col"), a = computed(() => {
const o = {};
return r.value && (o.paddingLeft = o.paddingRight = `${r.value / 2}px`), o;
}), i = computed(() => {
const o = [];
return ["span", "offset", "pull", "push"].forEach((l) => {
const c = e[l];
qt(c) && (l === "span" ? o.push(n.b(`${e[l]}`)) : c > 0 && o.push(n.b(`${l}-${e[l]}`)));
}), ["xs", "sm", "md", "lg", "xl"].forEach((l) => {
qt(e[l]) ? o.push(n.b(`${l}-${e[l]}`)) : Ht(e[l]) && Object.entries(e[l]).forEach(([c, d]) => {
o.push(c !== "span" ? n.b(`${l}-${c}-${d}`) : n.b(`${l}-${d}`));
});
}), r.value && o.push(n.is("guttered")), [n.b(), o];
});
return (o, s) => (openBlock(), createBlock(resolveDynamicComponent(o.tag), {
class: normalizeClass(unref(i)),
style: normalizeStyle(unref(a))
}, {
default: withCtx(() => [
renderSlot(o.$slots, "default")
]),
_: 3
}, 8, ["class", "style"]));
}
});
var XE = ze(ZE, [["__file", "col.vue"]]);
var So = $t(XE);
var jE = defineComponent({
name: "ElCollapseTransition"
});
var QE = defineComponent({
...jE,
setup(t20) {
const e = He("collapse-transition"), r = (a) => {
a.style.maxHeight = "", a.style.overflow = a.dataset.oldOverflow, a.style.paddingTop = a.dataset.oldPaddingTop, a.style.paddingBottom = a.dataset.oldPaddingBottom;
}, n = {
beforeEnter(a) {
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;
},
enter(a) {
requestAnimationFrame(() => {
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";
});
},
afterEnter(a) {
a.style.maxHeight = "", a.style.overflow = a.dataset.oldOverflow;
},
enterCancelled(a) {
r(a);
},
beforeLeave(a) {
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";
},
leave(a) {
a.scrollHeight !== 0 && (a.style.maxHeight = 0, a.style.paddingTop = 0, a.style.paddingBottom = 0);
},
afterLeave(a) {
r(a);
},
leaveCancelled(a) {
r(a);
}
};
return (a, i) => (openBlock(), createBlock(Transition, mergeProps({
name: unref(e).b()
}, toHandlers(n)), {
default: withCtx(() => [
renderSlot(a.$slots, "default")
]),
_: 3
}, 16, ["name"]));
}
});
var JE = ze(QE, [["__file", "collapse-transition.vue"]]);
var ek = $t(JE);
var tk = rt({
color: {
type: $e(Object),
required: true
},
vertical: {
type: Boolean,
default: false
}
});
var Ol = false;
function eo(t20, e) {
if (!_t)
return;
const r = function(i) {
var o;
(o = e.drag) == null || o.call(e, i);
}, n = function(i) {
var o;
document.removeEventListener("mousemove", r), document.removeEventListener("mouseup", n), document.removeEventListener("touchmove", r), document.removeEventListener("touchend", n), document.onselectstart = null, document.ondragstart = null, Ol = false, (o = e.end) == null || o.call(e, i);
}, a = function(i) {
var o;
Ol || (i.preventDefault(), document.onselectstart = () => false, document.ondragstart = () => false, document.addEventListener("mousemove", r), document.addEventListener("mouseup", n), document.addEventListener("touchmove", r), document.addEventListener("touchend", n), Ol = true, (o = e.start) == null || o.call(e, i));
};
t20.addEventListener("mousedown", a), t20.addEventListener("touchstart", a, { passive: false });
}
var rk = (t20) => {
const e = getCurrentInstance(), { t: r } = yo(), n = shallowRef(), a = shallowRef(), i = computed(() => t20.color.get("alpha")), o = computed(() => r("el.colorpicker.alphaLabel"));
function s(d) {
var v;
d.target !== n.value && u(d), (v = n.value) == null || v.focus();
}
function u(d) {
if (!a.value || !n.value)
return;
const h6 = e.vnode.el.getBoundingClientRect(), { clientX: f, clientY: p } = Su(d);
if (t20.vertical) {
let m = p - h6.top;
m = Math.max(n.value.offsetHeight / 2, m), m = Math.min(m, h6.height - n.value.offsetHeight / 2), t20.color.set("alpha", Math.round((m - n.value.offsetHeight / 2) / (h6.height - n.value.offsetHeight) * 100));
} else {
let m = f - h6.left;
m = Math.max(n.value.offsetWidth / 2, m), m = Math.min(m, h6.width - n.value.offsetWidth / 2), t20.color.set("alpha", Math.round((m - n.value.offsetWidth / 2) / (h6.width - n.value.offsetWidth) * 100));
}
}
function l(d) {
const { code: v, shiftKey: h6 } = d, f = h6 ? 10 : 1;
switch (v) {
case Lt.left:
case Lt.down:
d.preventDefault(), d.stopPropagation(), c(-f);
break;
case Lt.right:
case Lt.up:
d.preventDefault(), d.stopPropagation(), c(f);
break;
}
}
function c(d) {
let v = i.value + d;
v = v < 0 ? 0 : v > 100 ? 100 : v, t20.color.set("alpha", v);
}
return {
thumb: n,
bar: a,
alpha: i,
alphaLabel: o,
handleDrag: u,
handleClick: s,
handleKeydown: l
};
};
var nk = (t20, {
bar: e,
thumb: r,
handleDrag: n
}) => {
const a = getCurrentInstance(), i = He("color-alpha-slider"), o = ref(0), s = ref(0), u = ref();
function l() {
if (!r.value || t20.vertical)
return 0;
const y = a.vnode.el, b = t20.color.get("alpha");
return y ? Math.round(b * (y.offsetWidth - r.value.offsetWidth / 2) / 100) : 0;
}
function c() {
if (!r.value)
return 0;
const y = a.vnode.el;
if (!t20.vertical)
return 0;
const b = t20.color.get("alpha");
return y ? Math.round(b * (y.offsetHeight - r.value.offsetHeight / 2) / 100) : 0;
}
function d() {
if (t20.color && t20.color.value) {
const { r: y, g: b, b: w } = t20.color.toRgb();
return `linear-gradient(to right, rgba(${y}, ${b}, ${w}, 0) 0%, rgba(${y}, ${b}, ${w}, 1) 100%)`;
}
return "";
}
function v() {
o.value = l(), s.value = c(), u.value = d();
}
onMounted(() => {
if (!e.value || !r.value)
return;
const y = {
drag: (b) => {
n(b);
},
end: (b) => {
n(b);
}
};
eo(e.value, y), eo(r.value, y), v();
}), watch(() => t20.color.get("alpha"), () => v()), watch(() => t20.color.value, () => v());
const h6 = computed(() => [i.b(), i.is("vertical", t20.vertical)]), f = computed(() => i.e("bar")), p = computed(() => i.e("thumb")), m = computed(() => ({ background: u.value })), g = computed(() => ({
left: Ja(o.value),
top: Ja(s.value)
}));
return { rootKls: h6, barKls: f, barStyle: m, thumbKls: p, thumbStyle: g, update: v };
};
var ak = "ElColorAlphaSlider";
var ik = defineComponent({
name: ak
});
var ok = defineComponent({
...ik,
props: tk,
setup(t20, { expose: e }) {
const r = t20, {
alpha: n,
alphaLabel: a,
bar: i,
thumb: o,
handleDrag: s,
handleClick: u,
handleKeydown: l
} = rk(r), { rootKls: c, barKls: d, barStyle: v, thumbKls: h6, thumbStyle: f, update: p } = nk(r, {
bar: i,
thumb: o,
handleDrag: s
});
return e({
update: p,
bar: i,
thumb: o
}), (m, g) => (openBlock(), createElementBlock("div", {
class: normalizeClass(unref(c))
}, [
createBaseVNode("div", {
ref_key: "bar",
ref: i,
class: normalizeClass(unref(d)),
style: normalizeStyle(unref(v)),
onClick: unref(u)
}, null, 14, ["onClick"]),
createBaseVNode("div", {
ref_key: "thumb",
ref: o,
class: normalizeClass(unref(h6)),
style: normalizeStyle(unref(f)),
"aria-label": unref(a),
"aria-valuenow": unref(n),
"aria-orientation": m.vertical ? "vertical" : "horizontal",
"aria-valuemin": "0",
"aria-valuemax": "100",
role: "slider",
tabindex: "0",
onKeydown: unref(l)
}, null, 46, ["aria-label", "aria-valuenow", "aria-orientation", "onKeydown"])
], 2));
}
});
var sk = ze(ok, [["__file", "alpha-slider.vue"]]);
var lk = defineComponent({
name: "ElColorHueSlider",
props: {
color: {
type: Object,
required: true
},
vertical: Boolean
},
setup(t20) {
const e = He("color-hue-slider"), r = getCurrentInstance(), n = ref(), a = ref(), i = ref(0), o = ref(0), s = computed(() => t20.color.get("hue"));
watch(() => s.value, () => {
v();
});
function u(h6) {
h6.target !== n.value && l(h6);
}
function l(h6) {
if (!a.value || !n.value)
return;
const p = r.vnode.el.getBoundingClientRect(), { clientX: m, clientY: g } = Su(h6);
let y;
if (t20.vertical) {
let b = g - p.top;
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);
} else {
let b = m - p.left;
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);
}
t20.color.set("hue", y);
}
function c() {
if (!n.value)
return 0;
const h6 = r.vnode.el;
if (t20.vertical)
return 0;
const f = t20.color.get("hue");
return h6 ? Math.round(f * (h6.offsetWidth - n.value.offsetWidth / 2) / 360) : 0;
}
function d() {
if (!n.value)
return 0;
const h6 = r.vnode.el;
if (!t20.vertical)
return 0;
const f = t20.color.get("hue");
return h6 ? Math.round(f * (h6.offsetHeight - n.value.offsetHeight / 2) / 360) : 0;
}
function v() {
i.value = c(), o.value = d();
}
return onMounted(() => {
if (!a.value || !n.value)
return;
const h6 = {
drag: (f) => {
l(f);
},
end: (f) => {
l(f);
}
};
eo(a.value, h6), eo(n.value, h6), v();
}), {
bar: a,
thumb: n,
thumbLeft: i,
thumbTop: o,
hueValue: s,
handleClick: u,
update: v,
ns: e
};
}
});
function uk(t20, e, r, n, a, i) {
return openBlock(), createElementBlock("div", {
class: normalizeClass([t20.ns.b(), t20.ns.is("vertical", t20.vertical)])
}, [
createBaseVNode("div", {
ref: "bar",
class: normalizeClass(t20.ns.e("bar")),
onClick: t20.handleClick
}, null, 10, ["onClick"]),
createBaseVNode("div", {
ref: "thumb",
class: normalizeClass(t20.ns.e("thumb")),
style: normalizeStyle({
left: t20.thumbLeft + "px",
top: t20.thumbTop + "px"
})
}, null, 6)
], 2);
}
var ck = ze(lk, [["render", uk], ["__file", "hue-slider.vue"]]);
var dk = rt({
modelValue: String,
id: String,
showAlpha: Boolean,
colorFormat: String,
disabled: Boolean,
size: di,
popperClass: {
type: String,
default: ""
},
tabindex: {
type: [String, Number],
default: 0
},
teleported: cr.teleported,
predefine: {
type: $e(Array)
},
validateEvent: {
type: Boolean,
default: true
},
...Zn(["ariaLabel"])
});
var fk = {
[zt]: (t20) => tr(t20) || $n(t20),
[Mu]: (t20) => tr(t20) || $n(t20),
activeChange: (t20) => tr(t20) || $n(t20),
focus: (t20) => t20 instanceof FocusEvent,
blur: (t20) => t20 instanceof FocusEvent
};
var Ih = Symbol("colorPickerContextKey");
var Kd = function(t20, e, r) {
return [
t20,
e * r / ((t20 = (2 - e) * r) < 1 ? t20 : 2 - t20) || 0,
t20 / 2
];
};
var vk = function(t20) {
return typeof t20 == "string" && t20.includes(".") && Number.parseFloat(t20) === 1;
};
var hk = function(t20) {
return typeof t20 == "string" && t20.includes("%");
};
var Ka = function(t20, e) {
vk(t20) && (t20 = "100%");
const r = hk(t20);
return t20 = Math.min(e, Math.max(0, Number.parseFloat(`${t20}`))), r && (t20 = Number.parseInt(`${t20 * e}`, 10) / 100), Math.abs(t20 - e) < 1e-6 ? 1 : t20 % e / Number.parseFloat(e);
};
var Ud = {
10: "A",
11: "B",
12: "C",
13: "D",
14: "E",
15: "F"
};
var ss = (t20) => {
t20 = Math.min(Math.round(t20), 255);
const e = Math.floor(t20 / 16), r = t20 % 16;
return `${Ud[e] || e}${Ud[r] || r}`;
};
var Gd = function({ r: t20, g: e, b: r }) {
return Number.isNaN(+t20) || Number.isNaN(+e) || Number.isNaN(+r) ? "" : `#${ss(t20)}${ss(e)}${ss(r)}`;
};
var Ll = {
A: 10,
B: 11,
C: 12,
D: 13,
E: 14,
F: 15
};
var Jn = function(t20) {
return t20.length === 2 ? (Ll[t20[0].toUpperCase()] || +t20[0]) * 16 + (Ll[t20[1].toUpperCase()] || +t20[1]) : Ll[t20[1].toUpperCase()] || +t20[1];
};
var pk = function(t20, e, r) {
e = e / 100, r = r / 100;
let n = e;
const a = Math.max(r, 0.01);
r *= 2, e *= r <= 1 ? r : 2 - r, n *= a <= 1 ? a : 2 - a;
const i = (r + e) / 2, o = r === 0 ? 2 * n / (a + n) : 2 * e / (r + e);
return {
h: t20,
s: o * 100,
v: i * 100
};
};
var Wd = (t20, e, r) => {
t20 = Ka(t20, 255), e = Ka(e, 255), r = Ka(r, 255);
const n = Math.max(t20, e, r), a = Math.min(t20, e, r);
let i;
const o = n, s = n - a, u = n === 0 ? 0 : s / n;
if (n === a)
i = 0;
else {
switch (n) {
case t20: {
i = (e - r) / s + (e < r ? 6 : 0);
break;
}
case e: {
i = (r - t20) / s + 2;
break;
}
case r: {
i = (t20 - e) / s + 4;
break;
}
}
i /= 6;
}
return { h: i * 360, s: u * 100, v: o * 100 };
};
var Di = function(t20, e, r) {
t20 = Ka(t20, 360) * 6, e = Ka(e, 100), r = Ka(r, 100);
const n = Math.floor(t20), a = t20 - 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];
return {
r: Math.round(l * 255),
g: Math.round(c * 255),
b: Math.round(d * 255)
};
};
var qi = class {
constructor(e = {}) {
this._hue = 0, this._saturation = 100, this._value = 100, this._alpha = 100, this.enableAlpha = false, this.format = "hex", this.value = "";
for (const r in e)
va(e, r) && (this[r] = e[r]);
e.value ? this.fromString(e.value) : this.doOnChange();
}
set(e, r) {
if (arguments.length === 1 && typeof e == "object") {
for (const n in e)
va(e, n) && this.set(n, e[n]);
return;
}
this[`_${e}`] = r, this.doOnChange();
}
get(e) {
return e === "alpha" ? Math.floor(this[`_${e}`]) : this[`_${e}`];
}
toRgb() {
return Di(this._hue, this._saturation, this._value);
}
fromString(e) {
if (!e) {
this._hue = 0, this._saturation = 100, this._value = 100, this.doOnChange();
return;
}
const r = (n, a, i) => {
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();
};
if (e.includes("hsl")) {
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));
if (n.length === 4 ? this._alpha = Number.parseFloat(n[3]) * 100 : n.length === 3 && (this._alpha = 100), n.length >= 3) {
const { h: a, s: i, v: o } = pk(n[0], n[1], n[2]);
r(a, i, o);
}
} else if (e.includes("hsv")) {
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.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]);
} else if (e.includes("rgb")) {
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));
if (n.length === 4 ? this._alpha = Number.parseFloat(n[3]) * 100 : n.length === 3 && (this._alpha = 100), n.length >= 3) {
const { h: a, s: i, v: o } = Wd(n[0], n[1], n[2]);
r(a, i, o);
}
} else if (e.includes("#")) {
const n = e.replace("#", "").trim();
if (!/^[0-9a-fA-F]{3}$|^[0-9a-fA-F]{6}$|^[0-9a-fA-F]{8}$/.test(n))
return;
let a, i, o;
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);
const { h: s, s: u, v: l } = Wd(a, i, o);
r(s, u, l);
}
}
compare(e) {
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;
}
doOnChange() {
const { _hue: e, _saturation: r, _value: n, _alpha: a, format: i } = this;
if (this.enableAlpha)
switch (i) {
case "hsl": {
const o = Kd(e, r / 100, n / 100);
this.value = `hsla(${e}, ${Math.round(o[1] * 100)}%, ${Math.round(o[2] * 100)}%, ${this.get("alpha") / 100})`;
break;
}
case "hsv": {
this.value = `hsva(${e}, ${Math.round(r)}%, ${Math.round(n)}%, ${this.get("alpha") / 100})`;
break;
}
case "hex": {
this.value = `${Gd(Di(e, r, n))}${ss(a * 255 / 100)}`;
break;
}
default: {
const { r: o, g: s, b: u } = Di(e, r, n);
this.value = `rgba(${o}, ${s}, ${u}, ${this.get("alpha") / 100})`;
}
}
else
switch (i) {
case "hsl": {
const o = Kd(e, r / 100, n / 100);
this.value = `hsl(${e}, ${Math.round(o[1] * 100)}%, ${Math.round(o[2] * 100)}%)`;
break;
}
case "hsv": {
this.value = `hsv(${e}, ${Math.round(r)}%, ${Math.round(n)}%)`;
break;
}
case "rgb": {
const { r: o, g: s, b: u } = Di(e, r, n);
this.value = `rgb(${o}, ${s}, ${u})`;
break;
}
default:
this.value = Gd(Di(e, r, n));
}
}
};
var gk = defineComponent({
props: {
colors: {
type: Array,
required: true
},
color: {
type: Object,
required: true
},
enableAlpha: {
type: Boolean,
required: true
}
},
setup(t20) {
const e = He("color-predefine"), { currentColor: r } = inject(Ih), n = ref(i(t20.colors, t20.color));
watch(() => r.value, (o) => {
const s = new qi();
s.fromString(o), n.value.forEach((u) => {
u.selected = s.compare(u);
});
}), watchEffect(() => {
n.value = i(t20.colors, t20.color);
});
function a(o) {
t20.color.fromString(t20.colors[o]);
}
function i(o, s) {
return o.map((u) => {
const l = new qi();
return l.enableAlpha = t20.enableAlpha, l.format = "rgba", l.fromString(u), l.selected = l.value === s.value, l;
});
}
return {
rgbaColors: n,
handleSelect: a,
ns: e
};
}
});
function mk(t20, e, r, n, a, i) {
return openBlock(), createElementBlock("div", {
class: normalizeClass(t20.ns.b())
}, [
createBaseVNode("div", {
class: normalizeClass(t20.ns.e("colors"))
}, [
(openBlock(true), createElementBlock(Fragment, null, renderList(t20.rgbaColors, (o, s) => (openBlock(), createElementBlock("div", {
key: t20.colors[s],
class: normalizeClass([
t20.ns.e("color-selector"),
t20.ns.is("alpha", o._alpha < 100),
{ selected: o.selected }
]),
onClick: (u) => t20.handleSelect(s)
}, [
createBaseVNode("div", {
style: normalizeStyle({ backgroundColor: o.value })
}, null, 4)
], 10, ["onClick"]))), 128))
], 2)
], 2);
}
var yk = ze(gk, [["render", mk], ["__file", "predefine.vue"]]);
var bk = defineComponent({
name: "ElSlPanel",
props: {
color: {
type: Object,
required: true
}
},
setup(t20) {
const e = He("color-svpanel"), r = getCurrentInstance(), n = ref(0), a = ref(0), i = ref("hsl(0, 100%, 50%)"), o = computed(() => {
const l = t20.color.get("hue"), c = t20.color.get("value");
return { hue: l, value: c };
});
function s() {
const l = t20.color.get("saturation"), c = t20.color.get("value"), d = r.vnode.el, { clientWidth: v, clientHeight: h6 } = d;
a.value = l * v / 100, n.value = (100 - c) * h6 / 100, i.value = `hsl(${t20.color.get("hue")}, 100%, 50%)`;
}
function u(l) {
const d = r.vnode.el.getBoundingClientRect(), { clientX: v, clientY: h6 } = Su(l);
let f = v - d.left, p = h6 - d.top;
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, t20.color.set({
saturation: f / d.width * 100,
value: 100 - p / d.height * 100
});
}
return watch(() => o.value, () => {
s();
}), onMounted(() => {
eo(r.vnode.el, {
drag: (l) => {
u(l);
},
end: (l) => {
u(l);
}
}), s();
}), {
cursorTop: n,
cursorLeft: a,
background: i,
colorValue: o,
handleDrag: u,
update: s,
ns: e
};
}
});
function wk(t20, e, r, n, a, i) {
return openBlock(), createElementBlock("div", {
class: normalizeClass(t20.ns.b()),
style: normalizeStyle({
backgroundColor: t20.background
})
}, [
createBaseVNode("div", {
class: normalizeClass(t20.ns.e("white"))
}, null, 2),
createBaseVNode("div", {
class: normalizeClass(t20.ns.e("black"))
}, null, 2),
createBaseVNode("div", {
class: normalizeClass(t20.ns.e("cursor")),
style: normalizeStyle({
top: t20.cursorTop + "px",
left: t20.cursorLeft + "px"
})
}, [
createBaseVNode("div")
], 6)
], 6);
}
var xk = ze(bk, [["render", wk], ["__file", "sv-panel.vue"]]);
var Ck = defineComponent({
name: "ElColorPicker"
});
var Ek = defineComponent({
...Ck,
props: dk,
emits: fk,
setup(t20, { expose: e, emit: r }) {
const n = t20, { t: a } = yo(), i = He("color"), { formItem: o } = Ta(), s = pa(), u = xo(), { inputId: l, isLabeledByFormItem: c } = Co(n, {
formItemContext: o
}), d = ref(), v = ref(), h6 = ref(), f = ref(), p = ref(), m = ref(), { isFocused: g, handleFocus: y, handleBlur: b } = Uu(p, {
beforeFocus() {
return u.value;
},
beforeBlur($) {
var G;
return (G = f.value) == null ? void 0 : G.isFocusInsideContent($);
},
afterBlur() {
B(false), R();
}
});
let w = true;
const C = reactive(new qi({
enableAlpha: n.showAlpha,
format: n.colorFormat || "",
value: n.modelValue
})), E = ref(false), x = ref(false), T = ref(""), k = computed(() => !n.modelValue && !x.value ? "transparent" : L(C, n.showAlpha)), _ = computed(() => !n.modelValue && !x.value ? "" : C.value), D = computed(() => c.value ? void 0 : n.ariaLabel || a("el.colorpicker.defaultLabel")), O = computed(() => c.value ? o == null ? void 0 : o.labelId : void 0), I = computed(() => [
i.b("picker"),
i.is("disabled", u.value),
i.bm("picker", s.value),
i.is("focused", g.value)
]);
function L($, G) {
if (!($ instanceof qi))
throw new TypeError("color should be instance of _color Class");
const { r: Q, g: ge2, b: Ee2 } = $.toRgb();
return G ? `rgba(${Q}, ${ge2}, ${Ee2}, ${$.get("alpha") / 100})` : `rgb(${Q}, ${ge2}, ${Ee2})`;
}
function B($) {
E.value = $;
}
const F = $v(B, 100, { leading: true });
function M() {
u.value || B(true);
}
function A() {
F(false), R();
}
function R() {
nextTick(() => {
n.modelValue ? C.fromString(n.modelValue) : (C.value = "", nextTick(() => {
x.value = false;
}));
});
}
function K10() {
u.value || F(!E.value);
}
function H() {
C.fromString(T.value);
}
function q() {
const $ = C.value;
r(zt, $), r("change", $), n.validateEvent && (o == null || o.validate("change").catch((G) => Dt(G))), F(false), nextTick(() => {
const G = new qi({
enableAlpha: n.showAlpha,
format: n.colorFormat || "",
value: n.modelValue
});
C.compare(G) || R();
});
}
function ee() {
F(false), r(zt, null), r("change", null), n.modelValue !== null && n.validateEvent && (o == null || o.validate("change").catch(($) => Dt($))), R();
}
function se2() {
E.value && (A(), g.value && ue());
}
function oe($) {
$.preventDefault(), $.stopPropagation(), B(false), R();
}
function ae($) {
switch ($.code) {
case Lt.enter:
case Lt.space:
$.preventDefault(), $.stopPropagation(), M(), m.value.focus();
break;
case Lt.esc:
oe($);
break;
}
}
function ue() {
p.value.focus();
}
function te() {
p.value.blur();
}
return onMounted(() => {
n.modelValue && (T.value = _.value);
}), watch(() => n.modelValue, ($) => {
$ ? $ && $ !== C.value && (w = false, C.fromString($)) : x.value = false;
}), watch(() => [n.colorFormat, n.showAlpha], () => {
C.enableAlpha = n.showAlpha, C.format = n.colorFormat || C.format, C.doOnChange(), r(zt, C.value);
}), watch(() => _.value, ($) => {
T.value = $, w && r("activeChange", $), w = true;
}), watch(() => C.value, () => {
!n.modelValue && !x.value && (x.value = true);
}), watch(() => E.value, () => {
nextTick(() => {
var $, G, Q;
($ = d.value) == null || $.update(), (G = v.value) == null || G.update(), (Q = h6.value) == null || Q.update();
});
}), provide(Ih, {
currentColor: _
}), e({
color: C,
show: M,
hide: A,
focus: ue,
blur: te
}), ($, G) => (openBlock(), createBlock(unref(ko), {
ref_key: "popper",
ref: f,
visible: E.value,
"show-arrow": false,
"fallback-placements": ["bottom", "top", "right", "left"],
offset: 0,
"gpu-acceleration": false,
"popper-class": [unref(i).be("picker", "panel"), unref(i).b("dropdown"), $.popperClass],
"stop-popper-mouse-event": false,
effect: "light",
trigger: "click",
teleported: $.teleported,
transition: `${unref(i).namespace.value}-zoom-in-top`,
persistent: "",
onHide: (Q) => B(false)
}, {
content: withCtx(() => [
withDirectives((openBlock(), createElementBlock("div", {
onKeydown: withKeys(oe, ["esc"])
}, [
createBaseVNode("div", {
class: normalizeClass(unref(i).be("dropdown", "main-wrapper"))
}, [
createVNode(ck, {
ref_key: "hue",
ref: d,
class: "hue-slider",
color: unref(C),
vertical: ""
}, null, 8, ["color"]),
createVNode(xk, {
ref_key: "sv",
ref: v,
color: unref(C)
}, null, 8, ["color"])
], 2),
$.showAlpha ? (openBlock(), createBlock(sk, {
key: 0,
ref_key: "alpha",
ref: h6,
color: unref(C)
}, null, 8, ["color"])) : createCommentVNode("v-if", true),
$.predefine ? (openBlock(), createBlock(yk, {
key: 1,
ref: "predefine",
"enable-alpha": $.showAlpha,
color: unref(C),
colors: $.predefine
}, null, 8, ["enable-alpha", "color", "colors"])) : createCommentVNode("v-if", true),
createBaseVNode("div", {
class: normalizeClass(unref(i).be("dropdown", "btns"))
}, [
createBaseVNode("span", {
class: normalizeClass(unref(i).be("dropdown", "value"))
}, [
createVNode(unref(Eo), {
ref_key: "inputRef",
ref: m,
modelValue: T.value,
"onUpdate:modelValue": (Q) => T.value = Q,
"validate-event": false,
size: "small",
onKeyup: withKeys(H, ["enter"]),
onBlur: H
}, null, 8, ["modelValue", "onUpdate:modelValue", "onKeyup"])
], 2),
createVNode(unref(Hr), {
class: normalizeClass(unref(i).be("dropdown", "link-btn")),
text: "",
size: "small",
onClick: ee
}, {
default: withCtx(() => [
createTextVNode(toDisplayString(unref(a)("el.colorpicker.clear")), 1)
]),
_: 1
}, 8, ["class"]),
createVNode(unref(Hr), {
plain: "",
size: "small",
class: normalizeClass(unref(i).be("dropdown", "btn")),
onClick: q
}, {
default: withCtx(() => [
createTextVNode(toDisplayString(unref(a)("el.colorpicker.confirm")), 1)
]),
_: 1
}, 8, ["class"])
], 2)
], 40, ["onKeydown"])), [
[unref(Th), se2]
])
]),
default: withCtx(() => [
createBaseVNode("div", mergeProps({
id: unref(l),
ref_key: "triggerRef",
ref: p
}, $.$attrs, {
class: unref(I),
role: "button",
"aria-label": unref(D),
"aria-labelledby": unref(O),
"aria-description": unref(a)("el.colorpicker.description", { color: $.modelValue || "" }),
"aria-disabled": unref(u),
tabindex: unref(u) ? -1 : $.tabindex,
onKeydown: ae,
onFocus: unref(y),
onBlur: unref(b)
}), [
unref(u) ? (openBlock(), createElementBlock("div", {
key: 0,
class: normalizeClass(unref(i).be("picker", "mask"))
}, null, 2)) : createCommentVNode("v-if", true),
createBaseVNode("div", {
class: normalizeClass(unref(i).be("picker", "trigger")),
onClick: K10
}, [
createBaseVNode("span", {
class: normalizeClass([unref(i).be("picker", "color"), unref(i).is("alpha", $.showAlpha)])
}, [
createBaseVNode("span", {
class: normalizeClass(unref(i).be("picker", "color-inner")),
style: normalizeStyle({
backgroundColor: unref(k)
})
}, [
withDirectives(createVNode(unref(Vt), {
class: normalizeClass([unref(i).be("picker", "icon"), unref(i).is("icon-arrow-down")])
}, {
default: withCtx(() => [
createVNode(unref(Gs))
]),
_: 1
}, 8, ["class"]), [
[vShow, $.modelValue || x.value]
]),
withDirectives(createVNode(unref(Vt), {
class: normalizeClass([unref(i).be("picker", "empty"), unref(i).is("icon-close")])
}, {
default: withCtx(() => [
createVNode(unref(Ss))
]),
_: 1
}, 8, ["class"]), [
[vShow, !$.modelValue && !x.value]
])
], 6)
], 2)
], 2)
], 16, ["id", "aria-label", "aria-labelledby", "aria-description", "aria-disabled", "tabindex", "onFocus", "onBlur"])
]),
_: 1
}, 8, ["visible", "popper-class", "teleported", "transition", "onHide"]));
}
});
var kk = ze(Ek, [["__file", "color-picker.vue"]]);
var Sk = $t(kk);
var Tk = defineComponent({
name: "ElContainer"
});
var _k = defineComponent({
...Tk,
props: {
direction: {
type: String
}
},
setup(t20) {
const e = t20, r = useSlots(), n = He("container"), a = computed(() => e.direction === "vertical" ? true : e.direction === "horizontal" ? false : r && r.default ? r.default().some((o) => {
const s = o.type.name;
return s === "ElHeader" || s === "ElFooter";
}) : false);
return (i, o) => (openBlock(), createElementBlock("section", {
class: normalizeClass([unref(n).b(), unref(n).is("vertical", unref(a))])
}, [
renderSlot(i.$slots, "default")
], 2));
}
});
var Dk = ze(_k, [["__file", "container.vue"]]);
var Pk = defineComponent({
name: "ElAside"
});
var Ok = defineComponent({
...Pk,
props: {
width: {
type: String,
default: null
}
},
setup(t20) {
const e = t20, r = He("aside"), n = computed(() => e.width ? r.cssVarBlock({ width: e.width }) : {});
return (a, i) => (openBlock(), createElementBlock("aside", {
class: normalizeClass(unref(r).b()),
style: normalizeStyle(unref(n))
}, [
renderSlot(a.$slots, "default")
], 6));
}
});
var Ah = ze(Ok, [["__file", "aside.vue"]]);
var Lk = defineComponent({
name: "ElFooter"
});
var Fk = defineComponent({
...Lk,
props: {
height: {
type: String,
default: null
}
},
setup(t20) {
const e = t20, r = He("footer"), n = computed(() => e.height ? r.cssVarBlock({ height: e.height }) : {});
return (a, i) => (openBlock(), createElementBlock("footer", {
class: normalizeClass(unref(r).b()),
style: normalizeStyle(unref(n))
}, [
renderSlot(a.$slots, "default")
], 6));
}
});
var Mh = ze(Fk, [["__file", "footer.vue"]]);
var Ik = defineComponent({
name: "ElHeader"
});
var Ak = defineComponent({
...Ik,
props: {
height: {
type: String,
default: null
}
},
setup(t20) {
const e = t20, r = He("header"), n = computed(() => e.height ? r.cssVarBlock({
height: e.height
}) : {});
return (a, i) => (openBlock(), createElementBlock("header", {
class: normalizeClass(unref(r).b()),
style: normalizeStyle(unref(n))
}, [
renderSlot(a.$slots, "default")
], 6));
}
});
var Bh = ze(Ak, [["__file", "header.vue"]]);
var Mk = defineComponent({
name: "ElMain"
});
var Bk = defineComponent({
...Mk,
setup(t20) {
const e = He("main");
return (r, n) => (openBlock(), createElementBlock("main", {
class: normalizeClass(unref(e).b())
}, [
renderSlot(r.$slots, "default")
], 2));
}
});
var Nh = ze(Bk, [["__file", "main.vue"]]);
var $h = $t(Dk, {
Aside: Ah,
Footer: Mh,
Header: Bh,
Main: Nh
});
xn(Ah);
xn(Mh);
var Rh = xn(Bh);
var Ju = xn(Nh);
var Nk = defineComponent({
inheritAttrs: false
});
function $k(t20, e, r, n, a, i) {
return renderSlot(t20.$slots, "default");
}
var Rk = ze(Nk, [["render", $k], ["__file", "collection.vue"]]);
var zk = defineComponent({
name: "ElCollectionItem",
inheritAttrs: false
});
function Vk(t20, e, r, n, a, i) {
return renderSlot(t20.$slots, "default");
}
var Hk = ze(zk, [["render", Vk], ["__file", "collection-item.vue"]]);
var qk = "data-el-collection-item";
var Kk = (t20) => {
const e = `El${t20}Collection`, r = `${e}Item`, n = Symbol(e), a = Symbol(r), i = {
...Rk,
name: e,
setup() {
const s = ref(null), u = /* @__PURE__ */ new Map();
provide(n, {
itemMap: u,
getItems: () => {
const c = unref(s);
if (!c)
return [];
const d = Array.from(c.querySelectorAll(`[${qk}]`));
return [...u.values()].sort((h6, f) => d.indexOf(h6.ref) - d.indexOf(f.ref));
},
collectionRef: s
});
}
}, o = {
...Hk,
name: r,
setup(s, { attrs: u }) {
const l = ref(null), c = inject(n, void 0);
provide(a, {
collectionItemRef: l
}), onMounted(() => {
const d = unref(l);
d && c.itemMap.set(d, {
ref: d,
...u
});
}), onBeforeUnmount(() => {
const d = unref(l);
c.itemMap.delete(d);
});
}
};
return {
COLLECTION_INJECTION_KEY: n,
COLLECTION_ITEM_INJECTION_KEY: a,
ElCollection: i,
ElCollectionItem: o
};
};
var Fl = rt({
trigger: Ji.trigger,
effect: {
...cr.effect,
default: "light"
},
type: {
type: $e(String)
},
placement: {
type: $e(String),
default: "bottom"
},
popperOptions: {
type: $e(Object),
default: () => ({})
},
id: String,
size: {
type: String,
default: ""
},
splitButton: Boolean,
hideOnClick: {
type: Boolean,
default: true
},
loop: {
type: Boolean,
default: true
},
showTimeout: {
type: Number,
default: 150
},
hideTimeout: {
type: Number,
default: 150
},
tabindex: {
type: $e([Number, String]),
default: 0
},
maxHeight: {
type: $e([Number, String]),
default: ""
},
popperClass: {
type: String,
default: ""
},
disabled: Boolean,
role: {
type: String,
default: "menu"
},
buttonProps: {
type: $e(Object)
},
teleported: cr.teleported
});
rt({
command: {
type: [Object, String, Number],
default: () => ({})
},
disabled: Boolean,
divided: Boolean,
textValue: String,
icon: {
type: Hn
}
});
rt({
onKeydown: { type: $e(Function) }
});
Kk("Dropdown");
var zh = Symbol("ElSelectGroup");
var To = Symbol("ElSelect");
function Uk(t20, e) {
const r = inject(To), n = inject(zh, { disabled: false }), a = computed(() => c(In(r.props.modelValue), t20.value)), i = computed(() => {
var h6;
if (r.props.multiple) {
const f = In((h6 = r.props.modelValue) != null ? h6 : []);
return !a.value && f.length >= r.props.multipleLimit && r.props.multipleLimit > 0;
} else
return false;
}), o = computed(() => t20.label || (Ht(t20.value) ? "" : t20.value)), s = computed(() => t20.value || t20.label || ""), u = computed(() => t20.disabled || e.groupDisabled || i.value), l = getCurrentInstance(), c = (h6 = [], f) => {
if (Ht(t20.value)) {
const p = r.props.valueKey;
return h6 && h6.some((m) => toRaw(fn(m, p)) === fn(f, p));
} else
return h6 && h6.includes(f);
}, d = () => {
!t20.disabled && !n.disabled && (r.states.hoveringIndex = r.optionsArray.indexOf(l.proxy));
}, v = (h6) => {
const f = new RegExp(Yb(h6), "i");
e.visible = f.test(o.value) || t20.created;
};
return watch(() => o.value, () => {
!t20.created && !r.props.remote && r.setSelected();
}), watch(() => t20.value, (h6, f) => {
const { remote: p, valueKey: m } = r.props;
if (h6 !== f && (r.onOptionDestroy(f, l.proxy), r.onOptionCreate(l.proxy)), !t20.created && !p) {
if (m && Ht(h6) && Ht(f) && h6[m] === f[m])
return;
r.setSelected();
}
}), watch(() => n.disabled, () => {
e.groupDisabled = n.disabled;
}, { immediate: true }), {
select: r,
currentLabel: o,
currentValue: s,
itemSelected: a,
isDisabled: u,
hoverItem: d,
updateOption: v
};
}
var Gk = defineComponent({
name: "ElOption",
componentName: "ElOption",
props: {
value: {
required: true,
type: [String, Number, Boolean, Object]
},
label: [String, Number],
created: Boolean,
disabled: Boolean
},
setup(t20) {
const e = He("select"), r = Xs(), n = computed(() => [
e.be("dropdown", "item"),
e.is("disabled", unref(s)),
e.is("selected", unref(o)),
e.is("hovering", unref(v))
]), a = reactive({
index: -1,
groupDisabled: false,
visible: true,
hover: false
}), {
currentLabel: i,
itemSelected: o,
isDisabled: s,
select: u,
hoverItem: l,
updateOption: c
} = Uk(t20, a), { visible: d, hover: v } = toRefs(a), h6 = getCurrentInstance().proxy;
u.onOptionCreate(h6), onBeforeUnmount(() => {
const p = h6.value, { selected: m } = u.states, y = (u.props.multiple ? m : [m]).some((b) => b.value === h6.value);
nextTick(() => {
u.states.cachedOptions.get(p) === h6 && !y && u.states.cachedOptions.delete(p);
}), u.onOptionDestroy(p, h6);
});
function f() {
s.value || u.handleOptionSelect(h6);
}
return {
ns: e,
id: r,
containerKls: n,
currentLabel: i,
itemSelected: o,
isDisabled: s,
select: u,
hoverItem: l,
updateOption: c,
visible: d,
hover: v,
selectOptionClick: f,
states: a
};
}
});
function Wk(t20, e, r, n, a, i) {
return withDirectives((openBlock(), createElementBlock("li", {
id: t20.id,
class: normalizeClass(t20.containerKls),
role: "option",
"aria-disabled": t20.isDisabled || void 0,
"aria-selected": t20.itemSelected,
onMouseenter: t20.hoverItem,
onClick: withModifiers(t20.selectOptionClick, ["stop"])
}, [
renderSlot(t20.$slots, "default", {}, () => [
createBaseVNode("span", null, toDisplayString(t20.currentLabel), 1)
])
], 42, ["id", "aria-disabled", "aria-selected", "onMouseenter", "onClick"])), [
[vShow, t20.visible]
]);
}
var ec = ze(Gk, [["render", Wk], ["__file", "option.vue"]]);
var Yk = defineComponent({
name: "ElSelectDropdown",
componentName: "ElSelectDropdown",
setup() {
const t20 = inject(To), e = He("select"), r = computed(() => t20.props.popperClass), n = computed(() => t20.props.multiple), a = computed(() => t20.props.fitInputWidth), i = ref("");
function o() {
var s;
i.value = `${(s = t20.selectRef) == null ? void 0 : s.offsetWidth}px`;
}
return onMounted(() => {
o(), dn(t20.selectRef, o);
}), {
ns: e,
minWidth: i,
popperClass: r,
isMultiple: n,
isFitInputWidth: a
};
}
});
function Zk(t20, e, r, n, a, i) {
return openBlock(), createElementBlock("div", {
class: normalizeClass([t20.ns.b("dropdown"), t20.ns.is("multiple", t20.isMultiple), t20.popperClass]),
style: normalizeStyle({ [t20.isFitInputWidth ? "width" : "minWidth"]: t20.minWidth })
}, [
t20.$slots.header ? (openBlock(), createElementBlock("div", {
key: 0,
class: normalizeClass(t20.ns.be("dropdown", "header"))
}, [
renderSlot(t20.$slots, "header")
], 2)) : createCommentVNode("v-if", true),
renderSlot(t20.$slots, "default"),
t20.$slots.footer ? (openBlock(), createElementBlock("div", {
key: 1,
class: normalizeClass(t20.ns.be("dropdown", "footer"))
}, [
renderSlot(t20.$slots, "footer")
], 2)) : createCommentVNode("v-if", true)
], 6);
}
var Xk = ze(Yk, [["render", Zk], ["__file", "select-dropdown.vue"]]);
var jk = 11;
var Qk = (t20, e) => {
const { t: r } = yo(), n = Xs(), a = He("select"), i = He("input"), o = reactive({
inputValue: "",
options: /* @__PURE__ */ new Map(),
cachedOptions: /* @__PURE__ */ new Map(),
disabledOptions: /* @__PURE__ */ new Map(),
optionValues: [],
selected: [],
selectionWidth: 0,
calculatorWidth: 0,
collapseItemWidth: 0,
selectedLabel: "",
hoveringIndex: -1,
previousQuery: null,
inputHovering: false,
menuVisibleOnFocus: false,
isBeforeHide: false
}), s = ref(null), u = ref(null), l = ref(null), c = ref(null), d = ref(null), v = ref(null), h6 = ref(null), f = ref(null), p = ref(null), m = ref(null), g = ref(null), y = ref(null), {
isComposing: b,
handleCompositionStart: w,
handleCompositionUpdate: C,
handleCompositionEnd: E
} = vh({
afterComposition: (W) => ie(W)
}), { wrapperRef: x, isFocused: T } = Uu(d, {
beforeFocus() {
return F.value;
},
afterFocus() {
t20.automaticDropdown && !k.value && (k.value = true, o.menuVisibleOnFocus = true);
},
beforeBlur(W) {
var we, We;
return ((we = l.value) == null ? void 0 : we.isFocusInsideContent(W)) || ((We = c.value) == null ? void 0 : We.isFocusInsideContent(W));
},
afterBlur() {
k.value = false, o.menuVisibleOnFocus = false;
}
}), k = ref(false), _ = ref(), { form: D, formItem: O } = Ta(), { inputId: I } = Co(t20, {
formItemContext: O
}), { valueOnClear: L, isEmptyValue: B } = dx(t20), F = computed(() => t20.disabled || (D == null ? void 0 : D.disabled)), M = computed(() => fr(t20.modelValue) ? t20.modelValue.length > 0 : !B(t20.modelValue)), A = computed(() => t20.clearable && !F.value && o.inputHovering && M.value), R = computed(() => t20.remote && t20.filterable && !t20.remoteShowSuffix ? "" : t20.suffixIcon), K10 = computed(() => a.is("reverse", R.value && k.value)), H = computed(() => (O == null ? void 0 : O.validateState) || ""), q = computed(() => Kv[H.value]), ee = computed(() => t20.remote ? 300 : 0), se2 = computed(() => t20.loading ? t20.loadingText || r("el.select.loading") : t20.remote && !o.inputValue && o.options.size === 0 ? false : t20.filterable && o.inputValue && o.options.size > 0 && oe.value === 0 ? t20.noMatchText || r("el.select.noMatch") : o.options.size === 0 ? t20.noDataText || r("el.select.noData") : null), oe = computed(() => ae.value.filter((W) => W.visible).length), ae = computed(() => {
const W = Array.from(o.options.values()), we = [];
return o.optionValues.forEach((We) => {
const at = W.findIndex((Gr2) => Gr2.value === We);
at > -1 && we.push(W[at]);
}), we.length >= W.length ? we : W;
}), ue = computed(() => Array.from(o.cachedOptions.values())), te = computed(() => {
const W = ae.value.filter((we) => !we.created).some((we) => we.currentLabel === o.inputValue);
return t20.filterable && t20.allowCreate && o.inputValue !== "" && !W;
}), $ = () => {
t20.filterable && lr(t20.filterMethod) || t20.filterable && t20.remote && lr(t20.remoteMethod) || ae.value.forEach((W) => {
var we;
(we = W.updateOption) == null || we.call(W, o.inputValue);
});
}, G = pa(), Q = computed(() => ["small"].includes(G.value) ? "small" : "default"), ge2 = computed({
get() {
return k.value && se2.value !== false;
},
set(W) {
k.value = W;
}
}), Ee2 = computed(() => {
if (t20.multiple && !Mn(t20.modelValue))
return In(t20.modelValue).length === 0 && !o.inputValue;
const W = fr(t20.modelValue) ? t20.modelValue[0] : t20.modelValue;
return t20.filterable || Mn(W) ? !o.inputValue : true;
}), fe = computed(() => {
var W;
const we = (W = t20.placeholder) != null ? W : r("el.select.placeholder");
return t20.multiple || !M.value ? we : o.selectedLabel;
}), me = computed(() => Gl ? null : "mouseenter");
watch(() => t20.modelValue, (W, we) => {
t20.multiple && t20.filterable && !t20.reserveKeyword && (o.inputValue = "", xe("")), Ce(), !Es(W, we) && t20.validateEvent && (O == null || O.validate("change").catch((We) => Dt(We)));
}, {
flush: "post",
deep: true
}), watch(() => k.value, (W) => {
W ? xe(o.inputValue) : (o.inputValue = "", o.previousQuery = null, o.isBeforeHide = true), e("visible-change", W);
}), watch(() => o.options.entries(), () => {
var W;
if (!_t)
return;
const we = ((W = s.value) == null ? void 0 : W.querySelectorAll("input")) || [];
(!t20.filterable && !t20.defaultFirstOption && !Mn(t20.modelValue) || !Array.from(we).includes(document.activeElement)) && Ce(), t20.defaultFirstOption && (t20.filterable || t20.remote) && oe.value && ke2();
}, {
flush: "post"
}), watch(() => o.hoveringIndex, (W) => {
qt(W) && W > -1 ? _.value = ae.value[W] || {} : _.value = {}, ae.value.forEach((we) => {
we.hover = _.value === we;
});
}), watchEffect(() => {
o.isBeforeHide || $();
});
const xe = (W) => {
o.previousQuery === W || b.value || (o.previousQuery = W, t20.filterable && lr(t20.filterMethod) ? t20.filterMethod(W) : t20.filterable && t20.remote && lr(t20.remoteMethod) && t20.remoteMethod(W), t20.defaultFirstOption && (t20.filterable || t20.remote) && oe.value ? nextTick(ke2) : nextTick(qe));
}, ke2 = () => {
const W = ae.value.filter((at) => at.visible && !at.disabled && !at.states.groupDisabled), we = W.find((at) => at.created), We = W[0];
o.hoveringIndex = _e(ae.value, we || We);
}, Ce = () => {
if (t20.multiple)
o.selectedLabel = "";
else {
const we = fr(t20.modelValue) ? t20.modelValue[0] : t20.modelValue, We = De(we);
o.selectedLabel = We.currentLabel, o.selected = [We];
return;
}
const W = [];
Mn(t20.modelValue) || In(t20.modelValue).forEach((we) => {
W.push(De(we));
}), o.selected = W;
}, De = (W) => {
let we;
const We = bl(W).toLowerCase() === "object", at = bl(W).toLowerCase() === "null", Gr2 = bl(W).toLowerCase() === "undefined";
for (let sn = o.cachedOptions.size - 1; sn >= 0; sn--) {
const xr = ue.value[sn];
if (We ? fn(xr.value, t20.valueKey) === fn(W, t20.valueKey) : xr.value === W) {
we = {
value: W,
currentLabel: xr.currentLabel,
get isDisabled() {
return xr.isDisabled;
}
};
break;
}
}
if (we)
return we;
const Sn2 = We ? W.label : !at && !Gr2 ? W : "";
return {
value: W,
currentLabel: Sn2
};
}, qe = () => {
o.hoveringIndex = ae.value.findIndex((W) => o.selected.some((we) => Xt(we) === Xt(W)));
}, Ke = () => {
o.selectionWidth = u.value.getBoundingClientRect().width;
}, Be = () => {
o.calculatorWidth = v.value.getBoundingClientRect().width;
}, Ge = () => {
o.collapseItemWidth = g.value.getBoundingClientRect().width;
}, le = () => {
var W, we;
(we = (W = l.value) == null ? void 0 : W.updatePopper) == null || we.call(W);
}, S = () => {
var W, we;
(we = (W = c.value) == null ? void 0 : W.updatePopper) == null || we.call(W);
}, z = () => {
o.inputValue.length > 0 && !k.value && (k.value = true), xe(o.inputValue);
}, ie = (W) => {
if (o.inputValue = W.target.value, t20.remote)
j();
else
return z();
}, j = $v(() => {
z();
}, ee.value), Y = (W) => {
Es(t20.modelValue, W) || e(Mu, W);
}, pe = (W) => Hb(W, (we) => !o.disabledOptions.has(we)), re = (W) => {
if (t20.multiple && W.code !== Lt.delete && W.target.value.length <= 0) {
const we = In(t20.modelValue).slice(), We = pe(we);
if (We < 0)
return;
const at = we[We];
we.splice(We, 1), e(zt, we), Y(we), e("remove-tag", at);
}
}, ve = (W, we) => {
const We = o.selected.indexOf(we);
if (We > -1 && !F.value) {
const at = In(t20.modelValue).slice();
at.splice(We, 1), e(zt, at), Y(at), e("remove-tag", we.value);
}
W.stopPropagation(), kt();
}, Ae = (W) => {
W.stopPropagation();
const we = t20.multiple ? [] : L.value;
if (t20.multiple)
for (const We of o.selected)
We.isDisabled && we.push(We.value);
e(zt, we), Y(we), o.hoveringIndex = -1, k.value = false, e("clear"), kt();
}, Me = (W) => {
var we;
if (t20.multiple) {
const We = In((we = t20.modelValue) != null ? we : []).slice(), at = _e(We, W.value);
at > -1 ? We.splice(at, 1) : (t20.multipleLimit <= 0 || We.length < t20.multipleLimit) && We.push(W.value), e(zt, We), Y(We), W.created && xe(""), t20.filterable && !t20.reserveKeyword && (o.inputValue = "");
} else
e(zt, W.value), Y(W.value), k.value = false;
kt(), !k.value && nextTick(() => {
Ne(W);
});
}, _e = (W = [], we) => {
if (!Ht(we))
return W.indexOf(we);
const We = t20.valueKey;
let at = -1;
return W.some((Gr2, Sn2) => toRaw(fn(Gr2, We)) === fn(we, We) ? (at = Sn2, true) : false), at;
}, Ne = (W) => {
var we, We, at, Gr2, Sn2;
const Oa = fr(W) ? W[0] : W;
let sn = null;
if (Oa != null && Oa.value) {
const xr = ae.value.filter((Tn) => Tn.value === Oa.value);
xr.length > 0 && (sn = xr[0].$el);
}
if (l.value && sn) {
const xr = (Gr2 = (at = (We = (we = l.value) == null ? void 0 : we.popperRef) == null ? void 0 : We.contentRef) == null ? void 0 : at.querySelector) == null ? void 0 : Gr2.call(at, `.${a.be("dropdown", "wrap")}`);
xr && jb(xr, sn);
}
(Sn2 = y.value) == null || Sn2.handleScroll();
}, Te = (W) => {
o.options.set(W.value, W), o.cachedOptions.set(W.value, W), W.disabled && o.disabledOptions.set(W.value, W);
}, Oe = (W, we) => {
o.options.get(W) === we && o.options.delete(W);
}, ut = computed(() => {
var W, we;
return (we = (W = l.value) == null ? void 0 : W.popperRef) == null ? void 0 : we.contentRef;
}), nt = () => {
o.isBeforeHide = false, nextTick(() => Ne(o.selected));
}, kt = () => {
var W;
(W = d.value) == null || W.focus();
}, St = () => {
var W;
(W = d.value) == null || W.blur();
}, wt = (W) => {
Ae(W);
}, Zt = () => {
k.value = false, T.value && St();
}, Pt = () => {
o.inputValue.length > 0 ? o.inputValue = "" : k.value = false;
}, Mt = () => {
F.value || (Gl && (o.inputHovering = true), o.menuVisibleOnFocus ? o.menuVisibleOnFocus = false : k.value = !k.value);
}, gr = () => {
k.value ? ae.value[o.hoveringIndex] && Me(ae.value[o.hoveringIndex]) : Mt();
}, Xt = (W) => Ht(W.value) ? fn(W.value, t20.valueKey) : W.value, jt = computed(() => ae.value.filter((W) => W.visible).every((W) => W.disabled)), wr = computed(() => t20.multiple ? t20.collapseTags ? o.selected.slice(0, t20.maxCollapseTags) : o.selected : []), Pr = computed(() => t20.multiple ? t20.collapseTags ? o.selected.slice(t20.maxCollapseTags) : [] : []), ur = (W) => {
if (!k.value) {
k.value = true;
return;
}
if (!(o.options.size === 0 || o.filteredOptionsCount === 0 || b.value) && !jt.value) {
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));
const we = ae.value[o.hoveringIndex];
(we.disabled === true || we.states.groupDisabled === true || !we.visible) && ur(W), nextTick(() => Ne(_.value));
}
}, xt = () => {
if (!u.value)
return 0;
const W = window.getComputedStyle(u.value);
return Number.parseFloat(W.gap || "6px");
}, Tt = computed(() => {
const W = xt();
return { maxWidth: `${g.value && t20.maxCollapseTags === 1 ? o.selectionWidth - o.collapseItemWidth - W : o.selectionWidth}px` };
}), Bt = computed(() => ({ maxWidth: `${o.selectionWidth}px` })), kn = computed(() => ({
width: `${Math.max(o.calculatorWidth, jk)}px`
}));
return dn(u, Ke), dn(v, Be), dn(p, le), dn(x, le), dn(m, S), dn(g, Ge), onMounted(() => {
Ce();
}), {
inputId: I,
contentId: n,
nsSelect: a,
nsInput: i,
states: o,
isFocused: T,
expanded: k,
optionsArray: ae,
hoverOption: _,
selectSize: G,
filteredOptionsCount: oe,
resetCalculatorWidth: Be,
updateTooltip: le,
updateTagTooltip: S,
debouncedOnInputChange: j,
onInput: ie,
deletePrevTag: re,
deleteTag: ve,
deleteSelected: Ae,
handleOptionSelect: Me,
scrollToOption: Ne,
hasModelValue: M,
shouldShowPlaceholder: Ee2,
currentPlaceholder: fe,
mouseEnterEventName: me,
showClose: A,
iconComponent: R,
iconReverse: K10,
validateState: H,
validateIcon: q,
showNewOption: te,
updateOptions: $,
collapseTagSize: Q,
setSelected: Ce,
selectDisabled: F,
emptyText: se2,
handleCompositionStart: w,
handleCompositionUpdate: C,
handleCompositionEnd: E,
onOptionCreate: Te,
onOptionDestroy: Oe,
handleMenuEnter: nt,
focus: kt,
blur: St,
handleClearClick: wt,
handleClickOutside: Zt,
handleEsc: Pt,
toggleMenu: Mt,
selectOption: gr,
getValueKey: Xt,
navigateOptions: ur,
dropdownMenuVisible: ge2,
showTagList: wr,
collapseTagList: Pr,
tagStyle: Tt,
collapseTagStyle: Bt,
inputStyle: kn,
popperRef: ut,
inputRef: d,
tooltipRef: l,
tagTooltipRef: c,
calculatorRef: v,
prefixRef: h6,
suffixRef: f,
selectRef: s,
wrapperRef: x,
selectionRef: u,
scrollbarRef: y,
menuRef: p,
tagMenuRef: m,
collapseItemRef: g
};
};
var Jk = defineComponent({
name: "ElOptions",
setup(t20, { slots: e }) {
const r = inject(To);
let n = [];
return () => {
var a, i;
const o = (a = e.default) == null ? void 0 : a.call(e), s = [];
function u(l) {
fr(l) && l.forEach((c) => {
var d, v, h6, f;
const p = (d = (c == null ? void 0 : c.type) || {}) == null ? void 0 : d.name;
p === "ElOptionGroup" ? u(!tr(c.children) && !fr(c.children) && lr((v = c.children) == null ? void 0 : v.default) ? (h6 = c.children) == null ? void 0 : h6.default() : c.children) : p === "ElOption" ? s.push((f = c.props) == null ? void 0 : f.value) : fr(c.children) && u(c.children);
});
}
return o.length && u((i = o[0]) == null ? void 0 : i.children), Es(s, n) || (n = s, r && (r.states.optionValues = s)), o;
};
}
});
var eS = rt({
name: String,
id: String,
modelValue: {
type: [Array, String, Number, Boolean, Object],
default: void 0
},
autocomplete: {
type: String,
default: "off"
},
automaticDropdown: Boolean,
size: di,
effect: {
type: $e(String),
default: "light"
},
disabled: Boolean,
clearable: Boolean,
filterable: Boolean,
allowCreate: Boolean,
loading: Boolean,
popperClass: {
type: String,
default: ""
},
popperOptions: {
type: $e(Object),
default: () => ({})
},
remote: Boolean,
loadingText: String,
noMatchText: String,
noDataText: String,
remoteMethod: Function,
filterMethod: Function,
multiple: Boolean,
multipleLimit: {
type: Number,
default: 0
},
placeholder: {
type: String
},
defaultFirstOption: Boolean,
reserveKeyword: {
type: Boolean,
default: true
},
valueKey: {
type: String,
default: "value"
},
collapseTags: Boolean,
collapseTagsTooltip: Boolean,
maxCollapseTags: {
type: Number,
default: 1
},
teleported: cr.teleported,
persistent: {
type: Boolean,
default: true
},
clearIcon: {
type: Hn,
default: Iu
},
fitInputWidth: Boolean,
suffixIcon: {
type: Hn,
default: Gs
},
tagType: { ...au.type, default: "info" },
tagEffect: { ...au.effect, default: "light" },
validateEvent: {
type: Boolean,
default: true
},
remoteShowSuffix: Boolean,
placement: {
type: $e(String),
values: Ys,
default: "bottom-start"
},
fallbackPlacements: {
type: $e(Array),
default: ["bottom-start", "top-start", "right", "left"]
},
appendTo: String,
...cx,
...Zn(["ariaLabel"])
});
var Yd = "ElSelect";
var tS = defineComponent({
name: Yd,
componentName: Yd,
components: {
ElSelectMenu: Xk,
ElOption: ec,
ElOptions: Jk,
ElTag: zE,
ElScrollbar: Vx,
ElTooltip: ko,
ElIcon: Vt
},
directives: { ClickOutside: Th },
props: eS,
emits: [
zt,
Mu,
"remove-tag",
"clear",
"visible-change",
"focus",
"blur"
],
setup(t20, { emit: e }) {
const r = computed(() => {
const { modelValue: i, multiple: o } = t20, s = o ? [] : void 0;
return fr(i) ? o ? i : s : o ? s : i;
}), n = reactive({
...toRefs(t20),
modelValue: r
}), a = Qk(n, e);
return provide(To, reactive({
props: n,
states: a.states,
optionsArray: a.optionsArray,
handleOptionSelect: a.handleOptionSelect,
onOptionCreate: a.onOptionCreate,
onOptionDestroy: a.onOptionDestroy,
selectRef: a.selectRef,
setSelected: a.setSelected
})), {
...a,
modelValue: r
};
}
});
function rS(t20, e, r, n, a, i) {
const o = resolveComponent("el-tag"), s = resolveComponent("el-tooltip"), u = resolveComponent("el-icon"), l = resolveComponent("el-option"), c = resolveComponent("el-options"), d = resolveComponent("el-scrollbar"), v = resolveComponent("el-select-menu"), h6 = resolveDirective("click-outside");
return withDirectives((openBlock(), createElementBlock("div", {
ref: "selectRef",
class: normalizeClass([t20.nsSelect.b(), t20.nsSelect.m(t20.selectSize)]),
[toHandlerKey(t20.mouseEnterEventName)]: (f) => t20.states.inputHovering = true,
onMouseleave: (f) => t20.states.inputHovering = false
}, [
createVNode(s, {
ref: "tooltipRef",
visible: t20.dropdownMenuVisible,
placement: t20.placement,
teleported: t20.teleported,
"popper-class": [t20.nsSelect.e("popper"), t20.popperClass],
"popper-options": t20.popperOptions,
"fallback-placements": t20.fallbackPlacements,
effect: t20.effect,
pure: "",
trigger: "click",
transition: `${t20.nsSelect.namespace.value}-zoom-in-top`,
"stop-popper-mouse-event": false,
"gpu-acceleration": false,
persistent: t20.persistent,
"append-to": t20.appendTo,
onBeforeShow: t20.handleMenuEnter,
onHide: (f) => t20.states.isBeforeHide = false
}, {
default: withCtx(() => {
var f;
return [
createBaseVNode("div", {
ref: "wrapperRef",
class: normalizeClass([
t20.nsSelect.e("wrapper"),
t20.nsSelect.is("focused", t20.isFocused),
t20.nsSelect.is("hovering", t20.states.inputHovering),
t20.nsSelect.is("filterable", t20.filterable),
t20.nsSelect.is("disabled", t20.selectDisabled)
]),
onClick: withModifiers(t20.toggleMenu, ["prevent"])
}, [
t20.$slots.prefix ? (openBlock(), createElementBlock("div", {
key: 0,
ref: "prefixRef",
class: normalizeClass(t20.nsSelect.e("prefix"))
}, [
renderSlot(t20.$slots, "prefix")
], 2)) : createCommentVNode("v-if", true),
createBaseVNode("div", {
ref: "selectionRef",
class: normalizeClass([
t20.nsSelect.e("selection"),
t20.nsSelect.is("near", t20.multiple && !t20.$slots.prefix && !!t20.states.selected.length)
])
}, [
t20.multiple ? renderSlot(t20.$slots, "tag", { key: 0 }, () => [
(openBlock(true), createElementBlock(Fragment, null, renderList(t20.showTagList, (p) => (openBlock(), createElementBlock("div", {
key: t20.getValueKey(p),
class: normalizeClass(t20.nsSelect.e("selected-item"))
}, [
createVNode(o, {
closable: !t20.selectDisabled && !p.isDisabled,
size: t20.collapseTagSize,
type: t20.tagType,
effect: t20.tagEffect,
"disable-transitions": "",
style: normalizeStyle(t20.tagStyle),
onClose: (m) => t20.deleteTag(m, p)
}, {
default: withCtx(() => [
createBaseVNode("span", {
class: normalizeClass(t20.nsSelect.e("tags-text"))
}, [
renderSlot(t20.$slots, "label", {
label: p.currentLabel,
value: p.value
}, () => [
createTextVNode(toDisplayString(p.currentLabel), 1)
])
], 2)
]),
_: 2
}, 1032, ["closable", "size", "type", "effect", "style", "onClose"])
], 2))), 128)),
t20.collapseTags && t20.states.selected.length > t20.maxCollapseTags ? (openBlock(), createBlock(s, {
key: 0,
ref: "tagTooltipRef",
disabled: t20.dropdownMenuVisible || !t20.collapseTagsTooltip,
"fallback-placements": ["bottom", "top", "right", "left"],
effect: t20.effect,
placement: "bottom",
teleported: t20.teleported
}, {
default: withCtx(() => [
createBaseVNode("div", {
ref: "collapseItemRef",
class: normalizeClass(t20.nsSelect.e("selected-item"))
}, [
createVNode(o, {
closable: false,
size: t20.collapseTagSize,
type: t20.tagType,
effect: t20.tagEffect,
"disable-transitions": "",
style: normalizeStyle(t20.collapseTagStyle)
}, {
default: withCtx(() => [
createBaseVNode("span", {
class: normalizeClass(t20.nsSelect.e("tags-text"))
}, " + " + toDisplayString(t20.states.selected.length - t20.maxCollapseTags), 3)
]),
_: 1
}, 8, ["size", "type", "effect", "style"])
], 2)
]),
content: withCtx(() => [
createBaseVNode("div", {
ref: "tagMenuRef",
class: normalizeClass(t20.nsSelect.e("selection"))
}, [
(openBlock(true), createElementBlock(Fragment, null, renderList(t20.collapseTagList, (p) => (openBlock(), createElementBlock("div", {
key: t20.getValueKey(p),
class: normalizeClass(t20.nsSelect.e("selected-item"))
}, [
createVNode(o, {
class: "in-tooltip",
closable: !t20.selectDisabled && !p.isDisabled,
size: t20.collapseTagSize,
type: t20.tagType,
effect: t20.tagEffect,
"disable-transitions": "",
onClose: (m) => t20.deleteTag(m, p)
}, {
default: withCtx(() => [
createBaseVNode("span", {
class: normalizeClass(t20.nsSelect.e("tags-text"))
}, [
renderSlot(t20.$slots, "label", {
label: p.currentLabel,
value: p.value
}, () => [
createTextVNode(toDisplayString(p.currentLabel), 1)
])
], 2)
]),
_: 2
}, 1032, ["closable", "size", "type", "effect", "onClose"])
], 2))), 128))
], 2)
]),
_: 3
}, 8, ["disabled", "effect", "teleported"])) : createCommentVNode("v-if", true)
]) : createCommentVNode("v-if", true),
t20.selectDisabled ? createCommentVNode("v-if", true) : (openBlock(), createElementBlock("div", {
key: 1,
class: normalizeClass([
t20.nsSelect.e("selected-item"),
t20.nsSelect.e("input-wrapper"),
t20.nsSelect.is("hidden", !t20.filterable)
])
}, [
withDirectives(createBaseVNode("input", {
id: t20.inputId,
ref: "inputRef",
"onUpdate:modelValue": (p) => t20.states.inputValue = p,
type: "text",
name: t20.name,
class: normalizeClass([t20.nsSelect.e("input"), t20.nsSelect.is(t20.selectSize)]),
disabled: t20.selectDisabled,
autocomplete: t20.autocomplete,
style: normalizeStyle(t20.inputStyle),
role: "combobox",
readonly: !t20.filterable,
spellcheck: "false",
"aria-activedescendant": ((f = t20.hoverOption) == null ? void 0 : f.id) || "",
"aria-controls": t20.contentId,
"aria-expanded": t20.dropdownMenuVisible,
"aria-label": t20.ariaLabel,
"aria-autocomplete": "none",
"aria-haspopup": "listbox",
onKeydown: [
withKeys(withModifiers((p) => t20.navigateOptions("next"), ["stop", "prevent"]), ["down"]),
withKeys(withModifiers((p) => t20.navigateOptions("prev"), ["stop", "prevent"]), ["up"]),
withKeys(withModifiers(t20.handleEsc, ["stop", "prevent"]), ["esc"]),
withKeys(withModifiers(t20.selectOption, ["stop", "prevent"]), ["enter"]),
withKeys(withModifiers(t20.deletePrevTag, ["stop"]), ["delete"])
],
onCompositionstart: t20.handleCompositionStart,
onCompositionupdate: t20.handleCompositionUpdate,
onCompositionend: t20.handleCompositionEnd,
onInput: t20.onInput,
onClick: withModifiers(t20.toggleMenu, ["stop"])
}, null, 46, ["id", "onUpdate:modelValue", "name", "disabled", "autocomplete", "readonly", "aria-activedescendant", "aria-controls", "aria-expanded", "aria-label", "onKeydown", "onCompositionstart", "onCompositionupdate", "onCompositionend", "onInput", "onClick"]), [
[vModelText, t20.states.inputValue]
]),
t20.filterable ? (openBlock(), createElementBlock("span", {
key: 0,
ref: "calculatorRef",
"aria-hidden": "true",
class: normalizeClass(t20.nsSelect.e("input-calculator")),
textContent: toDisplayString(t20.states.inputValue)
}, null, 10, ["textContent"])) : createCommentVNode("v-if", true)
], 2)),
t20.shouldShowPlaceholder ? (openBlock(), createElementBlock("div", {
key: 2,
class: normalizeClass([
t20.nsSelect.e("selected-item"),
t20.nsSelect.e("placeholder"),
t20.nsSelect.is("transparent", !t20.hasModelValue || t20.expanded && !t20.states.inputValue)
])
}, [
t20.hasModelValue ? renderSlot(t20.$slots, "label", {
key: 0,
label: t20.currentPlaceholder,
value: t20.modelValue
}, () => [
createBaseVNode("span", null, toDisplayString(t20.currentPlaceholder), 1)
]) : (openBlock(), createElementBlock("span", { key: 1 }, toDisplayString(t20.currentPlaceholder), 1))
], 2)) : createCommentVNode("v-if", true)
], 2),
createBaseVNode("div", {
ref: "suffixRef",
class: normalizeClass(t20.nsSelect.e("suffix"))
}, [
t20.iconComponent && !t20.showClose ? (openBlock(), createBlock(u, {
key: 0,
class: normalizeClass([t20.nsSelect.e("caret"), t20.nsSelect.e("icon"), t20.iconReverse])
}, {
default: withCtx(() => [
(openBlock(), createBlock(resolveDynamicComponent(t20.iconComponent)))
]),
_: 1
}, 8, ["class"])) : createCommentVNode("v-if", true),
t20.showClose && t20.clearIcon ? (openBlock(), createBlock(u, {
key: 1,
class: normalizeClass([
t20.nsSelect.e("caret"),
t20.nsSelect.e("icon"),
t20.nsSelect.e("clear")
]),
onClick: t20.handleClearClick
}, {
default: withCtx(() => [
(openBlock(), createBlock(resolveDynamicComponent(t20.clearIcon)))
]),
_: 1
}, 8, ["class", "onClick"])) : createCommentVNode("v-if", true),
t20.validateState && t20.validateIcon ? (openBlock(), createBlock(u, {
key: 2,
class: normalizeClass([t20.nsInput.e("icon"), t20.nsInput.e("validateIcon")])
}, {
default: withCtx(() => [
(openBlock(), createBlock(resolveDynamicComponent(t20.validateIcon)))
]),
_: 1
}, 8, ["class"])) : createCommentVNode("v-if", true)
], 2)
], 10, ["onClick"])
];
}),
content: withCtx(() => [
createVNode(v, { ref: "menuRef" }, {
default: withCtx(() => [
t20.$slots.header ? (openBlock(), createElementBlock("div", {
key: 0,
class: normalizeClass(t20.nsSelect.be("dropdown", "header")),
onClick: withModifiers(() => {
}, ["stop"])
}, [
renderSlot(t20.$slots, "header")
], 10, ["onClick"])) : createCommentVNode("v-if", true),
withDirectives(createVNode(d, {
id: t20.contentId,
ref: "scrollbarRef",
tag: "ul",
"wrap-class": t20.nsSelect.be("dropdown", "wrap"),
"view-class": t20.nsSelect.be("dropdown", "list"),
class: normalizeClass([t20.nsSelect.is("empty", t20.filteredOptionsCount === 0)]),
role: "listbox",
"aria-label": t20.ariaLabel,
"aria-orientation": "vertical"
}, {
default: withCtx(() => [
t20.showNewOption ? (openBlock(), createBlock(l, {
key: 0,
value: t20.states.inputValue,
created: true
}, null, 8, ["value"])) : createCommentVNode("v-if", true),
createVNode(c, null, {
default: withCtx(() => [
renderSlot(t20.$slots, "default")
]),
_: 3
})
]),
_: 3
}, 8, ["id", "wrap-class", "view-class", "class", "aria-label"]), [
[vShow, t20.states.options.size > 0 && !t20.loading]
]),
t20.$slots.loading && t20.loading ? (openBlock(), createElementBlock("div", {
key: 1,
class: normalizeClass(t20.nsSelect.be("dropdown", "loading"))
}, [
renderSlot(t20.$slots, "loading")
], 2)) : t20.loading || t20.filteredOptionsCount === 0 ? (openBlock(), createElementBlock("div", {
key: 2,
class: normalizeClass(t20.nsSelect.be("dropdown", "empty"))
}, [
renderSlot(t20.$slots, "empty", {}, () => [
createBaseVNode("span", null, toDisplayString(t20.emptyText), 1)
])
], 2)) : createCommentVNode("v-if", true),
t20.$slots.footer ? (openBlock(), createElementBlock("div", {
key: 3,
class: normalizeClass(t20.nsSelect.be("dropdown", "footer")),
onClick: withModifiers(() => {
}, ["stop"])
}, [
renderSlot(t20.$slots, "footer")
], 10, ["onClick"])) : createCommentVNode("v-if", true)
]),
_: 3
}, 512)
]),
_: 3
}, 8, ["visible", "placement", "teleported", "popper-class", "popper-options", "fallback-placements", "effect", "transition", "persistent", "append-to", "onBeforeShow", "onHide"])
], 16, ["onMouseleave"])), [
[h6, t20.handleClickOutside, t20.popperRef]
]);
}
var nS = ze(tS, [["render", rS], ["__file", "select.vue"]]);
var aS = defineComponent({
name: "ElOptionGroup",
componentName: "ElOptionGroup",
props: {
label: String,
disabled: Boolean
},
setup(t20) {
const e = He("select"), r = ref(null), n = getCurrentInstance(), a = ref([]);
provide(zh, reactive({
...toRefs(t20)
}));
const i = computed(() => a.value.some((l) => l.visible === true)), o = (l) => {
var c, d;
return ((c = l.type) == null ? void 0 : c.name) === "ElOption" && !!((d = l.component) != null && d.proxy);
}, s = (l) => {
const c = In(l), d = [];
return c.forEach((v) => {
var h6, f;
o(v) ? d.push(v.component.proxy) : (h6 = v.children) != null && h6.length ? d.push(...s(v.children)) : (f = v.component) != null && f.subTree && d.push(...s(v.component.subTree));
}), d;
}, u = () => {
a.value = s(n.subTree);
};
return onMounted(() => {
u();
}), q0(r, u, {
attributes: true,
subtree: true,
childList: true
}), {
groupRef: r,
visible: i,
ns: e
};
}
});
function iS(t20, e, r, n, a, i) {
return withDirectives((openBlock(), createElementBlock("ul", {
ref: "groupRef",
class: normalizeClass(t20.ns.be("group", "wrap"))
}, [
createBaseVNode("li", {
class: normalizeClass(t20.ns.be("group", "title"))
}, toDisplayString(t20.label), 3),
createBaseVNode("li", null, [
createBaseVNode("ul", {
class: normalizeClass(t20.ns.b("group"))
}, [
renderSlot(t20.$slots, "default")
], 2)
])
], 2)), [
[vShow, t20.visible]
]);
}
var Vh = ze(aS, [["render", iS], ["__file", "option-group.vue"]]);
var oS = $t(nS, {
Option: ec,
OptionGroup: Vh
});
var sS = xn(ec);
xn(Vh);
var lS = rt({
trigger: Ji.trigger,
placement: Fl.placement,
disabled: Ji.disabled,
visible: cr.visible,
transition: cr.transition,
popperOptions: Fl.popperOptions,
tabindex: Fl.tabindex,
content: cr.content,
popperStyle: cr.popperStyle,
popperClass: cr.popperClass,
enterable: {
...cr.enterable,
default: true
},
effect: {
...cr.effect,
default: "light"
},
teleported: cr.teleported,
title: String,
width: {
type: [String, Number],
default: 150
},
offset: {
type: Number,
default: void 0
},
showAfter: {
type: Number,
default: 0
},
hideAfter: {
type: Number,
default: 200
},
autoClose: {
type: Number,
default: 0
},
showArrow: {
type: Boolean,
default: true
},
persistent: {
type: Boolean,
default: true
},
"onUpdate:visible": {
type: Function
}
});
var uS = {
"update:visible": (t20) => Qa(t20),
"before-enter": () => true,
"before-leave": () => true,
"after-enter": () => true,
"after-leave": () => true
};
var cS = "onUpdate:visible";
var dS = defineComponent({
name: "ElPopover"
});
var fS = defineComponent({
...dS,
props: lS,
emits: uS,
setup(t20, { expose: e, emit: r }) {
const n = t20, a = computed(() => n[cS]), i = He("popover"), o = ref(), s = computed(() => {
var m;
return (m = unref(o)) == null ? void 0 : m.popperRef;
}), u = computed(() => [
{
width: Ja(n.width)
},
n.popperStyle
]), l = computed(() => [i.b(), n.popperClass, { [i.m("plain")]: !!n.content }]), c = computed(() => n.transition === `${i.namespace.value}-fade-in-linear`), d = () => {
var m;
(m = o.value) == null || m.hide();
}, v = () => {
r("before-enter");
}, h6 = () => {
r("before-leave");
}, f = () => {
r("after-enter");
}, p = () => {
r("update:visible", false), r("after-leave");
};
return e({
popperRef: s,
hide: d
}), (m, g) => (openBlock(), createBlock(unref(ko), mergeProps({
ref_key: "tooltipRef",
ref: o
}, m.$attrs, {
trigger: m.trigger,
placement: m.placement,
disabled: m.disabled,
visible: m.visible,
transition: m.transition,
"popper-options": m.popperOptions,
tabindex: m.tabindex,
content: m.content,
offset: m.offset,
"show-after": m.showAfter,
"hide-after": m.hideAfter,
"auto-close": m.autoClose,
"show-arrow": m.showArrow,
"aria-label": m.title,
effect: m.effect,
enterable: m.enterable,
"popper-class": unref(l),
"popper-style": unref(u),
teleported: m.teleported,
persistent: m.persistent,
"gpu-acceleration": unref(c),
"onUpdate:visible": unref(a),
onBeforeShow: v,
onBeforeHide: h6,
onShow: f,
onHide: p
}), {
content: withCtx(() => [
m.title ? (openBlock(), createElementBlock("div", {
key: 0,
class: normalizeClass(unref(i).e("title")),
role: "title"
}, toDisplayString(m.title), 3)) : createCommentVNode("v-if", true),
renderSlot(m.$slots, "default", {}, () => [
createTextVNode(toDisplayString(m.content), 1)
])
]),
default: withCtx(() => [
m.$slots.reference ? renderSlot(m.$slots, "reference", { key: 0 }) : createCommentVNode("v-if", true)
]),
_: 3
}, 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"]));
}
});
var vS = ze(fS, [["__file", "popover.vue"]]);
var Zd = (t20, e) => {
const r = e.arg || e.value, n = r == null ? void 0 : r.popperRef;
n && (n.triggerRef = t20);
};
var hS = {
mounted(t20, e) {
Zd(t20, e);
},
updated(t20, e) {
Zd(t20, e);
}
};
var pS = "popover";
var gS = A2(hS, pS);
var tc = $t(vS, {
directive: gS
});
var Ua = "$treeNodeId";
var Xd = function(t20, e) {
!e || e[Ua] || Object.defineProperty(e, Ua, {
value: t20.id,
enumerable: false,
configurable: false,
writable: false
});
};
var rc = function(t20, e) {
return t20 ? e[t20] : e[Ua];
};
var iu = (t20, e, r) => {
const n = t20.value.currentNode;
r();
const a = t20.value.currentNode;
n !== a && e("current-change", a ? a.data : null, a);
};
var ou = (t20) => {
let e = true, r = true, n = true;
for (let a = 0, i = t20.length; a < i; a++) {
const o = t20[a];
(o.checked !== true || o.indeterminate) && (e = false, o.disabled || (n = false)), (o.checked !== false || o.indeterminate) && (r = false);
}
return { all: e, none: r, allWithoutDisable: n, half: !e && !r };
};
var Ai = function(t20) {
if (t20.childNodes.length === 0 || t20.loading)
return;
const { all: e, none: r, half: n } = ou(t20.childNodes);
e ? (t20.checked = true, t20.indeterminate = false) : n ? (t20.checked = false, t20.indeterminate = true) : r && (t20.checked = false, t20.indeterminate = false);
const a = t20.parent;
!a || a.level === 0 || t20.store.checkStrictly || Ai(a);
};
var Ko = function(t20, e) {
const r = t20.store.props, n = t20.data || {}, a = r[e];
if (typeof a == "function")
return a(n, t20);
if (typeof a == "string")
return n[a];
if (typeof a > "u") {
const i = n[e];
return i === void 0 ? "" : i;
}
};
var mS = 0;
var fa = class _fa {
constructor(e) {
this.id = mS++, this.text = null, this.checked = false, this.indeterminate = false, this.data = null, this.expanded = false, this.parent = null, this.visible = true, this.isCurrent = false, this.canFocus = false;
for (const r in e)
va(e, r) && (this[r] = e[r]);
this.level = 0, this.loaded = false, this.childNodes = [], this.loading = false, this.parent && (this.level = this.parent.level + 1);
}
initialize() {
const e = this.store;
if (!e)
throw new Error("[Node]store is required!");
e.registerNode(this);
const r = e.props;
if (r && typeof r.isLeaf < "u") {
const i = Ko(this, "isLeaf");
typeof i == "boolean" && (this.isLeafByUser = i);
}
if (e.lazy !== true && this.data ? (this.setData(this.data), e.defaultExpandAll && (this.expanded = true, this.canFocus = true)) : this.level > 0 && e.lazy && e.defaultExpandAll && !this.isLeafByUser && this.expand(), Array.isArray(this.data) || Xd(this, this.data), !this.data)
return;
const n = e.defaultExpandedKeys, a = e.key;
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 = true), e.lazy && e._initDefaultCheckedNode(this), this.updateLeafState(), this.parent && (this.level === 1 || this.parent.expanded === true) && (this.canFocus = true);
}
setData(e) {
Array.isArray(e) || Xd(this, e), this.data = e, this.childNodes = [];
let r;
this.level === 0 && Array.isArray(this.data) ? r = this.data : r = Ko(this, "children") || [];
for (let n = 0, a = r.length; n < a; n++)
this.insertChild({ data: r[n] });
}
get label() {
return Ko(this, "label");
}
get key() {
const e = this.store.key;
return this.data ? this.data[e] : null;
}
get disabled() {
return Ko(this, "disabled");
}
get nextSibling() {
const e = this.parent;
if (e) {
const r = e.childNodes.indexOf(this);
if (r > -1)
return e.childNodes[r + 1];
}
return null;
}
get previousSibling() {
const e = this.parent;
if (e) {
const r = e.childNodes.indexOf(this);
if (r > -1)
return r > 0 ? e.childNodes[r - 1] : null;
}
return null;
}
contains(e, r = true) {
return (this.childNodes || []).some((n) => n === e || r && n.contains(e));
}
remove() {
const e = this.parent;
e && e.removeChild(this);
}
insertChild(e, r, n) {
if (!e)
throw new Error("InsertChild error: child is required.");
if (!(e instanceof _fa)) {
if (!n) {
const a = this.getChildren(true);
a.includes(e.data) || (typeof r > "u" || r < 0 ? a.push(e.data) : a.splice(r, 0, e.data));
}
Object.assign(e, {
parent: this,
store: this.store
}), e = reactive(new _fa(e)), e instanceof _fa && e.initialize();
}
e.level = this.level + 1, typeof r > "u" || r < 0 ? this.childNodes.push(e) : this.childNodes.splice(r, 0, e), this.updateLeafState();
}
insertBefore(e, r) {
let n;
r && (n = this.childNodes.indexOf(r)), this.insertChild(e, n);
}
insertAfter(e, r) {
let n;
r && (n = this.childNodes.indexOf(r), n !== -1 && (n += 1)), this.insertChild(e, n);
}
removeChild(e) {
const r = this.getChildren() || [], n = r.indexOf(e.data);
n > -1 && r.splice(n, 1);
const a = this.childNodes.indexOf(e);
a > -1 && (this.store && this.store.deregisterNode(e), e.parent = null, this.childNodes.splice(a, 1)), this.updateLeafState();
}
removeChildByData(e) {
let r = null;
for (let n = 0; n < this.childNodes.length; n++)
if (this.childNodes[n].data === e) {
r = this.childNodes[n];
break;
}
r && this.removeChild(r);
}
expand(e, r) {
const n = () => {
if (r) {
let a = this.parent;
for (; a.level > 0; )
a.expanded = true, a = a.parent;
}
this.expanded = true, e && e(), this.childNodes.forEach((a) => {
a.canFocus = true;
});
};
this.shouldLoadData() ? this.loadData((a) => {
Array.isArray(a) && (this.checked ? this.setChecked(true, true) : this.store.checkStrictly || Ai(this), n());
}) : n();
}
doCreateChildren(e, r = {}) {
e.forEach((n) => {
this.insertChild(Object.assign({ data: n }, r), void 0, true);
});
}
collapse() {
this.expanded = false, this.childNodes.forEach((e) => {
e.canFocus = false;
});
}
shouldLoadData() {
return this.store.lazy === true && this.store.load && !this.loaded;
}
updateLeafState() {
if (this.store.lazy === true && this.loaded !== true && typeof this.isLeafByUser < "u") {
this.isLeaf = this.isLeafByUser;
return;
}
const e = this.childNodes;
if (!this.store.lazy || this.store.lazy === true && this.loaded === true) {
this.isLeaf = !e || e.length === 0;
return;
}
this.isLeaf = false;
}
setChecked(e, r, n, a) {
if (this.indeterminate = e === "half", this.checked = e === true, this.store.checkStrictly)
return;
if (!(this.shouldLoadData() && !this.store.checkDescendants)) {
const { all: o, allWithoutDisable: s } = ou(this.childNodes);
!this.isLeaf && !o && s && (this.checked = false, e = false);
const u = () => {
if (r) {
const l = this.childNodes;
for (let v = 0, h6 = l.length; v < h6; v++) {
const f = l[v];
a = a || e !== false;
const p = f.disabled ? f.checked : a;
f.setChecked(p, r, true, a);
}
const { half: c, all: d } = ou(l);
d || (this.checked = d, this.indeterminate = c);
}
};
if (this.shouldLoadData()) {
this.loadData(() => {
u(), Ai(this);
}, {
checked: e !== false
});
return;
} else
u();
}
const i = this.parent;
!i || i.level === 0 || n || Ai(i);
}
getChildren(e = false) {
if (this.level === 0)
return this.data;
const r = this.data;
if (!r)
return null;
const n = this.store.props;
let a = "children";
return n && (a = n.children || "children"), r[a] === void 0 && (r[a] = null), e && !r[a] && (r[a] = []), r[a];
}
updateChildren() {
const e = this.getChildren() || [], r = this.childNodes.map((i) => i.data), n = {}, a = [];
e.forEach((i, o) => {
const s = i[Ua];
!!s && r.findIndex((l) => l[Ua] === s) >= 0 ? n[s] = { index: o, data: i } : a.push({ index: o, data: i });
}), this.store.lazy || r.forEach((i) => {
n[i[Ua]] || this.removeChildByData(i);
}), a.forEach(({ index: i, data: o }) => {
this.insertChild({ data: o }, i);
}), this.updateLeafState();
}
loadData(e, r = {}) {
if (this.store.lazy === true && this.store.load && !this.loaded && (!this.loading || Object.keys(r).length)) {
this.loading = true;
const n = (i) => {
this.childNodes = [], this.doCreateChildren(i, r), this.loaded = true, this.loading = false, this.updateLeafState(), e && e.call(this, i);
}, a = () => {
this.loading = false;
};
this.store.load(this, n, a);
} else
e && e.call(this);
}
eachNode(e) {
const r = [this];
for (; r.length; ) {
const n = r.shift();
r.unshift(...n.childNodes), e(n);
}
}
reInitChecked() {
this.store.checkStrictly || Ai(this);
}
};
var yS = class {
constructor(e) {
this.currentNode = null, this.currentNodeKey = null;
for (const r in e)
va(e, r) && (this[r] = e[r]);
this.nodesMap = {};
}
initialize() {
if (this.root = new fa({
data: this.data,
store: this
}), this.root.initialize(), this.lazy && this.load) {
const e = this.load;
e(this.root, (r) => {
this.root.doCreateChildren(r), this._initDefaultCheckedNodes();
});
} else
this._initDefaultCheckedNodes();
}
filter(e) {
const r = this.filterNodeMethod, n = this.lazy, a = function(i) {
const o = i.root ? i.root.childNodes : i.childNodes;
if (o.forEach((s) => {
s.visible = r.call(s, e, s.data, s), a(s);
}), !i.visible && o.length) {
let s = true;
s = !o.some((u) => u.visible), i.root ? i.root.visible = s === false : i.visible = s === false;
}
e && i.visible && !i.isLeaf && (!n || i.loaded) && i.expand();
};
a(this);
}
setData(e) {
e !== this.root.data ? (this.nodesMap = {}, this.root.setData(e), this._initDefaultCheckedNodes()) : this.root.updateChildren();
}
getNode(e) {
if (e instanceof fa)
return e;
const r = Ht(e) ? rc(this.key, e) : e;
return this.nodesMap[r] || null;
}
insertBefore(e, r) {
const n = this.getNode(r);
n.parent.insertBefore({ data: e }, n);
}
insertAfter(e, r) {
const n = this.getNode(r);
n.parent.insertAfter({ data: e }, n);
}
remove(e) {
const r = this.getNode(e);
r && r.parent && (r === this.currentNode && (this.currentNode = null), r.parent.removeChild(r));
}
append(e, r) {
const n = ks(r) ? this.root : this.getNode(r);
n && n.insertChild({ data: e });
}
_initDefaultCheckedNodes() {
const e = this.defaultCheckedKeys || [], r = this.nodesMap;
e.forEach((n) => {
const a = r[n];
a && a.setChecked(true, !this.checkStrictly);
});
}
_initDefaultCheckedNode(e) {
(this.defaultCheckedKeys || []).includes(e.key) && e.setChecked(true, !this.checkStrictly);
}
setDefaultCheckedKey(e) {
e !== this.defaultCheckedKeys && (this.defaultCheckedKeys = e, this._initDefaultCheckedNodes());
}
registerNode(e) {
const r = this.key;
!e || !e.data || (r ? e.key !== void 0 && (this.nodesMap[e.key] = e) : this.nodesMap[e.id] = e);
}
deregisterNode(e) {
!this.key || !e || !e.data || (e.childNodes.forEach((n) => {
this.deregisterNode(n);
}), delete this.nodesMap[e.key]);
}
getCheckedNodes(e = false, r = false) {
const n = [], a = function(i) {
(i.root ? i.root.childNodes : i.childNodes).forEach((s) => {
(s.checked || r && s.indeterminate) && (!e || e && s.isLeaf) && n.push(s.data), a(s);
});
};
return a(this), n;
}
getCheckedKeys(e = false) {
return this.getCheckedNodes(e).map((r) => (r || {})[this.key]);
}
getHalfCheckedNodes() {
const e = [], r = function(n) {
(n.root ? n.root.childNodes : n.childNodes).forEach((i) => {
i.indeterminate && e.push(i.data), r(i);
});
};
return r(this), e;
}
getHalfCheckedKeys() {
return this.getHalfCheckedNodes().map((e) => (e || {})[this.key]);
}
_getAllNodes() {
const e = [], r = this.nodesMap;
for (const n in r)
va(r, n) && e.push(r[n]);
return e;
}
updateChildren(e, r) {
const n = this.nodesMap[e];
if (!n)
return;
const a = n.childNodes;
for (let i = a.length - 1; i >= 0; i--) {
const o = a[i];
this.remove(o.data);
}
for (let i = 0, o = r.length; i < o; i++) {
const s = r[i];
this.append(s, n.data);
}
}
_setCheckedKeys(e, r = false, n) {
const a = this._getAllNodes().sort((u, l) => u.level - l.level), i = /* @__PURE__ */ Object.create(null), o = Object.keys(n);
a.forEach((u) => u.setChecked(false, false));
const s = (u) => {
u.childNodes.forEach((l) => {
var c;
i[l.data[e]] = true, (c = l.childNodes) != null && c.length && s(l);
});
};
for (let u = 0, l = a.length; u < l; u++) {
const c = a[u], d = c.data[e].toString();
if (!o.includes(d)) {
c.checked && !i[d] && c.setChecked(false, false);
continue;
}
if (c.childNodes.length && s(c), c.isLeaf || this.checkStrictly) {
c.setChecked(true, false);
continue;
}
if (c.setChecked(true, true), r) {
c.setChecked(false, false);
const h6 = function(f) {
f.childNodes.forEach((m) => {
m.isLeaf || m.setChecked(false, false), h6(m);
});
};
h6(c);
}
}
}
setCheckedNodes(e, r = false) {
const n = this.key, a = {};
e.forEach((i) => {
a[(i || {})[n]] = true;
}), this._setCheckedKeys(n, r, a);
}
setCheckedKeys(e, r = false) {
this.defaultCheckedKeys = e;
const n = this.key, a = {};
e.forEach((i) => {
a[i] = true;
}), this._setCheckedKeys(n, r, a);
}
setDefaultExpandedKeys(e) {
e = e || [], this.defaultExpandedKeys = e, e.forEach((r) => {
const n = this.getNode(r);
n && n.expand(null, this.autoExpandParent);
});
}
setChecked(e, r, n) {
const a = this.getNode(e);
a && a.setChecked(!!r, n);
}
getCurrentNode() {
return this.currentNode;
}
setCurrentNode(e) {
const r = this.currentNode;
r && (r.isCurrent = false), this.currentNode = e, this.currentNode.isCurrent = true;
}
setUserCurrentNode(e, r = true) {
const n = e[this.key], a = this.nodesMap[n];
this.setCurrentNode(a), r && this.currentNode.level > 1 && this.currentNode.parent.expand(null, true);
}
setCurrentNodeKey(e, r = true) {
if (e == null) {
this.currentNode && (this.currentNode.isCurrent = false), this.currentNode = null;
return;
}
const n = this.getNode(e);
n && (this.setCurrentNode(n), r && this.currentNode.level > 1 && this.currentNode.parent.expand(null, true));
}
};
var bS = defineComponent({
name: "ElTreeNodeContent",
props: {
node: {
type: Object,
required: true
},
renderContent: Function
},
setup(t20) {
const e = He("tree"), r = inject("NodeInstance"), n = inject("RootTree");
return () => {
const a = t20.node, { data: i, store: o } = a;
return t20.renderContent ? t20.renderContent(h, { _self: r, node: a, data: i, store: o }) : renderSlot(n.ctx.slots, "default", { node: a, data: i }, () => [
h("span", { class: e.be("node", "label") }, [a.label])
]);
};
}
});
var wS = ze(bS, [["__file", "tree-node-content.vue"]]);
function Hh(t20) {
const e = inject("TreeNodeMap", null), r = {
treeNodeExpand: (n) => {
t20.node !== n && t20.node.collapse();
},
children: []
};
return e && e.children.push(r), provide("TreeNodeMap", r), {
broadcastExpanded: (n) => {
if (t20.accordion)
for (const a of r.children)
a.treeNodeExpand(n);
}
};
}
var qh = Symbol("dragEvents");
function xS({ props: t20, ctx: e, el$: r, dropIndicator$: n, store: a }) {
const i = He("tree"), o = ref({
showDropIndicator: false,
draggingNode: null,
dropNode: null,
allowDrop: true,
dropType: null
});
return provide(qh, {
treeNodeDragStart: ({ event: c, treeNode: d }) => {
if (typeof t20.allowDrag == "function" && !t20.allowDrag(d.node))
return c.preventDefault(), false;
c.dataTransfer.effectAllowed = "move";
try {
c.dataTransfer.setData("text/plain", "");
} catch {
}
o.value.draggingNode = d, e.emit("node-drag-start", d.node, c);
},
treeNodeDragOver: ({ event: c, treeNode: d }) => {
const v = d, h6 = o.value.dropNode;
h6 && h6.node.id !== v.node.id && ca(h6.$el, i.is("drop-inner"));
const f = o.value.draggingNode;
if (!f || !v)
return;
let p = true, m = true, g = true, y = true;
typeof t20.allowDrop == "function" && (p = t20.allowDrop(f.node, v.node, "prev"), y = m = t20.allowDrop(f.node, v.node, "inner"), g = t20.allowDrop(f.node, v.node, "next")), c.dataTransfer.dropEffect = m || p || g ? "move" : "none", (p || m || g) && (h6 == null ? void 0 : h6.node.id) !== v.node.id && (h6 && e.emit("node-drag-leave", f.node, h6.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 = false), v.node.previousSibling === f.node && (p = false), v.node.contains(f.node, false) && (m = false), (f.node === v.node || f.node.contains(v.node)) && (p = false, m = false, g = false);
const b = v.$el.querySelector(`.${i.be("node", "content")}`).getBoundingClientRect(), w = r.value.getBoundingClientRect();
let C;
const E = p ? m ? 0.25 : g ? 0.45 : 1 : -1, x = g ? m ? 0.75 : p ? 0.55 : 0 : 1;
let T = -9999;
const k = c.clientY - b.top;
k < b.height * E ? C = "before" : k > b.height * x ? C = "after" : m ? C = "inner" : C = "none";
const _ = v.$el.querySelector(`.${i.be("node", "expand-icon")}`).getBoundingClientRect(), D = n.value;
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);
},
treeNodeDragEnd: (c) => {
const { draggingNode: d, dropType: v, dropNode: h6 } = o.value;
if (c.preventDefault(), c.dataTransfer && (c.dataTransfer.dropEffect = "move"), d && h6) {
const f = { data: d.node.data };
v !== "none" && d.node.remove(), v === "before" ? h6.node.parent.insertBefore(f, h6.node) : v === "after" ? h6.node.parent.insertAfter(f, h6.node) : v === "inner" && h6.node.insertChild(f), v !== "none" && (a.value.registerNode(f), a.value.key && d.node.eachNode((p) => {
var m;
(m = a.value.nodesMap[p.data[a.value.key]]) == null || m.setChecked(p.checked, !a.value.checkStrictly);
})), ca(h6.$el, i.is("drop-inner")), e.emit("node-drag-end", d.node, h6.node, v, c), v !== "none" && e.emit("node-drop", d.node, h6.node, v, c);
}
d && !h6 && e.emit("node-drag-end", d.node, null, v, c), o.value.showDropIndicator = false, o.value.draggingNode = null, o.value.dropNode = null, o.value.allowDrop = true;
}
}), {
dragState: o
};
}
var CS = defineComponent({
name: "ElTreeNode",
components: {
ElCollapseTransition: ek,
ElCheckbox: ME,
NodeContent: wS,
ElIcon: Vt,
Loading: Au
},
props: {
node: {
type: fa,
default: () => ({})
},
props: {
type: Object,
default: () => ({})
},
accordion: Boolean,
renderContent: Function,
renderAfterExpand: Boolean,
showCheckbox: {
type: Boolean,
default: false
}
},
emits: ["node-expand"],
setup(t20, e) {
const r = He("tree"), { broadcastExpanded: n } = Hh(t20), a = inject("RootTree"), i = ref(false), o = ref(false), s = ref(null), u = ref(null), l = ref(null), c = inject(qh), d = getCurrentInstance();
provide("NodeInstance", d), a || Dt("Tree", "Can not find node's tree."), t20.node.expanded && (i.value = true, o.value = true);
const v = a.props.props.children || "children";
watch(() => {
const k = t20.node.data[v];
return k && [...k];
}, () => {
t20.node.updateChildren();
}), watch(() => t20.node.indeterminate, (k) => {
p(t20.node.checked, k);
}), watch(() => t20.node.checked, (k) => {
p(k, t20.node.indeterminate);
}), watch(() => t20.node.childNodes.length, () => t20.node.reInitChecked()), watch(() => t20.node.expanded, (k) => {
nextTick(() => i.value = k), k && (o.value = true);
});
const h6 = (k) => rc(a.props.nodeKey, k.data), f = (k) => {
const _ = t20.props.class;
if (!_)
return {};
let D;
if (lr(_)) {
const { data: O } = k;
D = _(O, k);
} else
D = _;
return tr(D) ? { [D]: true } : D;
}, p = (k, _) => {
(s.value !== k || u.value !== _) && a.ctx.emit("check-change", t20.node.data, k, _), s.value = k, u.value = _;
}, m = (k) => {
iu(a.store, a.ctx.emit, () => a.store.value.setCurrentNode(t20.node)), a.currentNode.value = t20.node, a.props.expandOnClickNode && y(), a.props.checkOnClickNode && !t20.node.disabled && b(null, {
target: { checked: !t20.node.checked }
}), a.ctx.emit("node-click", t20.node.data, t20.node, d, k);
}, g = (k) => {
a.instance.vnode.props.onNodeContextmenu && (k.stopPropagation(), k.preventDefault()), a.ctx.emit("node-contextmenu", k, t20.node.data, t20.node, d);
}, y = () => {
t20.node.isLeaf || (i.value ? (a.ctx.emit("node-collapse", t20.node.data, t20.node, d), t20.node.collapse()) : t20.node.expand(() => {
e.emit("node-expand", t20.node.data, t20.node, d);
}));
}, b = (k, _) => {
t20.node.setChecked(_.target.checked, !a.props.checkStrictly), nextTick(() => {
const D = a.store.value;
a.ctx.emit("check", t20.node.data, {
checkedNodes: D.getCheckedNodes(),
checkedKeys: D.getCheckedKeys(),
halfCheckedNodes: D.getHalfCheckedNodes(),
halfCheckedKeys: D.getHalfCheckedKeys()
});
});
};
return {
ns: r,
node$: l,
tree: a,
expanded: i,
childNodeRendered: o,
oldChecked: s,
oldIndeterminate: u,
getNodeKey: h6,
getNodeClass: f,
handleSelectChange: p,
handleClick: m,
handleContextMenu: g,
handleExpandIconClick: y,
handleCheckChange: b,
handleChildNodeExpand: (k, _, D) => {
n(_), a.ctx.emit("node-expand", k, _, D);
},
handleDragStart: (k) => {
a.props.draggable && c.treeNodeDragStart({ event: k, treeNode: t20 });
},
handleDragOver: (k) => {
k.preventDefault(), a.props.draggable && c.treeNodeDragOver({
event: k,
treeNode: { $el: l.value, node: t20.node }
});
},
handleDrop: (k) => {
k.preventDefault();
},
handleDragEnd: (k) => {
a.props.draggable && c.treeNodeDragEnd(k);
},
CaretRight: n2
};
}
});
function ES(t20, e, r, n, a, i) {
const o = resolveComponent("el-icon"), s = resolveComponent("el-checkbox"), u = resolveComponent("loading"), l = resolveComponent("node-content"), c = resolveComponent("el-tree-node"), d = resolveComponent("el-collapse-transition");
return withDirectives((openBlock(), createElementBlock("div", {
ref: "node$",
class: normalizeClass([
t20.ns.b("node"),
t20.ns.is("expanded", t20.expanded),
t20.ns.is("current", t20.node.isCurrent),
t20.ns.is("hidden", !t20.node.visible),
t20.ns.is("focusable", !t20.node.disabled),
t20.ns.is("checked", !t20.node.disabled && t20.node.checked),
t20.getNodeClass(t20.node)
]),
role: "treeitem",
tabindex: "-1",
"aria-expanded": t20.expanded,
"aria-disabled": t20.node.disabled,
"aria-checked": t20.node.checked,
draggable: t20.tree.props.draggable,
"data-key": t20.getNodeKey(t20.node),
onClick: withModifiers(t20.handleClick, ["stop"]),
onContextmenu: t20.handleContextMenu,
onDragstart: withModifiers(t20.handleDragStart, ["stop"]),
onDragover: withModifiers(t20.handleDragOver, ["stop"]),
onDragend: withModifiers(t20.handleDragEnd, ["stop"]),
onDrop: withModifiers(t20.handleDrop, ["stop"])
}, [
createBaseVNode("div", {
class: normalizeClass(t20.ns.be("node", "content")),
style: normalizeStyle({ paddingLeft: (t20.node.level - 1) * t20.tree.props.indent + "px" })
}, [
t20.tree.props.icon || t20.CaretRight ? (openBlock(), createBlock(o, {
key: 0,
class: normalizeClass([
t20.ns.be("node", "expand-icon"),
t20.ns.is("leaf", t20.node.isLeaf),
{
expanded: !t20.node.isLeaf && t20.expanded
}
]),
onClick: withModifiers(t20.handleExpandIconClick, ["stop"])
}, {
default: withCtx(() => [
(openBlock(), createBlock(resolveDynamicComponent(t20.tree.props.icon || t20.CaretRight)))
]),
_: 1
}, 8, ["class", "onClick"])) : createCommentVNode("v-if", true),
t20.showCheckbox ? (openBlock(), createBlock(s, {
key: 1,
"model-value": t20.node.checked,
indeterminate: t20.node.indeterminate,
disabled: !!t20.node.disabled,
onClick: withModifiers(() => {
}, ["stop"]),
onChange: t20.handleCheckChange
}, null, 8, ["model-value", "indeterminate", "disabled", "onClick", "onChange"])) : createCommentVNode("v-if", true),
t20.node.loading ? (openBlock(), createBlock(o, {
key: 2,
class: normalizeClass([t20.ns.be("node", "loading-icon"), t20.ns.is("loading")])
}, {
default: withCtx(() => [
createVNode(u)
]),
_: 1
}, 8, ["class"])) : createCommentVNode("v-if", true),
createVNode(l, {
node: t20.node,
"render-content": t20.renderContent
}, null, 8, ["node", "render-content"])
], 6),
createVNode(d, null, {
default: withCtx(() => [
!t20.renderAfterExpand || t20.childNodeRendered ? withDirectives((openBlock(), createElementBlock("div", {
key: 0,
class: normalizeClass(t20.ns.be("node", "children")),
role: "group",
"aria-expanded": t20.expanded
}, [
(openBlock(true), createElementBlock(Fragment, null, renderList(t20.node.childNodes, (v) => (openBlock(), createBlock(c, {
key: t20.getNodeKey(v),
"render-content": t20.renderContent,
"render-after-expand": t20.renderAfterExpand,
"show-checkbox": t20.showCheckbox,
node: v,
accordion: t20.accordion,
props: t20.props,
onNodeExpand: t20.handleChildNodeExpand
}, null, 8, ["render-content", "render-after-expand", "show-checkbox", "node", "accordion", "props", "onNodeExpand"]))), 128))
], 10, ["aria-expanded"])), [
[vShow, t20.expanded]
]) : createCommentVNode("v-if", true)
]),
_: 1
})
], 42, ["aria-expanded", "aria-disabled", "aria-checked", "draggable", "data-key", "onClick", "onContextmenu", "onDragstart", "onDragover", "onDragend", "onDrop"])), [
[vShow, t20.node.visible]
]);
}
var kS = ze(CS, [["render", ES], ["__file", "tree-node.vue"]]);
function SS({ el$: t20 }, e) {
const r = He("tree"), n = shallowRef([]), a = shallowRef([]);
onMounted(() => {
o();
}), onUpdated(() => {
n.value = Array.from(t20.value.querySelectorAll("[role=treeitem]")), a.value = Array.from(t20.value.querySelectorAll("input[type=checkbox]"));
}), watch(a, (s) => {
s.forEach((u) => {
u.setAttribute("tabindex", "-1");
});
}), kr(t20, "keydown", (s) => {
const u = s.target;
if (!u.className.includes(r.b("node")))
return;
const l = s.code;
n.value = Array.from(t20.value.querySelectorAll(`.${r.is("focusable")}[role=treeitem]`));
const c = n.value.indexOf(u);
let d;
if ([Lt.up, Lt.down].includes(l)) {
if (s.preventDefault(), l === Lt.up) {
d = c === -1 ? 0 : c !== 0 ? c - 1 : n.value.length - 1;
const h6 = d;
for (; !e.value.getNode(n.value[d].dataset.key).canFocus; ) {
if (d--, d === h6) {
d = -1;
break;
}
d < 0 && (d = n.value.length - 1);
}
} else {
d = c === -1 ? 0 : c < n.value.length - 1 ? c + 1 : 0;
const h6 = d;
for (; !e.value.getNode(n.value[d].dataset.key).canFocus; ) {
if (d++, d === h6) {
d = -1;
break;
}
d >= n.value.length && (d = 0);
}
}
d !== -1 && n.value[d].focus();
}
[Lt.left, Lt.right].includes(l) && (s.preventDefault(), u.click());
const v = u.querySelector('[type="checkbox"]');
[Lt.enter, Lt.space].includes(l) && v && (s.preventDefault(), v.click());
});
const o = () => {
var s;
n.value = Array.from(t20.value.querySelectorAll(`.${r.is("focusable")}[role=treeitem]`)), a.value = Array.from(t20.value.querySelectorAll("input[type=checkbox]"));
const u = t20.value.querySelectorAll(`.${r.is("checked")}[role=treeitem]`);
if (u.length) {
u[0].setAttribute("tabindex", "0");
return;
}
(s = n.value[0]) == null || s.setAttribute("tabindex", "0");
};
}
var TS = defineComponent({
name: "ElTree",
components: { ElTreeNode: kS },
props: {
data: {
type: Array,
default: () => []
},
emptyText: {
type: String
},
renderAfterExpand: {
type: Boolean,
default: true
},
nodeKey: String,
checkStrictly: Boolean,
defaultExpandAll: Boolean,
expandOnClickNode: {
type: Boolean,
default: true
},
checkOnClickNode: Boolean,
checkDescendants: {
type: Boolean,
default: false
},
autoExpandParent: {
type: Boolean,
default: true
},
defaultCheckedKeys: Array,
defaultExpandedKeys: Array,
currentNodeKey: [String, Number],
renderContent: Function,
showCheckbox: {
type: Boolean,
default: false
},
draggable: {
type: Boolean,
default: false
},
allowDrag: Function,
allowDrop: Function,
props: {
type: Object,
default: () => ({
children: "children",
label: "label",
disabled: "disabled"
})
},
lazy: {
type: Boolean,
default: false
},
highlightCurrent: Boolean,
load: Function,
filterNodeMethod: Function,
accordion: Boolean,
indent: {
type: Number,
default: 18
},
icon: {
type: Hn
}
},
emits: [
"check-change",
"current-change",
"node-click",
"node-contextmenu",
"node-collapse",
"node-expand",
"check",
"node-drag-start",
"node-drag-end",
"node-drop",
"node-drag-leave",
"node-drag-enter",
"node-drag-over"
],
setup(t20, e) {
const { t: r } = yo(), n = He("tree"), a = inject(To, null), i = ref(new yS({
key: t20.nodeKey,
data: t20.data,
lazy: t20.lazy,
props: t20.props,
load: t20.load,
currentNodeKey: t20.currentNodeKey,
checkStrictly: t20.checkStrictly,
checkDescendants: t20.checkDescendants,
defaultCheckedKeys: t20.defaultCheckedKeys,
defaultExpandedKeys: t20.defaultExpandedKeys,
autoExpandParent: t20.autoExpandParent,
defaultExpandAll: t20.defaultExpandAll,
filterNodeMethod: t20.filterNodeMethod
}));
i.value.initialize();
const o = ref(i.value.root), s = ref(null), u = ref(null), l = ref(null), { broadcastExpanded: c } = Hh(t20), { dragState: d } = xS({
props: t20,
ctx: e,
el$: u,
dropIndicator$: l,
store: i
});
SS({ el$: u }, i);
const v = computed(() => {
const { childNodes: A } = o.value, R = a ? a.hasFilteredOptions !== 0 : false;
return (!A || A.length === 0 || A.every(({ visible: K10 }) => !K10)) && !R;
});
watch(() => t20.currentNodeKey, (A) => {
i.value.setCurrentNodeKey(A);
}), watch(() => t20.defaultCheckedKeys, (A) => {
i.value.setDefaultCheckedKey(A);
}), watch(() => t20.defaultExpandedKeys, (A) => {
i.value.setDefaultExpandedKeys(A);
}), watch(() => t20.data, (A) => {
i.value.setData(A);
}, { deep: true }), watch(() => t20.checkStrictly, (A) => {
i.value.checkStrictly = A;
});
const h6 = (A) => {
if (!t20.filterNodeMethod)
throw new Error("[Tree] filterNodeMethod is required when filter");
i.value.filter(A);
}, f = (A) => rc(t20.nodeKey, A.data), p = (A) => {
if (!t20.nodeKey)
throw new Error("[Tree] nodeKey is required in getNodePath");
const R = i.value.getNode(A);
if (!R)
return [];
const K10 = [R.data];
let H = R.parent;
for (; H && H !== o.value; )
K10.push(H.data), H = H.parent;
return K10.reverse();
}, m = (A, R) => i.value.getCheckedNodes(A, R), g = (A) => i.value.getCheckedKeys(A), y = () => {
const A = i.value.getCurrentNode();
return A ? A.data : null;
}, b = () => {
if (!t20.nodeKey)
throw new Error("[Tree] nodeKey is required in getCurrentKey");
const A = y();
return A ? A[t20.nodeKey] : null;
}, w = (A, R) => {
if (!t20.nodeKey)
throw new Error("[Tree] nodeKey is required in setCheckedNodes");
i.value.setCheckedNodes(A, R);
}, C = (A, R) => {
if (!t20.nodeKey)
throw new Error("[Tree] nodeKey is required in setCheckedKeys");
i.value.setCheckedKeys(A, R);
}, E = (A, R, K10) => {
i.value.setChecked(A, R, K10);
}, x = () => i.value.getHalfCheckedNodes(), T = () => i.value.getHalfCheckedKeys(), k = (A, R = true) => {
if (!t20.nodeKey)
throw new Error("[Tree] nodeKey is required in setCurrentNode");
iu(i, e.emit, () => {
c(A), i.value.setUserCurrentNode(A, R);
});
}, _ = (A, R = true) => {
if (!t20.nodeKey)
throw new Error("[Tree] nodeKey is required in setCurrentKey");
iu(i, e.emit, () => {
c(), i.value.setCurrentNodeKey(A, R);
});
}, D = (A) => i.value.getNode(A), O = (A) => {
i.value.remove(A);
}, I = (A, R) => {
i.value.append(A, R);
}, L = (A, R) => {
i.value.insertBefore(A, R);
}, B = (A, R) => {
i.value.insertAfter(A, R);
}, F = (A, R, K10) => {
c(R), e.emit("node-expand", A, R, K10);
}, M = (A, R) => {
if (!t20.nodeKey)
throw new Error("[Tree] nodeKey is required in updateKeyChild");
i.value.updateChildren(A, R);
};
return provide("RootTree", {
ctx: e,
props: t20,
store: i,
root: o,
currentNode: s,
instance: getCurrentInstance()
}), provide(Qi, void 0), {
ns: n,
store: i,
root: o,
currentNode: s,
dragState: d,
el$: u,
dropIndicator$: l,
isEmpty: v,
filter: h6,
getNodeKey: f,
getNodePath: p,
getCheckedNodes: m,
getCheckedKeys: g,
getCurrentNode: y,
getCurrentKey: b,
setCheckedNodes: w,
setCheckedKeys: C,
setChecked: E,
getHalfCheckedNodes: x,
getHalfCheckedKeys: T,
setCurrentNode: k,
setCurrentKey: _,
t: r,
getNode: D,
remove: O,
append: I,
insertBefore: L,
insertAfter: B,
handleNodeExpand: F,
updateKeyChildren: M
};
}
});
function _S(t20, e, r, n, a, i) {
const o = resolveComponent("el-tree-node");
return openBlock(), createElementBlock("div", {
ref: "el$",
class: normalizeClass([
t20.ns.b(),
t20.ns.is("dragging", !!t20.dragState.draggingNode),
t20.ns.is("drop-not-allow", !t20.dragState.allowDrop),
t20.ns.is("drop-inner", t20.dragState.dropType === "inner"),
{ [t20.ns.m("highlight-current")]: t20.highlightCurrent }
]),
role: "tree"
}, [
(openBlock(true), createElementBlock(Fragment, null, renderList(t20.root.childNodes, (s) => (openBlock(), createBlock(o, {
key: t20.getNodeKey(s),
node: s,
props: t20.props,
accordion: t20.accordion,
"render-after-expand": t20.renderAfterExpand,
"show-checkbox": t20.showCheckbox,
"render-content": t20.renderContent,
onNodeExpand: t20.handleNodeExpand
}, null, 8, ["node", "props", "accordion", "render-after-expand", "show-checkbox", "render-content", "onNodeExpand"]))), 128)),
t20.isEmpty ? (openBlock(), createElementBlock("div", {
key: 0,
class: normalizeClass(t20.ns.e("empty-block"))
}, [
renderSlot(t20.$slots, "empty", {}, () => {
var s;
return [
createBaseVNode("span", {
class: normalizeClass(t20.ns.e("empty-text"))
}, toDisplayString((s = t20.emptyText) != null ? s : t20.t("el.tree.emptyText")), 3)
];
})
], 2)) : createCommentVNode("v-if", true),
withDirectives(createBaseVNode("div", {
ref: "dropIndicator$",
class: normalizeClass(t20.ns.e("drop-indicator"))
}, null, 2), [
[vShow, t20.dragState.showDropIndicator]
])
], 2);
}
var DS = ze(TS, [["render", _S], ["__file", "tree.vue"]]);
var PS = $t(DS);
function OS(t20) {
let e;
const r = ref(false), n = reactive({
...t20,
originalPosition: "",
originalOverflow: "",
visible: false
});
function a(v) {
n.text = v;
}
function i() {
const v = n.parent, h6 = d.ns;
if (!v.vLoadingAddClassList) {
let f = v.getAttribute("loading-number");
f = Number.parseInt(f) - 1, f ? v.setAttribute("loading-number", f.toString()) : (ca(v, h6.bm("parent", "relative")), v.removeAttribute("loading-number")), ca(v, h6.bm("parent", "hidden"));
}
o(), c.unmount();
}
function o() {
var v, h6;
(h6 = (v = d.$el) == null ? void 0 : v.parentNode) == null || h6.removeChild(d.$el);
}
function s() {
var v;
t20.beforeClose && !t20.beforeClose() || (r.value = true, clearTimeout(e), e = setTimeout(u, 400), n.visible = false, (v = t20.closed) == null || v.call(t20));
}
function u() {
if (!r.value)
return;
const v = n.parent;
r.value = false, v.vLoadingAddClassList = void 0, i();
}
const l = defineComponent({
name: "ElLoading",
setup(v, { expose: h6 }) {
const { ns: f, zIndex: p } = vx("loading");
return h6({
ns: f,
zIndex: p
}), () => {
const m = n.spinner || n.svg, g = h("svg", {
class: "circular",
viewBox: n.svgViewBox ? n.svgViewBox : "0 0 50 50",
...m ? { innerHTML: m } : {}
}, [
h("circle", {
class: "path",
cx: "25",
cy: "25",
r: "20",
fill: "none"
})
]), y = n.text ? h("p", { class: f.b("text") }, [n.text]) : void 0;
return h(Transition, {
name: f.b("fade"),
onAfterLeave: u
}, {
default: withCtx(() => [
withDirectives(createVNode("div", {
style: {
backgroundColor: n.background || ""
},
class: [
f.b("mask"),
n.customClass,
n.fullscreen ? "is-fullscreen" : ""
]
}, [
h("div", {
class: f.b("spinner")
}, [g, y])
]), [[vShow, n.visible]])
])
});
};
}
}), c = createApp(l), d = c.mount(document.createElement("div"));
return {
...toRefs(n),
setText: a,
removeElLoadingChild: o,
close: s,
handleAfterLeave: u,
vm: d,
get $el() {
return d.$el;
}
};
}
var Uo;
var LS = function(t20 = {}) {
if (!_t)
return;
const e = FS(t20);
if (e.fullscreen && Uo)
return Uo;
const r = OS({
...e,
closed: () => {
var a;
(a = e.closed) == null || a.call(e), e.fullscreen && (Uo = void 0);
}
});
IS(e, e.parent, r), jd(e, e.parent, r), e.parent.vLoadingAddClassList = () => jd(e, e.parent, r);
let n = e.parent.getAttribute("loading-number");
return n ? n = `${Number.parseInt(n) + 1}` : n = "1", e.parent.setAttribute("loading-number", n), e.parent.appendChild(r.$el), nextTick(() => r.visible.value = e.visible), e.fullscreen && (Uo = r), r;
};
var FS = (t20) => {
var e, r, n, a;
let i;
return tr(t20.target) ? i = (e = document.querySelector(t20.target)) != null ? e : document.body : i = t20.target || document.body, {
parent: i === document.body || t20.body ? document.body : i,
background: t20.background || "",
svg: t20.svg || "",
svgViewBox: t20.svgViewBox || "",
spinner: t20.spinner || false,
text: t20.text || "",
fullscreen: i === document.body && ((r = t20.fullscreen) != null ? r : true),
lock: (n = t20.lock) != null ? n : false,
customClass: t20.customClass || "",
visible: (a = t20.visible) != null ? a : true,
beforeClose: t20.beforeClose,
closed: t20.closed,
target: i
};
};
var IS = async (t20, e, r) => {
const { nextZIndex: n } = r.vm.zIndex || r.vm._.exposed.zIndex, a = {};
if (t20.fullscreen)
r.originalPosition.value = Ti(document.body, "position"), r.originalOverflow.value = Ti(document.body, "overflow"), a.zIndex = n();
else if (t20.parent === document.body) {
r.originalPosition.value = Ti(document.body, "position"), await nextTick();
for (const i of ["top", "left"]) {
const o = i === "top" ? "scrollTop" : "scrollLeft";
a[i] = `${t20.target.getBoundingClientRect()[i] + document.body[o] + document.documentElement[o] - Number.parseInt(Ti(document.body, `margin-${i}`), 10)}px`;
}
for (const i of ["height", "width"])
a[i] = `${t20.target.getBoundingClientRect()[i]}px`;
} else
r.originalPosition.value = Ti(e, "position");
for (const [i, o] of Object.entries(a))
r.$el.style[i] = o;
};
var jd = (t20, e, r) => {
const n = r.vm.ns || r.vm._.exposed.ns;
["absolute", "fixed", "sticky"].includes(r.originalPosition.value) ? ca(e, n.bm("parent", "relative")) : Ql(e, n.bm("parent", "relative")), t20.fullscreen && t20.lock ? Ql(e, n.bm("parent", "hidden")) : ca(e, n.bm("parent", "hidden"));
};
var ls = Symbol("ElLoading");
var Qd = (t20, e) => {
var r, n, a, i;
const o = e.instance, s = (v) => Ht(e.value) ? e.value[v] : void 0, u = (v) => {
const h6 = tr(v) && (o == null ? void 0 : o[v]) || v;
return h6 && ref(h6);
}, l = (v) => u(s(v) || t20.getAttribute(`element-loading-${rm(v)}`)), c = (r = s("fullscreen")) != null ? r : e.modifiers.fullscreen, d = {
text: l("text"),
svg: l("svg"),
svgViewBox: l("svgViewBox"),
spinner: l("spinner"),
background: l("background"),
customClass: l("customClass"),
fullscreen: c,
target: (n = s("target")) != null ? n : c ? void 0 : t20,
body: (a = s("body")) != null ? a : e.modifiers.body,
lock: (i = s("lock")) != null ? i : e.modifiers.lock
};
t20[ls] = {
options: d,
instance: LS(d)
};
};
var AS = (t20, e) => {
for (const r of Object.keys(e))
isRef(e[r]) && (e[r].value = t20[r]);
};
var nc = {
mounted(t20, e) {
e.value && Qd(t20, e);
},
updated(t20, e) {
const r = t20[ls];
e.oldValue !== e.value && (e.value && !e.oldValue ? Qd(t20, e) : e.value && e.oldValue ? Ht(e.value) && AS(e.value, r.options) : r == null || r.instance.close());
},
unmounted(t20) {
var e;
(e = t20[ls]) == null || e.instance.close(), t20[ls] = null;
}
};
var Ur = (t20, e) => {
const r = t20.__vccOpts || t20;
for (const [n, a] of e)
r[n] = a;
return r;
};
var MS = {
name: "AnnotationPopup",
props: {
annotationEntry: {
type: Object
}
},
inject: ["$annotator", "userApiKey"],
data: function() {
return {
displayPair: {
"Feature ID": "featureId",
Tooltip: "label",
Models: "models",
Name: "name",
Resource: "resourceId"
},
editing: false,
evidencePrefixes: ["", "DOI:", "PMID:"],
evidencePrefix: "",
evidence: [],
authenticated: false,
newEvidence: "",
comment: "",
prevSubs: [],
showSubmissions: true,
errorMessage: "",
creator: void 0
};
},
computed: {
isEditable: function() {
return this.annotationEntry.resourceId && this.annotationEntry.featureId;
},
isPositionUpdated: function() {
return this.annotationEntry.resourceId && this.annotationEntry.type === "updated" && this.annotationEntry.positionUpdated;
},
isDeleted: function() {
return this.annotationEntry.resourceId && this.annotationEntry.type === "deleted";
}
},
methods: {
evidenceEntered: function(t20) {
t20 && (this.evidence.push(this.evidencePrefix + t20), this.newEvidence = "");
},
formatTime: function(t20) {
const e = {
year: "numeric",
month: "long",
day: "numeric",
hour: "numeric",
minute: "numeric",
second: "numeric"
};
return new Date(t20).toLocaleDateString(void 0, e);
},
updatePrevSubmissions: function() {
var t20;
this.$annotator && this.authenticated && this.annotationEntry.resourceId && this.annotationEntry.featureId && ((t20 = this.$annotator) == null || t20.itemAnnotations(
this.userApiKey,
this.annotationEntry.resourceId,
this.annotationEntry.featureId
).then((e) => {
this.prevSubs = e;
}).catch((e) => {
console.log(e);
}));
},
submit: function() {
var t20;
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) {
const e = [];
this.evidence.forEach((n) => {
if (n.includes("DOI:")) {
const a = n.replace("DOI:", "https://doi.org/");
e.push(new URL(a));
} else if (n.includes("PMID:")) {
const a = n.replace(
"PMID:",
"https://pubmed.ncbi.nlm.nih.gov/"
);
e.push(new URL(a));
} else
e.push(n);
});
const r = {
resource: this.annotationEntry.resourceId,
item: Object.assign(
{ id: this.annotationEntry.featureId },
Object.fromEntries(
Object.entries(this.annotationEntry).filter(
([n]) => ["label", "models"].includes(n)
)
)
),
body: {
evidence: e,
comment: this.comment
},
feature: this.annotationEntry.feature
};
Object.assign(r.body, this.annotationEntry.body), this.annotationEntry.type === "deleted" && (r.feature = void 0), this.creator && (r.creator = this.creator), (t20 = this.$annotator) == null || t20.addAnnotation(this.userApiKey, r).then(() => {
this.$emit("annotation", r), this.errorMessage = "", this.resetSubmission(), this.updatePrevSubmissions();
}).catch(() => {
this.errorMessage = "There is a problem with the submission, please try again later";
});
}
},
removeEvidence: function(t20) {
this.evidence.splice(t20, 1);
},
resetSubmission: function() {
this.editing = false, this.evidence = [], this.newFeature = "", this.comment = "";
}
},
watch: {
annotationEntry: {
handler: function(t20, e) {
t20 !== e && (this.resetSubmission(), this.updatePrevSubmissions());
},
immediate: false,
deep: false
}
},
mounted: function() {
var t20;
(t20 = this.$annotator) == null || t20.authenticate(this.userApiKey).then((e) => {
e.name && e.email && e.canUpdate ? (this.creator = e, e.orcid || (this.creator.orcid = "0000-0000-0000-0000"), this.authenticated = true, this.updatePrevSubmissions()) : this.errorMessage = "";
});
}
};
var _a = (t20) => (pushScopeId("data-v-9930ef40"), t20 = t20(), popScopeId(), t20);
var BS = { class: "block" };
var NS = _a(() => createBaseVNode("div", { class: "title" }, "Feature Annotations", -1));
var $S = _a(() => createBaseVNode("strong", { class: "sub-title" }, "Previous submissions:", -1));
var RS = _a(() => createBaseVNode("strong", null, "Evidence: ", -1));
var zS = ["href"];
var VS = _a(() => createBaseVNode("strong", null, "Comment: ", -1));
var HS = _a(() => createBaseVNode("strong", { class: "sub-title" }, "Suggest changes:", -1));
var qS = _a(() => createBaseVNode("strong", null, "Evidence:", -1));
var KS = _a(() => createBaseVNode("strong", null, "Comment:", -1));
var US = { class: "sub-title" };
function GS(t20, e, r, n, a, i) {
const o = Qs, s = Hv, u = Vt, l = Gs, c = v2, d = d2, v = p2, h6 = So, f = Ss, p = sS, m = oS, g = Eo, y = Hr, b = Ju;
return openBlock(), createBlock(b, { class: "main" }, {
default: withCtx(() => [
createBaseVNode("div", BS, [
createVNode(o, { class: "info-field" }, {
default: withCtx(() => [
NS
]),
_: 1
}),
r.annotationEntry ? (openBlock(), createElementBlock(Fragment, { key: 0 }, [
(openBlock(true), createElementBlock(Fragment, null, renderList(t20.displayPair, (w, C) => withDirectives((openBlock(), createBlock(o, {
class: "dialog-text",
key: w
}, {
default: withCtx(() => [
createBaseVNode("strong", null, toDisplayString(C) + ": ", 1),
createTextVNode(" " + toDisplayString(r.annotationEntry[w]), 1)
]),
_: 2
}, 1024)), [
[vShow, r.annotationEntry[w]]
])), 128)),
t20.prevSubs.length > 0 ? (openBlock(), createElementBlock(Fragment, { key: 0 }, [
withDirectives(createBaseVNode("div", {
class: "hide",
onClick: e[0] || (e[0] = (w) => t20.showSubmissions = false)
}, [
createTextVNode(" Hide previous submissions "),
createVNode(u, null, {
default: withCtx(() => [
createVNode(s)
]),
_: 1
})
], 512), [
[vShow, t20.showSubmissions]
]),
withDirectives(createBaseVNode("div", {
class: "hide",
onClick: e[1] || (e[1] = (w) => t20.showSubmissions = true)
}, [
createTextVNode(" Show previous " + toDisplayString(t20.prevSubs.length) + " submission(s) ", 1),
createVNode(u, null, {
default: withCtx(() => [
createVNode(l)
]),
_: 1
})
], 512), [
[vShow, !t20.showSubmissions]
]),
t20.showSubmissions ? (openBlock(), createElementBlock(Fragment, { key: 0 }, [
createVNode(o, { class: "dialog-spacer" }),
createVNode(o, { class: "dialog-text" }, {
default: withCtx(() => [
$S
]),
_: 1
}),
(openBlock(true), createElementBlock(Fragment, null, renderList(t20.prevSubs, (w, C) => (openBlock(), createElementBlock("div", {
class: "entry",
key: C
}, [
createVNode(o, { class: "dialog-text" }, {
default: withCtx(() => [
createBaseVNode("strong", null, toDisplayString(i.formatTime(w.created)), 1),
createTextVNode(" " + toDisplayString(w.creator.name), 1)
]),
_: 2
}, 1024),
createVNode(o, { class: "dialog-text" }, {
default: withCtx(() => [
RS,
(openBlock(true), createElementBlock(Fragment, null, renderList(w.body.evidence, (E) => (openBlock(), createBlock(o, {
key: E,
class: "dialog-text"
}, {
default: withCtx(() => [
createBaseVNode("a", {
href: E,
target: "_blank"
}, toDisplayString(E), 9, zS)
]),
_: 2
}, 1024))), 128))
]),
_: 2
}, 1024),
createVNode(o, { class: "dialog-text" }, {
default: withCtx(() => [
VS,
createTextVNode(" " + toDisplayString(w.body.comment), 1)
]),
_: 2
}, 1024)
]))), 128))
], 64)) : createCommentVNode("", true)
], 64)) : createCommentVNode("", true),
t20.authenticated ? (openBlock(), createElementBlock(Fragment, { key: 1 }, [
i.isEditable ? (openBlock(), createElementBlock(Fragment, { key: 0 }, [
createVNode(o, { class: "dialog-spacer" }),
t20.editing ? (openBlock(), createElementBlock(Fragment, { key: 1 }, [
createVNode(o, { class: "dialog-text" }, {
default: withCtx(() => [
HS
]),
_: 1
}),
i.isDeleted ? createCommentVNode("", true) : (openBlock(), createElementBlock(Fragment, { key: 0 }, [
createVNode(o, { class: "dialog-text" }, {
default: withCtx(() => [
qS
]),
_: 1
}),
(openBlock(true), createElementBlock(Fragment, null, renderList(t20.evidence, (w, C) => (openBlock(), createBlock(o, { key: w }, {
default: withCtx(() => [
createVNode(h6, { span: 20 }, {
default: withCtx(() => [
createTextVNode(toDisplayString(t20.evidence[C]), 1)
]),
_: 2
}, 1024),
createVNode(h6, { span: 4 }, {
default: withCtx(() => [
createVNode(u, { class: "standard-icon" }, {
default: withCtx(() => [
createVNode(f, {
onClick: (E) => i.removeEvidence(C)
}, null, 8, ["onClick"])
]),
_: 2
}, 1024)
]),
_: 2
}, 1024)
]),
_: 2
}, 1024))), 128)),
createVNode(o, null, {
default: withCtx(() => [
createVNode(g, {
size: "small",
placeholder: "Enter",
modelValue: t20.newEvidence,
"onUpdate:modelValue": e[4] || (e[4] = (w) => t20.newEvidence = w),
onChange: e[5] || (e[5] = (w) => i.evidenceEntered(w))
}, {
prepend: withCtx(() => [
createVNode(m, {
teleported: false,
modelValue: t20.evidencePrefix,
"onUpdate:modelValue": e[3] || (e[3] = (w) => t20.evidencePrefix = w),
placeholder: "No Prefix",
class: "select-box",
"popper-class": "flatmap_dropdown"
}, {
default: withCtx(() => [
(openBlock(true), createElementBlock(Fragment, null, renderList(t20.evidencePrefixes, (w) => (openBlock(), createBlock(p, {
key: w,
label: w,
value: w
}, {
default: withCtx(() => [
createVNode(o, null, {
default: withCtx(() => [
createVNode(h6, { span: 12 }, {
default: withCtx(() => [
createTextVNode(toDisplayString(w), 1)
]),
_: 2
}, 1024)
]),
_: 2
}, 1024)
]),
_: 2
}, 1032, ["label", "value"]))), 128))
]),
_: 1
}, 8, ["modelValue"])
]),
_: 1
}, 8, ["modelValue"])
]),
_: 1
})
], 64)),
createVNode(o, null, {
default: withCtx(() => [
KS
]),
_: 1
}),
createVNode(o, { class: "dialog-text" }, {
default: withCtx(() => [
createVNode(g, {
type: "textarea",
autosize: { minRows: 2, maxRows: 4 },
placeholder: "Enter",
modelValue: t20.comment,
"onUpdate:modelValue": e[6] || (e[6] = (w) => t20.comment = w)
}, null, 8, ["modelValue"])
]),
_: 1
}),
createVNode(o, { class: "dialog-text" }, {
default: withCtx(() => [
createVNode(y, {
class: "button",
type: "primary",
plain: "",
onClick: i.submit
}, {
default: withCtx(() => [
createTextVNode(" Submit ")
]),
_: 1
}, 8, ["onClick"])
]),
_: 1
})
], 64)) : (openBlock(), createBlock(o, { key: 0 }, {
default: withCtx(() => [
createVNode(u, { class: "standard-icon" }, {
default: withCtx(() => [
createVNode(c, {
onClick: e[2] || (e[2] = (w) => t20.editing = true)
})
]),
_: 1
}),
i.isDeleted ? (openBlock(), createBlock(u, {
key: 0,
class: "standard-icon"
}, {
default: withCtx(() => [
createVNode(d, { onClick: i.submit }, null, 8, ["onClick"])
]),
_: 1
})) : i.isPositionUpdated ? (openBlock(), createBlock(u, {
key: 1,
class: "standard-icon"
}, {
default: withCtx(() => [
createVNode(v, { onClick: i.submit }, null, 8, ["onClick"])
]),
_: 1
})) : createCommentVNode("", true)
]),
_: 1
})),
t20.errorMessage ? (openBlock(), createBlock(o, {
key: 2,
class: "dialog-text"
}, {
default: withCtx(() => [
createBaseVNode("strong", US, toDisplayString(t20.errorMessage), 1)
]),
_: 1
})) : createCommentVNode("", true)
], 64)) : createCommentVNode("", true)
], 64)) : createCommentVNode("", true)
], 64)) : createCommentVNode("", true)
])
]),
_: 1
});
}
var WS = Ur(MS, [["render", GS], ["__scopeId", "data-v-9930ef40"]]);
var YS = {
name: "CreateTooltipContent",
components: {
Button: Hr,
Col: So,
Container: $h,
Header: Rh,
Input: Eo,
Main: Ju
},
props: {
createData: {
type: Object
}
},
watch: {
"createData.shape": {
handler: function(t20, e) {
this.group = t20, e !== void 0 && this.$emit("cancel-create");
},
immediate: true
}
},
computed: {
confirmText: function() {
return this.createData.editingIndex > -1 ? "Edit" : "Confirm";
}
},
data: function() {
return {
group: "default",
region: "",
showPoint: false
};
},
methods: {
confirm: function() {
this.$emit(
"confirm-create",
{
region: "__annotation/" + this.region,
group: this.group,
shape: this.createData.shape,
editingIndex: this.createData.editingIndex
}
), this.group = this.createData.shape;
},
cancel: function() {
this.$emit("cancel-create");
}
}
};
var ZS = (t20) => (pushScopeId("data-v-d61c5879"), t20 = t20(), popScopeId(), t20);
var XS = ZS(() => createBaseVNode("span", { class: "create-text" }, " Primitives will be created in the __annotation region ", -1));
function jS(t20, e, r, n, a, i) {
const o = Rh, s = So, u = Qs, l = Eo, c = Hr, d = Ju, v = $h;
return openBlock(), createBlock(v, { class: "create-container" }, {
default: withCtx(() => [
createVNode(o, {
height: "30px",
class: "header"
}, {
default: withCtx(() => [
createBaseVNode("div", null, "Create " + toDisplayString(r.createData.shape), 1)
]),
_: 1
}),
createVNode(d, { class: "slides-block" }, {
default: withCtx(() => [
XS,
withDirectives(createVNode(u, { class: "row" }, {
default: withCtx(() => [
createVNode(s, {
offset: 0,
span: 8
}, {
default: withCtx(() => [
createTextVNode(" Position: ")
]),
_: 1
}),
createVNode(s, {
offset: 0,
span: 16
}, {
default: withCtx(() => [
(openBlock(true), createElementBlock(Fragment, null, renderList(r.createData.points, ({ value: h6, i: f }) => (openBlock(), createBlock(u, {
key: f,
class: "value"
}, {
default: withCtx(() => [
createTextVNode(toDisplayString(f), 1)
]),
_: 2
}, 1024))), 128))
]),
_: 1
})
]),
_: 1
}, 512), [
[vShow, t20.showPoint]
]),
createVNode(u, { class: "row" }, {
default: withCtx(() => [
createVNode(s, {
offset: 0,
span: 8
}, {
default: withCtx(() => [
createTextVNode(" Region: ")
]),
_: 1
}),
createVNode(s, {
offset: 0,
span: 16
}, {
default: withCtx(() => [
createVNode(l, {
modelValue: t20.region,
"onUpdate:modelValue": e[0] || (e[0] = (h6) => t20.region = h6),
placeholder: "__annotation",
size: "small"
}, null, 8, ["modelValue"])
]),
_: 1
})
]),
_: 1
}),
createVNode(u, { class: "row" }, {
default: withCtx(() => [
createVNode(s, {
offset: 0,
span: 8
}, {
default: withCtx(() => [
createTextVNode(" Group: ")
]),
_: 1
}),
createVNode(s, {
offset: 0,
span: 16
}, {
default: withCtx(() => [
createVNode(l, {
modelValue: t20.group,
"onUpdate:modelValue": e[1] || (e[1] = (h6) => t20.group = h6),
placeholder: r.createData.shape,
size: "small"
}, null, 8, ["modelValue", "placeholder"])
]),
_: 1
})
]),
_: 1
}),
createVNode(u, null, {
default: withCtx(() => [
createVNode(s, {
offset: 0,
span: 12
}, {
default: withCtx(() => [
createVNode(c, {
type: "primary",
plain: "",
onClick: i.confirm
}, {
default: withCtx(() => [
createTextVNode(toDisplayString(i.confirmText), 1)
]),
_: 1
}, 8, ["onClick"])
]),
_: 1
}),
createVNode(s, {
offset: 0,
span: 12
}, {
default: withCtx(() => [
createVNode(c, {
type: "primary",
plain: "",
onClick: i.cancel
}, {
default: withCtx(() => [
createTextVNode(" Cancel ")
]),
_: 1
}, 8, ["onClick"])
]),
_: 1
})
]),
_: 1
})
]),
_: 1
})
]),
_: 1
});
}
var IF = Ur(YS, [["render", jS], ["__scopeId", "data-v-d61c5879"]]);
function It(t20) {
"@babel/helpers - typeof";
return It = typeof Symbol == "function" && typeof Symbol.iterator == "symbol" ? function(e) {
return typeof e;
} : function(e) {
return e && typeof Symbol == "function" && e.constructor === Symbol && e !== Symbol.prototype ? "symbol" : typeof e;
}, It(t20);
}
function ac(t20, e) {
if (!(t20 instanceof e))
throw new TypeError("Cannot call a class as a function");
}
function QS(t20, e) {
for (var r = 0; r < e.length; r++) {
var n = e[r];
n.enumerable = n.enumerable || false, n.configurable = true, "value" in n && (n.writable = true), Object.defineProperty(t20, n.key, n);
}
}
function ic(t20, e, r) {
return e && QS(t20.prototype, e), Object.defineProperty(t20, "prototype", {
writable: false
}), t20;
}
function Kh(t20, e, r) {
return e in t20 ? Object.defineProperty(t20, e, {
value: r,
enumerable: true,
configurable: true,
writable: true
}) : t20[e] = r, t20;
}
function Mr(t20, e) {
return JS(t20) || eT(t20, e) || Uh(t20, e) || tT();
}
function JS(t20) {
if (Array.isArray(t20)) return t20;
}
function eT(t20, e) {
var r = t20 == null ? null : typeof Symbol < "u" && t20[Symbol.iterator] || t20["@@iterator"];
if (r != null) {
var n = [], a = true, i = false, o, s;
try {
for (r = r.call(t20); !(a = (o = r.next()).done) && (n.push(o.value), !(e && n.length === e)); a = true)
;
} catch (u) {
i = true, s = u;
} finally {
try {
!a && r.return != null && r.return();
} finally {
if (i) throw s;
}
}
return n;
}
}
function Uh(t20, e) {
if (t20) {
if (typeof t20 == "string") return Jd(t20, e);
var r = Object.prototype.toString.call(t20).slice(8, -1);
if (r === "Object" && t20.constructor && (r = t20.constructor.name), r === "Map" || r === "Set") return Array.from(t20);
if (r === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)) return Jd(t20, e);
}
}
function Jd(t20, e) {
(e == null || e > t20.length) && (e = t20.length);
for (var r = 0, n = new Array(e); r < e; r++) n[r] = t20[r];
return n;
}
function tT() {
throw new TypeError(`Invalid attempt to destructure non-iterable instance.
In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`);
}
function Gh(t20, e) {
var r = typeof Symbol < "u" && t20[Symbol.iterator] || t20["@@iterator"];
if (!r) {
if (Array.isArray(t20) || (r = Uh(t20)) || e) {
r && (t20 = r);
var n = 0, a = function() {
};
return {
s: a,
n: function() {
return n >= t20.length ? {
done: true
} : {
done: false,
value: t20[n++]
};
},
e: function(u) {
throw u;
},
f: a
};
}
throw new TypeError(`Invalid attempt to iterate non-iterable instance.
In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`);
}
var i = true, o = false, s;
return {
s: function() {
r = r.call(t20);
},
n: function() {
var u = r.next();
return i = u.done, u;
},
e: function(u) {
o = true, s = u;
},
f: function() {
try {
!i && r.return != null && r.return();
} finally {
if (o) throw s;
}
}
};
}
var Ot = typeof window > "u" ? null : window;
var ef = Ot ? Ot.navigator : null;
Ot && Ot.document;
var rT = It("");
var Wh = It({});
var nT = It(function() {
});
var aT = typeof HTMLElement > "u" ? "undefined" : It(HTMLElement);
var _o = function(e) {
return e && e.instanceString && pt(e.instanceString) ? e.instanceString() : null;
};
var Ie = function(e) {
return e != null && It(e) == rT;
};
var pt = function(e) {
return e != null && It(e) === nT;
};
var st = function(e) {
return !yr(e) && (Array.isArray ? Array.isArray(e) : e != null && e instanceof Array);
};
var Xe = function(e) {
return e != null && It(e) === Wh && !st(e) && e.constructor === Object;
};
var iT = function(e) {
return e != null && It(e) === Wh;
};
var be = function(e) {
return e != null && It(e) === It(1) && !isNaN(e);
};
var oT = function(e) {
return be(e) && Math.floor(e) === e;
};
var Ds = function(e) {
if (aT !== "undefined")
return e != null && e instanceof HTMLElement;
};
var yr = function(e) {
return Do(e) || Yh(e);
};
var Do = function(e) {
return _o(e) === "collection" && e._private.single;
};
var Yh = function(e) {
return _o(e) === "collection" && !e._private.single;
};
var oc = function(e) {
return _o(e) === "core";
};
var Zh = function(e) {
return _o(e) === "stylesheet";
};
var sT = function(e) {
return _o(e) === "event";
};
var qn = function(e) {
return e == null ? true : !!(e === "" || e.match(/^\s+$/));
};
var lT = function(e) {
return typeof HTMLElement > "u" ? false : e instanceof HTMLElement;
};
var uT = function(e) {
return Xe(e) && be(e.x1) && be(e.x2) && be(e.y1) && be(e.y2);
};
var cT = function(e) {
return iT(e) && pt(e.then);
};
var dT = function() {
return ef && ef.userAgent.match(/msie|trident|edge/i);
};
var to = function(e, r) {
r || (r = function() {
if (arguments.length === 1)
return arguments[0];
if (arguments.length === 0)
return "undefined";
for (var i = [], o = 0; o < arguments.length; o++)
i.push(arguments[o]);
return i.join("$");
});
var n = function a() {
var i = this, o = arguments, s, u = r.apply(i, o), l = a.cache;
return (s = l[u]) || (s = l[u] = e.apply(i, o)), s;
};
return n.cache = {}, n;
};
var sc = to(function(t20) {
return t20.replace(/([A-Z])/g, function(e) {
return "-" + e.toLowerCase();
});
});
var Js = to(function(t20) {
return t20.replace(/(-\w)/g, function(e) {
return e[1].toUpperCase();
});
});
var Xh = to(function(t20, e) {
return t20 + e[0].toUpperCase() + e.substring(1);
}, function(t20, e) {
return t20 + "$" + e;
});
var tf = function(e) {
return qn(e) ? e : e.charAt(0).toUpperCase() + e.substring(1);
};
var Ft = "(?:[-+]?(?:(?:\\d+|\\d*\\.\\d+)(?:[Ee][+-]?\\d+)?))";
var fT = "rgb[a]?\\((" + Ft + "[%]?)\\s*,\\s*(" + Ft + "[%]?)\\s*,\\s*(" + Ft + "[%]?)(?:\\s*,\\s*(" + Ft + "))?\\)";
var vT = "rgb[a]?\\((?:" + Ft + "[%]?)\\s*,\\s*(?:" + Ft + "[%]?)\\s*,\\s*(?:" + Ft + "[%]?)(?:\\s*,\\s*(?:" + Ft + "))?\\)";
var hT = "hsl[a]?\\((" + Ft + ")\\s*,\\s*(" + Ft + "[%])\\s*,\\s*(" + Ft + "[%])(?:\\s*,\\s*(" + Ft + "))?\\)";
var pT = "hsl[a]?\\((?:" + Ft + ")\\s*,\\s*(?:" + Ft + "[%])\\s*,\\s*(?:" + Ft + "[%])(?:\\s*,\\s*(?:" + Ft + "))?\\)";
var gT = "\\#[0-9a-fA-F]{3}";
var mT = "\\#[0-9a-fA-F]{6}";
var jh = function(e, r) {
return e < r ? -1 : e > r ? 1 : 0;
};
var yT = function(e, r) {
return -1 * jh(e, r);
};
var Re = Object.assign != null ? Object.assign.bind(Object) : function(t20) {
for (var e = arguments, r = 1; r < e.length; r++) {
var n = e[r];
if (n != null)
for (var a = Object.keys(n), i = 0; i < a.length; i++) {
var o = a[i];
t20[o] = n[o];
}
}
return t20;
};
var bT = function(e) {
if (!(!(e.length === 4 || e.length === 7) || e[0] !== "#")) {
var r = e.length === 4, n, a, i, o = 16;
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];
}
};
var wT = function(e) {
var r, n, a, i, o, s, u, l;
function c(f, p, m) {
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;
}
var d = new RegExp("^" + hT + "$").exec(e);
if (d) {
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)))
return;
if (a === 0)
s = u = l = Math.round(i * 255);
else {
var v = i < 0.5 ? i * (1 + a) : i + a - i * a, h6 = 2 * i - v;
s = Math.round(255 * c(h6, v, n + 1 / 3)), u = Math.round(255 * c(h6, v, n)), l = Math.round(255 * c(h6, v, n - 1 / 3));
}
r = [s, u, l, o];
}
return r;
};
var xT = function(e) {
var r, n = new RegExp("^" + fT + "$").exec(e);
if (n) {
r = [];
for (var a = [], i = 1; i <= 3; i++) {
var o = n[i];
if (o[o.length - 1] === "%" && (a[i] = true), o = parseFloat(o), a[i] && (o = o / 100 * 255), o < 0 || o > 255)
return;
r.push(Math.floor(o));
}
var s = a[1] || a[2] || a[3], u = a[1] && a[2] && a[3];
if (s && !u)
return;
var l = n[4];
if (l !== void 0) {
if (l = parseFloat(l), l < 0 || l > 1)
return;
r.push(l);
}
}
return r;
};
var CT = function(e) {
return kT[e.toLowerCase()];
};
var ET = function(e) {
return (st(e) ? e : null) || CT(e) || bT(e) || xT(e) || wT(e);
};
var kT = {
// special colour names
transparent: [0, 0, 0, 0],
// NB alpha === 0
// regular colours
aliceblue: [240, 248, 255],
antiquewhite: [250, 235, 215],
aqua: [0, 255, 255],
aquamarine: [127, 255, 212],
azure: [240, 255, 255],
beige: [245, 245, 220],
bisque: [255, 228, 196],
black: [0, 0, 0],
blanchedalmond: [255, 235, 205],
blue: [0, 0, 255],
blueviolet: [138, 43, 226],
brown: [165, 42, 42],
burlywood: [222, 184, 135],
cadetblue: [95, 158, 160],
chartreuse: [127, 255, 0],
chocolate: [210, 105, 30],
coral: [255, 127, 80],
cornflowerblue: [100, 149, 237],
cornsilk: [255, 248, 220],
crimson: [220, 20, 60],
cyan: [0, 255, 255],
darkblue: [0, 0, 139],
darkcyan: [0, 139, 139],
darkgoldenrod: [184, 134, 11],
darkgray: [169, 169, 169],
darkgreen: [0, 100, 0],
darkgrey: [169, 169, 169],
darkkhaki: [189, 183, 107],
darkmagenta: [139, 0, 139],
darkolivegreen: [85, 107, 47],
darkorange: [255, 140, 0],
darkorchid: [153, 50, 204],
darkred: [139, 0, 0],
darksalmon: [233, 150, 122],
darkseagreen: [143, 188, 143],
darkslateblue: [72, 61, 139],
darkslategray: [47, 79, 79],
darkslategrey: [47, 79, 79],
darkturquoise: [0, 206, 209],
darkviolet: [148, 0, 211],
deeppink: [255, 20, 147],
deepskyblue: [0, 191, 255],
dimgray: [105, 105, 105],
dimgrey: [105, 105, 105],
dodgerblue: [30, 144, 255],
firebrick: [178, 34, 34],
floralwhite: [255, 250, 240],
forestgreen: [34, 139, 34],
fuchsia: [255, 0, 255],
gainsboro: [220, 220, 220],
ghostwhite: [248, 248, 255],
gold: [255, 215, 0],
goldenrod: [218, 165, 32],
gray: [128, 128, 128],
grey: [128, 128, 128],
green: [0, 128, 0],
greenyellow: [173, 255, 47],
honeydew: [240, 255, 240],
hotpink: [255, 105, 180],
indianred: [205, 92, 92],
indigo: [75, 0, 130],
ivory: [255, 255, 240],
khaki: [240, 230, 140],
lavender: [230, 230, 250],
lavenderblush: [255, 240, 245],
lawngreen: [124, 252, 0],
lemonchiffon: [255, 250, 205],
lightblue: [173, 216, 230],
lightcoral: [240, 128, 128],
lightcyan: [224, 255, 255],
lightgoldenrodyellow: [250, 250, 210],
lightgray: [211, 211, 211],
lightgreen: [144, 238, 144],
lightgrey: [211, 211, 211],
lightpink: [255, 182, 193],
lightsalmon: [255, 160, 122],
lightseagreen: [32, 178, 170],
lightskyblue: [135, 206, 250],
lightslategray: [119, 136, 153],
lightslategrey: [119, 136, 153],
lightsteelblue: [176, 196, 222],
lightyellow: [255, 255, 224],
lime: [0, 255, 0],
limegreen: [50, 205, 50],
linen: [250, 240, 230],
magenta: [255, 0, 255],
maroon: [128, 0, 0],
mediumaquamarine: [102, 205, 170],
mediumblue: [0, 0, 205],
mediumorchid: [186, 85, 211],
mediumpurple: [147, 112, 219],
mediumseagreen: [60, 179, 113],
mediumslateblue: [123, 104, 238],
mediumspringgreen: [0, 250, 154],
mediumturquoise: [72, 209, 204],
mediumvioletred: [199, 21, 133],
midnightblue: [25, 25, 112],
mintcream: [245, 255, 250],
mistyrose: [255, 228, 225],
moccasin: [255, 228, 181],
navajowhite: [255, 222, 173],
navy: [0, 0, 128],
oldlace: [253, 245, 230],
olive: [128, 128, 0],
olivedrab: [107, 142, 35],
orange: [255, 165, 0],
orangered: [255, 69, 0],
orchid: [218, 112, 214],
palegoldenrod: [238, 232, 170],
palegreen: [152, 251, 152],
paleturquoise: [175, 238, 238],
palevioletred: [219, 112, 147],
papayawhip: [255, 239, 213],
peachpuff: [255, 218, 185],
peru: [205, 133, 63],
pink: [255, 192, 203],
plum: [221, 160, 221],
powderblue: [176, 224, 230],
purple: [128, 0, 128],
red: [255, 0, 0],
rosybrown: [188, 143, 143],
royalblue: [65, 105, 225],
saddlebrown: [139, 69, 19],
salmon: [250, 128, 114],
sandybrown: [244, 164, 96],
seagreen: [46, 139, 87],
seashell: [255, 245, 238],
sienna: [160, 82, 45],
silver: [192, 192, 192],
skyblue: [135, 206, 235],
slateblue: [106, 90, 205],
slategray: [112, 128, 144],
slategrey: [112, 128, 144],
snow: [255, 250, 250],
springgreen: [0, 255, 127],
steelblue: [70, 130, 180],
tan: [210, 180, 140],
teal: [0, 128, 128],
thistle: [216, 191, 216],
tomato: [255, 99, 71],
turquoise: [64, 224, 208],
violet: [238, 130, 238],
wheat: [245, 222, 179],
white: [255, 255, 255],
whitesmoke: [245, 245, 245],
yellow: [255, 255, 0],
yellowgreen: [154, 205, 50]
};
var Qh = function(e) {
for (var r = e.map, n = e.keys, a = n.length, i = 0; i < a; i++) {
var o = n[i];
if (Xe(o))
throw Error("Tried to set map with object key");
i < n.length - 1 ? (r[o] == null && (r[o] = {}), r = r[o]) : r[o] = e.value;
}
};
var Jh = function(e) {
for (var r = e.map, n = e.keys, a = n.length, i = 0; i < a; i++) {
var o = n[i];
if (Xe(o))
throw Error("Tried to get map with object key");
if (r = r[o], r == null)
return r;
}
return r;
};
function ST(t20) {
var e = typeof t20;
return t20 != null && (e == "object" || e == "function");
}
var ga = ST;
var Mi = typeof globalThis < "u" ? globalThis : typeof window < "u" ? window : typeof global < "u" ? global : typeof self < "u" ? self : {};
function TT(t20, e) {
return e = { exports: {} }, t20(e, e.exports), e.exports;
}
var _T = typeof Mi == "object" && Mi && Mi.Object === Object && Mi;
var DT = _T;
var PT = typeof self == "object" && self && self.Object === Object && self;
var OT = DT || PT || Function("return this")();
var el = OT;
var LT = function() {
return el.Date.now();
};
var Il = LT;
var FT = /\s/;
function IT(t20) {
for (var e = t20.length; e-- && FT.test(t20.charAt(e)); )
;
return e;
}
var AT = IT;
var MT = /^\s+/;
function BT(t20) {
return t20 && t20.slice(0, AT(t20) + 1).replace(MT, "");
}
var NT = BT;
var $T = el.Symbol;
var ii = $T;
var ep = Object.prototype;
var RT = ep.hasOwnProperty;
var zT = ep.toString;
var Pi = ii ? ii.toStringTag : void 0;
function VT(t20) {
var e = RT.call(t20, Pi), r = t20[Pi];
try {
t20[Pi] = void 0;
var n = true;
} catch {
}
var a = zT.call(t20);
return n && (e ? t20[Pi] = r : delete t20[Pi]), a;
}
var HT = VT;
var qT = Object.prototype;
var KT = qT.toString;
function UT(t20) {
return KT.call(t20);
}
var GT = UT;
var WT = "[object Null]";
var YT = "[object Undefined]";
var rf = ii ? ii.toStringTag : void 0;
function ZT(t20) {
return t20 == null ? t20 === void 0 ? YT : WT : rf && rf in Object(t20) ? HT(t20) : GT(t20);
}
var tp = ZT;
function XT(t20) {
return t20 != null && typeof t20 == "object";
}
var jT = XT;
var QT = "[object Symbol]";
function JT(t20) {
return typeof t20 == "symbol" || jT(t20) && tp(t20) == QT;
}
var Po = JT;
var nf = NaN;
var e5 = /^[-+]0x[0-9a-f]+$/i;
var t5 = /^0b[01]+$/i;
var r5 = /^0o[0-7]+$/i;
var n5 = parseInt;
function a5(t20) {
if (typeof t20 == "number")
return t20;
if (Po(t20))
return nf;
if (ga(t20)) {
var e = typeof t20.valueOf == "function" ? t20.valueOf() : t20;
t20 = ga(e) ? e + "" : e;
}
if (typeof t20 != "string")
return t20 === 0 ? t20 : +t20;
t20 = NT(t20);
var r = t5.test(t20);
return r || r5.test(t20) ? n5(t20.slice(2), r ? 2 : 8) : e5.test(t20) ? nf : +t20;
}
var af = a5;
var i5 = "Expected a function";
var o5 = Math.max;
var s5 = Math.min;
function l5(t20, e, r) {
var n, a, i, o, s, u, l = 0, c = false, d = false, v = true;
if (typeof t20 != "function")
throw new TypeError(i5);
e = af(e) || 0, ga(r) && (c = !!r.leading, d = "maxWait" in r, i = d ? o5(af(r.maxWait) || 0, e) : i, v = "trailing" in r ? !!r.trailing : v);
function h6(E) {
var x = n, T = a;
return n = a = void 0, l = E, o = t20.apply(T, x), o;
}
function f(E) {
return l = E, s = setTimeout(g, e), c ? h6(E) : o;
}
function p(E) {
var x = E - u, T = E - l, k = e - x;
return d ? s5(k, i - T) : k;
}
function m(E) {
var x = E - u, T = E - l;
return u === void 0 || x >= e || x < 0 || d && T >= i;
}
function g() {
var E = Il();
if (m(E))
return y(E);
s = setTimeout(g, p(E));
}
function y(E) {
return s = void 0, v && n ? h6(E) : (n = a = void 0, o);
}
function b() {
s !== void 0 && clearTimeout(s), l = 0, n = u = a = s = void 0;
}
function w() {
return s === void 0 ? o : y(Il());
}
function C() {
var E = Il(), x = m(E);
if (n = arguments, a = this, u = E, x) {
if (s === void 0)
return f(u);
if (d)
return clearTimeout(s), s = setTimeout(g, e), h6(u);
}
return s === void 0 && (s = setTimeout(g, e)), o;
}
return C.cancel = b, C.flush = w, C;
}
var tl = l5;
var Al = Ot ? Ot.performance : null;
var rp = Al && Al.now ? function() {
return Al.now();
} : function() {
return Date.now();
};
var u5 = function() {
if (Ot) {
if (Ot.requestAnimationFrame)
return function(t20) {
Ot.requestAnimationFrame(t20);
};
if (Ot.mozRequestAnimationFrame)
return function(t20) {
Ot.mozRequestAnimationFrame(t20);
};
if (Ot.webkitRequestAnimationFrame)
return function(t20) {
Ot.webkitRequestAnimationFrame(t20);
};
if (Ot.msRequestAnimationFrame)
return function(t20) {
Ot.msRequestAnimationFrame(t20);
};
}
return function(t20) {
t20 && setTimeout(function() {
t20(rp());
}, 1e3 / 60);
};
}();
var Ps = function(e) {
return u5(e);
};
var gn = rp;
var Va = 9261;
var np = 65599;
var Bi = 5381;
var ap = function(e) {
for (var r = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : Va, n = r, a; a = e.next(), !a.done; )
n = n * np + a.value | 0;
return n;
};
var ro = function(e) {
var r = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : Va;
return r * np + e | 0;
};
var no = function(e) {
var r = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : Bi;
return (r << 5) + r + e | 0;
};
var c5 = function(e, r) {
return e * 2097152 + r;
};
var Dn = function(e) {
return e[0] * 2097152 + e[1];
};
var Go = function(e, r) {
return [ro(e[0], r[0]), no(e[1], r[1])];
};
var d5 = function(e, r) {
var n = {
value: 0,
done: false
}, a = 0, i = e.length, o = {
next: function() {
return a < i ? n.value = e[a++] : n.done = true, n;
}
};
return ap(o, r);
};
var ma = function(e, r) {
var n = {
value: 0,
done: false
}, a = 0, i = e.length, o = {
next: function() {
return a < i ? n.value = e.charCodeAt(a++) : n.done = true, n;
}
};
return ap(o, r);
};
var ip = function() {
return f5(arguments);
};
var f5 = function(e) {
for (var r, n = 0; n < e.length; n++) {
var a = e[n];
n === 0 ? r = ma(a) : r = ma(a, r);
}
return r;
};
var of = true;
var v5 = console.warn != null;
var h5 = console.trace != null;
var lc = Number.MAX_SAFE_INTEGER || 9007199254740991;
var op = function() {
return true;
};
var Os = function() {
return false;
};
var sf = function() {
return 0;
};
var uc = function() {
};
var yt = function(e) {
throw new Error(e);
};
var sp = function(e) {
if (e !== void 0)
of = !!e;
else
return of;
};
var tt = function(e) {
sp() && (v5 ? console.warn(e) : (console.log(e), h5 && console.trace()));
};
var p5 = function(e) {
return Re({}, e);
};
var Zr = function(e) {
return e == null ? e : st(e) ? e.slice() : Xe(e) ? p5(e) : e;
};
var g5 = function(e) {
return e.slice();
};
var lp = function(e, r) {
for (
// loop :)
r = e = "";
// b - result , a - numeric letiable
e++ < 36;
//
r += e * 51 & 52 ? (
// return a random number or 4
(e ^ 15 ? (
// generate a random number from 0 to 15
8 ^ Math.random() * (e ^ 20 ? 16 : 4)
) : 4).toString(16)
) : "-"
)
;
return r;
};
var m5 = {};
var up = function() {
return m5;
};
var Wt = function(e) {
var r = Object.keys(e);
return function(n) {
for (var a = {}, i = 0; i < r.length; i++) {
var o = r[i], s = n == null ? void 0 : n[o];
a[o] = s === void 0 ? e[o] : s;
}
return a;
};
};
var Kn = function(e, r, n) {
for (var a = e.length - 1; a >= 0; a--)
e[a] === r && e.splice(a, 1);
};
var cc = function(e) {
e.splice(0, e.length);
};
var y5 = function(e, r) {
for (var n = 0; n < r.length; n++) {
var a = r[n];
e.push(a);
}
};
var Nr = function(e, r, n) {
return n && (r = Xh(n, r)), e[r];
};
var An = function(e, r, n, a) {
n && (r = Xh(n, r)), e[r] = a;
};
var b5 = function() {
function t20() {
ac(this, t20), this._obj = {};
}
return ic(t20, [{
key: "set",
value: function(r, n) {
return this._obj[r] = n, this;
}
}, {
key: "delete",
value: function(r) {
return this._obj[r] = void 0, this;
}
}, {
key: "clear",
value: function() {
this._obj = {};
}
}, {
key: "has",
value: function(r) {
return this._obj[r] !== void 0;
}
}, {
key: "get",
value: function(r) {
return this._obj[r];
}
}]), t20;
}();
var Xr = typeof Map < "u" ? Map : b5;
var w5 = "undefined";
var x5 = function() {
function t20(e) {
if (ac(this, t20), this._obj = /* @__PURE__ */ Object.create(null), this.size = 0, e != null) {
var r;
e.instanceString != null && e.instanceString() === this.instanceString() ? r = e.toArray() : r = e;
for (var n = 0; n < r.length; n++)
this.add(r[n]);
}
}
return ic(t20, [{
key: "instanceString",
value: function() {
return "set";
}
}, {
key: "add",
value: function(r) {
var n = this._obj;
n[r] !== 1 && (n[r] = 1, this.size++);
}
}, {
key: "delete",
value: function(r) {
var n = this._obj;
n[r] === 1 && (n[r] = 0, this.size--);
}
}, {
key: "clear",
value: function() {
this._obj = /* @__PURE__ */ Object.create(null);
}
}, {
key: "has",
value: function(r) {
return this._obj[r] === 1;
}
}, {
key: "toArray",
value: function() {
var r = this;
return Object.keys(this._obj).filter(function(n) {
return r.has(n);
});
}
}, {
key: "forEach",
value: function(r, n) {
return this.toArray().forEach(r, n);
}
}]), t20;
}();
var vi = (typeof Set > "u" ? "undefined" : It(Set)) !== w5 ? Set : x5;
var rl = function(e, r) {
var n = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : true;
if (e === void 0 || r === void 0 || !oc(e)) {
yt("An element must have a core reference and parameters set");
return;
}
var a = r.group;
if (a == null && (r.data && r.data.source != null && r.data.target != null ? a = "edges" : a = "nodes"), a !== "nodes" && a !== "edges") {
yt("An element must be of type `nodes` or `edges`; you specified `" + a + "`");
return;
}
this.length = 1, this[0] = this;
var i = this._private = {
cy: e,
single: true,
// indicates this is an element
data: r.data || {},
// data object
position: r.position || {
x: 0,
y: 0
},
// (x, y) position pair
autoWidth: void 0,
// width and height of nodes calculated by the renderer when set to special 'auto' value
autoHeight: void 0,
autoPadding: void 0,
compoundBoundsClean: false,
// whether the compound dimensions need to be recalculated the next time dimensions are read
listeners: [],
// array of bound listeners
group: a,
// string; 'nodes' or 'edges'
style: {},
// properties as set by the style
rstyle: {},
// properties for style sent from the renderer to the core
styleCxts: [],
// applied style contexts from the styler
styleKeys: {},
// per-group keys of style property values
removed: true,
// whether it's inside the vis; true if removed (set true here since we call restore)
selected: !!r.selected,
// whether it's selected
selectable: r.selectable === void 0 ? true : !!r.selectable,
// whether it's selectable
locked: !!r.locked,
// whether the element is locked (cannot be moved)
grabbed: false,
// whether the element is grabbed by the mouse; renderer sets this privately
grabbable: r.grabbable === void 0 ? true : !!r.grabbable,
// whether the element can be grabbed
pannable: r.pannable === void 0 ? a === "edges" : !!r.pannable,
// whether the element has passthrough panning enabled
active: false,
// whether the element is active from user interaction
classes: new vi(),
// map ( className => true )
animation: {
// object for currently-running animations
current: [],
queue: []
},
rscratch: {},
// object in which the renderer can store information
scratch: r.scratch || {},
// scratch objects
edges: [],
// array of connected edges
children: [],
// array of children
parent: r.parent && r.parent.isNode() ? r.parent : null,
// parent ref
traversalCache: {},
// cache of output of traversal functions
backgrounding: false,
// whether background images are loading
bbCache: null,
// cache of the current bounding box
bbCacheShift: {
x: 0,
y: 0
},
// shift applied to cached bb to be applied on next get
bodyBounds: null,
// bounds cache of element body, w/o overlay
overlayBounds: null,
// bounds cache of element body, including overlay
labelBounds: {
// bounds cache of labels
all: null,
source: null,
target: null,
main: null
},
arrowBounds: {
// bounds cache of edge arrows
source: null,
target: null,
"mid-source": null,
"mid-target": null
}
};
if (i.position.x == null && (i.position.x = 0), i.position.y == null && (i.position.y = 0), r.renderedPosition) {
var o = r.renderedPosition, s = e.pan(), u = e.zoom();
i.position = {
x: (o.x - s.x) / u,
y: (o.y - s.y) / u
};
}
var l = [];
st(r.classes) ? l = r.classes : Ie(r.classes) && (l = r.classes.split(/\s+/));
for (var c = 0, d = l.length; c < d; c++) {
var v = l[c];
!v || v === "" || i.classes.add(v);
}
this.createEmitter();
var h6 = r.style || r.css;
h6 && (tt("Setting a `style` bypass at element creation should be done only when absolutely necessary. Try to use the stylesheet instead."), this.style(h6)), (n === void 0 || n) && this.restore();
};
var lf = function(e) {
return e = {
bfs: e.bfs || !e.dfs,
dfs: e.dfs || !e.bfs
}, function(n, a, i) {
var o;
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() {
};
for (var s = this._private.cy, u = n = Ie(n) ? this.filter(n) : n, l = [], c = [], d = {}, v = {}, h6 = {}, f = 0, p, m = this.byGroup(), g = m.nodes, y = m.edges, b = 0; b < u.length; b++) {
var w = u[b], C = w.id();
w.isNode() && (l.unshift(w), e.bfs && (h6[C] = true, c.push(w)), v[C] = 0);
}
for (var E = function() {
var I = e.bfs ? l.shift() : l.pop(), L = I.id();
if (e.dfs) {
if (h6[L])
return "continue";
h6[L] = true, c.push(I);
}
var B = v[L], F = d[L], M = F != null ? F.source() : null, A = F != null ? F.target() : null, R = F == null ? void 0 : I.same(M) ? A[0] : M[0], K10 = void 0;
if (K10 = a(I, F, R, f++, B), K10 === true)
return p = I, "break";
if (K10 === false)
return "break";
for (var H = I.connectedEdges().filter(function(ae) {
return (!i || ae.source().same(I)) && y.has(ae);
}), q = 0; q < H.length; q++) {
var ee = H[q], se2 = ee.connectedNodes().filter(function(ae) {
return !ae.same(I) && g.has(ae);
}), oe = se2.id();
se2.length !== 0 && !h6[oe] && (se2 = se2[0], l.push(se2), e.bfs && (h6[oe] = true, c.push(se2)), d[oe] = ee, v[oe] = v[L] + 1);
}
}; l.length !== 0; ) {
var x = E();
if (x !== "continue" && x === "break")
break;
}
for (var T = s.collection(), k = 0; k < c.length; k++) {
var _ = c[k], D = d[_.id()];
D != null && T.push(D), T.push(_);
}
return {
path: s.collection(T),
found: s.collection(p)
};
};
};
var ao = {
breadthFirstSearch: lf({
bfs: true
}),
depthFirstSearch: lf({
dfs: true
})
};
ao.bfs = ao.breadthFirstSearch;
ao.dfs = ao.depthFirstSearch;
var C5 = TT(function(t20, e) {
(function() {
var r, n, a, i, o, s, u, l, c, d, v, h6, f, p, m;
a = Math.floor, d = Math.min, n = function(g, y) {
return g < y ? -1 : g > y ? 1 : 0;
}, c = function(g, y, b, w, C) {
var E;
if (b == null && (b = 0), C == null && (C = n), b < 0)
throw new Error("lo must be non-negative");
for (w == null && (w = g.length); b < w; )
E = a((b + w) / 2), C(y, g[E]) < 0 ? w = E : b = E + 1;
return [].splice.apply(g, [b, b - b].concat(y)), y;
}, s = function(g, y, b) {
return b == null && (b = n), g.push(y), p(g, 0, g.length - 1, b);
}, o = function(g, y) {
var b, w;
return y == null && (y = n), b = g.pop(), g.length ? (w = g[0], g[0] = b, m(g, 0, y)) : w = b, w;
}, l = function(g, y, b) {
var w;
return b == null && (b = n), w = g[0], g[0] = y, m(g, 0, b), w;
}, u = function(g, y, b) {
var w;
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;
}, i = function(g, y) {
var b, w, C, E, x, T;
for (y == null && (y = n), E = (function() {
T = [];
for (var k = 0, _ = a(g.length / 2); 0 <= _ ? k < _ : k > _; 0 <= _ ? k++ : k--)
T.push(k);
return T;
}).apply(this).reverse(), x = [], w = 0, C = E.length; w < C; w++)
b = E[w], x.push(m(g, b, y));
return x;
}, f = function(g, y, b) {
var w;
if (b == null && (b = n), w = g.indexOf(y), w !== -1)
return p(g, 0, w, b), m(g, w, b);
}, v = function(g, y, b) {
var w, C, E, x, T;
if (b == null && (b = n), C = g.slice(0, y), !C.length)
return C;
for (i(C, b), T = g.slice(y), E = 0, x = T.length; E < x; E++)
w = T[E], u(C, w, b);
return C.sort(b).reverse();
}, h6 = function(g, y, b) {
var w, C, E, x, T, k, _, D, O;
if (b == null && (b = n), y * 10 <= g.length) {
if (E = g.slice(0, y).sort(b), !E.length)
return E;
for (C = E[E.length - 1], _ = g.slice(y), x = 0, k = _.length; x < k; x++)
w = _[x], b(w, C) < 0 && (c(E, w, 0, null, b), E.pop(), C = E[E.length - 1]);
return E;
}
for (i(g, b), O = [], T = 0, D = d(y, g.length); 0 <= D ? T < D : T > D; 0 <= D ? ++T : --T)
O.push(o(g, b));
return O;
}, p = function(g, y, b, w) {
var C, E, x;
for (w == null && (w = n), C = g[b]; b > y; ) {
if (x = b - 1 >> 1, E = g[x], w(C, E) < 0) {
g[b] = E, b = x;
continue;
}
break;
}
return g[b] = C;
}, m = function(g, y, b) {
var w, C, E, x, T;
for (b == null && (b = n), C = g.length, T = y, E = g[y], w = 2 * y + 1; w < C; )
x = w + 1, x < C && !(b(g[w], g[x]) < 0) && (w = x), g[y] = g[w], y = w, w = 2 * y + 1;
return g[y] = E, p(g, T, y, b);
}, r = function() {
g.push = s, g.pop = o, g.replace = l, g.pushpop = u, g.heapify = i, g.updateItem = f, g.nlargest = v, g.nsmallest = h6;
function g(y) {
this.cmp = y ?? n, this.nodes = [];
}
return g.prototype.push = function(y) {
return s(this.nodes, y, this.cmp);
}, g.prototype.pop = function() {
return o(this.nodes, this.cmp);
}, g.prototype.peek = function() {
return this.nodes[0];
}, g.prototype.contains = function(y) {
return this.nodes.indexOf(y) !== -1;
}, g.prototype.replace = function(y) {
return l(this.nodes, y, this.cmp);
}, g.prototype.pushpop = function(y) {
return u(this.nodes, y, this.cmp);
}, g.prototype.heapify = function() {
return i(this.nodes, this.cmp);
}, g.prototype.updateItem = function(y) {
return f(this.nodes, y, this.cmp);
}, g.prototype.clear = function() {
return this.nodes = [];
}, g.prototype.empty = function() {
return this.nodes.length === 0;
}, g.prototype.size = function() {
return this.nodes.length;
}, g.prototype.clone = function() {
var y;
return y = new g(), y.nodes = this.nodes.slice(0), y;
}, g.prototype.toArray = function() {
return this.nodes.slice(0);
}, 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;
}(), function(g, y) {
return t20.exports = y();
}(this, function() {
return r;
});
}).call(Mi);
});
var Oo = C5;
var E5 = Wt({
root: null,
weight: function(e) {
return 1;
},
directed: false
});
var k5 = {
dijkstra: function(e) {
if (!Xe(e)) {
var r = arguments;
e = {
root: r[0],
weight: r[1],
directed: r[2]
};
}
var n = E5(e), a = n.root, i = n.weight, o = n.directed, s = this, u = i, l = Ie(a) ? this.filter(a)[0] : a[0], c = {}, d = {}, v = {}, h6 = this.byGroup(), f = h6.nodes, p = h6.edges;
p.unmergeBy(function(B) {
return B.isLoop();
});
for (var m = function(F) {
return c[F.id()];
}, g = function(F, M) {
c[F.id()] = M, y.updateItem(F);
}, y = new Oo(function(B, F) {
return m(B) - m(F);
}), b = 0; b < f.length; b++) {
var w = f[b];
c[w.id()] = w.same(l) ? 0 : 1 / 0, y.push(w);
}
for (var C = function(F, M) {
for (var A = (o ? F.edgesTo(M) : F.edgesWith(M)).intersect(p), R = 1 / 0, K10, H = 0; H < A.length; H++) {
var q = A[H], ee = u(q);
(ee < R || !K10) && (R = ee, K10 = q);
}
return {
edge: K10,
dist: R
};
}; y.size() > 0; ) {
var E = y.pop(), x = m(E), T = E.id();
if (v[T] = x, x !== 1 / 0)
for (var k = E.neighborhood().intersect(f), _ = 0; _ < k.length; _++) {
var D = k[_], O = D.id(), I = C(E, D), L = x + I.dist;
L < m(D) && (g(D, L), d[O] = {
node: E,
edge: I.edge
});
}
}
return {
distanceTo: function(F) {
var M = Ie(F) ? f.filter(F)[0] : F[0];
return v[M.id()];
},
pathTo: function(F) {
var M = Ie(F) ? f.filter(F)[0] : F[0], A = [], R = M, K10 = R.id();
if (M.length > 0)
for (A.unshift(M); d[K10]; ) {
var H = d[K10];
A.unshift(H.edge), A.unshift(H.node), R = H.node, K10 = R.id();
}
return s.spawn(A);
}
};
}
};
var S5 = {
// kruskal's algorithm (finds min spanning tree, assuming undirected graph)
// implemented from pseudocode from wikipedia
kruskal: function(e) {
e = e || function(b) {
return 1;
};
for (var r = this.byGroup(), n = r.nodes, a = r.edges, i = n.length, o = new Array(i), s = n, u = function(w) {
for (var C = 0; C < o.length; C++) {
var E = o[C];
if (E.has(w))
return C;
}
}, l = 0; l < i; l++)
o[l] = this.spawn(n[l]);
for (var c = a.sort(function(b, w) {
return e(b) - e(w);
}), d = 0; d < c.length; d++) {
var v = c[d], h6 = v.source()[0], f = v.target()[0], p = u(h6), m = u(f), g = o[p], y = o[m];
p !== m && (s.merge(v), g.merge(y), o.splice(m, 1));
}
return s;
}
};
var T5 = Wt({
root: null,
goal: null,
weight: function(e) {
return 1;
},
heuristic: function(e) {
return 0;
},
directed: false
});
var _5 = {
// Implemented from pseudocode from wikipedia
aStar: function(e) {
var r = this.cy(), n = T5(e), a = n.root, i = n.goal, o = n.heuristic, s = n.directed, u = n.weight;
a = r.collection(a)[0], i = r.collection(i)[0];
var l = a.id(), c = i.id(), d = {}, v = {}, h6 = {}, f = new Oo(function(K10, H) {
return v[K10.id()] - v[H.id()];
}), p = new vi(), m = {}, g = {}, y = function(H, q) {
f.push(H), p.add(q);
}, b, w, C = function() {
b = f.pop(), w = b.id(), p.delete(w);
}, E = function(H) {
return p.has(H);
};
y(a, l), d[l] = 0, v[l] = o(a);
for (var x = 0; f.size() > 0; ) {
if (C(), x++, w === c) {
for (var T = [], k = i, _ = c, D = g[_]; T.unshift(k), D != null && T.unshift(D), k = m[_], k != null; )
_ = k.id(), D = g[_];
return {
found: true,
distance: d[w],
path: this.spawn(T),
steps: x
};
}
h6[w] = true;
for (var O = b._private.edges, I = 0; I < O.length; I++) {
var L = O[I];
if (this.hasElementWithId(L.id()) && !(s && L.data("source") !== w)) {
var B = L.source(), F = L.target(), M = B.id() !== w ? B : F, A = M.id();
if (this.hasElementWithId(A) && !h6[A]) {
var R = d[w] + u(L);
if (!E(A)) {
d[A] = R, v[A] = R + o(M), y(M, A), m[A] = b, g[A] = L;
continue;
}
R < d[A] && (d[A] = R, v[A] = R + o(M), m[A] = b, g[A] = L);
}
}
}
}
return {
found: false,
distance: void 0,
path: void 0,
steps: x
};
}
};
var D5 = Wt({
weight: function(e) {
return 1;
},
directed: false
});
var P5 = {
// Implemented from pseudocode from wikipedia
floydWarshall: function(e) {
for (var r = this.cy(), n = D5(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) {
return u.indexOf(ee);
}, h6 = function(ee) {
return u[ee];
}, f = new Array(d), p = 0; p < d; p++) {
var m = p % c, g = (p - m) / c;
g === m ? f[p] = 0 : f[p] = 1 / 0;
}
for (var y = new Array(d), b = new Array(d), w = 0; w < l.length; w++) {
var C = l[w], E = C.source()[0], x = C.target()[0];
if (E !== x) {
var T = v(E), k = v(x), _ = T * c + k, D = o(C);
if (f[_] > D && (f[_] = D, y[_] = k, b[_] = C), !i) {
var O = k * c + T;
!i && f[O] > D && (f[O] = D, y[O] = T, b[O] = C);
}
}
}
for (var I = 0; I < c; I++)
for (var L = 0; L < c; L++)
for (var B = L * c + I, F = 0; F < c; F++) {
var M = L * c + F, A = I * c + F;
f[B] + f[A] < f[M] && (f[M] = f[B] + f[A], y[M] = y[B]);
}
var R = function(ee) {
return (Ie(ee) ? r.filter(ee) : ee)[0];
}, K10 = function(ee) {
return v(R(ee));
}, H = {
distance: function(ee, se2) {
var oe = K10(ee), ae = K10(se2);
return f[oe * c + ae];
},
path: function(ee, se2) {
var oe = K10(ee), ae = K10(se2), ue = h6(oe);
if (oe === ae)
return ue.collection();
if (y[oe * c + ae] == null)
return r.collection();
var te = r.collection(), $ = oe, G;
for (te.merge(ue); oe !== ae; )
$ = oe, oe = y[oe * c + ae], G = b[$ * c + oe], te.merge(G), te.merge(h6(oe));
return te;
}
};
return H;
}
// floydWarshall
};
var O5 = Wt({
weight: function(e) {
return 1;
},
directed: false,
root: null
});
var L5 = {
// Implemented from pseudocode from wikipedia
bellmanFord: function(e) {
var r = this, n = O5(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, h6 = v.length, f = new Xr(), p = false, m = [];
o = l.collection(o)[0], d.unmergeBy(function(ke2) {
return ke2.isLoop();
});
for (var g = d.length, y = function(Ce) {
var De = f.get(Ce.id());
return De || (De = {}, f.set(Ce.id(), De)), De;
}, b = function(Ce) {
return (Ie(Ce) ? l.$(Ce) : Ce)[0];
}, w = function(Ce) {
return y(b(Ce)).dist;
}, C = function(Ce) {
for (var De = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : o, qe = b(Ce), Ke = [], Be = qe; ; ) {
if (Be == null)
return r.spawn();
var Ge = y(Be), le = Ge.edge, S = Ge.pred;
if (Ke.unshift(Be[0]), Be.same(De) && Ke.length > 0)
break;
le != null && Ke.unshift(le), Be = S;
}
return u.spawn(Ke);
}, E = 0; E < h6; E++) {
var x = v[E], T = y(x);
x.same(o) ? T.dist = 0 : T.dist = 1 / 0, T.pred = null, T.edge = null;
}
for (var k = false, _ = function(Ce, De, qe, Ke, Be, Ge) {
var le = Ke.dist + Ge;
le < Be.dist && !qe.same(Ke.edge) && (Be.dist = le, Be.pred = Ce, Be.edge = qe, k = true);
}, D = 1; D < h6; D++) {
k = false;
for (var O = 0; O < g; O++) {
var I = d[O], L = I.source(), B = I.target(), F = s(I), M = y(L), A = y(B);
_(L, B, I, M, A, F), i || _(B, L, I, A, M, F);
}
if (!k)
break;
}
if (k)
for (var R = [], K10 = 0; K10 < g; K10++) {
var H = d[K10], q = H.source(), ee = H.target(), se2 = s(H), oe = y(q).dist, ae = y(ee).dist;
if (oe + se2 < ae || !i && ae + se2 < oe)
if (p || (tt("Graph contains a negative weight cycle for Bellman-Ford"), p = true), e.findNegativeWeightCycles !== false) {
var ue = [];
oe + se2 < ae && ue.push(q), !i && ae + se2 < oe && ue.push(ee);
for (var te = ue.length, $ = 0; $ < te; $++) {
var G = ue[$], Q = [G];
Q.push(y(G).edge);
for (var ge2 = y(G).pred; Q.indexOf(ge2) === -1; )
Q.push(ge2), Q.push(y(ge2).edge), ge2 = y(ge2).pred;
Q = Q.slice(Q.indexOf(ge2));
for (var Ee2 = Q[0].id(), fe = 0, me = 2; me < Q.length; me += 2)
Q[me].id() < Ee2 && (Ee2 = Q[me].id(), fe = me);
Q = Q.slice(fe).concat(Q.slice(0, fe)), Q.push(Q[0]);
var xe = Q.map(function(ke2) {
return ke2.id();
}).join(",");
R.indexOf(xe) === -1 && (m.push(u.spawn(Q)), R.push(xe));
}
} else
break;
}
return {
distanceTo: w,
pathTo: C,
hasNegativeWeightCycle: p,
negativeWeightCycles: m
};
}
// bellmanFord
};
var F5 = Math.sqrt(2);
var I5 = function(e, r, n) {
n.length === 0 && yt("Karger-Stein must be run on a connected (sub)graph");
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--) {
var d = l[c], v = d[1], h6 = d[2];
(r[v] === s && r[h6] === u || r[v] === u && r[h6] === s) && l.splice(c, 1);
}
for (var f = 0; f < l.length; f++) {
var p = l[f];
p[1] === u ? (l[f] = p.slice(), l[f][1] = s) : p[2] === u && (l[f] = p.slice(), l[f][2] = s);
}
for (var m = 0; m < r.length; m++)
r[m] === u && (r[m] = s);
return l;
};
var Ml = function(e, r, n, a) {
for (; n > a; ) {
var i = Math.floor(Math.random() * r.length);
r = I5(i, e, r), n--;
}
return r;
};
var A5 = {
// Computes the minimum cut of an undirected graph
// Returns the correct answer with high probability
kargerStein: function() {
var e = this, r = this.byGroup(), n = r.nodes, a = r.edges;
a.unmergeBy(function(A) {
return A.isLoop();
});
var i = n.length, o = a.length, s = Math.ceil(Math.pow(Math.log(i) / Math.LN2, 2)), u = Math.floor(i / F5);
if (i < 2) {
yt("At least 2 nodes are required for Karger-Stein algorithm");
return;
}
for (var l = [], c = 0; c < o; c++) {
var d = a[c];
l.push([c, n.indexOf(d.source()), n.indexOf(d.target())]);
}
for (var v = 1 / 0, h6 = [], f = new Array(i), p = new Array(i), m = new Array(i), g = function(R, K10) {
for (var H = 0; H < i; H++)
K10[H] = R[H];
}, y = 0; y <= s; y++) {
for (var b = 0; b < i; b++)
p[b] = b;
var w = Ml(p, l.slice(), i, u), C = w.slice();
g(p, m);
var E = Ml(p, w, u, 2), x = Ml(m, C, u, 2);
E.length <= x.length && E.length < v ? (v = E.length, h6 = E, g(p, f)) : x.length <= E.length && x.length < v && (v = x.length, h6 = x, g(m, f));
}
for (var T = this.spawn(h6.map(function(A) {
return a[A[0]];
})), k = this.spawn(), _ = this.spawn(), D = f[0], O = 0; O < f.length; O++) {
var I = f[O], L = n[O];
I === D ? k.merge(L) : _.merge(L);
}
var B = function(R) {
var K10 = e.spawn();
return R.forEach(function(H) {
K10.merge(H), H.connectedEdges().forEach(function(q) {
e.contains(q) && !T.contains(q) && K10.merge(q);
});
}), K10;
}, F = [B(k), B(_)], M = {
cut: T,
components: F,
// n.b. partitions are included to be compatible with the old api spec
// (could be removed in a future major version)
partition1: k,
partition2: _
};
return M;
}
};
var M5 = function(e) {
return {
x: e.x,
y: e.y
};
};
var nl = function(e, r, n) {
return {
x: e.x * r + n.x,
y: e.y * r + n.y
};
};
var cp = function(e, r, n) {
return {
x: (e.x - n.x) / r,
y: (e.y - n.y) / r
};
};
var Ha = function(e) {
return {
x: e[0],
y: e[1]
};
};
var B5 = function(e) {
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++) {
var o = e[i];
isFinite(o) && (a = Math.min(o, a));
}
return a;
};
var N5 = function(e) {
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++) {
var o = e[i];
isFinite(o) && (a = Math.max(o, a));
}
return a;
};
var $5 = function(e) {
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++) {
var s = e[o];
isFinite(s) && (a += s, i++);
}
return a / i;
};
var R5 = function(e) {
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] : true, i = arguments.length > 4 && arguments[4] !== void 0 ? arguments[4] : true, o = arguments.length > 5 && arguments[5] !== void 0 ? arguments[5] : true;
a ? e = e.slice(r, n) : (n < e.length && e.splice(n, e.length - n), r > 0 && e.splice(0, r));
for (var s = 0, u = e.length - 1; u >= 0; u--) {
var l = e[u];
o ? isFinite(l) || (e[u] = -1 / 0, s++) : e.splice(u, 1);
}
i && e.sort(function(v, h6) {
return v - h6;
});
var c = e.length, d = Math.floor(c / 2);
return c % 2 !== 0 ? e[d + 1 + s] : (e[d - 1 + s] + e[d + s]) / 2;
};
var z5 = function(e) {
return Math.PI * e / 180;
};
var Wo = function(e, r) {
return Math.atan2(r, e) - Math.PI / 2;
};
var dc = Math.log2 || function(t20) {
return Math.log(t20) / Math.log(2);
};
var dp = function(e) {
return e > 0 ? 1 : e < 0 ? -1 : 0;
};
var ya = function(e, r) {
return Math.sqrt(ta(e, r));
};
var ta = function(e, r) {
var n = r.x - e.x, a = r.y - e.y;
return n * n + a * a;
};
var V5 = function(e) {
for (var r = e.length, n = 0, a = 0; a < r; a++)
n += e[a];
for (var i = 0; i < r; i++)
e[i] = e[i] / n;
return e;
};
var Nt = function(e, r, n, a) {
return (1 - a) * (1 - a) * e + 2 * (1 - a) * a * r + a * a * n;
};
var Ga = function(e, r, n, a) {
return {
x: Nt(e.x, r.x, n.x, a),
y: Nt(e.y, r.y, n.y, a)
};
};
var H5 = function(e, r, n, a) {
var i = {
x: r.x - e.x,
y: r.y - e.y
}, o = ya(e, r), s = {
x: i.x / o,
y: i.y / o
};
return n = n ?? 0, a = a ?? n * o, {
x: e.x + s.x * a,
y: e.y + s.y * a
};
};
var io = function(e, r, n) {
return Math.max(e, Math.min(n, r));
};
var pr = function(e) {
if (e == null)
return {
x1: 1 / 0,
y1: 1 / 0,
x2: -1 / 0,
y2: -1 / 0,
w: 0,
h: 0
};
if (e.x1 != null && e.y1 != null) {
if (e.x2 != null && e.y2 != null && e.x2 >= e.x1 && e.y2 >= e.y1)
return {
x1: e.x1,
y1: e.y1,
x2: e.x2,
y2: e.y2,
w: e.x2 - e.x1,
h: e.y2 - e.y1
};
if (e.w != null && e.h != null && e.w >= 0 && e.h >= 0)
return {
x1: e.x1,
y1: e.y1,
x2: e.x1 + e.w,
y2: e.y1 + e.h,
w: e.w,
h: e.h
};
}
};
var q5 = function(e) {
return {
x1: e.x1,
x2: e.x2,
w: e.w,
y1: e.y1,
y2: e.y2,
h: e.h
};
};
var K5 = function(e) {
e.x1 = 1 / 0, e.y1 = 1 / 0, e.x2 = -1 / 0, e.y2 = -1 / 0, e.w = 0, e.h = 0;
};
var U5 = function(e, r, n) {
return {
x1: e.x1 + r,
x2: e.x2 + r,
y1: e.y1 + n,
y2: e.y2 + n,
w: e.w,
h: e.h
};
};
var fp = function(e, r) {
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;
};
var G5 = function(e, r, 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;
};
var us = function(e) {
var r = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : 0;
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;
};
var cs = function(e) {
var r = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : [0], n, a, i, o;
if (r.length === 1)
n = a = i = o = r[0];
else if (r.length === 2)
n = i = r[0], o = a = r[1];
else if (r.length === 4) {
var s = Mr(r, 4);
n = s[0], a = s[1], i = s[2], o = s[3];
}
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;
};
var uf = function(e, r) {
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;
};
var fc = function(e, r) {
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);
};
var oi = function(e, r, n) {
return e.x1 <= r && r <= e.x2 && e.y1 <= n && n <= e.y2;
};
var W5 = function(e, r) {
return oi(e, r.x, r.y);
};
var vp = function(e, r) {
return oi(e, r.x1, r.y1) && oi(e, r.x2, r.y2);
};
var hp = function(e, r, n, a, i, o, s) {
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;
l = Math.min(l, c, d);
var v = l !== c, h6 = l !== d, f;
if (v) {
var p = n - c + l - s, m = a - d - s, g = n + c - l + s, y = m;
if (f = Nn(e, r, n, a, p, m, g, y, false), f.length > 0)
return f;
}
if (h6) {
var b = n + c + s, w = a - d + l - s, C = b, E = a + d - l + s;
if (f = Nn(e, r, n, a, b, w, C, E, false), f.length > 0)
return f;
}
if (v) {
var x = n - c + l - s, T = a + d + s, k = n + c - l + s, _ = T;
if (f = Nn(e, r, n, a, x, T, k, _, false), f.length > 0)
return f;
}
if (h6) {
var D = n - c - s, O = a - d + l - s, I = D, L = a + d - l + s;
if (f = Nn(e, r, n, a, D, O, I, L, false), f.length > 0)
return f;
}
var B;
{
var F = n - c + l, M = a - d + l;
if (B = Ni(e, r, n, a, F, M, l + s), B.length > 0 && B[0] <= F && B[1] <= M)
return [B[0], B[1]];
}
{
var A = n + c - l, R = a - d + l;
if (B = Ni(e, r, n, a, A, R, l + s), B.length > 0 && B[0] >= A && B[1] <= R)
return [B[0], B[1]];
}
{
var K10 = n + c - l, H = a + d - l;
if (B = Ni(e, r, n, a, K10, H, l + s), B.length > 0 && B[0] >= K10 && B[1] >= H)
return [B[0], B[1]];
}
{
var q = n - c + l, ee = a + d - l;
if (B = Ni(e, r, n, a, q, ee, l + s), B.length > 0 && B[0] <= q && B[1] >= ee)
return [B[0], B[1]];
}
return [];
};
var Y5 = function(e, r, n, a, i, o, s) {
var u = s, l = Math.min(n, i), c = Math.max(n, i), d = Math.min(a, o), v = Math.max(a, o);
return l - u <= e && e <= c + u && d - u <= r && r <= v + u;
};
var Z5 = function(e, r, n, a, i, o, s, u, l) {
var c = {
x1: Math.min(n, s, i) - l,
x2: Math.max(n, s, i) + l,
y1: Math.min(a, u, o) - l,
y2: Math.max(a, u, o) + l
};
return !(e < c.x1 || e > c.x2 || r < c.y1 || r > c.y2);
};
var X5 = function(e, r, n, a) {
n -= a;
var i = r * r - 4 * e * n;
if (i < 0)
return [];
var o = Math.sqrt(i), s = 2 * e, u = (-r + o) / s, l = (-r - o) / s;
return [u, l];
};
var j5 = function(e, r, n, a, i) {
var o = 1e-5;
e === 0 && (e = o), r /= e, n /= e, a /= e;
var s, u, l, c, d, v, h6, f;
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, h6 = r / 3, s > 0) {
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] = -h6 + d + v, h6 += (d + v) / 2, i[4] = i[2] = -h6, h6 = Math.sqrt(3) * (-v + d) / 2, i[3] = h6, i[5] = -h6;
return;
}
if (i[5] = i[3] = 0, s === 0) {
f = l < 0 ? -Math.pow(-l, 1 / 3) : Math.pow(l, 1 / 3), i[0] = -h6 + 2 * f, i[4] = i[2] = -(f + h6);
return;
}
u = -u, c = u * u * u, c = Math.acos(l / Math.sqrt(c)), f = 2 * Math.sqrt(u), i[0] = -h6 + f * Math.cos(c / 3), i[2] = -h6 + f * Math.cos((c + 2 * Math.PI) / 3), i[4] = -h6 + f * Math.cos((c + 4 * Math.PI) / 3);
};
var Q5 = function(e, r, n, a, i, o, s, u) {
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, h6 = [];
j5(l, c, d, v, h6);
for (var f = 1e-7, p = [], m = 0; m < 6; m += 2)
Math.abs(h6[m + 1]) < f && h6[m] >= 0 && h6[m] <= 1 && p.push(h6[m]);
p.push(1), p.push(0);
for (var g = -1, y, b, w, C = 0; C < p.length; C++)
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;
return g;
};
var J5 = function(e, r, n, a, i, o) {
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;
return d < 0 ? c : v > l ? (e - i) * (e - i) + (r - o) * (r - o) : c - v;
};
var dr = function(e, r, n) {
for (var a, i, o, s, u, l = 0, c = 0; c < n.length / 2; c++)
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)
u = (e - a) / (o - a) * (s - i) + i, u > r && l++;
else
continue;
return l % 2 !== 0;
};
var mn = function(e, r, n, a, i, o, s, u, l) {
var c = new Array(n.length), d;
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;
for (var v = Math.cos(-d), h6 = Math.sin(-d), f = 0; f < c.length / 2; f++)
c[f * 2] = o / 2 * (n[f * 2] * v - n[f * 2 + 1] * h6), c[f * 2 + 1] = s / 2 * (n[f * 2 + 1] * v + n[f * 2] * h6), c[f * 2] += a, c[f * 2 + 1] += i;
var p;
if (l > 0) {
var m = Fs(c, -l);
p = Ls(m);
} else
p = c;
return dr(e, r, p);
};
var e4 = function(e, r, n, a, i, o, s, u) {
for (var l = new Array(n.length * 2), c = 0; c < u.length; c++) {
var d = u[c];
l[c * 4 + 0] = d.startX, l[c * 4 + 1] = d.startY, l[c * 4 + 2] = d.stopX, l[c * 4 + 3] = d.stopY;
var v = Math.pow(d.cx - e, 2) + Math.pow(d.cy - r, 2);
if (v <= Math.pow(d.radius, 2))
return true;
}
return dr(e, r, l);
};
var Ls = function(e) {
for (var r = new Array(e.length / 2), n, a, i, o, s, u, l, c, d = 0; d < e.length / 4; d++) {
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]);
var v = Nn(n, a, i, o, s, u, l, c, true);
r[d * 2] = v[0], r[d * 2 + 1] = v[1];
}
return r;
};
var Fs = function(e, r) {
for (var n = new Array(e.length * 2), a, i, o, s, u = 0; u < e.length / 2; u++) {
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]);
var l = s - i, c = -(o - a), d = Math.sqrt(l * l + c * c), v = l / d, h6 = c / d;
n[u * 4] = a + v * r, n[u * 4 + 1] = i + h6 * r, n[u * 4 + 2] = o + v * r, n[u * 4 + 3] = s + h6 * r;
}
return n;
};
var t4 = function(e, r, n, a, i, o) {
var s = n - e, u = a - r;
s /= i, u /= o;
var l = Math.sqrt(s * s + u * u), c = l - 1;
if (c < 0)
return [];
var d = c / l;
return [(n - e) * d + e, (a - r) * d + r];
};
var la = function(e, r, n, a, i, o, s) {
return e -= i, r -= o, e /= n / 2 + s, r /= a / 2 + s, e * e + r * r <= 1;
};
var Ni = function(e, r, n, a, i, o, s) {
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, h6 = d * d - 4 * c * v;
if (h6 < 0)
return [];
var f = (-d + Math.sqrt(h6)) / (2 * c), p = (-d - Math.sqrt(h6)) / (2 * c), m = Math.min(f, p), g = Math.max(f, p), y = [];
if (m >= 0 && m <= 1 && y.push(m), g >= 0 && g <= 1 && y.push(g), y.length === 0)
return [];
var b = y[0] * u[0] + e, w = y[0] * u[1] + r;
if (y.length > 1) {
if (y[0] == y[1])
return [b, w];
var C = y[1] * u[0] + e, E = y[1] * u[1] + r;
return [b, w, C, E];
} else
return [b, w];
};
var Bl = function(e, r, n) {
return r <= e && e <= n || n <= e && e <= r ? e : e <= r && r <= n || n <= r && r <= e ? r : n;
};
var Nn = function(e, r, n, a, i, o, s, u, l) {
var c = e - i, d = n - e, v = s - i, h6 = r - o, f = a - r, p = u - o, m = v * h6 - p * c, g = d * h6 - f * c, y = p * d - v * f;
if (y !== 0) {
var b = m / y, w = g / y, C = 1e-3, E = 0 - C, x = 1 + C;
return E <= b && b <= x && E <= w && w <= x ? [e + b * d, r + b * f] : l ? [e + b * d, r + b * f] : [];
} else
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] : [] : [];
};
var oo = function(e, r, n, a, i, o, s, u) {
var l = [], c, d = new Array(n.length), v = true;
o == null && (v = false);
var h6;
if (v) {
for (var f = 0; f < d.length / 2; f++)
d[f * 2] = n[f * 2] * o + a, d[f * 2 + 1] = n[f * 2 + 1] * s + i;
if (u > 0) {
var p = Fs(d, -u);
h6 = Ls(p);
} else
h6 = d;
} else
h6 = n;
for (var m, g, y, b, w = 0; w < h6.length / 2; w++)
m = h6[w * 2], g = h6[w * 2 + 1], w < h6.length / 2 - 1 ? (y = h6[(w + 1) * 2], b = h6[(w + 1) * 2 + 1]) : (y = h6[0], b = h6[1]), c = Nn(e, r, a, i, m, g, y, b), c.length !== 0 && l.push(c[0], c[1]);
return l;
};
var r4 = function(e, r, n, a, i, o, s, u, l) {
var c = [], d, v = new Array(n.length * 2);
l.forEach(function(y, b) {
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]);
});
for (var h6 = 0; h6 < v.length / 4; h6++)
d = Nn(e, r, a, i, v[h6 * 4], v[h6 * 4 + 1], v[h6 * 4 + 2], v[h6 * 4 + 3], false), d.length !== 0 && c.push(d[0], d[1]);
if (c.length > 2) {
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++) {
var g = Math.pow(c[m * 2] - e, 2) + Math.pow(c[m * 2 + 1] - r, 2);
g <= p && (f[0] = c[m * 2], f[1] = c[m * 2 + 1], p = g);
}
return f;
}
return c;
};
var Yo = function(e, r, 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;
return o < 0 && (o = 1e-5), [r[0] + o * a[0], r[1] + o * a[1]];
};
var sr = function(e, r) {
var n = su(e, r);
return n = pp(n), n;
};
var pp = function(e) {
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++)
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);
for (var c = 2 / (s - i), d = 2 / (u - o), v = 0; v < a; v++)
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);
if (o < -1)
for (var h6 = 0; h6 < a; h6++)
n = e[2 * h6 + 1] = e[2 * h6 + 1] + (-1 - o);
return e;
};
var su = function(e, r) {
var n = 1 / e * 2 * Math.PI, a = e % 2 === 0 ? Math.PI / 2 + n / 2 : Math.PI / 2;
a += r;
for (var i = new Array(e * 2), o, s = 0; s < e; s++)
o = s * n + a, i[2 * s] = Math.cos(o), i[2 * s + 1] = Math.sin(-o);
return i;
};
var ba = function(e, r) {
return Math.min(e / 4, r / 4, 8);
};
var gp = function(e, r) {
return Math.min(e / 10, r / 10, 8);
};
var vc = function() {
return 8;
};
var n4 = function(e, r, n) {
return [e - 2 * r + n, 2 * (r - e), e];
};
var lu = function(e, r) {
return {
heightOffset: Math.min(15, 0.05 * r),
widthOffset: Math.min(100, 0.25 * e),
ctrlPtOffsetPct: 0.05
};
};
var a4 = Wt({
dampingFactor: 0.8,
precision: 1e-6,
iterations: 200,
weight: function(e) {
return 1;
}
});
var i4 = {
pageRank: function(e) {
for (var r = a4(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, h6 = c.length, f = new Array(v), p = new Array(d), m = (1 - n) / d, g = 0; g < d; g++) {
for (var y = 0; y < d; y++) {
var b = g * d + y;
f[b] = 0;
}
p[g] = 0;
}
for (var w = 0; w < h6; w++) {
var C = c[w], E = C.data("source"), x = C.data("target");
if (E !== x) {
var T = l.indexOfId(E), k = l.indexOfId(x), _ = o(C), D = k * d + T;
f[D] += _, p[T] += _;
}
}
for (var O = 1 / d + m, I = 0; I < d; I++)
if (p[I] === 0)
for (var L = 0; L < d; L++) {
var B = L * d + I;
f[B] = O;
}
else
for (var F = 0; F < d; F++) {
var M = F * d + I;
f[M] = f[M] / p[I] + m;
}
for (var A = new Array(d), R = new Array(d), K10, H = 0; H < d; H++)
A[H] = 1;
for (var q = 0; q < i; q++) {
for (var ee = 0; ee < d; ee++)
R[ee] = 0;
for (var se2 = 0; se2 < d; se2++)
for (var oe = 0; oe < d; oe++) {
var ae = se2 * d + oe;
R[se2] += f[ae] * A[oe];
}
V5(R), K10 = A, A = R, R = K10;
for (var ue = 0, te = 0; te < d; te++) {
var $ = K10[te] - A[te];
ue += $ * $;
}
if (ue < a)
break;
}
var G = {
rank: function(ge2) {
return ge2 = s.collection(ge2)[0], A[l.indexOf(ge2)];
}
};
return G;
}
// pageRank
};
var cf = Wt({
root: null,
weight: function(e) {
return 1;
},
directed: false,
alpha: 0
});
var Wa = {
degreeCentralityNormalized: function(e) {
e = cf(e);
var r = this.cy(), n = this.nodes(), a = n.length;
if (e.directed) {
for (var c = {}, d = {}, v = 0, h6 = 0, f = 0; f < a; f++) {
var p = n[f], m = p.id();
e.root = p;
var g = this.degreeCentrality(e);
v < g.indegree && (v = g.indegree), h6 < g.outdegree && (h6 = g.outdegree), c[m] = g.indegree, d[m] = g.outdegree;
}
return {
indegree: function(b) {
return v == 0 ? 0 : (Ie(b) && (b = r.filter(b)), c[b.id()] / v);
},
outdegree: function(b) {
return h6 === 0 ? 0 : (Ie(b) && (b = r.filter(b)), d[b.id()] / h6);
}
};
} else {
for (var i = {}, o = 0, s = 0; s < a; s++) {
var u = n[s];
e.root = u;
var l = this.degreeCentrality(e);
o < l.degree && (o = l.degree), i[u.id()] = l.degree;
}
return {
degree: function(b) {
return o === 0 ? 0 : (Ie(b) && (b = r.filter(b)), i[b.id()] / o);
}
};
}
},
// degreeCentralityNormalized
// Implemented from the algorithm in Opsahl's paper
// "Node centrality in weighted networks: Generalizing degree and shortest paths"
// check the heading 2 "Degree"
degreeCentrality: function(e) {
e = cf(e);
var r = this.cy(), n = this, a = e, i = a.root, o = a.weight, s = a.directed, u = a.alpha;
if (i = r.collection(i)[0], s) {
for (var h6 = i.connectedEdges(), f = h6.filter(function(E) {
return E.target().same(i) && n.has(E);
}), p = h6.filter(function(E) {
return E.source().same(i) && n.has(E);
}), m = f.length, g = p.length, y = 0, b = 0, w = 0; w < f.length; w++)
y += o(f[w]);
for (var C = 0; C < p.length; C++)
b += o(p[C]);
return {
indegree: Math.pow(m, 1 - u) * Math.pow(y, u),
outdegree: Math.pow(g, 1 - u) * Math.pow(b, u)
};
} else {
for (var l = i.connectedEdges().intersection(n), c = l.length, d = 0, v = 0; v < l.length; v++)
d += o(l[v]);
return {
degree: Math.pow(c, 1 - u) * Math.pow(d, u)
};
}
}
// degreeCentrality
};
Wa.dc = Wa.degreeCentrality;
Wa.dcn = Wa.degreeCentralityNormalised = Wa.degreeCentralityNormalized;
var df = Wt({
harmonic: true,
weight: function() {
return 1;
},
directed: false,
root: null
});
var Ya = {
closenessCentralityNormalized: function(e) {
for (var r = df(e), n = r.harmonic, a = r.weight, i = r.directed, o = this.cy(), s = {}, u = 0, l = this.nodes(), c = this.floydWarshall({
weight: a,
directed: i
}), d = 0; d < l.length; d++) {
for (var v = 0, h6 = l[d], f = 0; f < l.length; f++)
if (d !== f) {
var p = c.distance(h6, l[f]);
n ? v += 1 / p : v += p;
}
n || (v = 1 / v), u < v && (u = v), s[h6.id()] = v;
}
return {
closeness: function(g) {
return u == 0 ? 0 : (Ie(g) ? g = o.filter(g)[0].id() : g = g.id(), s[g] / u);
}
};
},
// Implemented from pseudocode from wikipedia
closenessCentrality: function(e) {
var r = df(e), n = r.root, a = r.weight, i = r.directed, o = r.harmonic;
n = this.filter(n)[0];
for (var s = this.dijkstra({
root: n,
weight: a,
directed: i
}), u = 0, l = this.nodes(), c = 0; c < l.length; c++) {
var d = l[c];
if (!d.same(n)) {
var v = s.distanceTo(d);
o ? u += 1 / v : u += v;
}
}
return o ? u : 1 / u;
}
// closenessCentrality
};
Ya.cc = Ya.closenessCentrality;
Ya.ccn = Ya.closenessCentralityNormalised = Ya.closenessCentralityNormalized;
var o4 = Wt({
weight: null,
directed: false
});
var uu = {
// Implemented from the algorithm in the paper "On Variants of Shortest-Path Betweenness Centrality and their Generic Computation" by Ulrik Brandes
betweennessCentrality: function(e) {
for (var r = o4(e), n = r.directed, a = r.weight, i = a != null, o = this.cy(), s = this.nodes(), u = {}, l = {}, c = 0, d = {
set: function(b, w) {
l[b] = w, w > c && (c = w);
},
get: function(b) {
return l[b];
}
}, v = 0; v < s.length; v++) {
var h6 = s[v], f = h6.id();
n ? u[f] = h6.outgoers().nodes() : u[f] = h6.openNeighborhood().nodes(), d.set(f, 0);
}
for (var p = function(b) {
for (var w = s[b].id(), C = [], E = {}, x = {}, T = {}, k = new Oo(function(oe, ae) {
return T[oe] - T[ae];
}), _ = 0; _ < s.length; _++) {
var D = s[_].id();
E[D] = [], x[D] = 0, T[D] = 1 / 0;
}
for (x[w] = 1, T[w] = 0, k.push(w); !k.empty(); ) {
var O = k.pop();
if (C.push(O), i)
for (var I = 0; I < u[O].length; I++) {
var L = u[O][I], B = o.getElementById(O), F = void 0;
B.edgesTo(L).length > 0 ? F = B.edgesTo(L)[0] : F = L.edgesTo(B)[0];
var M = a(F);
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));
}
else
for (var A = 0; A < u[O].length; A++) {
var R = u[O][A].id();
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));
}
}
for (var K10 = {}, H = 0; H < s.length; H++)
K10[s[H].id()] = 0;
for (; C.length > 0; ) {
for (var q = C.pop(), ee = 0; ee < E[q].length; ee++) {
var se2 = E[q][ee];
K10[se2] = K10[se2] + x[se2] / x[q] * (1 + K10[q]);
}
q != s[b].id() && d.set(q, d.get(q) + K10[q]);
}
}, m = 0; m < s.length; m++)
p(m);
var g = {
betweenness: function(b) {
var w = o.collection(b).id();
return d.get(w);
},
betweennessNormalized: function(b) {
if (c == 0)
return 0;
var w = o.collection(b).id();
return d.get(w) / c;
}
};
return g.betweennessNormalised = g.betweennessNormalized, g;
}
// betweennessCentrality
};
uu.bc = uu.betweennessCentrality;
var s4 = Wt({
expandFactor: 2,
// affects time of computation and cluster granularity to some extent: M * M
inflateFactor: 2,
// affects cluster granularity (the greater the value, the more clusters): M(i,j) / E(j)
multFactor: 1,
// optional self loops for each node. Use a neutral value to improve cluster computations.
maxIterations: 20,
// maximum number of iterations of the MCL algorithm in a single run
attributes: [
// attributes/features used to group nodes, ie. similarity values between nodes
function(t20) {
return 1;
}
]
});
var l4 = function(e) {
return s4(e);
};
var u4 = function(e, r) {
for (var n = 0, a = 0; a < r.length; a++)
n += r[a](e);
return n;
};
var c4 = function(e, r, n) {
for (var a = 0; a < r; a++)
e[a * r + a] = n;
};
var mp = function(e, r) {
for (var n, a = 0; a < r; a++) {
n = 0;
for (var i = 0; i < r; i++)
n += e[i * r + a];
for (var o = 0; o < r; o++)
e[o * r + a] = e[o * r + a] / n;
}
};
var d4 = function(e, r, n) {
for (var a = new Array(n * n), i = 0; i < n; i++) {
for (var o = 0; o < n; o++)
a[i * n + o] = 0;
for (var s = 0; s < n; s++)
for (var u = 0; u < n; u++)
a[i * n + u] += e[i * n + s] * r[s * n + u];
}
return a;
};
var f4 = function(e, r, n) {
for (var a = e.slice(0), i = 1; i < n; i++)
e = d4(e, a, r);
return e;
};
var v4 = function(e, r, n) {
for (var a = new Array(r * r), i = 0; i < r * r; i++)
a[i] = Math.pow(e[i], n);
return mp(a, r), a;
};
var h4 = function(e, r, n, a) {
for (var i = 0; i < n; i++) {
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);
if (o !== s)
return false;
}
return true;
};
var p4 = function(e, r, n, a) {
for (var i = [], o = 0; o < r; o++) {
for (var s = [], u = 0; u < r; u++)
Math.round(e[o * r + u] * 1e3) / 1e3 > 0 && s.push(n[u]);
s.length !== 0 && i.push(a.collection(s));
}
return i;
};
var g4 = function(e, r) {
for (var n = 0; n < e.length; n++)
if (!r[n] || e[n].id() !== r[n].id())
return false;
return true;
};
var m4 = function(e) {
for (var r = 0; r < e.length; r++)
for (var n = 0; n < e.length; n++)
r != n && g4(e[r], e[n]) && e.splice(n, 1);
return e;
};
var ff = function(e) {
for (var r = this.nodes(), n = this.edges(), a = this.cy(), i = l4(e), o = {}, s = 0; s < r.length; s++)
o[r[s].id()] = s;
for (var u = r.length, l = u * u, c = new Array(l), d, v = 0; v < l; v++)
c[v] = 0;
for (var h6 = 0; h6 < n.length; h6++) {
var f = n[h6], p = o[f.source().id()], m = o[f.target().id()], g = u4(f, i.attributes);
c[p * u + m] += g, c[m * u + p] += g;
}
c4(c, u, i.multFactor), mp(c, u);
for (var y = true, b = 0; y && b < i.maxIterations; )
y = false, d = f4(c, u, i.expandFactor), c = v4(d, u, i.inflateFactor), h4(c, d, l, 4) || (y = true), b++;
var w = p4(c, u, r, a);
return w = m4(w), w;
};
var y4 = {
markovClustering: ff,
mcl: ff
};
var b4 = function(e) {
return e;
};
var yp = function(e, r) {
return Math.abs(r - e);
};
var vf = function(e, r, n) {
return e + yp(r, n);
};
var hf = function(e, r, n) {
return e + Math.pow(n - r, 2);
};
var w4 = function(e) {
return Math.sqrt(e);
};
var x4 = function(e, r, n) {
return Math.max(e, yp(r, n));
};
var Oi = function(e, r, n, a, i) {
for (var o = arguments.length > 5 && arguments[5] !== void 0 ? arguments[5] : b4, s = a, u, l, c = 0; c < e; c++)
u = r(c), l = n(c), s = i(s, u, l);
return o(s);
};
var si = {
euclidean: function(e, r, n) {
return e >= 2 ? Oi(e, r, n, 0, hf, w4) : Oi(e, r, n, 0, vf);
},
squaredEuclidean: function(e, r, n) {
return Oi(e, r, n, 0, hf);
},
manhattan: function(e, r, n) {
return Oi(e, r, n, 0, vf);
},
max: function(e, r, n) {
return Oi(e, r, n, -1 / 0, x4);
}
};
si["squared-euclidean"] = si.squaredEuclidean;
si.squaredeuclidean = si.squaredEuclidean;
function al(t20, e, r, n, a, i) {
var o;
return pt(t20) ? o = t20 : o = si[t20] || si.euclidean, e === 0 && pt(t20) ? o(a, i) : o(e, r, n, a, i);
}
var C4 = Wt({
k: 2,
m: 2,
sensitivityThreshold: 1e-4,
distance: "euclidean",
maxIterations: 10,
attributes: [],
testMode: false,
testCentroids: null
});
var hc = function(e) {
return C4(e);
};
var Is = function(e, r, n, a, i) {
var o = i !== "kMedoids", s = o ? function(d) {
return n[d];
} : function(d) {
return a[d](n);
}, u = function(v) {
return a[v](r);
}, l = n, c = r;
return al(e, a.length, s, u, l, c);
};
var Nl = function(e, r, 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++)
i[l] = e.min(n[l]).value, o[l] = e.max(n[l]).value;
for (var c = 0; c < r; c++) {
u = [];
for (var d = 0; d < a; d++)
u[d] = Math.random() * (o[d] - i[d]) + i[d];
s[c] = u;
}
return s;
};
var bp = function(e, r, n, a, i) {
for (var o = 1 / 0, s = 0, u = 0; u < r.length; u++) {
var l = Is(n, e, r[u], a, i);
l < o && (o = l, s = u);
}
return s;
};
var wp = function(e, r, n) {
for (var a = [], i = null, o = 0; o < r.length; o++)
i = r[o], n[i.id()] === e && a.push(i);
return a;
};
var E4 = function(e, r, n) {
return Math.abs(r - e) <= n;
};
var k4 = function(e, r, n) {
for (var a = 0; a < e.length; a++)
for (var i = 0; i < e[a].length; i++) {
var o = Math.abs(e[a][i] - r[a][i]);
if (o > n)
return false;
}
return true;
};
var S4 = function(e, r, n) {
for (var a = 0; a < n; a++)
if (e === r[a]) return true;
return false;
};
var pf = function(e, r) {
var n = new Array(r);
if (e.length < 50)
for (var a = 0; a < r; a++) {
for (var i = e[Math.floor(Math.random() * e.length)]; S4(i, n, a); )
i = e[Math.floor(Math.random() * e.length)];
n[a] = i;
}
else
for (var o = 0; o < r; o++)
n[o] = e[Math.floor(Math.random() * e.length)];
return n;
};
var gf = function(e, r, n) {
for (var a = 0, i = 0; i < r.length; i++)
a += Is("manhattan", r[i], e, n, "kMedoids");
return a;
};
var T4 = function(e) {
var r = this.cy(), n = this.nodes(), a = null, i = hc(e), o = new Array(i.k), s = {}, u;
i.testMode ? typeof i.testCentroids == "number" ? (i.testCentroids, u = Nl(n, i.k, i.attributes)) : It(i.testCentroids) === "object" ? u = i.testCentroids : u = Nl(n, i.k, i.attributes) : u = Nl(n, i.k, i.attributes);
for (var l = true, c = 0; l && c < i.maxIterations; ) {
for (var d = 0; d < n.length; d++)
a = n[d], s[a.id()] = bp(a, u, i.distance, i.attributes, "kMeans");
l = false;
for (var v = 0; v < i.k; v++) {
var h6 = wp(v, n, s);
if (h6.length !== 0) {
for (var f = i.attributes.length, p = u[v], m = new Array(f), g = new Array(f), y = 0; y < f; y++) {
g[y] = 0;
for (var b = 0; b < h6.length; b++)
a = h6[b], g[y] += i.attributes[y](a);
m[y] = g[y] / h6.length, E4(m[y], p[y], i.sensitivityThreshold) || (l = true);
}
u[v] = m, o[v] = r.collection(h6);
}
}
c++;
}
return o;
};
var _4 = function(e) {
var r = this.cy(), n = this.nodes(), a = null, i = hc(e), o = new Array(i.k), s, u = {}, l, c = new Array(i.k);
i.testMode ? typeof i.testCentroids == "number" || (It(i.testCentroids) === "object" ? s = i.testCentroids : s = pf(n, i.k)) : s = pf(n, i.k);
for (var d = true, v = 0; d && v < i.maxIterations; ) {
for (var h6 = 0; h6 < n.length; h6++)
a = n[h6], u[a.id()] = bp(a, s, i.distance, i.attributes, "kMedoids");
d = false;
for (var f = 0; f < s.length; f++) {
var p = wp(f, n, u);
if (p.length !== 0) {
c[f] = gf(s[f], p, i.attributes);
for (var m = 0; m < p.length; m++)
l = gf(p[m], p, i.attributes), l < c[f] && (c[f] = l, s[f] = p[m], d = true);
o[f] = r.collection(p);
}
}
v++;
}
return o;
};
var D4 = function(e, r, n, a, i) {
for (var o, s, u = 0; u < r.length; u++)
for (var l = 0; l < e.length; l++)
a[u][l] = Math.pow(n[u][l], i.m);
for (var c = 0; c < e.length; c++)
for (var d = 0; d < i.attributes.length; d++) {
o = 0, s = 0;
for (var v = 0; v < r.length; v++)
o += a[v][c] * i.attributes[d](r[v]), s += a[v][c];
e[c][d] = o / s;
}
};
var P4 = function(e, r, n, a, i) {
for (var o = 0; o < e.length; o++)
r[o] = e[o].slice();
for (var s, u, l, c = 2 / (i.m - 1), d = 0; d < n.length; d++)
for (var v = 0; v < a.length; v++) {
s = 0;
for (var h6 = 0; h6 < n.length; h6++)
u = Is(i.distance, a[v], n[d], i.attributes, "cmeans"), l = Is(i.distance, a[v], n[h6], i.attributes, "cmeans"), s += Math.pow(u / l, c);
e[v][d] = 1 / s;
}
};
var O4 = function(e, r, n, a) {
for (var i = new Array(n.k), o = 0; o < i.length; o++)
i[o] = [];
for (var s, u, l = 0; l < r.length; l++) {
s = -1 / 0, u = -1;
for (var c = 0; c < r[0].length; c++)
r[l][c] > s && (s = r[l][c], u = c);
i[u].push(e[l]);
}
for (var d = 0; d < i.length; d++)
i[d] = a.collection(i[d]);
return i;
};
var mf = function(e) {
var r = this.cy(), n = this.nodes(), a = hc(e), i, o, s, u, l;
u = new Array(n.length);
for (var c = 0; c < n.length; c++)
u[c] = new Array(a.k);
s = new Array(n.length);
for (var d = 0; d < n.length; d++)
s[d] = new Array(a.k);
for (var v = 0; v < n.length; v++) {
for (var h6 = 0, f = 0; f < a.k; f++)
s[v][f] = Math.random(), h6 += s[v][f];
for (var p = 0; p < a.k; p++)
s[v][p] = s[v][p] / h6;
}
o = new Array(a.k);
for (var m = 0; m < a.k; m++)
o[m] = new Array(a.attributes.length);
l = new Array(n.length);
for (var g = 0; g < n.length; g++)
l[g] = new Array(a.k);
for (var y = true, b = 0; y && b < a.maxIterations; )
y = false, D4(o, n, s, l, a), P4(s, u, o, n, a), k4(s, u, a.sensitivityThreshold) || (y = true), b++;
return i = O4(n, s, a, r), {
clusters: i,
degreeOfMembership: s
};
};
var L4 = {
kMeans: T4,
kMedoids: _4,
fuzzyCMeans: mf,
fcm: mf
};
var F4 = Wt({
distance: "euclidean",
// distance metric to compare nodes
linkage: "min",
// linkage criterion : how to determine the distance between clusters of nodes
mode: "threshold",
// mode:'threshold' => clusters must be threshold distance apart
threshold: 1 / 0,
// the distance threshold
// mode:'dendrogram' => the nodes are organised as leaves in a tree (siblings are close), merging makes clusters
addDendrogram: false,
// whether to add the dendrogram to the graph for viz
dendrogramDepth: 0,
// depth at which dendrogram branches are merged into the returned clusters
attributes: []
// array of attr functions
});
var I4 = {
single: "min",
complete: "max"
};
var A4 = function(e) {
var r = F4(e), n = I4[r.linkage];
return n != null && (r.linkage = n), r;
};
var yf = function(e, r, n, a, i) {
for (var o = 0, s = 1 / 0, u, l = i.attributes, c = function(k, _) {
return al(i.distance, l.length, function(D) {
return l[D](k);
}, function(D) {
return l[D](_);
}, k, _);
}, d = 0; d < e.length; d++) {
var v = e[d].key, h6 = n[v][a[v]];
h6 < s && (o = v, s = h6);
}
if (i.mode === "threshold" && s >= i.threshold || i.mode === "dendrogram" && e.length === 1)
return false;
var f = r[o], p = r[a[o]], m;
i.mode === "dendrogram" ? m = {
left: f,
right: p,
key: f.key
} : m = {
value: f.value.concat(p.value),
key: f.key
}, e[f.index] = m, e.splice(p.index, 1), r[f.key] = m;
for (var g = 0; g < e.length; g++) {
var y = e[g];
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;
}
for (var b = 0; b < e.length; b++) {
var w = e[b].key;
if (a[w] === f.key || a[w] === p.key) {
for (var C = w, E = 0; E < e.length; E++) {
var x = e[E].key;
n[w][x] < n[w][C] && (C = x);
}
a[w] = C;
}
e[b].index = b;
}
return f.key = p.key = f.index = p.index = null, true;
};
var Zo = function t(e, r, n) {
e && (e.value ? r.push(e.value) : (e.left && t(e.left, r), e.right && t(e.right, r)));
};
var M4 = function t3(e, r) {
if (!e) return "";
if (e.left && e.right) {
var n = t3(e.left, r), a = t3(e.right, r), i = r.add({
group: "nodes",
data: {
id: n + "," + a
}
});
return r.add({
group: "edges",
data: {
source: n,
target: i.id()
}
}), r.add({
group: "edges",
data: {
source: a,
target: i.id()
}
}), i.id();
} else if (e.value)
return e.value.id();
};
var B4 = function t6(e, r, n) {
if (!e) return [];
var a = [], i = [], o = [];
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 = t6(e.left, r - 1, n)), e.right && (i = t6(e.right, r - 1, n)), a.concat(i));
};
var bf = function(e) {
for (var r = this.cy(), n = this.nodes(), a = A4(e), i = a.attributes, o = function(b, w) {
return al(a.distance, i.length, function(C) {
return i[C](b);
}, function(C) {
return i[C](w);
}, b, w);
}, s = [], u = [], l = [], c = [], d = 0; d < n.length; d++) {
var v = {
value: a.mode === "dendrogram" ? n[d] : [n[d]],
key: d,
index: d
};
s[d] = v, c[d] = v, u[d] = [], l[d] = 0;
}
for (var h6 = 0; h6 < s.length; h6++)
for (var f = 0; f <= h6; f++) {
var p = void 0;
a.mode === "dendrogram" ? p = h6 === f ? 1 / 0 : o(s[h6].value, s[f].value) : p = h6 === f ? 1 / 0 : o(s[h6].value[0], s[f].value[0]), u[h6][f] = p, u[f][h6] = p, p < u[h6][l[h6]] && (l[h6] = f);
}
for (var m = yf(s, c, u, l, a); m; )
m = yf(s, c, u, l, a);
var g;
return a.mode === "dendrogram" ? (g = B4(s[0], a.dendrogramDepth, r), a.addDendrogram && M4(s[0], r)) : (g = new Array(s.length), s.forEach(function(y, b) {
y.key = y.index = null, g[b] = r.collection(y.value);
})), g;
};
var N4 = {
hierarchicalClustering: bf,
hca: bf
};
var $4 = Wt({
distance: "euclidean",
// distance metric to compare attributes between two nodes
preference: "median",
// suitability of a data point to serve as an exemplar
damping: 0.8,
// damping factor between [0.5, 1)
maxIterations: 1e3,
// max number of iterations to run
minIterations: 100,
// min number of iterations to run in order for clustering to stop
attributes: [
// functions to quantify the similarity between any two points
// e.g. node => node.data('weight')
]
});
var R4 = function(e) {
var r = e.damping, n = e.preference;
0.5 <= r && r < 1 || yt("Damping must range on [0.5, 1). Got: ".concat(r));
var a = ["median", "mean", "min", "max"];
return a.some(function(i) {
return i === n;
}) || be(n) || yt("Preference must be one of [".concat(a.map(function(i) {
return "'".concat(i, "'");
}).join(", "), "] or a number. Got: ").concat(n)), $4(e);
};
var z4 = function(e, r, n, a) {
var i = function(s, u) {
return a[u](s);
};
return -al(e, a.length, function(o) {
return i(r, o);
}, function(o) {
return i(n, o);
}, r, n);
};
var V4 = function(e, r) {
var n = null;
return r === "median" ? n = R5(e) : r === "mean" ? n = $5(e) : r === "min" ? n = B5(e) : r === "max" ? n = N5(e) : n = r, n;
};
var H4 = function(e, r, n) {
for (var a = [], i = 0; i < e; i++)
r[i * e + i] + n[i * e + i] > 0 && a.push(i);
return a;
};
var wf = function(e, r, n) {
for (var a = [], i = 0; i < e; i++) {
for (var o = -1, s = -1 / 0, u = 0; u < n.length; u++) {
var l = n[u];
r[i * e + l] > s && (o = l, s = r[i * e + l]);
}
o > 0 && a.push(o);
}
for (var c = 0; c < n.length; c++)
a[n[c]] = n[c];
return a;
};
var q4 = function(e, r, n) {
for (var a = wf(e, r, n), i = 0; i < n.length; i++) {
for (var o = [], s = 0; s < a.length; s++)
a[s] === n[i] && o.push(s);
for (var u = -1, l = -1 / 0, c = 0; c < o.length; c++) {
for (var d = 0, v = 0; v < o.length; v++)
d += r[o[v] * e + o[c]];
d > l && (u = c, l = d);
}
n[i] = o[u];
}
return a = wf(e, r, n), a;
};
var xf = function(e) {
for (var r = this.cy(), n = this.nodes(), a = R4(e), i = {}, o = 0; o < n.length; o++)
i[n[o].id()] = o;
var s, u, l, c, d, v;
s = n.length, u = s * s, l = new Array(u);
for (var h6 = 0; h6 < u; h6++)
l[h6] = -1 / 0;
for (var f = 0; f < s; f++)
for (var p = 0; p < s; p++)
f !== p && (l[f * s + p] = z4(a.distance, n[f], n[p], a.attributes));
c = V4(l, a.preference);
for (var m = 0; m < s; m++)
l[m * s + m] = c;
d = new Array(u);
for (var g = 0; g < u; g++)
d[g] = 0;
v = new Array(u);
for (var y = 0; y < u; y++)
v[y] = 0;
for (var b = new Array(s), w = new Array(s), C = new Array(s), E = 0; E < s; E++)
b[E] = 0, w[E] = 0, C[E] = 0;
for (var x = new Array(s * a.minIterations), T = 0; T < x.length; T++)
x[T] = 0;
var k;
for (k = 0; k < a.maxIterations; k++) {
for (var _ = 0; _ < s; _++) {
for (var D = -1 / 0, O = -1 / 0, I = -1, L = 0, B = 0; B < s; B++)
b[B] = d[_ * s + B], L = v[_ * s + B] + l[_ * s + B], L >= D ? (O = D, D = L, I = B) : L > O && (O = L);
for (var F = 0; F < s; F++)
d[_ * s + F] = (1 - a.damping) * (l[_ * s + F] - D) + a.damping * b[F];
d[_ * s + I] = (1 - a.damping) * (l[_ * s + I] - O) + a.damping * b[I];
}
for (var M = 0; M < s; M++) {
for (var A = 0, R = 0; R < s; R++)
b[R] = v[R * s + M], w[R] = Math.max(0, d[R * s + M]), A += w[R];
A -= w[M], w[M] = d[M * s + M], A += w[M];
for (var K10 = 0; K10 < s; K10++)
v[K10 * s + M] = (1 - a.damping) * Math.min(0, A - w[K10]) + a.damping * b[K10];
v[M * s + M] = (1 - a.damping) * (A - w[M]) + a.damping * b[M];
}
for (var H = 0, q = 0; q < s; q++) {
var ee = v[q * s + q] + d[q * s + q] > 0 ? 1 : 0;
x[k % a.minIterations * s + q] = ee, H += ee;
}
if (H > 0 && (k >= a.minIterations - 1 || k == a.maxIterations - 1)) {
for (var se2 = 0, oe = 0; oe < s; oe++) {
C[oe] = 0;
for (var ae = 0; ae < a.minIterations; ae++)
C[oe] += x[ae * s + oe];
(C[oe] === 0 || C[oe] === a.minIterations) && se2++;
}
if (se2 === s)
break;
}
}
for (var ue = H4(s, d, v), te = q4(s, l, ue), $ = {}, G = 0; G < ue.length; G++)
$[ue[G]] = [];
for (var Q = 0; Q < n.length; Q++) {
var ge2 = i[n[Q].id()], Ee2 = te[ge2];
Ee2 != null && $[Ee2].push(n[Q]);
}
for (var fe = new Array(ue.length), me = 0; me < ue.length; me++)
fe[me] = r.collection($[ue[me]]);
return fe;
};
var K4 = {
affinityPropagation: xf,
ap: xf
};
var U4 = Wt({
root: void 0,
directed: false
});
var G4 = {
hierholzer: function(e) {
if (!Xe(e)) {
var r = arguments;
e = {
root: r[0],
directed: r[1]
};
}
var n = U4(e), a = n.root, i = n.directed, o = this, s = false, u, l, c;
a && (c = Ie(a) ? this.filter(a)[0].id() : a[0].id());
var d = {}, v = {};
i ? o.forEach(function(y) {
var b = y.id();
if (y.isNode()) {
var w = y.indegree(true), C = y.outdegree(true), E = w - C, x = C - w;
E == 1 ? u ? s = true : u = b : x == 1 ? l ? s = true : l = b : (x > 1 || E > 1) && (s = true), d[b] = [], y.outgoers().forEach(function(T) {
T.isEdge() && d[b].push(T.id());
});
} else
v[b] = [void 0, y.target().id()];
}) : o.forEach(function(y) {
var b = y.id();
if (y.isNode()) {
var w = y.degree(true);
w % 2 && (u ? l ? s = true : l = b : u = b), d[b] = [], y.connectedEdges().forEach(function(C) {
return d[b].push(C.id());
});
} else
v[b] = [y.source().id(), y.target().id()];
});
var h6 = {
found: false,
trail: void 0
};
if (s) return h6;
if (l && u)
if (i) {
if (c && l != c)
return h6;
c = l;
} else {
if (c && l != c && u != c)
return h6;
c || (c = l);
}
else
c || (c = o[0].id());
var f = function(b) {
for (var w = b, C = [b], E, x, T; d[w].length; )
E = d[w].shift(), x = v[E][0], T = v[E][1], w != T ? (d[T] = d[T].filter(function(k) {
return k != E;
}), w = T) : !i && w != x && (d[x] = d[x].filter(function(k) {
return k != E;
}), w = x), C.unshift(E), C.unshift(w);
return C;
}, p = [], m = [];
for (m = f(c); m.length != 1; )
d[m[0]].length == 0 ? (p.unshift(o.getElementById(m.shift())), p.unshift(o.getElementById(m.shift()))) : m = f(m.shift()).concat(m);
p.unshift(o.getElementById(m.shift()));
for (var g in d)
if (d[g].length)
return h6;
return h6.found = true, h6.trail = this.spawn(p, true), h6;
}
};
var Xo = function() {
var e = this, r = {}, n = 0, a = 0, i = [], o = [], s = {}, u = function(v, h6) {
for (var f = o.length - 1, p = [], m = e.spawn(); o[f].x != v || o[f].y != h6; )
p.push(o.pop().edge), f--;
p.push(o.pop().edge), p.forEach(function(g) {
var y = g.connectedNodes().intersection(e);
m.merge(g), y.forEach(function(b) {
var w = b.id(), C = b.connectedEdges().intersection(e);
m.merge(b), r[w].cutVertex ? m.merge(C.filter(function(E) {
return E.isLoop();
})) : m.merge(C);
});
}), i.push(m);
}, l = function d(v, h6, f) {
v === f && (a += 1), r[h6] = {
id: n,
low: n++,
cutVertex: false
};
var p = e.getElementById(h6).connectedEdges().intersection(e);
if (p.size() === 0)
i.push(e.spawn(e.getElementById(h6)));
else {
var m, g, y, b;
p.forEach(function(w) {
m = w.source().id(), g = w.target().id(), y = m === h6 ? g : m, y !== f && (b = w.id(), s[b] || (s[b] = true, o.push({
x: h6,
y,
edge: w
})), y in r ? r[h6].low = Math.min(r[h6].low, r[y].id) : (d(v, y, h6), r[h6].low = Math.min(r[h6].low, r[y].low), r[h6].id <= r[y].low && (r[h6].cutVertex = true, u(h6, y))));
});
}
};
e.forEach(function(d) {
if (d.isNode()) {
var v = d.id();
v in r || (a = 0, l(v, v), r[v].cutVertex = a > 1);
}
});
var c = Object.keys(r).filter(function(d) {
return r[d].cutVertex;
}).map(function(d) {
return e.getElementById(d);
});
return {
cut: e.spawn(c),
components: i
};
};
var W4 = {
hopcroftTarjanBiconnected: Xo,
htbc: Xo,
htb: Xo,
hopcroftTarjanBiconnectedComponents: Xo
};
var jo = function() {
var e = this, r = {}, n = 0, a = [], i = [], o = e.spawn(e), s = function u(l) {
i.push(l), r[l] = {
index: n,
low: n++,
explored: false
};
var c = e.getElementById(l).connectedEdges().intersection(e);
if (c.forEach(function(p) {
var m = p.target().id();
m !== l && (m in r || u(m), r[m].explored || (r[l].low = Math.min(r[l].low, r[m].low)));
}), r[l].index === r[l].low) {
for (var d = e.spawn(); ; ) {
var v = i.pop();
if (d.merge(e.getElementById(v)), r[v].low = r[l].index, r[v].explored = true, v === l)
break;
}
var h6 = d.edgesWith(d), f = d.merge(h6);
a.push(f), o = o.difference(f);
}
};
return e.forEach(function(u) {
if (u.isNode()) {
var l = u.id();
l in r || s(l);
}
}), {
cut: o,
components: a
};
};
var Y4 = {
tarjanStronglyConnected: jo,
tsc: jo,
tscc: jo,
tarjanStronglyConnectedComponents: jo
};
var xp = {};
[ao, k5, S5, _5, P5, L5, A5, i4, Wa, Ya, uu, y4, L4, N4, K4, G4, W4, Y4].forEach(function(t20) {
Re(xp, t20);
});
var Cp = 0;
var Ep = 1;
var kp = 2;
var yn = function t7(e) {
if (!(this instanceof t7)) return new t7(e);
this.id = "Thenable/1.0.7", this.state = Cp, this.fulfillValue = void 0, this.rejectReason = void 0, this.onFulfilled = [], this.onRejected = [], this.proxy = {
then: this.then.bind(this)
}, typeof e == "function" && e.call(this, this.fulfill.bind(this), this.reject.bind(this));
};
yn.prototype = {
/* promise resolving methods */
fulfill: function(e) {
return Cf(this, Ep, "fulfillValue", e);
},
reject: function(e) {
return Cf(this, kp, "rejectReason", e);
},
/* "The then Method" [Promises/A+ 1.1, 1.2, 2.2] */
then: function(e, r) {
var n = this, a = new yn();
return n.onFulfilled.push(kf(e, a, "fulfill")), n.onRejected.push(kf(r, a, "reject")), Sp(n), a.proxy;
}
};
var Cf = function(e, r, n, a) {
return e.state === Cp && (e.state = r, e[n] = a, Sp(e)), e;
};
var Sp = function(e) {
e.state === Ep ? Ef(e, "onFulfilled", e.fulfillValue) : e.state === kp && Ef(e, "onRejected", e.rejectReason);
};
var Ef = function(e, r, n) {
if (e[r].length !== 0) {
var a = e[r];
e[r] = [];
var i = function() {
for (var s = 0; s < a.length; s++)
a[s](n);
};
typeof setImmediate == "function" ? setImmediate(i) : setTimeout(i, 0);
}
};
var kf = function(e, r, n) {
return function(a) {
if (typeof e != "function")
r[n].call(r, a);
else {
var i;
try {
i = e(a);
} catch (o) {
r.reject(o);
return;
}
Z4(r, i);
}
};
};
var Z4 = function t8(e, r) {
if (e === r || e.proxy === r) {
e.reject(new TypeError("cannot resolve promise with itself"));
return;
}
var n;
if (It(r) === "object" && r !== null || typeof r == "function")
try {
n = r.then;
} catch (i) {
e.reject(i);
return;
}
if (typeof n == "function") {
var a = false;
try {
n.call(
r,
/* resolvePromise */
/* [Promises/A+ 2.3.3.3.1] */
function(i) {
a || (a = true, i === r ? e.reject(new TypeError("circular thenable chain")) : t8(e, i));
},
/* rejectPromise */
/* [Promises/A+ 2.3.3.3.2] */
function(i) {
a || (a = true, e.reject(i));
}
);
} catch (i) {
a || e.reject(i);
}
return;
}
e.fulfill(r);
};
yn.all = function(t20) {
return new yn(function(e, r) {
for (var n = new Array(t20.length), a = 0, i = function(u, l) {
n[u] = l, a++, a === t20.length && e(n);
}, o = 0; o < t20.length; o++)
(function(s) {
var u = t20[s], l = u != null && u.then != null;
if (l)
u.then(function(d) {
i(s, d);
}, function(d) {
r(d);
});
else {
var c = u;
i(s, c);
}
})(o);
});
};
yn.resolve = function(t20) {
return new yn(function(e, r) {
e(t20);
});
};
yn.reject = function(t20) {
return new yn(function(e, r) {
r(t20);
});
};
var hi = typeof Promise < "u" ? Promise : yn;
var cu = function(e, r, n) {
var a = oc(e), i = !a, o = this._private = Re({
duration: 1e3
}, r, n);
if (o.target = e, o.style = o.style || o.css, o.started = false, o.playing = false, o.hooked = false, o.applying = false, o.progress = 0, o.completes = [], o.frames = [], o.complete && pt(o.complete) && o.completes.push(o.complete), i) {
var s = e.position();
o.startPosition = o.startPosition || {
x: s.x,
y: s.y
}, o.startStyle = o.startStyle || e.cy().style().getAnimationStartStyle(e, o.style);
}
if (a) {
var u = e.pan();
o.startPan = {
x: u.x,
y: u.y
}, o.startZoom = e.zoom();
}
this.length = 1, this[0] = this;
};
var wa = cu.prototype;
Re(wa, {
instanceString: function() {
return "animation";
},
hook: function() {
var e = this._private;
if (!e.hooked) {
var r, n = e.target._private.animation;
e.queue ? r = n.queue : r = n.current, r.push(this), yr(e.target) && e.target.cy().addToAnimationPool(e.target), e.hooked = true;
}
return this;
},
play: function() {
var e = this._private;
return e.progress === 1 && (e.progress = 0), e.playing = true, e.started = false, e.stopped = false, this.hook(), this;
},
playing: function() {
return this._private.playing;
},
apply: function() {
var e = this._private;
return e.applying = true, e.started = false, e.stopped = false, this.hook(), this;
},
applying: function() {
return this._private.applying;
},
pause: function() {
var e = this._private;
return e.playing = false, e.started = false, this;
},
stop: function() {
var e = this._private;
return e.playing = false, e.started = false, e.stopped = true, this;
},
rewind: function() {
return this.progress(0);
},
fastforward: function() {
return this.progress(1);
},
time: function(e) {
var r = this._private;
return e === void 0 ? r.progress * r.duration : this.progress(e / r.duration);
},
progress: function(e) {
var r = this._private, n = r.playing;
return e === void 0 ? r.progress : (n && this.pause(), r.progress = e, r.started = false, n && this.play(), this);
},
completed: function() {
return this._private.progress === 1;
},
reverse: function() {
var e = this._private, r = e.playing;
r && this.pause(), e.progress = 1 - e.progress, e.started = false;
var n = function(l, c) {
var d = e[l];
d != null && (e[l] = e[c], e[c] = d);
};
if (n("zoom", "startZoom"), n("pan", "startPan"), n("position", "startPosition"), e.style)
for (var a = 0; a < e.style.length; a++) {
var i = e.style[a], o = i.name, s = e.startStyle[o];
e.startStyle[o] = i, e.style[a] = s;
}
return r && this.play(), this;
},
promise: function(e) {
var r = this._private, n;
switch (e) {
case "frame":
n = r.frames;
break;
default:
case "complete":
case "completed":
n = r.completes;
}
return new hi(function(a, i) {
n.push(function() {
a();
});
});
}
});
wa.complete = wa.completed;
wa.run = wa.play;
wa.running = wa.playing;
var X4 = {
animated: function() {
return function() {
var r = this, n = r.length !== void 0, a = n ? r : [r], i = this._private.cy || this;
if (!i.styleEnabled())
return false;
var o = a[0];
if (o)
return o._private.animation.current.length > 0;
};
},
// animated
clearQueue: function() {
return function() {
var r = this, n = r.length !== void 0, a = n ? r : [r], i = this._private.cy || this;
if (!i.styleEnabled())
return this;
for (var o = 0; o < a.length; o++) {
var s = a[o];
s._private.animation.queue = [];
}
return this;
};
},
// clearQueue
delay: function() {
return function(r, n) {
var a = this._private.cy || this;
return a.styleEnabled() ? this.animate({
delay: r,
duration: r,
complete: n
}) : this;
};
},
// delay
delayAnimation: function() {
return function(r, n) {
var a = this._private.cy || this;
return a.styleEnabled() ? this.animation({
delay: r,
duration: r,
complete: n
}) : this;
};
},
// delay
animation: function() {
return function(r, n) {
var a = this, i = a.length !== void 0, o = i ? a : [a], s = this._private.cy || this, u = !i, l = !u;
if (!s.styleEnabled())
return this;
var c = s.style();
r = Re({}, r, n);
var d = Object.keys(r).length === 0;
if (d)
return new cu(o[0], r);
switch (r.duration === void 0 && (r.duration = 400), r.duration) {
case "slow":
r.duration = 600;
break;
case "fast":
r.duration = 200;
break;
}
if (l && (r.style = c.getPropsList(r.style || r.css), r.css = void 0), l && r.renderedPosition != null) {
var v = r.renderedPosition, h6 = s.pan(), f = s.zoom();
r.position = cp(v, f, h6);
}
if (u && r.panBy != null) {
var p = r.panBy, m = s.pan();
r.pan = {
x: m.x + p.x,
y: m.y + p.y
};
}
var g = r.center || r.centre;
if (u && g != null) {
var y = s.getCenterPan(g.eles, r.zoom);
y != null && (r.pan = y);
}
if (u && r.fit != null) {
var b = r.fit, w = s.getFitViewport(b.eles || b.boundingBox, b.padding);
w != null && (r.pan = w.pan, r.zoom = w.zoom);
}
if (u && Xe(r.zoom)) {
var C = s.getZoomedViewport(r.zoom);
C != null ? (C.zoomed && (r.zoom = C.zoom), C.panned && (r.pan = C.pan)) : r.zoom = null;
}
return new cu(o[0], r);
};
},
// animate
animate: function() {
return function(r, n) {
var a = this, i = a.length !== void 0, o = i ? a : [a], s = this._private.cy || this;
if (!s.styleEnabled())
return this;
n && (r = Re({}, r, n));
for (var u = 0; u < o.length; u++) {
var l = o[u], c = l.animated() && (r.queue === void 0 || r.queue), d = l.animation(r, c ? {
queue: true
} : void 0);
d.play();
}
return this;
};
},
// animate
stop: function() {
return function(r, n) {
var a = this, i = a.length !== void 0, o = i ? a : [a], s = this._private.cy || this;
if (!s.styleEnabled())
return this;
for (var u = 0; u < o.length; u++) {
for (var l = o[u], c = l._private, d = c.animation.current, v = 0; v < d.length; v++) {
var h6 = d[v], f = h6._private;
n && (f.duration = 0);
}
r && (c.animation.queue = []), n || (c.animation.current = []);
}
return s.notify("draw"), this;
};
}
// stop
};
var j4 = Array.isArray;
var il = j4;
var Q4 = /\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/;
var J4 = /^\w*$/;
function e3(t20, e) {
if (il(t20))
return false;
var r = typeof t20;
return r == "number" || r == "symbol" || r == "boolean" || t20 == null || Po(t20) ? true : J4.test(t20) || !Q4.test(t20) || e != null && t20 in Object(e);
}
var t32 = e3;
var r3 = "[object AsyncFunction]";
var n3 = "[object Function]";
var a3 = "[object GeneratorFunction]";
var i3 = "[object Proxy]";
function o3(t20) {
if (!ga(t20))
return false;
var e = tp(t20);
return e == n3 || e == a3 || e == r3 || e == i3;
}
var s3 = o3;
var l3 = el["__core-js_shared__"];
var $l = l3;
var Sf = function() {
var t20 = /[^.]+$/.exec($l && $l.keys && $l.keys.IE_PROTO || "");
return t20 ? "Symbol(src)_1." + t20 : "";
}();
function u3(t20) {
return !!Sf && Sf in t20;
}
var c3 = u3;
var d3 = Function.prototype;
var f3 = d3.toString;
function v3(t20) {
if (t20 != null) {
try {
return f3.call(t20);
} catch {
}
try {
return t20 + "";
} catch {
}
}
return "";
}
var h3 = v3;
var p3 = /[\\^$.*+?()[\]{}|]/g;
var g3 = /^\[object .+?Constructor\]$/;
var m3 = Function.prototype;
var y3 = Object.prototype;
var b3 = m3.toString;
var w3 = y3.hasOwnProperty;
var x3 = RegExp(
"^" + b3.call(w3).replace(p3, "\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g, "$1.*?") + "$"
);
function C3(t20) {
if (!ga(t20) || c3(t20))
return false;
var e = s3(t20) ? x3 : g3;
return e.test(h3(t20));
}
var E3 = C3;
function k3(t20, e) {
return t20 == null ? void 0 : t20[e];
}
var S3 = k3;
function T3(t20, e) {
var r = S3(t20, e);
return E3(r) ? r : void 0;
}
var pc = T3;
var _3 = pc(Object, "create");
var so = _3;
function D3() {
this.__data__ = so ? so(null) : {}, this.size = 0;
}
var P3 = D3;
function O3(t20) {
var e = this.has(t20) && delete this.__data__[t20];
return this.size -= e ? 1 : 0, e;
}
var L3 = O3;
var F3 = "__lodash_hash_undefined__";
var I3 = Object.prototype;
var A3 = I3.hasOwnProperty;
function M3(t20) {
var e = this.__data__;
if (so) {
var r = e[t20];
return r === F3 ? void 0 : r;
}
return A3.call(e, t20) ? e[t20] : void 0;
}
var B3 = M3;
var N3 = Object.prototype;
var $3 = N3.hasOwnProperty;
function R3(t20) {
var e = this.__data__;
return so ? e[t20] !== void 0 : $3.call(e, t20);
}
var z3 = R3;
var V3 = "__lodash_hash_undefined__";
function H3(t20, e) {
var r = this.__data__;
return this.size += this.has(t20) ? 0 : 1, r[t20] = so && e === void 0 ? V3 : e, this;
}
var q3 = H3;
function pi(t20) {
var e = -1, r = t20 == null ? 0 : t20.length;
for (this.clear(); ++e < r; ) {
var n = t20[e];
this.set(n[0], n[1]);
}
}
pi.prototype.clear = P3;
pi.prototype.delete = L3;
pi.prototype.get = B3;
pi.prototype.has = z3;
pi.prototype.set = q3;
var Tf = pi;
function K3() {
this.__data__ = [], this.size = 0;
}
var U3 = K3;
function G3(t20, e) {
return t20 === e || t20 !== t20 && e !== e;
}
var Tp = G3;
function W3(t20, e) {
for (var r = t20.length; r--; )
if (Tp(t20[r][0], e))
return r;
return -1;
}
var ol = W3;
var Y3 = Array.prototype;
var Z3 = Y3.splice;
function X3(t20) {
var e = this.__data__, r = ol(e, t20);
if (r < 0)
return false;
var n = e.length - 1;
return r == n ? e.pop() : Z3.call(e, r, 1), --this.size, true;
}
var j3 = X3;
function Q3(t20) {
var e = this.__data__, r = ol(e, t20);
return r < 0 ? void 0 : e[r][1];
}
var J3 = Q3;
function e_(t20) {
return ol(this.__data__, t20) > -1;
}
var t_ = e_;
function r_(t20, e) {
var r = this.__data__, n = ol(r, t20);
return n < 0 ? (++this.size, r.push([t20, e])) : r[n][1] = e, this;
}
var n_ = r_;
function gi(t20) {
var e = -1, r = t20 == null ? 0 : t20.length;
for (this.clear(); ++e < r; ) {
var n = t20[e];
this.set(n[0], n[1]);
}
}
gi.prototype.clear = U3;
gi.prototype.delete = j3;
gi.prototype.get = J3;
gi.prototype.has = t_;
gi.prototype.set = n_;
var a_ = gi;
var i_ = pc(el, "Map");
var o_ = i_;
function s_() {
this.size = 0, this.__data__ = {
hash: new Tf(),
map: new (o_ || a_)(),
string: new Tf()
};
}
var l_ = s_;
function u_(t20) {
var e = typeof t20;
return e == "string" || e == "number" || e == "symbol" || e == "boolean" ? t20 !== "__proto__" : t20 === null;
}
var c_ = u_;
function d_(t20, e) {
var r = t20.__data__;
return c_(e) ? r[typeof e == "string" ? "string" : "hash"] : r.map;
}
var sl = d_;
function f_(t20) {
var e = sl(this, t20).delete(t20);
return this.size -= e ? 1 : 0, e;
}
var v_ = f_;
function h_(t20) {
return sl(this, t20).get(t20);
}
var p_ = h_;
function g_(t20) {
return sl(this, t20).has(t20);
}
var m_ = g_;
function y_(t20, e) {
var r = sl(this, t20), n = r.size;
return r.set(t20, e), this.size += r.size == n ? 0 : 1, this;
}
var b_ = y_;
function mi(t20) {
var e = -1, r = t20 == null ? 0 : t20.length;
for (this.clear(); ++e < r; ) {
var n = t20[e];
this.set(n[0], n[1]);
}
}
mi.prototype.clear = l_;
mi.prototype.delete = v_;
mi.prototype.get = p_;
mi.prototype.has = m_;
mi.prototype.set = b_;
var _p = mi;
var w_ = "Expected a function";
function gc(t20, e) {
if (typeof t20 != "function" || e != null && typeof e != "function")
throw new TypeError(w_);
var r = function() {
var n = arguments, a = e ? e.apply(this, n) : n[0], i = r.cache;
if (i.has(a))
return i.get(a);
var o = t20.apply(this, n);
return r.cache = i.set(a, o) || i, o;
};
return r.cache = new (gc.Cache || _p)(), r;
}
gc.Cache = _p;
var x_ = gc;
var C_ = 500;
function E_(t20) {
var e = x_(t20, function(n) {
return r.size === C_ && r.clear(), n;
}), r = e.cache;
return e;
}
var k_ = E_;
var S_ = /[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g;
var T_ = /\\(\\)?/g;
var __ = k_(function(t20) {
var e = [];
return t20.charCodeAt(0) === 46 && e.push(""), t20.replace(S_, function(r, n, a, i) {
e.push(a ? i.replace(T_, "$1") : n || r);
}), e;
});
var Dp = __;
function D_(t20, e) {
for (var r = -1, n = t20 == null ? 0 : t20.length, a = Array(n); ++r < n; )
a[r] = e(t20[r], r, t20);
return a;
}
var Pp = D_;
var P_ = 1 / 0;
var _f = ii ? ii.prototype : void 0;
var Df = _f ? _f.toString : void 0;
function Op(t20) {
if (typeof t20 == "string")
return t20;
if (il(t20))
return Pp(t20, Op) + "";
if (Po(t20))
return Df ? Df.call(t20) : "";
var e = t20 + "";
return e == "0" && 1 / t20 == -P_ ? "-0" : e;
}
var O_ = Op;
function L_(t20) {
return t20 == null ? "" : O_(t20);
}
var Lp = L_;
function F_(t20, e) {
return il(t20) ? t20 : t32(t20, e) ? [t20] : Dp(Lp(t20));
}
var Fp = F_;
var I_ = 1 / 0;
function A_(t20) {
if (typeof t20 == "string" || Po(t20))
return t20;
var e = t20 + "";
return e == "0" && 1 / t20 == -I_ ? "-0" : e;
}
var mc = A_;
function M_(t20, e) {
e = Fp(e, t20);
for (var r = 0, n = e.length; t20 != null && r < n; )
t20 = t20[mc(e[r++])];
return r && r == n ? t20 : void 0;
}
var B_ = M_;
function N_(t20, e, r) {
var n = t20 == null ? void 0 : B_(t20, e);
return n === void 0 ? r : n;
}
var $_ = N_;
var R_ = function() {
try {
var t20 = pc(Object, "defineProperty");
return t20({}, "", {}), t20;
} catch {
}
}();
var Pf = R_;
function z_(t20, e, r) {
e == "__proto__" && Pf ? Pf(t20, e, {
configurable: true,
enumerable: true,
value: r,
writable: true
}) : t20[e] = r;
}
var V_ = z_;
var H_ = Object.prototype;
var q_ = H_.hasOwnProperty;
function K_(t20, e, r) {
var n = t20[e];
(!(q_.call(t20, e) && Tp(n, r)) || r === void 0 && !(e in t20)) && V_(t20, e, r);
}
var U_ = K_;
var G_ = 9007199254740991;
var W_ = /^(?:0|[1-9]\d*)$/;
function Y_(t20, e) {
var r = typeof t20;
return e = e ?? G_, !!e && (r == "number" || r != "symbol" && W_.test(t20)) && t20 > -1 && t20 % 1 == 0 && t20 < e;
}
var Z_ = Y_;
function X_(t20, e, r, n) {
if (!ga(t20))
return t20;
e = Fp(e, t20);
for (var a = -1, i = e.length, o = i - 1, s = t20; s != null && ++a < i; ) {
var u = mc(e[a]), l = r;
if (u === "__proto__" || u === "constructor" || u === "prototype")
return t20;
if (a != o) {
var c = s[u];
l = n ? n(c, u, s) : void 0, l === void 0 && (l = ga(c) ? c : Z_(e[a + 1]) ? [] : {});
}
U_(s, u, l), s = s[u];
}
return t20;
}
var j_ = X_;
function Q_(t20, e, r) {
return t20 == null ? t20 : j_(t20, e, r);
}
var J_ = Q_;
function eD(t20, e) {
var r = -1, n = t20.length;
for (e || (e = Array(n)); ++r < n; )
e[r] = t20[r];
return e;
}
var tD = eD;
function rD(t20) {
return il(t20) ? Pp(t20, mc) : Po(t20) ? [t20] : tD(Dp(Lp(t20)));
}
var nD = rD;
var aD = {
// access data field
data: function(e) {
var r = {
field: "data",
bindingEvent: "data",
allowBinding: false,
allowSetting: false,
allowGetting: false,
settingEvent: "data",
settingTriggersEvent: false,
triggerFnName: "trigger",
immutableKeys: {},
// key => true if immutable
updateStyle: false,
beforeGet: function(a) {
},
beforeSet: function(a, i) {
},
onSet: function(a) {
},
canSet: function(a) {
return true;
}
};
return e = Re({}, r, e), function(a, i) {
var o = e, s = this, u = s.length !== void 0, l = u ? s : [s], c = u ? s[0] : s;
if (Ie(a)) {
var d = a.indexOf(".") !== -1, v = d && nD(a);
if (o.allowGetting && i === void 0) {
var h6;
return c && (o.beforeGet(c), v && c._private[o.field][a] === void 0 ? h6 = $_(c._private[o.field], v) : h6 = c._private[o.field][a]), h6;
} else if (o.allowSetting && i !== void 0) {
var f = !o.immutableKeys[a];
if (f) {
var p = Kh({}, a, i);
o.beforeSet(s, p);
for (var m = 0, g = l.length; m < g; m++) {
var y = l[m];
o.canSet(y) && (v && c._private[o.field][a] === void 0 ? J_(y._private[o.field], v, i) : y._private[o.field][a] = i);
}
o.updateStyle && s.updateStyle(), o.onSet(s), o.settingTriggersEvent && s[o.triggerFnName](o.settingEvent);
}
}
} else if (o.allowSetting && Xe(a)) {
var b = a, w, C, E = Object.keys(b);
o.beforeSet(s, b);
for (var x = 0; x < E.length; x++) {
w = E[x], C = b[w];
var T = !o.immutableKeys[w];
if (T)
for (var k = 0; k < l.length; k++) {
var _ = l[k];
o.canSet(_) && (_._private[o.field][w] = C);
}
}
o.updateStyle && s.updateStyle(), o.onSet(s), o.settingTriggersEvent && s[o.triggerFnName](o.settingEvent);
} else if (o.allowBinding && pt(a)) {
var D = a;
s.on(o.bindingEvent, D);
} else if (o.allowGetting && a === void 0) {
var O;
return c && (o.beforeGet(c), O = c._private[o.field]), O;
}
return s;
};
},
// data
// remove data field
removeData: function(e) {
var r = {
field: "data",
event: "data",
triggerFnName: "trigger",
triggerEvent: false,
immutableKeys: {}
// key => true if immutable
};
return e = Re({}, r, e), function(a) {
var i = e, o = this, s = o.length !== void 0, u = s ? o : [o];
if (Ie(a)) {
for (var l = a.split(/\s+/), c = l.length, d = 0; d < c; d++) {
var v = l[d];
if (!qn(v)) {
var h6 = !i.immutableKeys[v];
if (h6)
for (var f = 0, p = u.length; f < p; f++)
u[f]._private[i.field][v] = void 0;
}
}
i.triggerEvent && o[i.triggerFnName](i.event);
} else if (a === void 0) {
for (var m = 0, g = u.length; m < g; m++)
for (var y = u[m]._private[i.field], b = Object.keys(y), w = 0; w < b.length; w++) {
var C = b[w], E = !i.immutableKeys[C];
E && (y[C] = void 0);
}
i.triggerEvent && o[i.triggerFnName](i.event);
}
return o;
};
}
// removeData
};
var iD = {
eventAliasesOn: function(e) {
var r = e;
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) {
var i = this, o = Array.prototype.slice.call(arguments, 0);
return new hi(function(s, u) {
var l = function(h6) {
i.off.apply(i, d), s(h6);
}, c = o.concat([l]), d = c.concat([]);
i.on.apply(i, c);
});
};
}
};
var et = {};
[X4, aD, iD].forEach(function(t20) {
Re(et, t20);
});
var oD = {
animate: et.animate(),
animation: et.animation(),
animated: et.animated(),
clearQueue: et.clearQueue(),
delay: et.delay(),
delayAnimation: et.delayAnimation(),
stop: et.stop()
};
var ds = {
classes: function(e) {
var r = this;
if (e === void 0) {
var n = [];
return r[0]._private.classes.forEach(function(f) {
return n.push(f);
}), n;
} else st(e) || (e = (e || "").match(/\S+/g) || []);
for (var a = [], i = new vi(e), o = 0; o < r.length; o++) {
for (var s = r[o], u = s._private, l = u.classes, c = false, d = 0; d < e.length; d++) {
var v = e[d], h6 = l.has(v);
if (!h6) {
c = true;
break;
}
}
c || (c = l.size !== e.length), c && (u.classes = i, a.push(s));
}
return a.length > 0 && this.spawn(a).updateStyle().emit("class"), r;
},
addClass: function(e) {
return this.toggleClass(e, true);
},
hasClass: function(e) {
var r = this[0];
return r != null && r._private.classes.has(e);
},
toggleClass: function(e, r) {
st(e) || (e = e.match(/\S+/g) || []);
for (var n = this, a = r === void 0, i = [], o = 0, s = n.length; o < s; o++)
for (var u = n[o], l = u._private.classes, c = false, d = 0; d < e.length; d++) {
var v = e[d], h6 = l.has(v), f = false;
r || a && !h6 ? (l.add(v), f = true) : (!r || a && h6) && (l.delete(v), f = true), !c && f && (i.push(u), c = true);
}
return i.length > 0 && this.spawn(i).updateStyle().emit("class"), n;
},
removeClass: function(e) {
return this.toggleClass(e, false);
},
flashClass: function(e, r) {
var n = this;
if (r == null)
r = 250;
else if (r === 0)
return n;
return n.addClass(e), setTimeout(function() {
n.removeClass(e);
}, r), n;
}
};
ds.className = ds.classNames = ds.classes;
var Ye = {
metaChar: "[\\!\\\"\\#\\$\\%\\&\\'\\(\\)\\*\\+\\,\\.\\/\\:\\;\\<\\=\\>\\?\\@\\[\\]\\^\\`\\{\\|\\}\\~]",
// chars we need to escape in let names, etc
comparatorOp: "=|\\!=|>|>=|<|<=|\\$=|\\^=|\\*=",
// binary comparison op (used in data selectors)
boolOp: "\\?|\\!|\\^",
// boolean (unary) operators (used in data selectors)
string: `"(?:\\\\"|[^"])*"|'(?:\\\\'|[^'])*'`,
// string literals (used in data selectors) -- doublequotes | singlequotes
number: Ft,
// number literal (used in data selectors) --- e.g. 0.1234, 1234, 12e123
meta: "degree|indegree|outdegree",
// allowed metadata fields (i.e. allowed functions to use from Collection)
separator: "\\s*,\\s*",
// queries are separated by commas, e.g. edge[foo = 'bar'], node.someClass
descendant: "\\s+",
child: "\\s+>\\s+",
subject: "\\$",
group: "node|edge|\\*",
directedEdge: "\\s+->\\s+",
undirectedEdge: "\\s+<->\\s+"
};
Ye.variable = "(?:[\\w-.]|(?:\\\\" + Ye.metaChar + "))+";
Ye.className = "(?:[\\w-]|(?:\\\\" + Ye.metaChar + "))+";
Ye.value = Ye.string + "|" + Ye.number;
Ye.id = Ye.variable;
(function() {
var t20, e, r;
for (t20 = Ye.comparatorOp.split("|"), r = 0; r < t20.length; r++)
e = t20[r], Ye.comparatorOp += "|@" + e;
for (t20 = Ye.comparatorOp.split("|"), r = 0; r < t20.length; r++)
e = t20[r], !(e.indexOf("!") >= 0) && e !== "=" && (Ye.comparatorOp += "|\\!" + e);
})();
var it = function() {
return {
checks: []
};
};
var Se = {
/** E.g. node */
GROUP: 0,
/** A collection of elements */
COLLECTION: 1,
/** A filter(ele) function */
FILTER: 2,
/** E.g. [foo > 1] */
DATA_COMPARE: 3,
/** E.g. [foo] */
DATA_EXIST: 4,
/** E.g. [?foo] */
DATA_BOOL: 5,
/** E.g. [[degree > 2]] */
META_COMPARE: 6,
/** E.g. :selected */
STATE: 7,
/** E.g. #foo */
ID: 8,
/** E.g. .foo */
CLASS: 9,
/** E.g. #foo <-> #bar */
UNDIRECTED_EDGE: 10,
/** E.g. #foo -> #bar */
DIRECTED_EDGE: 11,
/** E.g. $#foo -> #bar */
NODE_SOURCE: 12,
/** E.g. #foo -> $#bar */
NODE_TARGET: 13,
/** E.g. $#foo <-> #bar */
NODE_NEIGHBOR: 14,
/** E.g. #foo > #bar */
CHILD: 15,
/** E.g. #foo #bar */
DESCENDANT: 16,
/** E.g. $#foo > #bar */
PARENT: 17,
/** E.g. $#foo #bar */
ANCESTOR: 18,
/** E.g. #foo > $bar > #baz */
COMPOUND_SPLIT: 19,
/** Always matches, useful placeholder for subject in `COMPOUND_SPLIT` */
TRUE: 20
};
var du = [{
selector: ":selected",
matches: function(e) {
return e.selected();
}
}, {
selector: ":unselected",
matches: function(e) {
return !e.selected();
}
}, {
selector: ":selectable",
matches: function(e) {
return e.selectable();
}
}, {
selector: ":unselectable",
matches: function(e) {
return !e.selectable();
}
}, {
selector: ":locked",
matches: function(e) {
return e.locked();
}
}, {
selector: ":unlocked",
matches: function(e) {
return !e.locked();
}
}, {
selector: ":visible",
matches: function(e) {
return e.visible();
}
}, {
selector: ":hidden",
matches: function(e) {
return !e.visible();
}
}, {
selector: ":transparent",
matches: function(e) {
return e.transparent();
}
}, {
selector: ":grabbed",
matches: function(e) {
return e.grabbed();
}
}, {
selector: ":free",
matches: function(e) {
return !e.grabbed();
}
}, {
selector: ":removed",
matches: function(e) {
return e.removed();
}
}, {
selector: ":inside",
matches: function(e) {
return !e.removed();
}
}, {
selector: ":grabbable",
matches: function(e) {
return e.grabbable();
}
}, {
selector: ":ungrabbable",
matches: function(e) {
return !e.grabbable();
}
}, {
selector: ":animated",
matches: function(e) {
return e.animated();
}
}, {
selector: ":unanimated",
matches: function(e) {
return !e.animated();
}
}, {
selector: ":parent",
matches: function(e) {
return e.isParent();
}
}, {
selector: ":childless",
matches: function(e) {
return e.isChildless();
}
}, {
selector: ":child",
matches: function(e) {
return e.isChild();
}
}, {
selector: ":orphan",
matches: function(e) {
return e.isOrphan();
}
}, {
selector: ":nonorphan",
matches: function(e) {
return e.isChild();
}
}, {
selector: ":compound",
matches: function(e) {
return e.isNode() ? e.isParent() : e.source().isParent() || e.target().isParent();
}
}, {
selector: ":loop",
matches: function(e) {
return e.isLoop();
}
}, {
selector: ":simple",
matches: function(e) {
return e.isSimple();
}
}, {
selector: ":active",
matches: function(e) {
return e.active();
}
}, {
selector: ":inactive",
matches: function(e) {
return !e.active();
}
}, {
selector: ":backgrounding",
matches: function(e) {
return e.backgrounding();
}
}, {
selector: ":nonbackgrounding",
matches: function(e) {
return !e.backgrounding();
}
}].sort(function(t20, e) {
return yT(t20.selector, e.selector);
});
var sD = function() {
for (var t20 = {}, e, r = 0; r < du.length; r++)
e = du[r], t20[e.selector] = e.matches;
return t20;
}();
var lD = function(e, r) {
return sD[e](r);
};
var uD = "(" + du.map(function(t20) {
return t20.selector;
}).join("|") + ")";
var Ia = function(e) {
return e.replace(new RegExp("\\\\(" + Ye.metaChar + ")", "g"), function(r, n) {
return n;
});
};
var Pn = function(e, r, n) {
e[e.length - 1] = n;
};
var fu = [{
name: "group",
// just used for identifying when debugging
query: true,
regex: "(" + Ye.group + ")",
populate: function(e, r, n) {
var a = Mr(n, 1), i = a[0];
r.checks.push({
type: Se.GROUP,
value: i === "*" ? i : i + "s"
});
}
}, {
name: "state",
query: true,
regex: uD,
populate: function(e, r, n) {
var a = Mr(n, 1), i = a[0];
r.checks.push({
type: Se.STATE,
value: i
});
}
}, {
name: "id",
query: true,
regex: "\\#(" + Ye.id + ")",
populate: function(e, r, n) {
var a = Mr(n, 1), i = a[0];
r.checks.push({
type: Se.ID,
value: Ia(i)
});
}
}, {
name: "className",
query: true,
regex: "\\.(" + Ye.className + ")",
populate: function(e, r, n) {
var a = Mr(n, 1), i = a[0];
r.checks.push({
type: Se.CLASS,
value: Ia(i)
});
}
}, {
name: "dataExists",
query: true,
regex: "\\[\\s*(" + Ye.variable + ")\\s*\\]",
populate: function(e, r, n) {
var a = Mr(n, 1), i = a[0];
r.checks.push({
type: Se.DATA_EXIST,
field: Ia(i)
});
}
}, {
name: "dataCompare",
query: true,
regex: "\\[\\s*(" + Ye.variable + ")\\s*(" + Ye.comparatorOp + ")\\s*(" + Ye.value + ")\\s*\\]",
populate: function(e, r, n) {
var a = Mr(n, 3), i = a[0], o = a[1], s = a[2], u = new RegExp("^" + Ye.string + "$").exec(s) != null;
u ? s = s.substring(1, s.length - 1) : s = parseFloat(s), r.checks.push({
type: Se.DATA_COMPARE,
field: Ia(i),
operator: o,
value: s
});
}
}, {
name: "dataBool",
query: true,
regex: "\\[\\s*(" + Ye.boolOp + ")\\s*(" + Ye.variable + ")\\s*\\]",
populate: function(e, r, n) {
var a = Mr(n, 2), i = a[0], o = a[1];
r.checks.push({
type: Se.DATA_BOOL,
field: Ia(o),
operator: i
});
}
}, {
name: "metaCompare",
query: true,
regex: "\\[\\[\\s*(" + Ye.meta + ")\\s*(" + Ye.comparatorOp + ")\\s*(" + Ye.number + ")\\s*\\]\\]",
populate: function(e, r, n) {
var a = Mr(n, 3), i = a[0], o = a[1], s = a[2];
r.checks.push({
type: Se.META_COMPARE,
field: Ia(i),
operator: o,
value: parseFloat(s)
});
}
}, {
name: "nextQuery",
separator: true,
regex: Ye.separator,
populate: function(e, r) {
var n = e.currentSubject, a = e.edgeCount, i = e.compoundCount, o = e[e.length - 1];
n != null && (o.subject = n, e.currentSubject = null), o.edgeCount = a, o.compoundCount = i, e.edgeCount = 0, e.compoundCount = 0;
var s = e[e.length++] = it();
return s;
}
}, {
name: "directedEdge",
separator: true,
regex: Ye.directedEdge,
populate: function(e, r) {
if (e.currentSubject == null) {
var n = it(), a = r, i = it();
return n.checks.push({
type: Se.DIRECTED_EDGE,
source: a,
target: i
}), Pn(e, r, n), e.edgeCount++, i;
} else {
var o = it(), s = r, u = it();
return o.checks.push({
type: Se.NODE_SOURCE,
source: s,
target: u
}), Pn(e, r, o), e.edgeCount++, u;
}
}
}, {
name: "undirectedEdge",
separator: true,
regex: Ye.undirectedEdge,
populate: function(e, r) {
if (e.currentSubject == null) {
var n = it(), a = r, i = it();
return n.checks.push({
type: Se.UNDIRECTED_EDGE,
nodes: [a, i]
}), Pn(e, r, n), e.edgeCount++, i;
} else {
var o = it(), s = r, u = it();
return o.checks.push({
type: Se.NODE_NEIGHBOR,
node: s,
neighbor: u
}), Pn(e, r, o), u;
}
}
}, {
name: "child",
separator: true,
regex: Ye.child,
populate: function(e, r) {
if (e.currentSubject == null) {
var n = it(), a = it(), i = e[e.length - 1];
return n.checks.push({
type: Se.CHILD,
parent: i,
child: a
}), Pn(e, r, n), e.compoundCount++, a;
} else if (e.currentSubject === r) {
var o = it(), s = e[e.length - 1], u = it(), l = it(), c = it(), d = it();
return o.checks.push({
type: Se.COMPOUND_SPLIT,
left: s,
right: u,
subject: l
}), l.checks = r.checks, r.checks = [{
type: Se.TRUE
}], d.checks.push({
type: Se.TRUE
}), u.checks.push({
type: Se.PARENT,
// type is swapped on right side queries
parent: d,
child: c
// empty for now
}), Pn(e, s, o), e.currentSubject = l, e.compoundCount++, c;
} else {
var v = it(), h6 = it(), f = [{
type: Se.PARENT,
parent: v,
child: h6
}];
return v.checks = r.checks, r.checks = f, e.compoundCount++, h6;
}
}
}, {
name: "descendant",
separator: true,
regex: Ye.descendant,
populate: function(e, r) {
if (e.currentSubject == null) {
var n = it(), a = it(), i = e[e.length - 1];
return n.checks.push({
type: Se.DESCENDANT,
ancestor: i,
descendant: a
}), Pn(e, r, n), e.compoundCount++, a;
} else if (e.currentSubject === r) {
var o = it(), s = e[e.length - 1], u = it(), l = it(), c = it(), d = it();
return o.checks.push({
type: Se.COMPOUND_SPLIT,
left: s,
right: u,
subject: l
}), l.checks = r.checks, r.checks = [{
type: Se.TRUE
}], d.checks.push({
type: Se.TRUE
}), u.checks.push({
type: Se.ANCESTOR,
// type is swapped on right side queries
ancestor: d,
descendant: c
// empty for now
}), Pn(e, s, o), e.currentSubject = l, e.compoundCount++, c;
} else {
var v = it(), h6 = it(), f = [{
type: Se.ANCESTOR,
ancestor: v,
descendant: h6
}];
return v.checks = r.checks, r.checks = f, e.compoundCount++, h6;
}
}
}, {
name: "subject",
modifier: true,
regex: Ye.subject,
populate: function(e, r) {
if (e.currentSubject != null && e.currentSubject !== r)
return tt("Redefinition of subject in selector `" + e.toString() + "`"), false;
e.currentSubject = r;
var n = e[e.length - 1], a = n.checks[0], i = a == null ? null : a.type;
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);
}
}];
fu.forEach(function(t20) {
return t20.regexObj = new RegExp("^" + t20.regex);
});
var cD = function(e) {
for (var r, n, a, i = 0; i < fu.length; i++) {
var o = fu[i], s = o.name, u = e.match(o.regexObj);
if (u != null) {
n = u, r = o, a = s;
var l = u[0];
e = e.substring(l.length);
break;
}
}
return {
expr: r,
match: n,
name: a,
remaining: e
};
};
var dD = function(e) {
var r = e.match(/^\s+/);
if (r) {
var n = r[0];
e = e.substring(n.length);
}
return e;
};
var fD = function(e) {
var r = this, n = r.inputText = e, a = r[0] = it();
for (r.length = 1, n = dD(n); ; ) {
var i = cD(n);
if (i.expr == null)
return tt("The selector `" + e + "`is invalid"), false;
var o = i.match.slice(1), s = i.expr.populate(r, a, o);
if (s === false)
return false;
if (s != null && (a = s), n = i.remaining, n.match(/^\s*$/))
break;
}
var u = r[r.length - 1];
r.currentSubject != null && (u.subject = r.currentSubject), u.edgeCount = r.edgeCount, u.compoundCount = r.compoundCount;
for (var l = 0; l < r.length; l++) {
var c = r[l];
if (c.compoundCount > 0 && c.edgeCount > 0)
return tt("The selector `" + e + "` is invalid because it uses both a compound selector and an edge selector"), false;
if (c.edgeCount > 1)
return tt("The selector `" + e + "` is invalid because it uses multiple edge selectors"), false;
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.");
}
return true;
};
var vD = function() {
if (this.toStringCache != null)
return this.toStringCache;
for (var e = function(c) {
return c ?? "";
}, r = function(c) {
return Ie(c) ? '"' + c + '"' : e(c);
}, n = function(c) {
return " " + c + " ";
}, a = function(c, d) {
var v = c.type, h6 = c.value;
switch (v) {
case Se.GROUP: {
var f = e(h6);
return f.substring(0, f.length - 1);
}
case Se.DATA_COMPARE: {
var p = c.field, m = c.operator;
return "[" + p + n(e(m)) + r(h6) + "]";
}
case Se.DATA_BOOL: {
var g = c.operator, y = c.field;
return "[" + e(g) + y + "]";
}
case Se.DATA_EXIST: {
var b = c.field;
return "[" + b + "]";
}
case Se.META_COMPARE: {
var w = c.operator, C = c.field;
return "[[" + C + n(e(w)) + r(h6) + "]]";
}
case Se.STATE:
return h6;
case Se.ID:
return "#" + h6;
case Se.CLASS:
return "." + h6;
case Se.PARENT:
case Se.CHILD:
return i(c.parent, d) + n(">") + i(c.child, d);
case Se.ANCESTOR:
case Se.DESCENDANT:
return i(c.ancestor, d) + " " + i(c.descendant, d);
case Se.COMPOUND_SPLIT: {
var E = i(c.left, d), x = i(c.subject, d), T = i(c.right, d);
return E + (E.length > 0 ? " " : "") + x + T;
}
case Se.TRUE:
return "";
}
}, i = function(c, d) {
return c.checks.reduce(function(v, h6, f) {
return v + (d === c && f === 0 ? "$" : "") + a(h6, d);
}, "");
}, o = "", s = 0; s < this.length; s++) {
var u = this[s];
o += i(u, u.subject), this.length > 1 && s < this.length - 1 && (o += ", ");
}
return this.toStringCache = o, o;
};
var hD = {
parse: fD,
toString: vD
};
var Ip = function(e, r, n) {
var a, i = Ie(e), o = be(e), s = Ie(n), u, l, c = false, d = false, v = false;
switch (r.indexOf("!") >= 0 && (r = r.replace("!", ""), d = true), r.indexOf("@") >= 0 && (r = r.replace("@", ""), c = true), (i || s || c) && (u = !i && !o ? "" : "" + e, l = "" + n), c && (e = u = u.toLowerCase(), n = l = l.toLowerCase()), r) {
case "*=":
a = u.indexOf(l) >= 0;
break;
case "$=":
a = u.indexOf(l, u.length - l.length) >= 0;
break;
case "^=":
a = u.indexOf(l) === 0;
break;
case "=":
a = e === n;
break;
case ">":
v = true, a = e > n;
break;
case ">=":
v = true, a = e >= n;
break;
case "<":
v = true, a = e < n;
break;
case "<=":
v = true, a = e <= n;
break;
default:
a = false;
break;
}
return d && (e != null || !v) && (a = !a), a;
};
var pD = function(e, r) {
switch (r) {
case "?":
return !!e;
case "!":
return !e;
case "^":
return e === void 0;
}
};
var gD = function(e) {
return e !== void 0;
};
var yc = function(e, r) {
return e.data(r);
};
var mD = function(e, r) {
return e[r]();
};
var bt = [];
var vt = function(e, r) {
return e.checks.every(function(n) {
return bt[n.type](n, r);
});
};
bt[Se.GROUP] = function(t20, e) {
var r = t20.value;
return r === "*" || r === e.group();
};
bt[Se.STATE] = function(t20, e) {
var r = t20.value;
return lD(r, e);
};
bt[Se.ID] = function(t20, e) {
var r = t20.value;
return e.id() === r;
};
bt[Se.CLASS] = function(t20, e) {
var r = t20.value;
return e.hasClass(r);
};
bt[Se.META_COMPARE] = function(t20, e) {
var r = t20.field, n = t20.operator, a = t20.value;
return Ip(mD(e, r), n, a);
};
bt[Se.DATA_COMPARE] = function(t20, e) {
var r = t20.field, n = t20.operator, a = t20.value;
return Ip(yc(e, r), n, a);
};
bt[Se.DATA_BOOL] = function(t20, e) {
var r = t20.field, n = t20.operator;
return pD(yc(e, r), n);
};
bt[Se.DATA_EXIST] = function(t20, e) {
var r = t20.field;
return t20.operator, gD(yc(e, r));
};
bt[Se.UNDIRECTED_EDGE] = function(t20, e) {
var r = t20.nodes[0], n = t20.nodes[1], a = e.source(), i = e.target();
return vt(r, a) && vt(n, i) || vt(n, a) && vt(r, i);
};
bt[Se.NODE_NEIGHBOR] = function(t20, e) {
return vt(t20.node, e) && e.neighborhood().some(function(r) {
return r.isNode() && vt(t20.neighbor, r);
});
};
bt[Se.DIRECTED_EDGE] = function(t20, e) {
return vt(t20.source, e.source()) && vt(t20.target, e.target());
};
bt[Se.NODE_SOURCE] = function(t20, e) {
return vt(t20.source, e) && e.outgoers().some(function(r) {
return r.isNode() && vt(t20.target, r);
});
};
bt[Se.NODE_TARGET] = function(t20, e) {
return vt(t20.target, e) && e.incomers().some(function(r) {
return r.isNode() && vt(t20.source, r);
});
};
bt[Se.CHILD] = function(t20, e) {
return vt(t20.child, e) && vt(t20.parent, e.parent());
};
bt[Se.PARENT] = function(t20, e) {
return vt(t20.parent, e) && e.children().some(function(r) {
return vt(t20.child, r);
});
};
bt[Se.DESCENDANT] = function(t20, e) {
return vt(t20.descendant, e) && e.ancestors().some(function(r) {
return vt(t20.ancestor, r);
});
};
bt[Se.ANCESTOR] = function(t20, e) {
return vt(t20.ancestor, e) && e.descendants().some(function(r) {
return vt(t20.descendant, r);
});
};
bt[Se.COMPOUND_SPLIT] = function(t20, e) {
return vt(t20.subject, e) && vt(t20.left, e) && vt(t20.right, e);
};
bt[Se.TRUE] = function() {
return true;
};
bt[Se.COLLECTION] = function(t20, e) {
var r = t20.value;
return r.has(e);
};
bt[Se.FILTER] = function(t20, e) {
var r = t20.value;
return r(e);
};
var yD = function(e) {
var r = this;
if (r.length === 1 && r[0].checks.length === 1 && r[0].checks[0].type === Se.ID)
return e.getElementById(r[0].checks[0].value).collection();
var n = function(i) {
for (var o = 0; o < r.length; o++) {
var s = r[o];
if (vt(s, i))
return true;
}
return false;
};
return r.text() == null && (n = function() {
return true;
}), e.filter(n);
};
var bD = function(e) {
for (var r = this, n = 0; n < r.length; n++) {
var a = r[n];
if (vt(a, e))
return true;
}
return false;
};
var wD = {
matches: bD,
filter: yD
};
var Un = function(e) {
this.inputText = e, this.currentSubject = null, this.compoundCount = 0, this.edgeCount = 0, this.length = 0, e == null || Ie(e) && e.match(/^\s*$/) || (yr(e) ? this.addQuery({
checks: [{
type: Se.COLLECTION,
value: e.collection()
}]
}) : pt(e) ? this.addQuery({
checks: [{
type: Se.FILTER,
value: e
}]
}) : Ie(e) ? this.parse(e) || (this.invalid = true) : yt("A selector must be created from a string; found "));
};
var Gn = Un.prototype;
[hD, wD].forEach(function(t20) {
return Re(Gn, t20);
});
Gn.text = function() {
return this.inputText;
};
Gn.size = function() {
return this.length;
};
Gn.eq = function(t20) {
return this[t20];
};
Gn.sameText = function(t20) {
return !this.invalid && !t20.invalid && this.text() === t20.text();
};
Gn.addQuery = function(t20) {
this[this.length++] = t20;
};
Gn.selector = Gn.toString;
var Rn = {
allAre: function(e) {
var r = new Un(e);
return this.every(function(n) {
return r.matches(n);
});
},
is: function(e) {
var r = new Un(e);
return this.some(function(n) {
return r.matches(n);
});
},
some: function(e, r) {
for (var n = 0; n < this.length; n++) {
var a = r ? e.apply(r, [this[n], n, this]) : e(this[n], n, this);
if (a)
return true;
}
return false;
},
every: function(e, r) {
for (var n = 0; n < this.length; n++) {
var a = r ? e.apply(r, [this[n], n, this]) : e(this[n], n, this);
if (!a)
return false;
}
return true;
},
same: function(e) {
if (this === e)
return true;
e = this.cy().collection(e);
var r = this.length, n = e.length;
return r !== n ? false : r === 1 ? this[0] === e[0] : this.every(function(a) {
return e.hasElementWithId(a.id());
});
},
anySame: function(e) {
return e = this.cy().collection(e), this.some(function(r) {
return e.hasElementWithId(r.id());
});
},
allAreNeighbors: function(e) {
e = this.cy().collection(e);
var r = this.neighborhood();
return e.every(function(n) {
return r.hasElementWithId(n.id());
});
},
contains: function(e) {
e = this.cy().collection(e);
var r = this;
return e.every(function(n) {
return r.hasElementWithId(n.id());
});
}
};
Rn.allAreNeighbours = Rn.allAreNeighbors;
Rn.has = Rn.contains;
Rn.equal = Rn.equals = Rn.same;
var Sr = function(e, r) {
return function(a, i, o, s) {
var u = a, l = this, c;
if (u == null ? c = "" : yr(u) && u.length === 1 && (c = u.id()), l.length === 1 && c) {
var d = l[0]._private, v = d.traversalCache = d.traversalCache || {}, h6 = v[r] = v[r] || [], f = ma(c), p = h6[f];
return p || (h6[f] = e.call(l, a, i, o, s));
} else
return e.call(l, a, i, o, s);
};
};
var li = {
parent: function(e) {
var r = [];
if (this.length === 1) {
var n = this[0]._private.parent;
if (n)
return n;
}
for (var a = 0; a < this.length; a++) {
var i = this[a], o = i._private.parent;
o && r.push(o);
}
return this.spawn(r, true).filter(e);
},
parents: function(e) {
for (var r = [], n = this.parent(); n.nonempty(); ) {
for (var a = 0; a < n.length; a++) {
var i = n[a];
r.push(i);
}
n = n.parent();
}
return this.spawn(r, true).filter(e);
},
commonAncestors: function(e) {
for (var r, n = 0; n < this.length; n++) {
var a = this[n], i = a.parents();
r = r || i, r = r.intersect(i);
}
return r.filter(e);
},
orphans: function(e) {
return this.stdFilter(function(r) {
return r.isOrphan();
}).filter(e);
},
nonorphans: function(e) {
return this.stdFilter(function(r) {
return r.isChild();
}).filter(e);
},
children: Sr(function(t20) {
for (var e = [], r = 0; r < this.length; r++)
for (var n = this[r], a = n._private.children, i = 0; i < a.length; i++)
e.push(a[i]);
return this.spawn(e, true).filter(t20);
}, "children"),
siblings: function(e) {
return this.parent().children().not(this).filter(e);
},
isParent: function() {
var e = this[0];
if (e)
return e.isNode() && e._private.children.length !== 0;
},
isChildless: function() {
var e = this[0];
if (e)
return e.isNode() && e._private.children.length === 0;
},
isChild: function() {
var e = this[0];
if (e)
return e.isNode() && e._private.parent != null;
},
isOrphan: function() {
var e = this[0];
if (e)
return e.isNode() && e._private.parent == null;
},
descendants: function(e) {
var r = [];
function n(a) {
for (var i = 0; i < a.length; i++) {
var o = a[i];
r.push(o), o.children().nonempty() && n(o.children());
}
}
return n(this.children()), this.spawn(r, true).filter(e);
}
};
function bc(t20, e, r, n) {
for (var a = [], i = new vi(), o = t20.cy(), s = o.hasCompoundNodes(), u = 0; u < t20.length; u++) {
var l = t20[u];
r ? a.push(l) : s && n(a, i, l);
}
for (; a.length > 0; ) {
var c = a.shift();
e(c), i.add(c.id()), s && n(a, i, c);
}
return t20;
}
function Ap(t20, e, r) {
if (r.isParent())
for (var n = r._private.children, a = 0; a < n.length; a++) {
var i = n[a];
e.has(i.id()) || t20.push(i);
}
}
li.forEachDown = function(t20) {
var e = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : true;
return bc(this, t20, e, Ap);
};
function Mp(t20, e, r) {
if (r.isChild()) {
var n = r._private.parent;
e.has(n.id()) || t20.push(n);
}
}
li.forEachUp = function(t20) {
var e = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : true;
return bc(this, t20, e, Mp);
};
function xD(t20, e, r) {
Mp(t20, e, r), Ap(t20, e, r);
}
li.forEachUpAndDown = function(t20) {
var e = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : true;
return bc(this, t20, e, xD);
};
li.ancestors = li.parents;
var lo;
var Bp;
lo = Bp = {
data: et.data({
field: "data",
bindingEvent: "data",
allowBinding: true,
allowSetting: true,
settingEvent: "data",
settingTriggersEvent: true,
triggerFnName: "trigger",
allowGetting: true,
immutableKeys: {
id: true,
source: true,
target: true,
parent: true
},
updateStyle: true
}),
removeData: et.removeData({
field: "data",
event: "data",
triggerFnName: "trigger",
triggerEvent: true,
immutableKeys: {
id: true,
source: true,
target: true,
parent: true
},
updateStyle: true
}),
scratch: et.data({
field: "scratch",
bindingEvent: "scratch",
allowBinding: true,
allowSetting: true,
settingEvent: "scratch",
settingTriggersEvent: true,
triggerFnName: "trigger",
allowGetting: true,
updateStyle: true
}),
removeScratch: et.removeData({
field: "scratch",
event: "scratch",
triggerFnName: "trigger",
triggerEvent: true,
updateStyle: true
}),
rscratch: et.data({
field: "rscratch",
allowBinding: false,
allowSetting: true,
settingTriggersEvent: false,
allowGetting: true
}),
removeRscratch: et.removeData({
field: "rscratch",
triggerEvent: false
}),
id: function() {
var e = this[0];
if (e)
return e._private.data.id;
}
};
lo.attr = lo.data;
lo.removeAttr = lo.removeData;
var CD = Bp;
var ll = {};
function Rl(t20) {
return function(e) {
var r = this;
if (e === void 0 && (e = true), r.length !== 0)
if (r.isNode() && !r.removed()) {
for (var n = 0, a = r[0], i = a._private.edges, o = 0; o < i.length; o++) {
var s = i[o];
!e && s.isLoop() || (n += t20(a, s));
}
return n;
} else
return;
};
}
Re(ll, {
degree: Rl(function(t20, e) {
return e.source().same(e.target()) ? 2 : 1;
}),
indegree: Rl(function(t20, e) {
return e.target().same(t20) ? 1 : 0;
}),
outdegree: Rl(function(t20, e) {
return e.source().same(t20) ? 1 : 0;
})
});
function Aa(t20, e) {
return function(r) {
for (var n, a = this.nodes(), i = 0; i < a.length; i++) {
var o = a[i], s = o[t20](r);
s !== void 0 && (n === void 0 || e(s, n)) && (n = s);
}
return n;
};
}
Re(ll, {
minDegree: Aa("degree", function(t20, e) {
return t20 < e;
}),
maxDegree: Aa("degree", function(t20, e) {
return t20 > e;
}),
minIndegree: Aa("indegree", function(t20, e) {
return t20 < e;
}),
maxIndegree: Aa("indegree", function(t20, e) {
return t20 > e;
}),
minOutdegree: Aa("outdegree", function(t20, e) {
return t20 < e;
}),
maxOutdegree: Aa("outdegree", function(t20, e) {
return t20 > e;
})
});
Re(ll, {
totalDegree: function(e) {
for (var r = 0, n = this.nodes(), a = 0; a < n.length; a++)
r += n[a].degree(e);
return r;
}
});
var zr;
var Np;
var $p = function(e, r, n) {
for (var a = 0; a < e.length; a++) {
var i = e[a];
if (!i.locked()) {
var o = i._private.position, s = {
x: r.x != null ? r.x - o.x : 0,
y: r.y != null ? r.y - o.y : 0
};
i.isParent() && !(s.x === 0 && s.y === 0) && i.children().shift(s, n), i.dirtyBoundingBoxCache();
}
}
};
var Of = {
field: "position",
bindingEvent: "position",
allowBinding: true,
allowSetting: true,
settingEvent: "position",
settingTriggersEvent: true,
triggerFnName: "emitAndNotify",
allowGetting: true,
validKeys: ["x", "y"],
beforeGet: function(e) {
e.updateCompoundBounds();
},
beforeSet: function(e, r) {
$p(e, r, false);
},
onSet: function(e) {
e.dirtyCompoundBoundsCache();
},
canSet: function(e) {
return !e.locked();
}
};
zr = Np = {
position: et.data(Of),
// position but no notification to renderer
silentPosition: et.data(Re({}, Of, {
allowBinding: false,
allowSetting: true,
settingTriggersEvent: false,
allowGetting: false,
beforeSet: function(e, r) {
$p(e, r, true);
},
onSet: function(e) {
e.dirtyCompoundBoundsCache();
}
})),
positions: function(e, r) {
if (Xe(e))
r ? this.silentPosition(e) : this.position(e);
else if (pt(e)) {
var n = e, a = this.cy();
a.startBatch();
for (var i = 0; i < this.length; i++) {
var o = this[i], s = void 0;
(s = n(o, i)) && (r ? o.silentPosition(s) : o.position(s));
}
a.endBatch();
}
return this;
},
silentPositions: function(e) {
return this.positions(e, true);
},
shift: function(e, r, n) {
var a;
if (Xe(e) ? (a = {
x: be(e.x) ? e.x : 0,
y: be(e.y) ? e.y : 0
}, n = r) : Ie(e) && be(r) && (a = {
x: 0,
y: 0
}, a[e] = r), a != null) {
var i = this.cy();
i.startBatch();
for (var o = 0; o < this.length; o++) {
var s = this[o];
if (!(i.hasCompoundNodes() && s.isChild() && s.ancestors().anySame(this))) {
var u = s.position(), l = {
x: u.x + a.x,
y: u.y + a.y
};
n ? s.silentPosition(l) : s.position(l);
}
}
i.endBatch();
}
return this;
},
silentShift: function(e, r) {
return Xe(e) ? this.shift(e, true) : Ie(e) && be(r) && this.shift(e, r, true), this;
},
// get/set the rendered (i.e. on screen) positon of the element
renderedPosition: function(e, r) {
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 && Ie(e);
if (n && n.isNode())
if (u)
for (var l = 0; l < this.length; l++) {
var c = this[l];
r !== void 0 ? c.position(e, (r - o[e]) / i) : s !== void 0 && c.position(cp(s, i, o));
}
else {
var d = n.position();
return s = nl(d, i, o), e === void 0 ? s : s[e];
}
else if (!u)
return;
return this;
},
// get/set the position relative to the parent
relativePosition: function(e, r) {
var n = this[0], a = this.cy(), i = Xe(e) ? e : void 0, o = i !== void 0 || r !== void 0 && Ie(e), s = a.hasCompoundNodes();
if (n && n.isNode())
if (o)
for (var u = 0; u < this.length; u++) {
var l = this[u], c = s ? l.parent() : null, d = c && c.length > 0, v = d;
d && (c = c[0]);
var h6 = v ? c.position() : {
x: 0,
y: 0
};
r !== void 0 ? l.position(e, r + h6[e]) : i !== void 0 && l.position({
x: i.x + h6.x,
y: i.y + h6.y
});
}
else {
var f = n.position(), p = s ? n.parent() : null, m = p && p.length > 0, g = m;
m && (p = p[0]);
var y = g ? p.position() : {
x: 0,
y: 0
};
return i = {
x: f.x - y.x,
y: f.y - y.y
}, e === void 0 ? i : i[e];
}
else if (!o)
return;
return this;
}
};
zr.modelPosition = zr.point = zr.position;
zr.modelPositions = zr.points = zr.positions;
zr.renderedPoint = zr.renderedPosition;
zr.relativePoint = zr.relativePosition;
var ED = Np;
var Za;
var Xn;
Za = Xn = {};
Xn.renderedBoundingBox = function(t20) {
var e = this.boundingBox(t20), 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;
return {
x1: i,
x2: o,
y1: s,
y2: u,
w: o - i,
h: u - s
};
};
Xn.dirtyCompoundBoundsCache = function() {
var t20 = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : false, e = this.cy();
return !e.styleEnabled() || !e.hasCompoundNodes() ? this : (this.forEachUp(function(r) {
if (r.isParent()) {
var n = r._private;
n.compoundBoundsClean = false, n.bbCache = null, t20 || r.emitAndNotify("bounds");
}
}), this);
};
Xn.updateCompoundBounds = function() {
var t20 = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : false, e = this.cy();
if (!e.styleEnabled() || !e.hasCompoundNodes())
return this;
if (!t20 && e.batching())
return this;
function r(o) {
if (!o.isParent())
return;
var s = o._private, u = o.children(), l = o.pstyle("compound-sizing-wrt-labels").value === "include", c = {
width: {
val: o.pstyle("min-width").pfValue,
left: o.pstyle("min-width-bias-left"),
right: o.pstyle("min-width-bias-right")
},
height: {
val: o.pstyle("min-height").pfValue,
top: o.pstyle("min-height-bias-top"),
bottom: o.pstyle("min-height-bias-bottom")
}
}, d = u.boundingBox({
includeLabels: l,
includeOverlays: false,
// updating the compound bounds happens outside of the regular
// cache cycle (i.e. before fired events)
useCache: false
}), v = s.position;
(d.w === 0 || d.h === 0) && (d = {
w: o.pstyle("width").pfValue,
h: o.pstyle("height").pfValue
}, 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);
function h6(k, _, D) {
var O = 0, I = 0, L = _ + D;
return k > 0 && L > 0 && (O = _ / L * k, I = D / L * k), {
biasDiff: O,
biasComplementDiff: I
};
}
function f(k, _, D, O) {
if (D.units === "%")
switch (O) {
case "width":
return k > 0 ? D.pfValue * k : 0;
case "height":
return _ > 0 ? D.pfValue * _ : 0;
case "average":
return k > 0 && _ > 0 ? D.pfValue * (k + _) / 2 : 0;
case "min":
return k > 0 && _ > 0 ? k > _ ? D.pfValue * _ : D.pfValue * k : 0;
case "max":
return k > 0 && _ > 0 ? k > _ ? D.pfValue * k : D.pfValue * _ : 0;
default:
return 0;
}
else return D.units === "px" ? D.pfValue : 0;
}
var p = c.width.left.value;
c.width.left.units === "px" && c.width.val > 0 && (p = p * 100 / c.width.val);
var m = c.width.right.value;
c.width.right.units === "px" && c.width.val > 0 && (m = m * 100 / c.width.val);
var g = c.height.top.value;
c.height.top.units === "px" && c.height.val > 0 && (g = g * 100 / c.height.val);
var y = c.height.bottom.value;
c.height.bottom.units === "px" && c.height.val > 0 && (y = y * 100 / c.height.val);
var b = h6(c.width.val - d.w, p, m), w = b.biasDiff, C = b.biasComplementDiff, E = h6(c.height.val - d.h, g, y), x = E.biasDiff, T = E.biasComplementDiff;
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;
}
for (var n = 0; n < this.length; n++) {
var a = this[n], i = a._private;
(!i.compoundBoundsClean || t20) && (r(a), e.batching() || (i.compoundBoundsClean = true));
}
return this;
};
var Er = function(e) {
return e === 1 / 0 || e === -1 / 0 ? 0 : e;
};
var Br = function(e, r, n, a, i) {
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);
};
var ra = function(e, r) {
return r == null ? e : Br(e, r.x1, r.y1, r.x2, r.y2);
};
var Li = function(e, r, n) {
return Nr(e, r, n);
};
var Qo = function(e, r, n) {
if (!r.cy().headless()) {
var a = r._private, i = a.rstyle, o = i.arrowWidth / 2, s = r.pstyle(n + "-arrow-shape").value, u, l;
if (s !== "none") {
n === "source" ? (u = i.srcX, l = i.srcY) : n === "target" ? (u = i.tgtX, l = i.tgtY) : (u = i.midX, l = i.midY);
var c = a.arrowBounds = a.arrowBounds || {}, d = c[n] = c[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);
}
}
};
var zl = function(e, r, n) {
if (!r.cy().headless()) {
var a;
n ? a = n + "-" : a = "";
var i = r._private, o = i.rstyle, s = r.pstyle(a + "label").strValue;
if (s) {
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), h6 = 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, I, L;
if (m)
D = v - k, O = v + k, I = h6 - _, L = h6 + _;
else {
switch (u.value) {
case "left":
D = v - T, O = v;
break;
case "center":
D = v - k, O = v + k;
break;
case "right":
D = v, O = v + T;
break;
}
switch (l.value) {
case "top":
I = h6 - x, L = h6;
break;
case "center":
I = h6 - _, L = h6 + _;
break;
case "bottom":
I = h6, L = h6 + x;
break;
}
}
D += f - Math.max(y, w) - C - E, O += f + Math.max(y, w) + C + E, I += p - Math.max(y, w) - C - E, L += p + Math.max(y, w) + C + E;
var B = n || "main", F = i.labelBounds, M = F[B] = F[B] || {};
M.x1 = D, M.y1 = I, M.x2 = O, M.y2 = L, M.w = O - D, M.h = L - I;
var A = m && g.strValue === "autorotate", R = g.pfValue != null && g.pfValue !== 0;
if (A || R) {
var K10 = A ? Li(i.rstyle, "labelAngle", n) : g.pfValue, H = Math.cos(K10), q = Math.sin(K10), ee = (D + O) / 2, se2 = (I + L) / 2;
if (!m) {
switch (u.value) {
case "left":
ee = O;
break;
case "right":
ee = D;
break;
}
switch (l.value) {
case "top":
se2 = L;
break;
case "bottom":
se2 = I;
break;
}
}
var oe = function(Ee2, fe) {
return Ee2 = Ee2 - ee, fe = fe - se2, {
x: Ee2 * H - fe * q + ee,
y: Ee2 * q + fe * H + se2
};
}, ae = oe(D, I), ue = oe(D, L), te = oe(O, I), $ = oe(O, L);
D = Math.min(ae.x, ue.x, te.x, $.x), O = Math.max(ae.x, ue.x, te.x, $.x), I = Math.min(ae.y, ue.y, te.y, $.y), L = Math.max(ae.y, ue.y, te.y, $.y);
}
var G = B + "Rot", Q = F[G] = F[G] || {};
Q.x1 = D, Q.y1 = I, Q.x2 = O, Q.y2 = L, Q.w = O - D, Q.h = L - I, Br(e, D, I, O, L), Br(i.labelBounds.all, D, I, O, L);
}
return e;
}
};
var kD = function(e, r) {
if (!r.cy().headless()) {
var n = r.pstyle("outline-opacity").value, a = r.pstyle("outline-width").value;
if (n > 0 && a > 0) {
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;
["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);
var v = e.h * l - e.h, h6 = e.w * u - e.w;
if (cs(e, [Math.ceil(v / 2), Math.ceil(h6 / 2)]), c != 0 || d !== 0) {
var f = U5(e, c, d);
fp(e, f);
}
}
}
};
var SD = function(e, r) {
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, h6, f, p, m = s.rstyle, g = u && a ? e.pstyle("bounds-expansion").pfValue : [0], y = function(xe) {
return xe.pstyle("display").value !== "none";
}, b = !a || y(e) && (!l || y(e.source()) && y(e.target()));
if (b) {
var w = 0, C = 0;
a && r.includeOverlays && (w = e.pstyle("overlay-opacity").value, w !== 0 && (C = e.pstyle("overlay-padding").value));
var E = 0, x = 0;
a && r.includeUnderlays && (E = e.pstyle("underlay-opacity").value, E !== 0 && (x = e.pstyle("underlay-padding").value));
var T = Math.max(C, x), k = 0, _ = 0;
if (a && (k = e.pstyle("width").pfValue, _ = k / 2), u && r.includeNodes) {
var D = e.position();
f = D.x, p = D.y;
var O = e.outerWidth(), I = O / 2, L = e.outerHeight(), B = L / 2;
c = f - I, d = f + I, v = p - B, h6 = p + B, Br(o, c, v, d, h6), a && r.includeOutlines && kD(o, e);
} else if (l && r.includeEdges)
if (a && !i) {
var F = e.pstyle("curve-style").strValue;
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), h6 = Math.max(m.srcY, m.midY, m.tgtY), c -= _, d += _, v -= _, h6 += _, Br(o, c, v, d, h6), F === "haystack") {
var M = m.haystackPts;
if (M && M.length === 2) {
if (c = M[0].x, v = M[0].y, d = M[1].x, h6 = M[1].y, c > d) {
var A = c;
c = d, d = A;
}
if (v > h6) {
var R = v;
v = h6, h6 = R;
}
Br(o, c - _, v - _, d + _, h6 + _);
}
} else if (F === "bezier" || F === "unbundled-bezier" || F.endsWith("segments") || F.endsWith("taxi")) {
var K10;
switch (F) {
case "bezier":
case "unbundled-bezier":
K10 = m.bezierPts;
break;
case "segments":
case "taxi":
case "round-segments":
case "round-taxi":
K10 = m.linePts;
break;
}
if (K10 != null)
for (var H = 0; H < K10.length; H++) {
var q = K10[H];
c = q.x - _, d = q.x + _, v = q.y - _, h6 = q.y + _, Br(o, c, v, d, h6);
}
}
} else {
var ee = e.source(), se2 = ee.position(), oe = e.target(), ae = oe.position();
if (c = se2.x, d = ae.x, v = se2.y, h6 = ae.y, c > d) {
var ue = c;
c = d, d = ue;
}
if (v > h6) {
var te = v;
v = h6, h6 = te;
}
c -= _, d += _, v -= _, h6 += _, Br(o, c, v, d, h6);
}
if (a && r.includeEdges && l && (Qo(o, e, "mid-source"), Qo(o, e, "mid-target"), Qo(o, e, "source"), Qo(o, e, "target")), a) {
var $ = e.pstyle("ghost").value === "yes";
if ($) {
var G = e.pstyle("ghost-offset-x").pfValue, Q = e.pstyle("ghost-offset-y").pfValue;
Br(o, o.x1 + G, o.y1 + Q, o.x2 + G, o.y2 + Q);
}
}
var ge2 = s.bodyBounds = s.bodyBounds || {};
uf(ge2, o), cs(ge2, g), us(ge2, 1), a && (c = o.x1, d = o.x2, v = o.y1, h6 = o.y2, Br(o, c - T, v - T, d + T, h6 + T));
var Ee2 = s.overlayBounds = s.overlayBounds || {};
uf(Ee2, o), cs(Ee2, g), us(Ee2, 1);
var fe = s.labelBounds = s.labelBounds || {};
fe.all != null ? K5(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")));
}
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;
};
var Rp = function(e) {
var r = 0, n = function(o) {
return (o ? 1 : 0) << r++;
}, a = 0;
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;
};
var zp = function(e) {
if (e.isEdge()) {
var r = e.source().position(), n = e.target().position(), a = function(o) {
return Math.round(o);
};
return d5([a(r.x), a(r.y), a(n.x), a(n.y)]);
} else
return 0;
};
var Lf = function(e, r) {
var n = e._private, a, i = e.isEdge(), o = r == null ? Ff : Rp(r), s = o === Ff, u = zp(e), l = n.bbCachePosKey === u, c = r.useCache && l, d = function(p) {
return p._private.bbCache == null || p._private.styleDirty;
}, v = !c || d(e) || i && d(e.source()) || d(e.target());
if (v ? (l || e.recalculateRenderedStyle(c), a = SD(e, uo), n.bbCache = a, n.bbCachePosKey = u) : a = n.bbCache, !s) {
var h6 = e.isNode();
a = pr(), (r.includeNodes && h6 || r.includeEdges && !h6) && (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;
}
return a;
};
var uo = {
includeNodes: true,
includeEdges: true,
includeLabels: true,
includeMainLabels: true,
includeSourceLabels: true,
includeTargetLabels: true,
includeOverlays: true,
includeUnderlays: true,
includeOutlines: true,
useCache: true
};
var Ff = Rp(uo);
var If = Wt(uo);
Xn.boundingBox = function(t20) {
var e;
if (this.length === 1 && this[0]._private.bbCache != null && !this[0]._private.styleDirty && (t20 === void 0 || t20.useCache === void 0 || t20.useCache === true))
t20 === void 0 ? t20 = uo : t20 = If(t20), e = Lf(this[0], t20);
else {
e = pr(), t20 = t20 || uo;
var r = If(t20), n = this, a = n.cy(), i = a.styleEnabled();
if (i)
for (var o = 0; o < n.length; o++) {
var s = n[o], u = s._private, l = zp(s), c = u.bbCachePosKey === l, d = r.useCache && c && !u.styleDirty;
s.recalculateRenderedStyle(d);
}
this.updateCompoundBounds(!t20.useCache);
for (var v = 0; v < n.length; v++) {
var h6 = n[v];
ra(e, Lf(h6, r));
}
}
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;
};
Xn.dirtyBoundingBoxCache = function() {
for (var t20 = 0; t20 < this.length; t20++) {
var e = this[t20]._private;
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;
}
return this.emitAndNotify("bounds"), this;
};
Xn.boundingBoxAt = function(t20) {
var e = this.nodes(), r = this.cy(), n = r.hasCompoundNodes(), a = r.collection();
if (n && (a = e.filter(function(l) {
return l.isParent();
}), e = e.not(a)), Xe(t20)) {
var i = t20;
t20 = function() {
return i;
};
}
var o = function(c, d) {
return c._private.bbAtOldPos = t20(c, d);
}, s = function(c) {
return c._private.bbAtOldPos;
};
r.startBatch(), e.forEach(o).silentPositions(t20), n && (a.dirtyCompoundBoundsCache(), a.dirtyBoundingBoxCache(), a.updateCompoundBounds(true));
var u = q5(this.boundingBox({
useCache: false
}));
return e.silentPositions(s), n && (a.dirtyCompoundBoundsCache(), a.dirtyBoundingBoxCache(), a.updateCompoundBounds(true)), r.endBatch(), u;
};
Za.boundingbox = Za.bb = Za.boundingBox;
Za.renderedBoundingbox = Za.renderedBoundingBox;
var TD = Xn;
var $i;
var Lo;
$i = Lo = {};
var Vp = function(e) {
e.uppercaseName = tf(e.name), e.autoName = "auto" + e.uppercaseName, e.labelName = "label" + e.uppercaseName, e.outerName = "outer" + e.uppercaseName, e.uppercaseOuterName = tf(e.outerName), $i[e.name] = function() {
var n = this[0], a = n._private, i = a.cy, o = i._private.styleEnabled;
if (n)
if (o) {
if (n.isParent())
return n.updateCompoundBounds(), a[e.autoName] || 0;
var s = n.pstyle(e.name);
switch (s.strValue) {
case "label":
return n.recalculateRenderedStyle(), a.rstyle[e.labelName] || 0;
default:
return s.pfValue;
}
} else
return 1;
}, $i["outer" + e.uppercaseName] = function() {
var n = this[0], a = n._private, i = a.cy, o = i._private.styleEnabled;
if (n)
if (o) {
var s = n[e.name](), u = n.pstyle("border-width").pfValue, l = 2 * n.padding();
return s + u + l;
} else
return 1;
}, $i["rendered" + e.uppercaseName] = function() {
var n = this[0];
if (n) {
var a = n[e.name]();
return a * this.cy().zoom();
}
}, $i["rendered" + e.uppercaseOuterName] = function() {
var n = this[0];
if (n) {
var a = n[e.outerName]();
return a * this.cy().zoom();
}
};
};
Vp({
name: "width"
});
Vp({
name: "height"
});
Lo.padding = function() {
var t20 = this[0], e = t20._private;
return t20.isParent() ? (t20.updateCompoundBounds(), e.autoPadding !== void 0 ? e.autoPadding : t20.pstyle("padding").pfValue) : t20.pstyle("padding").pfValue;
};
Lo.paddedHeight = function() {
var t20 = this[0];
return t20.height() + 2 * t20.padding();
};
Lo.paddedWidth = function() {
var t20 = this[0];
return t20.width() + 2 * t20.padding();
};
var _D = Lo;
var DD = function(e, r) {
if (e.isEdge())
return r(e);
};
var PD = function(e, r) {
if (e.isEdge()) {
var n = e.cy();
return nl(r(e), n.zoom(), n.pan());
}
};
var OD = function(e, r) {
if (e.isEdge()) {
var n = e.cy(), a = n.pan(), i = n.zoom();
return r(e).map(function(o) {
return nl(o, i, a);
});
}
};
var LD = function(e) {
return e.renderer().getControlPoints(e);
};
var FD = function(e) {
return e.renderer().getSegmentPoints(e);
};
var ID = function(e) {
return e.renderer().getSourceEndpoint(e);
};
var AD = function(e) {
return e.renderer().getTargetEndpoint(e);
};
var MD = function(e) {
return e.renderer().getEdgeMidpoint(e);
};
var Af = {
controlPoints: {
get: LD,
mult: true
},
segmentPoints: {
get: FD,
mult: true
},
sourceEndpoint: {
get: ID
},
targetEndpoint: {
get: AD
},
midpoint: {
get: MD
}
};
var BD = function(e) {
return "rendered" + e[0].toUpperCase() + e.substr(1);
};
var ND = Object.keys(Af).reduce(function(t20, e) {
var r = Af[e], n = BD(e);
return t20[e] = function() {
return DD(this, r.get);
}, r.mult ? t20[n] = function() {
return OD(this, r.get);
} : t20[n] = function() {
return PD(this, r.get);
}, t20;
}, {});
var $D = Re({}, ED, TD, _D, ND);
var Hp = function(e, r) {
this.recycle(e, r);
};
function Fi() {
return false;
}
function Jo() {
return true;
}
Hp.prototype = {
instanceString: function() {
return "event";
},
recycle: function(e, r) {
if (this.isImmediatePropagationStopped = this.isPropagationStopped = this.isDefaultPrevented = Fi, e != null && e.preventDefault ? (this.type = e.type, this.isDefaultPrevented = e.defaultPrevented ? Jo : Fi) : 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) {
var n = this.position, a = this.cy.zoom(), i = this.cy.pan();
this.renderedPosition = {
x: n.x * a + i.x,
y: n.y * a + i.y
};
}
this.timeStamp = e && e.timeStamp || Date.now();
},
preventDefault: function() {
this.isDefaultPrevented = Jo;
var e = this.originalEvent;
e && e.preventDefault && e.preventDefault();
},
stopPropagation: function() {
this.isPropagationStopped = Jo;
var e = this.originalEvent;
e && e.stopPropagation && e.stopPropagation();
},
stopImmediatePropagation: function() {
this.isImmediatePropagationStopped = Jo, this.stopPropagation();
},
isDefaultPrevented: Fi,
isPropagationStopped: Fi,
isImmediatePropagationStopped: Fi
};
var qp = /^([^.]+)(\.(?:[^.]+))?$/;
var RD = ".*";
var Kp = {
qualifierCompare: function(e, r) {
return e === r;
},
eventMatches: function() {
return true;
},
addEventFields: function() {
},
callbackContext: function(e) {
return e;
},
beforeEmit: function() {
},
afterEmit: function() {
},
bubble: function() {
return false;
},
parent: function() {
return null;
},
context: null
};
var Mf = Object.keys(Kp);
var zD = {};
function ul() {
for (var t20 = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : zD, e = arguments.length > 1 ? arguments[1] : void 0, r = 0; r < Mf.length; r++) {
var n = Mf[r];
this[n] = t20[n] || Kp[n];
}
this.context = e || this.context, this.listeners = [], this.emitting = 0;
}
var Wn = ul.prototype;
var Up = function(e, r, n, a, i, o, s) {
pt(a) && (i = a, a = null), s && (o == null ? o = s : o = Re({}, o, s));
for (var u = st(n) ? n : n.split(/\s+/), l = 0; l < u.length; l++) {
var c = u[l];
if (!qn(c)) {
var d = c.match(qp);
if (d) {
var v = d[1], h6 = d[2] ? d[2] : null, f = r(e, c, v, h6, a, i, o);
if (f === false)
break;
}
}
}
};
var Bf = function(e, r) {
return e.addEventFields(e.context, r), new Hp(r.type, r);
};
var VD = function(e, r, n) {
if (sT(n)) {
r(e, n);
return;
} else if (Xe(n)) {
r(e, Bf(e, n));
return;
}
for (var a = st(n) ? n : n.split(/\s+/), i = 0; i < a.length; i++) {
var o = a[i];
if (!qn(o)) {
var s = o.match(qp);
if (s) {
var u = s[1], l = s[2] ? s[2] : null, c = Bf(e, {
type: u,
namespace: l,
target: e.context
});
r(e, c);
}
}
}
};
Wn.on = Wn.addListener = function(t20, e, r, n, a) {
return Up(this, function(i, o, s, u, l, c, d) {
pt(c) && i.listeners.push({
event: o,
// full event string
callback: c,
// callback to run
type: s,
// the event type (e.g. 'click')
namespace: u,
// the event namespace (e.g. ".foo")
qualifier: l,
// a restriction on whether to match this emitter
conf: d
// additional configuration
});
}, t20, e, r, n, a), this;
};
Wn.one = function(t20, e, r, n) {
return this.on(t20, e, r, n, {
one: true
});
};
Wn.removeListener = Wn.off = function(t20, e, r, n) {
var a = this;
this.emitting !== 0 && (this.listeners = g5(this.listeners));
for (var i = this.listeners, o = function(l) {
var c = i[l];
Up(a, function(d, v, h6, f, p, m) {
if ((c.type === h6 || t20 === "*") && (!f && c.namespace !== ".*" || c.namespace === f) && (!p || d.qualifierCompare(c.qualifier, p)) && (!m || c.callback === m))
return i.splice(l, 1), false;
}, t20, e, r, n);
}, s = i.length - 1; s >= 0; s--)
o(s);
return this;
};
Wn.removeAllListeners = function() {
return this.removeListener("*");
};
Wn.emit = Wn.trigger = function(t20, e, r) {
var n = this.listeners, a = n.length;
return this.emitting++, st(e) || (e = [e]), VD(this, function(i, o) {
r != null && (n = [{
event: o.event,
type: o.type,
namespace: o.namespace,
callback: r
}], a = n.length);
for (var s = function(c) {
var d = n[c];
if (d.type === o.type && (!d.namespace || d.namespace === o.namespace || d.namespace === RD) && i.eventMatches(i.context, d, o)) {
var v = [o];
e != null && y5(v, e), i.beforeEmit(i.context, d, o), d.conf && d.conf.one && (i.listeners = i.listeners.filter(function(p) {
return p !== d;
}));
var h6 = i.callbackContext(i.context, d, o), f = d.callback.apply(h6, v);
i.afterEmit(i.context, d, o), f === false && (o.stopPropagation(), o.preventDefault());
}
}, u = 0; u < a; u++)
s(u);
i.bubble(i.context) && !o.isPropagationStopped() && i.parent(i.context).emit(o, e);
}, t20), this.emitting--, this;
};
var HD = {
qualifierCompare: function(e, r) {
return e == null || r == null ? e == null && r == null : e.sameText(r);
},
eventMatches: function(e, r, n) {
var a = r.qualifier;
return a != null ? e !== n.target && Do(n.target) && a.matches(n.target) : true;
},
addEventFields: function(e, r) {
r.cy = e.cy(), r.target = e;
},
callbackContext: function(e, r, n) {
return r.qualifier != null ? n.target : e;
},
beforeEmit: function(e, r) {
r.conf && r.conf.once && r.conf.onceCollection.removeListener(r.event, r.qualifier, r.callback);
},
bubble: function() {
return true;
},
parent: function(e) {
return e.isChild() ? e.parent() : e.cy();
}
};
var es = function(e) {
return Ie(e) ? new Un(e) : e;
};
var Gp = {
createEmitter: function() {
for (var e = 0; e < this.length; e++) {
var r = this[e], n = r._private;
n.emitter || (n.emitter = new ul(HD, r));
}
return this;
},
emitter: function() {
return this._private.emitter;
},
on: function(e, r, n) {
for (var a = es(r), i = 0; i < this.length; i++) {
var o = this[i];
o.emitter().on(e, a, n);
}
return this;
},
removeListener: function(e, r, n) {
for (var a = es(r), i = 0; i < this.length; i++) {
var o = this[i];
o.emitter().removeListener(e, a, n);
}
return this;
},
removeAllListeners: function() {
for (var e = 0; e < this.length; e++) {
var r = this[e];
r.emitter().removeAllListeners();
}
return this;
},
one: function(e, r, n) {
for (var a = es(r), i = 0; i < this.length; i++) {
var o = this[i];
o.emitter().one(e, a, n);
}
return this;
},
once: function(e, r, n) {
for (var a = es(r), i = 0; i < this.length; i++) {
var o = this[i];
o.emitter().on(e, a, n, {
once: true,
onceCollection: this
});
}
},
emit: function(e, r) {
for (var n = 0; n < this.length; n++) {
var a = this[n];
a.emitter().emit(e, r);
}
return this;
},
emitAndNotify: function(e, r) {
if (this.length !== 0)
return this.cy().notify(e, this), this.emit(e, r), this;
}
};
et.eventAliasesOn(Gp);
var Wp = {
nodes: function(e) {
return this.filter(function(r) {
return r.isNode();
}).filter(e);
},
edges: function(e) {
return this.filter(function(r) {
return r.isEdge();
}).filter(e);
},
// internal helper to get nodes and edges as separate collections with single iteration over elements
byGroup: function() {
for (var e = this.spawn(), r = this.spawn(), n = 0; n < this.length; n++) {
var a = this[n];
a.isNode() ? e.push(a) : r.push(a);
}
return {
nodes: e,
edges: r
};
},
filter: function(e, r) {
if (e === void 0)
return this;
if (Ie(e) || yr(e))
return new Un(e).filter(this);
if (pt(e)) {
for (var n = this.spawn(), a = this, i = 0; i < a.length; i++) {
var o = a[i], s = r ? e.apply(r, [o, i, a]) : e(o, i, a);
s && n.push(o);
}
return n;
}
return this.spawn();
},
not: function(e) {
if (e) {
Ie(e) && (e = this.filter(e));
for (var r = this.spawn(), n = 0; n < this.length; n++) {
var a = this[n], i = e.has(a);
i || r.push(a);
}
return r;
} else
return this;
},
absoluteComplement: function() {
var e = this.cy();
return e.mutableElements().not(this);
},
intersect: function(e) {
if (Ie(e)) {
var r = e;
return this.filter(r);
}
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++) {
var c = s[l];
u.has(c) && n.push(c);
}
return n;
},
xor: function(e) {
var r = this._private.cy;
Ie(e) && (e = r.$(e));
var n = this.spawn(), a = this, i = e, o = function(u, l) {
for (var c = 0; c < u.length; c++) {
var d = u[c], v = d._private.data.id, h6 = l.hasElementWithId(v);
h6 || n.push(d);
}
};
return o(a, i), o(i, a), n;
},
diff: function(e) {
var r = this._private.cy;
Ie(e) && (e = r.$(e));
var n = this.spawn(), a = this.spawn(), i = this.spawn(), o = this, s = e, u = function(c, d, v) {
for (var h6 = 0; h6 < c.length; h6++) {
var f = c[h6], p = f._private.data.id, m = d.hasElementWithId(p);
m ? i.merge(f) : v.push(f);
}
};
return u(o, s, n), u(s, o, a), {
left: n,
right: a,
both: i
};
},
add: function(e) {
var r = this._private.cy;
if (!e)
return this;
if (Ie(e)) {
var n = e;
e = r.mutableElements().filter(n);
}
for (var a = this.spawnSelf(), i = 0; i < e.length; i++) {
var o = e[i], s = !this.has(o);
s && a.push(o);
}
return a;
},
// in place merge on calling collection
merge: function(e) {
var r = this._private, n = r.cy;
if (!e)
return this;
if (e && Ie(e)) {
var a = e;
e = n.mutableElements().filter(a);
}
for (var i = r.map, o = 0; o < e.length; o++) {
var s = e[o], u = s._private.data.id, l = !i.has(u);
if (l) {
var c = this.length++;
this[c] = s, i.set(u, {
ele: s,
index: c
});
}
}
return this;
},
unmergeAt: function(e) {
var r = this[e], n = r.id(), a = this._private, i = a.map;
this[e] = void 0, i.delete(n);
var o = e === this.length - 1;
if (this.length > 1 && !o) {
var s = this.length - 1, u = this[s], l = u._private.data.id;
this[s] = void 0, this[e] = u, i.set(l, {
ele: u,
index: e
});
}
return this.length--, this;
},
// remove single ele in place in calling collection
unmergeOne: function(e) {
e = e[0];
var r = this._private, n = e._private.data.id, a = r.map, i = a.get(n);
if (!i)
return this;
var o = i.index;
return this.unmergeAt(o), this;
},
// remove eles in place on calling collection
unmerge: function(e) {
var r = this._private.cy;
if (!e)
return this;
if (e && Ie(e)) {
var n = e;
e = r.mutableElements().filter(n);
}
for (var a = 0; a < e.length; a++)
this.unmergeOne(e[a]);
return this;
},
unmergeBy: function(e) {
for (var r = this.length - 1; r >= 0; r--) {
var n = this[r];
e(n) && this.unmergeAt(r);
}
return this;
},
map: function(e, r) {
for (var n = [], a = this, i = 0; i < a.length; i++) {
var o = a[i], s = r ? e.apply(r, [o, i, a]) : e(o, i, a);
n.push(s);
}
return n;
},
reduce: function(e, r) {
for (var n = r, a = this, i = 0; i < a.length; i++)
n = e(n, a[i], i, a);
return n;
},
max: function(e, r) {
for (var n = -1 / 0, a, i = this, o = 0; o < i.length; o++) {
var s = i[o], u = r ? e.apply(r, [s, o, i]) : e(s, o, i);
u > n && (n = u, a = s);
}
return {
value: n,
ele: a
};
},
min: function(e, r) {
for (var n = 1 / 0, a, i = this, o = 0; o < i.length; o++) {
var s = i[o], u = r ? e.apply(r, [s, o, i]) : e(s, o, i);
u < n && (n = u, a = s);
}
return {
value: n,
ele: a
};
}
};
var Je = Wp;
Je.u = Je["|"] = Je["+"] = Je.union = Je.or = Je.add;
Je["\\"] = Je["!"] = Je["-"] = Je.difference = Je.relativeComplement = Je.subtract = Je.not;
Je.n = Je["&"] = Je["."] = Je.and = Je.intersection = Je.intersect;
Je["^"] = Je["(+)"] = Je["(-)"] = Je.symmetricDifference = Je.symdiff = Je.xor;
Je.fnFilter = Je.filterFn = Je.stdFilter = Je.filter;
Je.complement = Je.abscomp = Je.absoluteComplement;
var qD = {
isNode: function() {
return this.group() === "nodes";
},
isEdge: function() {
return this.group() === "edges";
},
isLoop: function() {
return this.isEdge() && this.source()[0] === this.target()[0];
},
isSimple: function() {
return this.isEdge() && this.source()[0] !== this.target()[0];
},
group: function() {
var e = this[0];
if (e)
return e._private.group;
}
};
var Yp = function(e, r) {
var n = e.cy(), a = n.hasCompoundNodes();
function i(c) {
var d = c.pstyle("z-compound-depth");
return d.value === "auto" ? a ? c.zDepth() : 0 : d.value === "bottom" ? -1 : d.value === "top" ? lc : 0;
}
var o = i(e) - i(r);
if (o !== 0)
return o;
function s(c) {
var d = c.pstyle("z-index-compare");
return d.value === "auto" && c.isNode() ? 1 : 0;
}
var u = s(e) - s(r);
if (u !== 0)
return u;
var l = e.pstyle("z-index").value - r.pstyle("z-index").value;
return l !== 0 ? l : e.poolIndex() - r.poolIndex();
};
var As = {
forEach: function(e, r) {
if (pt(e))
for (var n = this.length, a = 0; a < n; a++) {
var i = this[a], o = r ? e.apply(r, [i, a, this]) : e(i, a, this);
if (o === false)
break;
}
return this;
},
toArray: function() {
for (var e = [], r = 0; r < this.length; r++)
e.push(this[r]);
return e;
},
slice: function(e, r) {
var n = [], a = this.length;
r == null && (r = a), e == null && (e = 0), e < 0 && (e = a + e), r < 0 && (r = a + r);
for (var i = e; i >= 0 && i < r && i < a; i++)
n.push(this[i]);
return this.spawn(n);
},
size: function() {
return this.length;
},
eq: function(e) {
return this[e] || this.spawn();
},
first: function() {
return this[0] || this.spawn();
},
last: function() {
return this[this.length - 1] || this.spawn();
},
empty: function() {
return this.length === 0;
},
nonempty: function() {
return !this.empty();
},
sort: function(e) {
if (!pt(e))
return this;
var r = this.toArray().sort(e);
return this.spawn(r);
},
sortByZIndex: function() {
return this.sort(Yp);
},
zDepth: function() {
var e = this[0];
if (e) {
var r = e._private, n = r.group;
if (n === "nodes") {
var a = r.data.parent ? e.parents().size() : 0;
return e.isParent() ? a : lc - 1;
} else {
var i = r.source, o = r.target, s = i.zDepth(), u = o.zDepth();
return Math.max(s, u, 0);
}
}
}
};
As.each = As.forEach;
var KD = function() {
var e = "undefined", r = (typeof Symbol > "u" ? "undefined" : It(Symbol)) != e && It(Symbol.iterator) != e;
r && (As[Symbol.iterator] = function() {
var n = this, a = {
value: void 0,
done: false
}, i = 0, o = this.length;
return Kh({
next: function() {
return i < o ? a.value = n[i++] : (a.value = void 0, a.done = true), a;
}
}, Symbol.iterator, function() {
return this;
});
});
};
KD();
var UD = Wt({
nodeDimensionsIncludeLabels: false
});
var fs = {
// Calculates and returns node dimensions { x, y } based on options given
layoutDimensions: function(e) {
e = UD(e);
var r;
if (!this.takesUpSpace())
r = {
w: 0,
h: 0
};
else if (e.nodeDimensionsIncludeLabels) {
var n = this.boundingBox();
r = {
w: n.w,
h: n.h
};
} else
r = {
w: this.outerWidth(),
h: this.outerHeight()
};
return (r.w === 0 || r.h === 0) && (r.w = r.h = 1), r;
},
// using standard layout options, apply position function (w/ or w/o animation)
layoutPositions: function(e, r, n) {
var a = this.nodes().filter(function(C) {
return !C.isParent();
}), i = this.cy(), o = r.eles, s = function(E) {
return E.id();
}, u = to(n, s);
e.emit({
type: "layoutstart",
layout: e
}), e.animations = [];
var l = function(E, x, T) {
var k = {
x: x.x1 + x.w / 2,
y: x.y1 + x.h / 2
}, _ = {
// scale from center of bounding box (not necessarily 0,0)
x: (T.x - k.x) * E,
y: (T.y - k.y) * E
};
return {
x: k.x + _.x,
y: k.y + _.y
};
}, c = r.spacingFactor && r.spacingFactor !== 1, d = function() {
if (!c)
return null;
for (var E = pr(), x = 0; x < a.length; x++) {
var T = a[x], k = u(T, x);
G5(E, k.x, k.y);
}
return E;
}, v = d(), h6 = to(function(C, E) {
var x = u(C, E);
if (c) {
var T = Math.abs(r.spacingFactor);
x = l(T, v, x);
}
return r.transform != null && (x = r.transform(C, x)), x;
}, s);
if (r.animate) {
for (var f = 0; f < a.length; f++) {
var p = a[f], m = h6(p, f), g = r.animateFilter == null || r.animateFilter(p, f);
if (g) {
var y = p.animation({
position: m,
duration: r.animationDuration,
easing: r.animationEasing
});
e.animations.push(y);
} else
p.position(m);
}
if (r.fit) {
var b = i.animation({
fit: {
boundingBox: o.boundingBoxAt(h6),
padding: r.padding
},
duration: r.animationDuration,
easing: r.animationEasing
});
e.animations.push(b);
} else if (r.zoom !== void 0 && r.pan !== void 0) {
var w = i.animation({
zoom: r.zoom,
pan: r.pan,
duration: r.animationDuration,
easing: r.animationEasing
});
e.animations.push(w);
}
e.animations.forEach(function(C) {
return C.play();
}), e.one("layoutready", r.ready), e.emit({
type: "layoutready",
layout: e
}), hi.all(e.animations.map(function(C) {
return C.promise();
})).then(function() {
e.one("layoutstop", r.stop), e.emit({
type: "layoutstop",
layout: e
});
});
} else
a.positions(h6), 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({
type: "layoutready",
layout: e
}), e.one("layoutstop", r.stop), e.emit({
type: "layoutstop",
layout: e
});
return this;
},
layout: function(e) {
var r = this.cy();
return r.makeLayout(Re({}, e, {
eles: this
}));
}
};
fs.createLayout = fs.makeLayout = fs.layout;
function Zp(t20, e, r) {
var n = r._private, a = n.styleCache = n.styleCache || [], i;
return (i = a[t20]) != null || (i = a[t20] = e(r)), i;
}
function cl(t20, e) {
return t20 = ma(t20), function(n) {
return Zp(t20, e, n);
};
}
function dl(t20, e) {
t20 = ma(t20);
var r = function(a) {
return e.call(a);
};
return function() {
var a = this[0];
if (a)
return Zp(t20, r, a);
};
}
var Ut = {
recalculateRenderedStyle: function(e) {
var r = this.cy(), n = r.renderer(), a = r.styleEnabled();
return n && a && n.recalculateRenderedStyle(this, e), this;
},
dirtyStyleCache: function() {
var e = this.cy(), r = function(i) {
return i._private.styleCache = null;
};
if (e.hasCompoundNodes()) {
var n;
n = this.spawnSelf().merge(this.descendants()).merge(this.parents()), n.merge(n.connectedEdges()), n.forEach(r);
} else
this.forEach(function(a) {
r(a), a.connectedEdges().forEach(r);
});
return this;
},
// fully updates (recalculates) the style for the elements
updateStyle: function(e) {
var r = this._private.cy;
if (!r.styleEnabled())
return this;
if (r.batching()) {
var n = r._private.batchStyleEles;
return n.merge(this), this;
}
var a = r.hasCompoundNodes(), i = this;
e = !!(e || e === void 0), a && (i = this.spawnSelf().merge(this.descendants()).merge(this.parents()));
var o = i;
return e ? o.emitAndNotify("style") : o.emit("style"), i.forEach(function(s) {
return s._private.styleDirty = true;
}), this;
},
// private: clears dirty flag and recalculates style
cleanStyle: function() {
var e = this.cy();
if (e.styleEnabled())
for (var r = 0; r < this.length; r++) {
var n = this[r];
n._private.styleDirty && (n._private.styleDirty = false, e.style().apply(n));
}
},
// get the internal parsed style object for the specified property
parsedStyle: function(e) {
var r = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : true, n = this[0], a = n.cy();
if (a.styleEnabled() && n) {
this.cleanStyle();
var i = n._private.style[e];
return i ?? (r ? a.style().getDefaultProperty(e) : null);
}
},
numericStyle: function(e) {
var r = this[0];
if (r.cy().styleEnabled() && r) {
var n = r.pstyle(e);
return n.pfValue !== void 0 ? n.pfValue : n.value;
}
},
numericStyleUnits: function(e) {
var r = this[0];
if (r.cy().styleEnabled() && r)
return r.pstyle(e).units;
},
// get the specified css property as a rendered value (i.e. on-screen value)
// or get the whole rendered style if no property specified (NB doesn't allow setting)
renderedStyle: function(e) {
var r = this.cy();
if (!r.styleEnabled())
return this;
var n = this[0];
if (n)
return r.style().getRenderedStyle(n, e);
},
// read the calculated css style of the element or override the style (via a bypass)
style: function(e, r) {
var n = this.cy();
if (!n.styleEnabled())
return this;
var a = false, i = n.style();
if (Xe(e)) {
var o = e;
i.applyBypass(this, o, a), this.emitAndNotify("style");
} else if (Ie(e))
if (r === void 0) {
var s = this[0];
return s ? i.getStylePropertyValue(s, e) : void 0;
} else
i.applyBypass(this, e, r, a), this.emitAndNotify("style");
else if (e === void 0) {
var u = this[0];
return u ? i.getRawStyle(u) : void 0;
}
return this;
},
removeStyle: function(e) {
var r = this.cy();
if (!r.styleEnabled())
return this;
var n = false, a = r.style(), i = this;
if (e === void 0)
for (var o = 0; o < i.length; o++) {
var s = i[o];
a.removeAllBypasses(s, n);
}
else {
e = e.split(/\s+/);
for (var u = 0; u < i.length; u++) {
var l = i[u];
a.removeBypasses(l, e, n);
}
}
return this.emitAndNotify("style"), this;
},
show: function() {
return this.css("display", "element"), this;
},
hide: function() {
return this.css("display", "none"), this;
},
effectiveOpacity: function() {
var e = this.cy();
if (!e.styleEnabled())
return 1;
var r = e.hasCompoundNodes(), n = this[0];
if (n) {
var a = n._private, i = n.pstyle("opacity").value;
if (!r)
return i;
var o = a.data.parent ? n.parents() : null;
if (o)
for (var s = 0; s < o.length; s++) {
var u = o[s], l = u.pstyle("opacity").value;
i = l * i;
}
return i;
}
},
transparent: function() {
var e = this.cy();
if (!e.styleEnabled())
return false;
var r = this[0], n = r.cy().hasCompoundNodes();
if (r)
return n ? r.effectiveOpacity() === 0 : r.pstyle("opacity").value === 0;
},
backgrounding: function() {
var e = this.cy();
if (!e.styleEnabled())
return false;
var r = this[0];
return !!r._private.backgrounding;
}
};
function Vl(t20, e) {
var r = t20._private, n = r.data.parent ? t20.parents() : null;
if (n)
for (var a = 0; a < n.length; a++) {
var i = n[a];
if (!e(i))
return false;
}
return true;
}
function wc(t20) {
var e = t20.ok, r = t20.edgeOkViaNode || t20.ok, n = t20.parentOk || t20.ok;
return function() {
var a = this.cy();
if (!a.styleEnabled())
return true;
var i = this[0], o = a.hasCompoundNodes();
if (i) {
var s = i._private;
if (!e(i))
return false;
if (i.isNode())
return !o || Vl(i, n);
var u = s.source, l = s.target;
return r(u) && (!o || Vl(u, r)) && (u === l || r(l) && (!o || Vl(l, r)));
}
};
}
var yi = cl("eleTakesUpSpace", function(t20) {
return t20.pstyle("display").value === "element" && t20.width() !== 0 && (t20.isNode() ? t20.height() !== 0 : true);
});
Ut.takesUpSpace = dl("takesUpSpace", wc({
ok: yi
}));
var GD = cl("eleInteractive", function(t20) {
return t20.pstyle("events").value === "yes" && t20.pstyle("visibility").value === "visible" && yi(t20);
});
var WD = cl("parentInteractive", function(t20) {
return t20.pstyle("visibility").value === "visible" && yi(t20);
});
Ut.interactive = dl("interactive", wc({
ok: GD,
parentOk: WD,
edgeOkViaNode: yi
}));
Ut.noninteractive = function() {
var t20 = this[0];
if (t20)
return !t20.interactive();
};
var YD = cl("eleVisible", function(t20) {
return t20.pstyle("visibility").value === "visible" && t20.pstyle("opacity").pfValue !== 0 && yi(t20);
});
var ZD = yi;
Ut.visible = dl("visible", wc({
ok: YD,
edgeOkViaNode: ZD
}));
Ut.hidden = function() {
var t20 = this[0];
if (t20)
return !t20.visible();
};
Ut.isBundledBezier = dl("isBundledBezier", function() {
return this.cy().styleEnabled() ? !this.removed() && this.pstyle("curve-style").value === "bezier" && this.takesUpSpace() : false;
});
Ut.bypass = Ut.css = Ut.style;
Ut.renderedCss = Ut.renderedStyle;
Ut.removeBypass = Ut.removeCss = Ut.removeStyle;
Ut.pstyle = Ut.parsedStyle;
var zn = {};
function Nf(t20) {
return function() {
var e = arguments, r = [];
if (e.length === 2) {
var n = e[0], a = e[1];
this.on(t20.event, n, a);
} else if (e.length === 1 && pt(e[0])) {
var i = e[0];
this.on(t20.event, i);
} else if (e.length === 0 || e.length === 1 && st(e[0])) {
for (var o = e.length === 1 ? e[0] : null, s = 0; s < this.length; s++) {
var u = this[s], l = !t20.ableField || u._private[t20.ableField], c = u._private[t20.field] != t20.value;
if (t20.overrideAble) {
var d = t20.overrideAble(u);
if (d !== void 0 && (l = d, !d))
return this;
}
l && (u._private[t20.field] = t20.value, c && r.push(u));
}
var v = this.spawn(r);
v.updateStyle(), v.emit(t20.event), o && v.emit(o);
}
return this;
};
}
function bi(t20) {
zn[t20.field] = function() {
var e = this[0];
if (e) {
if (t20.overrideField) {
var r = t20.overrideField(e);
if (r !== void 0)
return r;
}
return e._private[t20.field];
}
}, zn[t20.on] = Nf({
event: t20.on,
field: t20.field,
ableField: t20.ableField,
overrideAble: t20.overrideAble,
value: true
}), zn[t20.off] = Nf({
event: t20.off,
field: t20.field,
ableField: t20.ableField,
overrideAble: t20.overrideAble,
value: false
});
}
bi({
field: "locked",
overrideField: function(e) {
return e.cy().autolock() ? true : void 0;
},
on: "lock",
off: "unlock"
});
bi({
field: "grabbable",
overrideField: function(e) {
return e.cy().autoungrabify() || e.pannable() ? false : void 0;
},
on: "grabify",
off: "ungrabify"
});
bi({
field: "selected",
ableField: "selectable",
overrideAble: function(e) {
return e.cy().autounselectify() ? false : void 0;
},
on: "select",
off: "unselect"
});
bi({
field: "selectable",
overrideField: function(e) {
return e.cy().autounselectify() ? false : void 0;
},
on: "selectify",
off: "unselectify"
});
zn.deselect = zn.unselect;
zn.grabbed = function() {
var t20 = this[0];
if (t20)
return t20._private.grabbed;
};
bi({
field: "active",
on: "activate",
off: "unactivate"
});
bi({
field: "pannable",
on: "panify",
off: "unpanify"
});
zn.inactive = function() {
var t20 = this[0];
if (t20)
return !t20._private.active;
};
var nr = {};
var $f = function(e) {
return function(n) {
for (var a = this, i = [], o = 0; o < a.length; o++) {
var s = a[o];
if (s.isNode()) {
for (var u = false, l = s.connectedEdges(), c = 0; c < l.length; c++) {
var d = l[c], v = d.source(), h6 = d.target();
if (e.noIncomingEdges && h6 === s && v !== s || e.noOutgoingEdges && v === s && h6 !== s) {
u = true;
break;
}
}
u || i.push(s);
}
}
return this.spawn(i, true).filter(n);
};
};
var Rf = function(e) {
return function(r) {
for (var n = this, a = [], i = 0; i < n.length; i++) {
var o = n[i];
if (o.isNode())
for (var s = o.connectedEdges(), u = 0; u < s.length; u++) {
var l = s[u], c = l.source(), d = l.target();
e.outgoing && c === o ? (a.push(l), a.push(d)) : e.incoming && d === o && (a.push(l), a.push(c));
}
}
return this.spawn(a, true).filter(r);
};
};
var zf = function(e) {
return function(r) {
for (var n = this, a = [], i = {}; ; ) {
var o = e.outgoing ? n.outgoers() : n.incomers();
if (o.length === 0)
break;
for (var s = false, u = 0; u < o.length; u++) {
var l = o[u], c = l.id();
i[c] || (i[c] = true, a.push(l), s = true);
}
if (!s)
break;
n = o;
}
return this.spawn(a, true).filter(r);
};
};
nr.clearTraversalCache = function() {
for (var t20 = 0; t20 < this.length; t20++)
this[t20]._private.traversalCache = null;
};
Re(nr, {
// get the root nodes in the DAG
roots: $f({
noIncomingEdges: true
}),
// get the leaf nodes in the DAG
leaves: $f({
noOutgoingEdges: true
}),
// normally called children in graph theory
// these nodes =edges=> outgoing nodes
outgoers: Sr(Rf({
outgoing: true
}), "outgoers"),
// aka DAG descendants
successors: zf({
outgoing: true
}),
// normally called parents in graph theory
// these nodes <=edges= incoming nodes
incomers: Sr(Rf({
incoming: true
}), "incomers"),
// aka DAG ancestors
predecessors: zf({
incoming: true
})
});
Re(nr, {
neighborhood: Sr(function(t20) {
for (var e = [], r = this.nodes(), n = 0; n < r.length; n++)
for (var a = r[n], i = a.connectedEdges(), o = 0; o < i.length; o++) {
var s = i[o], u = s.source(), l = s.target(), c = a === u ? l : u;
c.length > 0 && e.push(c[0]), e.push(s[0]);
}
return this.spawn(e, true).filter(t20);
}, "neighborhood"),
closedNeighborhood: function(e) {
return this.neighborhood().add(this).filter(e);
},
openNeighborhood: function(e) {
return this.neighborhood(e);
}
});
nr.neighbourhood = nr.neighborhood;
nr.closedNeighbourhood = nr.closedNeighborhood;
nr.openNeighbourhood = nr.openNeighborhood;
Re(nr, {
source: Sr(function(e) {
var r = this[0], n;
return r && (n = r._private.source || r.cy().collection()), n && e ? n.filter(e) : n;
}, "source"),
target: Sr(function(e) {
var r = this[0], n;
return r && (n = r._private.target || r.cy().collection()), n && e ? n.filter(e) : n;
}, "target"),
sources: Vf({
attr: "source"
}),
targets: Vf({
attr: "target"
})
});
function Vf(t20) {
return function(r) {
for (var n = [], a = 0; a < this.length; a++) {
var i = this[a], o = i._private[t20.attr];
o && n.push(o);
}
return this.spawn(n, true).filter(r);
};
}
Re(nr, {
edgesWith: Sr(Hf(), "edgesWith"),
edgesTo: Sr(Hf({
thisIsSrc: true
}), "edgesTo")
});
function Hf(t20) {
return function(r) {
var n = [], a = this._private.cy, i = t20 || {};
Ie(r) && (r = a.$(r));
for (var o = 0; o < r.length; o++)
for (var s = r[o]._private.edges, u = 0; u < s.length; u++) {
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), h6 = d || v;
h6 && ((i.thisIsSrc || i.thisIsTgt) && (i.thisIsSrc && !d || i.thisIsTgt && !v) || n.push(l));
}
return this.spawn(n, true);
};
}
Re(nr, {
connectedEdges: Sr(function(t20) {
for (var e = [], r = this, n = 0; n < r.length; n++) {
var a = r[n];
if (a.isNode())
for (var i = a._private.edges, o = 0; o < i.length; o++) {
var s = i[o];
e.push(s);
}
}
return this.spawn(e, true).filter(t20);
}, "connectedEdges"),
connectedNodes: Sr(function(t20) {
for (var e = [], r = this, n = 0; n < r.length; n++) {
var a = r[n];
a.isEdge() && (e.push(a.source()[0]), e.push(a.target()[0]));
}
return this.spawn(e, true).filter(t20);
}, "connectedNodes"),
parallelEdges: Sr(qf(), "parallelEdges"),
codirectedEdges: Sr(qf({
codirected: true
}), "codirectedEdges")
});
function qf(t20) {
var e = {
codirected: false
};
return t20 = Re({}, e, t20), function(n) {
for (var a = [], i = this.edges(), o = t20, s = 0; s < i.length; s++)
for (var u = i[s], l = u._private, c = l.source, d = c._private.data.id, v = l.data.target, h6 = c._private.edges, f = 0; f < h6.length; f++) {
var p = h6[f], m = p._private.data, g = m.target, y = m.source, b = g === v && y === d, w = d === g && v === y;
(o.codirected && b || !o.codirected && (b || w)) && a.push(p);
}
return this.spawn(a, true).filter(n);
};
}
Re(nr, {
components: function(e) {
var r = this, n = r.cy(), a = n.collection(), i = e == null ? r.nodes() : e.nodes(), o = [];
e != null && i.empty() && (i = e.sources());
var s = function(c, d) {
a.merge(c), i.unmerge(c), d.merge(c);
};
if (i.empty())
return r.spawn();
var u = function() {
var c = n.collection();
o.push(c);
var d = i[0];
s(d, c), r.bfs({
directed: false,
roots: d,
visit: function(h6) {
return s(h6, c);
}
}), c.forEach(function(v) {
v.connectedEdges().forEach(function(h6) {
r.has(h6) && c.has(h6.source()) && c.has(h6.target()) && c.merge(h6);
});
});
};
do
u();
while (i.length > 0);
return o;
},
component: function() {
var e = this[0];
return e.cy().mutableElements().components(e)[0];
}
});
nr.componentsOf = nr.components;
var Gt = function(e, r) {
var n = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : false, a = arguments.length > 3 && arguments[3] !== void 0 ? arguments[3] : false;
if (e === void 0) {
yt("A collection must have a reference to the core");
return;
}
var i = new Xr(), o = false;
if (!r)
r = [];
else if (r.length > 0 && Xe(r[0]) && !Do(r[0])) {
o = true;
for (var s = [], u = new vi(), l = 0, c = r.length; l < c; l++) {
var d = r[l];
d.data == null && (d.data = {});
var v = d.data;
if (v.id == null)
v.id = lp();
else if (e.hasElementWithId(v.id) || u.has(v.id))
continue;
var h6 = new rl(e, d, false);
s.push(h6), u.add(v.id);
}
r = s;
}
this.length = 0;
for (var f = 0, p = r.length; f < p; f++) {
var m = r[f][0];
if (m != null) {
var g = m._private.data.id;
(!n || !i.has(g)) && (n && i.set(g, {
index: this.length,
ele: m
}), this[this.length] = m, this.length++);
}
}
this._private = {
eles: this,
cy: e,
get map() {
return this.lazyMap == null && this.rebuildMap(), this.lazyMap;
},
set map(y) {
this.lazyMap = y;
},
rebuildMap: function() {
for (var b = this.lazyMap = new Xr(), w = this.eles, C = 0; C < w.length; C++) {
var E = w[C];
b.set(E.id(), {
index: C,
ele: E
});
}
}
}, n && (this._private.map = i), o && !a && this.restore();
};
var dt = rl.prototype = Gt.prototype = Object.create(Array.prototype);
dt.instanceString = function() {
return "collection";
};
dt.spawn = function(t20, e) {
return new Gt(this.cy(), t20, e);
};
dt.spawnSelf = function() {
return this.spawn(this);
};
dt.cy = function() {
return this._private.cy;
};
dt.renderer = function() {
return this._private.cy.renderer();
};
dt.element = function() {
return this[0];
};
dt.collection = function() {
return Yh(this) ? this : new Gt(this._private.cy, [this]);
};
dt.unique = function() {
return new Gt(this._private.cy, this, true);
};
dt.hasElementWithId = function(t20) {
return t20 = "" + t20, this._private.map.has(t20);
};
dt.getElementById = function(t20) {
t20 = "" + t20;
var e = this._private.cy, r = this._private.map.get(t20);
return r ? r.ele : new Gt(e);
};
dt.$id = dt.getElementById;
dt.poolIndex = function() {
var t20 = this._private.cy, e = t20._private.elements, r = this[0]._private.data.id;
return e._private.map.get(r).index;
};
dt.indexOf = function(t20) {
var e = t20[0]._private.data.id;
return this._private.map.get(e).index;
};
dt.indexOfId = function(t20) {
return t20 = "" + t20, this._private.map.get(t20).index;
};
dt.json = function(t20) {
var e = this.element(), r = this.cy();
if (e == null && t20)
return this;
if (e != null) {
var n = e._private;
if (Xe(t20)) {
if (r.startBatch(), t20.data) {
e.data(t20.data);
var a = n.data;
if (e.isEdge()) {
var i = false, o = {}, s = t20.data.source, u = t20.data.target;
s != null && s != a.source && (o.source = "" + s, i = true), u != null && u != a.target && (o.target = "" + u, i = true), i && (e = e.move(o));
} else {
var l = "parent" in t20.data, c = t20.data.parent;
l && (c != null || a.parent != null) && c != a.parent && (c === void 0 && (c = null), c != null && (c = "" + c), e = e.move({
parent: c
}));
}
}
t20.position && e.position(t20.position);
var d = function(p, m, g) {
var y = t20[p];
y != null && y !== n[p] && (y ? e[m]() : e[g]());
};
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"), t20.classes != null && e.classes(t20.classes), r.endBatch(), this;
} else if (t20 === void 0) {
var v = {
data: Zr(n.data),
position: Zr(n.position),
group: n.group,
removed: n.removed,
selected: n.selected,
selectable: n.selectable,
locked: n.locked,
grabbable: n.grabbable,
pannable: n.pannable,
classes: null
};
v.classes = "";
var h6 = 0;
return n.classes.forEach(function(f) {
return v.classes += h6++ === 0 ? f : " " + f;
}), v;
}
}
};
dt.jsons = function() {
for (var t20 = [], e = 0; e < this.length; e++) {
var r = this[e], n = r.json();
t20.push(n);
}
return t20;
};
dt.clone = function() {
for (var t20 = this.cy(), e = [], r = 0; r < this.length; r++) {
var n = this[r], a = n.json(), i = new rl(t20, a, false);
e.push(i);
}
return new Gt(t20, e);
};
dt.copy = dt.clone;
dt.restore = function() {
for (var t20 = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : true, e = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : true, r = this, n = r.cy(), a = n._private, i = [], o = [], s, u = 0, l = r.length; u < l; u++) {
var c = r[u];
e && !c.removed() || (c.isNode() ? i.push(c) : o.push(c));
}
s = i.concat(o);
var d, v = function() {
s.splice(d, 1), d--;
};
for (d = 0; d < s.length; d++) {
var h6 = s[d], f = h6._private, p = f.data;
if (h6.clearTraversalCache(), !(!e && !f.removed)) {
if (p.id === void 0)
p.id = lp();
else if (be(p.id))
p.id = "" + p.id;
else if (qn(p.id) || !Ie(p.id)) {
yt("Can not create element with invalid string ID `" + p.id + "`"), v();
continue;
} else if (n.hasElementWithId(p.id)) {
yt("Can not create second element with ID `" + p.id + "`"), v();
continue;
}
}
var m = p.id;
if (h6.isNode()) {
var g = f.position;
g.x == null && (g.x = 0), g.y == null && (g.y = 0);
}
if (h6.isEdge()) {
for (var y = h6, b = ["source", "target"], w = b.length, C = false, E = 0; E < w; E++) {
var x = b[E], T = p[x];
be(T) && (T = p[x] = "" + p[x]), T == null || T === "" ? (yt("Can not create edge `" + m + "` with unspecified " + x), C = true) : n.hasElementWithId(T) || (yt("Can not create edge `" + m + "` with nonexistant " + x + " `" + T + "`"), C = true);
}
if (C) {
v();
continue;
}
var k = n.getElementById(p.source), _ = n.getElementById(p.target);
k.same(_) ? k._private.edges.push(y) : (k._private.edges.push(y), _._private.edges.push(y)), y._private.source = k, y._private.target = _;
}
f.map = new Xr(), f.map.set(m, {
ele: h6,
index: 0
}), f.removed = false, e && n.addToPool(h6);
}
for (var D = 0; D < i.length; D++) {
var O = i[D], I = O._private.data;
be(I.parent) && (I.parent = "" + I.parent);
var L = I.parent, B = L != null;
if (B || O._private.parent) {
var F = O._private.parent ? n.collection().merge(O._private.parent) : n.getElementById(L);
if (F.empty())
I.parent = void 0;
else if (F[0].removed())
tt("Node added with missing parent, reference to parent removed"), I.parent = void 0, O._private.parent = null;
else {
for (var M = false, A = F; !A.empty(); ) {
if (O.same(A)) {
M = true, I.parent = void 0;
break;
}
A = A.parent();
}
M || (F[0]._private.children.push(O), O._private.parent = F[0], a.hasCompoundNodes = true);
}
}
}
if (s.length > 0) {
for (var R = s.length === r.length ? r : new Gt(n, s), K10 = 0; K10 < R.length; K10++) {
var H = R[K10];
H.isNode() || (H.parallelEdges().clearTraversalCache(), H.source().clearTraversalCache(), H.target().clearTraversalCache());
}
var q;
a.hasCompoundNodes ? q = n.collection().merge(R).merge(R.connectedNodes()).merge(R.parent()) : q = R, q.dirtyCompoundBoundsCache().dirtyBoundingBoxCache().updateStyle(t20), t20 ? R.emitAndNotify("add") : e && R.emit("add");
}
return r;
};
dt.removed = function() {
var t20 = this[0];
return t20 && t20._private.removed;
};
dt.inside = function() {
var t20 = this[0];
return t20 && !t20._private.removed;
};
dt.remove = function() {
var t20 = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : true, e = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : true, r = this, n = [], a = {}, i = r._private.cy;
function o(L) {
for (var B = L._private.edges, F = 0; F < B.length; F++)
u(B[F]);
}
function s(L) {
for (var B = L._private.children, F = 0; F < B.length; F++)
u(B[F]);
}
function u(L) {
var B = a[L.id()];
e && L.removed() || B || (a[L.id()] = true, L.isNode() ? (n.push(L), o(L), s(L)) : n.unshift(L));
}
for (var l = 0, c = r.length; l < c; l++) {
var d = r[l];
u(d);
}
function v(L, B) {
var F = L._private.edges;
Kn(F, B), L.clearTraversalCache();
}
function h6(L) {
L.clearTraversalCache();
}
var f = [];
f.ids = {};
function p(L, B) {
B = B[0], L = L[0];
var F = L._private.children, M = L.id();
Kn(F, B), B._private.parent = null, f.ids[M] || (f.ids[M] = true, f.push(L));
}
r.dirtyCompoundBoundsCache(), e && i.removeFromPool(n);
for (var m = 0; m < n.length; m++) {
var g = n[m];
if (g.isEdge()) {
var y = g.source()[0], b = g.target()[0];
v(y, g), v(b, g);
for (var w = g.parallelEdges(), C = 0; C < w.length; C++) {
var E = w[C];
h6(E), E.isBundledBezier() && E.dirtyBoundingBoxCache();
}
} else {
var x = g.parent();
x.length !== 0 && p(x, g);
}
e && (g._private.removed = true);
}
var T = i._private.elements;
i._private.hasCompoundNodes = false;
for (var k = 0; k < T.length; k++) {
var _ = T[k];
if (_.isParent()) {
i._private.hasCompoundNodes = true;
break;
}
}
var D = new Gt(this.cy(), n);
D.size() > 0 && (t20 ? D.emitAndNotify("remove") : e && D.emit("remove"));
for (var O = 0; O < f.length; O++) {
var I = f[O];
(!e || !I.removed()) && I.updateStyle();
}
return D;
};
dt.move = function(t20) {
var e = this._private.cy, r = this, n = false, a = false, i = function(f) {
return f == null ? f : "" + f;
};
if (t20.source !== void 0 || t20.target !== void 0) {
var o = i(t20.source), s = i(t20.target), u = o != null && e.hasElementWithId(o), l = s != null && e.hasElementWithId(s);
(u || l) && (e.batch(function() {
r.remove(n, a), r.emitAndNotify("moveout");
for (var h6 = 0; h6 < r.length; h6++) {
var f = r[h6], p = f._private.data;
f.isEdge() && (u && (p.source = o), l && (p.target = s));
}
r.restore(n, a);
}), r.emitAndNotify("move"));
} else if (t20.parent !== void 0) {
var c = i(t20.parent), d = c === null || e.hasElementWithId(c);
if (d) {
var v = c === null ? void 0 : c;
e.batch(function() {
var h6 = r.remove(n, a);
h6.emitAndNotify("moveout");
for (var f = 0; f < r.length; f++) {
var p = r[f], m = p._private.data;
p.isNode() && (m.parent = v);
}
h6.restore(n, a);
}), r.emitAndNotify("move");
}
}
return this;
};
[xp, oD, ds, Rn, li, CD, ll, $D, Gp, Wp, qD, As, fs, Ut, zn, nr].forEach(function(t20) {
Re(dt, t20);
});
var XD = {
add: function(e) {
var r, n = this;
if (yr(e)) {
var a = e;
if (a._private.cy === n)
r = a.restore();
else {
for (var i = [], o = 0; o < a.length; o++) {
var s = a[o];
i.push(s.json());
}
r = new Gt(n, i);
}
} else if (st(e)) {
var u = e;
r = new Gt(n, u);
} else if (Xe(e) && (st(e.nodes) || st(e.edges))) {
for (var l = e, c = [], d = ["nodes", "edges"], v = 0, h6 = d.length; v < h6; v++) {
var f = d[v], p = l[f];
if (st(p))
for (var m = 0, g = p.length; m < g; m++) {
var y = Re({
group: f
}, p[m]);
c.push(y);
}
}
r = new Gt(n, c);
} else {
var b = e;
r = new rl(n, b).collection();
}
return r;
},
remove: function(e) {
if (!yr(e)) {
if (Ie(e)) {
var r = e;
e = this.$(r);
}
}
return e.remove();
}
};
function jD(t20, e, r, n) {
var a = 4, i = 1e-3, o = 1e-7, s = 10, u = 11, l = 1 / (u - 1), c = typeof Float32Array < "u";
if (arguments.length !== 4)
return false;
for (var d = 0; d < 4; ++d)
if (typeof arguments[d] != "number" || isNaN(arguments[d]) || !isFinite(arguments[d]))
return false;
t20 = Math.min(t20, 1), r = Math.min(r, 1), t20 = Math.max(t20, 0), r = Math.max(r, 0);
var v = c ? new Float32Array(u) : new Array(u);
function h6(_, D) {
return 1 - 3 * D + 3 * _;
}
function f(_, D) {
return 3 * D - 6 * _;
}
function p(_) {
return 3 * _;
}
function m(_, D, O) {
return ((h6(D, O) * _ + f(D, O)) * _ + p(D)) * _;
}
function g(_, D, O) {
return 3 * h6(D, O) * _ * _ + 2 * f(D, O) * _ + p(D);
}
function y(_, D) {
for (var O = 0; O < a; ++O) {
var I = g(D, t20, r);
if (I === 0)
return D;
var L = m(D, t20, r) - _;
D -= L / I;
}
return D;
}
function b() {
for (var _ = 0; _ < u; ++_)
v[_] = m(_ * l, t20, r);
}
function w(_, D, O) {
var I, L, B = 0;
do
L = D + (O - D) / 2, I = m(L, t20, r) - _, I > 0 ? O = L : D = L;
while (Math.abs(I) > o && ++B < s);
return L;
}
function C(_) {
for (var D = 0, O = 1, I = u - 1; O !== I && v[O] <= _; ++O)
D += l;
--O;
var L = (_ - v[O]) / (v[O + 1] - v[O]), B = D + L * l, F = g(B, t20, r);
return F >= i ? y(_, B) : F === 0 ? B : w(_, D, D + l);
}
var E = false;
function x() {
E = true, (t20 !== e || r !== n) && b();
}
var T = function(D) {
return E || x(), t20 === e && r === n ? D : D === 0 ? 0 : D === 1 ? 1 : m(C(D), e, n);
};
T.getControlPoints = function() {
return [{
x: t20,
y: e
}, {
x: r,
y: n
}];
};
var k = "generateBezier(" + [t20, e, r, n] + ")";
return T.toString = function() {
return k;
}, T;
}
var QD = /* @__PURE__ */ function() {
function t20(n) {
return -n.tension * n.x - n.friction * n.v;
}
function e(n, a, i) {
var o = {
x: n.x + i.dx * a,
v: n.v + i.dv * a,
tension: n.tension,
friction: n.friction
};
return {
dx: o.v,
dv: t20(o)
};
}
function r(n, a) {
var i = {
dx: n.v,
dv: t20(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);
return n.x = n.x + l * a, n.v = n.v + c * a, n;
}
return function n(a, i, o) {
var s = {
x: -1,
v: 0,
tension: null,
friction: null
}, u = [0], l = 0, c = 1 / 1e4, d = 16 / 1e3, v, h6, f;
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), h6 = l / o * d) : h6 = d; f = r(f || s, h6), u.push(1 + f.x), l += 16, Math.abs(f.x) > c && Math.abs(f.v) > c; )
;
return v ? function(p) {
return u[p * (u.length - 1) | 0];
} : l;
};
}();
var ct = function(e, r, n, a) {
var i = jD(e, r, n, a);
return function(o, s, u) {
return o + (s - o) * i(u);
};
};
var vs = {
linear: function(e, r, n) {
return e + (r - e) * n;
},
// default easings
ease: ct(0.25, 0.1, 0.25, 1),
"ease-in": ct(0.42, 0, 1, 1),
"ease-out": ct(0, 0, 0.58, 1),
"ease-in-out": ct(0.42, 0, 0.58, 1),
// sine
"ease-in-sine": ct(0.47, 0, 0.745, 0.715),
"ease-out-sine": ct(0.39, 0.575, 0.565, 1),
"ease-in-out-sine": ct(0.445, 0.05, 0.55, 0.95),
// quad
"ease-in-quad": ct(0.55, 0.085, 0.68, 0.53),
"ease-out-quad": ct(0.25, 0.46, 0.45, 0.94),
"ease-in-out-quad": ct(0.455, 0.03, 0.515, 0.955),
// cubic
"ease-in-cubic": ct(0.55, 0.055, 0.675, 0.19),
"ease-out-cubic": ct(0.215, 0.61, 0.355, 1),
"ease-in-out-cubic": ct(0.645, 0.045, 0.355, 1),
// quart
"ease-in-quart": ct(0.895, 0.03, 0.685, 0.22),
"ease-out-quart": ct(0.165, 0.84, 0.44, 1),
"ease-in-out-quart": ct(0.77, 0, 0.175, 1),
// quint
"ease-in-quint": ct(0.755, 0.05, 0.855, 0.06),
"ease-out-quint": ct(0.23, 1, 0.32, 1),
"ease-in-out-quint": ct(0.86, 0, 0.07, 1),
// expo
"ease-in-expo": ct(0.95, 0.05, 0.795, 0.035),
"ease-out-expo": ct(0.19, 1, 0.22, 1),
"ease-in-out-expo": ct(1, 0, 0, 1),
// circ
"ease-in-circ": ct(0.6, 0.04, 0.98, 0.335),
"ease-out-circ": ct(0.075, 0.82, 0.165, 1),
"ease-in-out-circ": ct(0.785, 0.135, 0.15, 0.86),
// user param easings...
spring: function(e, r, n) {
if (n === 0)
return vs.linear;
var a = QD(e, r, n);
return function(i, o, s) {
return i + (o - i) * a(s);
};
},
"cubic-bezier": ct
};
function Kf(t20, e, r, n, a) {
if (n === 1 || e === r)
return r;
var i = a(e, r, n);
return t20 == null || ((t20.roundValue || t20.color) && (i = Math.round(i)), t20.min !== void 0 && (i = Math.max(i, t20.min)), t20.max !== void 0 && (i = Math.min(i, t20.max))), i;
}
function Uf(t20, e) {
return t20.pfValue != null || t20.value != null ? t20.pfValue != null && (e == null || e.type.units !== "%") ? t20.pfValue : t20.value : t20;
}
function Ma(t20, e, r, n, a) {
var i = a != null ? a.type : null;
r < 0 ? r = 0 : r > 1 && (r = 1);
var o = Uf(t20, a), s = Uf(e, a);
if (be(o) && be(s))
return Kf(i, o, s, r, n);
if (st(o) && st(s)) {
for (var u = [], l = 0; l < s.length; l++) {
var c = o[l], d = s[l];
if (c != null && d != null) {
var v = Kf(i, c, d, r, n);
u.push(v);
} else
u.push(d);
}
return u;
}
}
function JD(t20, e, r, n) {
var a = !n, i = t20._private, o = e._private, s = o.easing, u = o.startTime, l = n ? t20 : t20.cy(), c = l.style();
if (!o.easingImpl)
if (s == null)
o.easingImpl = vs.linear;
else {
var d;
if (Ie(s)) {
var v = c.parse("transition-timing-function", s);
d = v.value;
} else
d = s;
var h6, f;
Ie(d) ? (h6 = d, f = []) : (h6 = d[1], f = d.slice(2).map(function(R) {
return +R;
})), f.length > 0 ? (h6 === "spring" && f.push(o.duration), o.easingImpl = vs[h6].apply(null, f)) : o.easingImpl = vs[h6];
}
var p = o.easingImpl, m;
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) {
var g = o.startPosition, y = o.position;
if (y && a && !t20.locked()) {
var b = {};
Ii(g.x, y.x) && (b.x = Ma(g.x, y.x, m, p)), Ii(g.y, y.y) && (b.y = Ma(g.y, y.y, m, p)), t20.position(b);
}
var w = o.startPan, C = o.pan, E = i.pan, x = C != null && n;
x && (Ii(w.x, C.x) && (E.x = Ma(w.x, C.x, m, p)), Ii(w.y, C.y) && (E.y = Ma(w.y, C.y, m, p)), t20.emit("pan"));
var T = o.startZoom, k = o.zoom, _ = k != null && n;
_ && (Ii(T, k) && (i.zoom = io(i.minZoom, Ma(T, k, m, p), i.maxZoom)), t20.emit("zoom")), (x || _) && t20.emit("viewport");
var D = o.style;
if (D && D.length > 0 && a) {
for (var O = 0; O < D.length; O++) {
var I = D[O], L = I.name, B = I, F = o.startStyle[L], M = c.properties[F.name], A = Ma(F, B, m, p, M);
c.overrideBypass(t20, L, A);
}
t20.emit("style");
}
}
return o.progress = m, m;
}
function Ii(t20, e) {
return t20 == null || e == null ? false : be(t20) && be(e) ? true : !!(t20 && e);
}
function eP(t20, e, r, n) {
var a = e._private;
a.started = true, a.startTime = r - a.progress * a.duration;
}
function Gf(t20, e) {
var r = e._private.aniEles, n = [];
function a(c, d) {
var v = c._private, h6 = v.animation.current, f = v.animation.queue, p = false;
if (h6.length === 0) {
var m = f.shift();
m && h6.push(m);
}
for (var g = function(E) {
for (var x = E.length - 1; x >= 0; x--) {
var T = E[x];
T();
}
E.splice(0, E.length);
}, y = h6.length - 1; y >= 0; y--) {
var b = h6[y], w = b._private;
if (w.stopped) {
h6.splice(y, 1), w.hooked = false, w.playing = false, w.started = false, g(w.frames);
continue;
}
!w.playing && !w.applying || (w.playing && w.applying && (w.applying = false), w.started || eP(c, b, t20), JD(c, b, t20, d), w.applying && (w.applying = false), g(w.frames), w.step != null && w.step(t20), b.completed() && (h6.splice(y, 1), w.hooked = false, w.playing = false, w.started = false, g(w.completes)), p = true);
}
return !d && h6.length === 0 && f.length === 0 && n.push(c), p;
}
for (var i = false, o = 0; o < r.length; o++) {
var s = r[o], u = a(s);
i = i || u;
}
var l = a(e, true);
(i || l) && (r.length > 0 ? e.notify("draw", r) : e.notify("draw")), r.unmerge(n), e.emit("step");
}
var tP = {
// pull in animation functions
animate: et.animate(),
animation: et.animation(),
animated: et.animated(),
clearQueue: et.clearQueue(),
delay: et.delay(),
delayAnimation: et.delayAnimation(),
stop: et.stop(),
addToAnimationPool: function(e) {
var r = this;
r.styleEnabled() && r._private.aniEles.merge(e);
},
stopAnimationLoop: function() {
this._private.animationsRunning = false;
},
startAnimationLoop: function() {
var e = this;
if (e._private.animationsRunning = true, !e.styleEnabled())
return;
function r() {
e._private.animationsRunning && Ps(function(i) {
Gf(i, e), r();
});
}
var n = e.renderer();
n && n.beforeRender ? n.beforeRender(function(i, o) {
Gf(o, e);
}, n.beforeRenderPriorities.animations) : r();
}
};
var rP = {
qualifierCompare: function(e, r) {
return e == null || r == null ? e == null && r == null : e.sameText(r);
},
eventMatches: function(e, r, n) {
var a = r.qualifier;
return a != null ? e !== n.target && Do(n.target) && a.matches(n.target) : true;
},
addEventFields: function(e, r) {
r.cy = e, r.target = e;
},
callbackContext: function(e, r, n) {
return r.qualifier != null ? n.target : e;
}
};
var ts = function(e) {
return Ie(e) ? new Un(e) : e;
};
var Xp = {
createEmitter: function() {
var e = this._private;
return e.emitter || (e.emitter = new ul(rP, this)), this;
},
emitter: function() {
return this._private.emitter;
},
on: function(e, r, n) {
return this.emitter().on(e, ts(r), n), this;
},
removeListener: function(e, r, n) {
return this.emitter().removeListener(e, ts(r), n), this;
},
removeAllListeners: function() {
return this.emitter().removeAllListeners(), this;
},
one: function(e, r, n) {
return this.emitter().one(e, ts(r), n), this;
},
once: function(e, r, n) {
return this.emitter().one(e, ts(r), n), this;
},
emit: function(e, r) {
return this.emitter().emit(e, r), this;
},
emitAndNotify: function(e, r) {
return this.emit(e), this.notify(e, r), this;
}
};
et.eventAliasesOn(Xp);
var vu = {
png: function(e) {
var r = this._private.renderer;
return e = e || {}, r.png(e);
},
jpg: function(e) {
var r = this._private.renderer;
return e = e || {}, e.bg = e.bg || "#fff", r.jpg(e);
}
};
vu.jpeg = vu.jpg;
var hs = {
layout: function(e) {
var r = this;
if (e == null) {
yt("Layout options must be specified to make a layout");
return;
}
if (e.name == null) {
yt("A `name` must be specified to make a layout");
return;
}
var n = e.name, a = r.extension("layout", n);
if (a == null) {
yt("No such layout `" + n + "` found. Did you forget to import it and `cytoscape.use()` it?");
return;
}
var i;
Ie(e.eles) ? i = r.$(e.eles) : i = e.eles != null ? e.eles : r.$();
var o = new a(Re({}, e, {
cy: r,
eles: i
}));
return o;
}
};
hs.createLayout = hs.makeLayout = hs.layout;
var nP = {
notify: function(e, r) {
var n = this._private;
if (this.batching()) {
n.batchNotifications = n.batchNotifications || {};
var a = n.batchNotifications[e] = n.batchNotifications[e] || this.collection();
r != null && a.merge(r);
return;
}
if (n.notificationsEnabled) {
var i = this.renderer();
this.destroyed() || !i || i.notify(e, r);
}
},
notifications: function(e) {
var r = this._private;
return e === void 0 ? r.notificationsEnabled : (r.notificationsEnabled = !!e, this);
},
noNotifications: function(e) {
this.notifications(false), e(), this.notifications(true);
},
batching: function() {
return this._private.batchCount > 0;
},
startBatch: function() {
var e = this._private;
return e.batchCount == null && (e.batchCount = 0), e.batchCount === 0 && (e.batchStyleEles = this.collection(), e.batchNotifications = {}), e.batchCount++, this;
},
endBatch: function() {
var e = this._private;
if (e.batchCount === 0)
return this;
if (e.batchCount--, e.batchCount === 0) {
e.batchStyleEles.updateStyle();
var r = this.renderer();
Object.keys(e.batchNotifications).forEach(function(n) {
var a = e.batchNotifications[n];
a.empty() ? r.notify(n) : r.notify(n, a);
});
}
return this;
},
batch: function(e) {
return this.startBatch(), e(), this.endBatch(), this;
},
// for backwards compatibility
batchData: function(e) {
var r = this;
return this.batch(function() {
for (var n = Object.keys(e), a = 0; a < n.length; a++) {
var i = n[a], o = e[i], s = r.getElementById(i);
s.data(o);
}
});
}
};
var aP = Wt({
hideEdgesOnViewport: false,
textureOnViewport: false,
motionBlur: false,
motionBlurOpacity: 0.05,
pixelRatio: void 0,
desktopTapThreshold: 4,
touchTapThreshold: 8,
wheelSensitivity: 1,
debug: false,
showFps: false
});
var hu = {
renderTo: function(e, r, n, a) {
var i = this._private.renderer;
return i.renderTo(e, r, n, a), this;
},
renderer: function() {
return this._private.renderer;
},
forceRender: function() {
return this.notify("draw"), this;
},
resize: function() {
return this.invalidateSize(), this.emitAndNotify("resize"), this;
},
initRenderer: function(e) {
var r = this, n = r.extension("renderer", e.name);
if (n == null) {
yt("Can not initialise: No such renderer `".concat(e.name, "` found. Did you forget to import it and `cytoscape.use()` it?"));
return;
}
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.");
var a = aP(e);
a.cy = r, r._private.renderer = new n(a), this.notify("init");
},
destroyRenderer: function() {
var e = this;
e.notify("destroy");
var r = e.container();
if (r)
for (r._cyreg = null; r.childNodes.length > 0; )
r.removeChild(r.childNodes[0]);
e._private.renderer = null, e.mutableElements().forEach(function(n) {
var a = n._private;
a.rscratch = {}, a.rstyle = {}, a.animation.current = [], a.animation.queue = [];
});
},
onRender: function(e) {
return this.on("render", e);
},
offRender: function(e) {
return this.off("render", e);
}
};
hu.invalidateDimensions = hu.resize;
var ps = {
// get a collection
// - empty collection on no args
// - collection of elements in the graph on selector arg
// - guarantee a returned collection when elements or collection specified
collection: function(e, r) {
return Ie(e) ? this.$(e) : yr(e) ? e.collection() : st(e) ? (r || (r = {}), new Gt(this, e, r.unique, r.removed)) : new Gt(this);
},
nodes: function(e) {
var r = this.$(function(n) {
return n.isNode();
});
return e ? r.filter(e) : r;
},
edges: function(e) {
var r = this.$(function(n) {
return n.isEdge();
});
return e ? r.filter(e) : r;
},
// search the graph like jQuery
$: function(e) {
var r = this._private.elements;
return e ? r.filter(e) : r.spawnSelf();
},
mutableElements: function() {
return this._private.elements;
}
};
ps.elements = ps.filter = ps.$;
var ir = {};
var Ki = "t";
var iP = "f";
ir.apply = function(t20) {
for (var e = this, r = e._private, n = r.cy, a = n.collection(), i = 0; i < t20.length; i++) {
var o = t20[i], s = e.getContextMeta(o);
if (!s.empty) {
var u = e.getContextStyle(s), l = e.applyContextStyle(s, u, o);
o._private.appliedInitStyle ? e.updateTransitions(o, l.diffProps) : o._private.appliedInitStyle = true;
var c = e.updateStyleHints(o);
c && a.push(o);
}
}
return a;
};
ir.getPropertiesDiff = function(t20, e) {
var r = this, n = r._private.propDiffs = r._private.propDiffs || {}, a = t20 + "-" + e, i = n[a];
if (i)
return i;
for (var o = [], s = {}, u = 0; u < r.length; u++) {
var l = r[u], c = t20[u] === Ki, d = e[u] === Ki, v = c !== d, h6 = l.mappedProperties.length > 0;
if (v || d && h6) {
var f = void 0;
v && h6 || v ? f = l.properties : h6 && (f = l.mappedProperties);
for (var p = 0; p < f.length; p++) {
for (var m = f[p], g = m.name, y = false, b = u + 1; b < r.length; b++) {
var w = r[b], C = e[b] === Ki;
if (C && (y = w.properties[m.name] != null, y))
break;
}
!s[g] && !y && (s[g] = true, o.push(g));
}
}
}
return n[a] = o, o;
};
ir.getContextMeta = function(t20) {
for (var e = this, r = "", n, a = t20._private.styleCxtKey || "", i = 0; i < e.length; i++) {
var o = e[i], s = o.selector && o.selector.matches(t20);
s ? r += Ki : r += iP;
}
return n = e.getPropertiesDiff(a, r), t20._private.styleCxtKey = r, {
key: r,
diffPropNames: n,
empty: n.length === 0
};
};
ir.getContextStyle = function(t20) {
var e = t20.key, r = this, n = this._private.contextStyles = this._private.contextStyles || {};
if (n[e])
return n[e];
for (var a = {
_private: {
key: e
}
}, i = 0; i < r.length; i++) {
var o = r[i], s = e[i] === Ki;
if (s)
for (var u = 0; u < o.properties.length; u++) {
var l = o.properties[u];
a[l.name] = l;
}
}
return n[e] = a, a;
};
ir.applyContextStyle = function(t20, e, r) {
for (var n = this, a = t20.diffPropNames, i = {}, o = n.types, s = 0; s < a.length; s++) {
var u = a[s], l = e[u], c = r.pstyle(u);
if (!l)
if (c)
c.bypass ? l = {
name: u,
deleteBypassed: true
} : l = {
name: u,
delete: true
};
else continue;
if (c !== l) {
if (l.mapped === o.fn && c != null && c.mapping != null && c.mapping.value === l.value) {
var d = c.mapping, v = d.fnValue = l.value(r);
if (v === d.prevFnValue)
continue;
}
var h6 = i[u] = {
prev: c
};
n.applyParsedProperty(r, l), h6.next = r.pstyle(u), h6.next && h6.next.bypass && (h6.next = h6.next.bypassed);
}
}
return {
diffProps: i
};
};
ir.updateStyleHints = function(t20) {
var e = t20._private, r = this, n = r.propertyGroupNames, a = r.propertyGroupKeys, i = function(Q, ge2, Ee2) {
return r.getPropertiesHash(Q, ge2, Ee2);
}, o = e.styleKey;
if (t20.removed())
return false;
var s = e.group === "nodes", u = t20._private.style;
n = Object.keys(u);
for (var l = 0; l < a.length; l++) {
var c = a[l];
e.styleKeys[c] = [Va, Bi];
}
for (var d = function(Q, ge2) {
return e.styleKeys[ge2][0] = ro(Q, e.styleKeys[ge2][0]);
}, v = function(Q, ge2) {
return e.styleKeys[ge2][1] = no(Q, e.styleKeys[ge2][1]);
}, h6 = function(Q, ge2) {
d(Q, ge2), v(Q, ge2);
}, f = function(Q, ge2) {
for (var Ee2 = 0; Ee2 < Q.length; Ee2++) {
var fe = Q.charCodeAt(Ee2);
d(fe, ge2), v(fe, ge2);
}
}, p = 2e9, m = function(Q) {
return -128 < Q && Q < 128 && Math.floor(Q) !== Q ? p - (Q * 1024 | 0) : Q;
}, g = 0; g < n.length; g++) {
var y = n[g], b = u[y];
if (b != null) {
var w = this.properties[y], C = w.type, E = w.groupKey, x = void 0;
w.hashOverride != null ? x = w.hashOverride(t20, b) : b.pfValue != null && (x = b.pfValue);
var T = w.enums == null ? b.value : null, k = x != null, _ = T != null, D = k || _, O = b.units;
if (C.number && D && !C.multiple) {
var I = k ? x : T;
h6(m(I), E), !k && O != null && f(O, E);
} else
f(b.strValue, E);
}
}
for (var L = [Va, Bi], B = 0; B < a.length; B++) {
var F = a[B], M = e.styleKeys[F];
L[0] = ro(M[0], L[0]), L[1] = no(M[1], L[1]);
}
e.styleKey = c5(L[0], L[1]);
var A = e.styleKeys;
e.labelDimsKey = Dn(A.labelDimensions);
var R = i(t20, ["label"], A.labelDimensions);
if (e.labelKey = Dn(R), e.labelStyleKey = Dn(Go(A.commonLabel, R)), !s) {
var K10 = i(t20, ["source-label"], A.labelDimensions);
e.sourceLabelKey = Dn(K10), e.sourceLabelStyleKey = Dn(Go(A.commonLabel, K10));
var H = i(t20, ["target-label"], A.labelDimensions);
e.targetLabelKey = Dn(H), e.targetLabelStyleKey = Dn(Go(A.commonLabel, H));
}
if (s) {
var q = e.styleKeys, ee = q.nodeBody, se2 = q.nodeBorder, oe = q.nodeOutline, ae = q.backgroundImage, ue = q.compound, te = q.pie, $ = [ee, se2, oe, ae, ue, te].filter(function(G) {
return G != null;
}).reduce(Go, [Va, Bi]);
e.nodeKey = Dn($), e.hasPie = te != null && te[0] !== Va && te[1] !== Bi;
}
return o !== e.styleKey;
};
ir.clearStyleHints = function(t20) {
var e = t20._private;
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;
};
ir.applyParsedProperty = function(t20, e) {
var r = this, n = e, a = t20._private.style, i, o = r.types, s = r.properties[n.name].type, u = n.bypass, l = a[n.name], c = l && l.bypass, d = t20._private, v = "mapping", h6 = function(ee) {
return ee == null ? null : ee.pfValue != null ? ee.pfValue : ee.value;
}, f = function() {
var ee = h6(l), se2 = h6(n);
r.checkTriggers(t20, n.name, ee, se2);
};
if (e.name === "curve-style" && t20.isEdge() && // loops must be bundled beziers
(e.value !== "bezier" && t20.isLoop() || // edges connected to compound nodes can not be haystacks
e.value === "haystack" && (t20.source().isParent() || t20.target().isParent())) && (n = e = this.parse(e.name, "bezier", u)), n.delete)
return a[n.name] = void 0, f(), true;
if (n.deleteBypassed)
return l ? l.bypass ? (l.bypassed = void 0, f(), true) : false : (f(), true);
if (n.deleteBypass)
return l ? l.bypass ? (a[n.name] = l.bypassed, f(), true) : false : (f(), true);
var p = function() {
tt("Do not assign mappings to elements without corresponding data (i.e. ele `" + t20.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");
};
switch (n.mapped) {
case o.mapData: {
for (var m = n.field.split("."), g = d.data, y = 0; y < m.length && g; y++) {
var b = m[y];
g = g[b];
}
if (g == null)
return p(), false;
var w;
if (be(g)) {
var C = n.fieldMax - n.fieldMin;
C === 0 ? w = 0 : w = (g - n.fieldMin) / C;
} else
return tt("Do not use continuous mappers without specifying numeric data (i.e. `" + n.field + ": " + g + "` for `" + t20.id() + "` is non-numeric)"), false;
if (w < 0 ? w = 0 : w > 1 && (w = 1), s.color) {
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], I = 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 + (I - O) * w)];
i = {
// colours are simple, so just create the flat property instead of expensive string parsing
bypass: n.bypass,
// we're a bypass if the mapping property is a bypass
name: n.name,
value: L,
strValue: "rgb(" + L[0] + ", " + L[1] + ", " + L[2] + ")"
};
} else if (s.number) {
var B = n.valueMin + (n.valueMax - n.valueMin) * w;
i = this.parse(n.name, B, n.bypass, v);
} else
return false;
if (!i)
return p(), false;
i.mapping = n, n = i;
break;
}
case o.data: {
for (var F = n.field.split("."), M = d.data, A = 0; A < F.length && M; A++) {
var R = F[A];
M = M[R];
}
if (M != null && (i = this.parse(n.name, M, n.bypass, v)), !i)
return p(), false;
i.mapping = n, n = i;
break;
}
case o.fn: {
var K10 = n.value, H = n.fnValue != null ? n.fnValue : K10(t20);
if (n.prevFnValue = H, H == null)
return tt("Custom function mappers may not return null (i.e. `" + n.name + "` for ele `" + t20.id() + "` is null)"), false;
if (i = this.parse(n.name, H, n.bypass, v), !i)
return tt("Custom function mappers may not return invalid values for the property type (i.e. `" + n.name + "` for ele `" + t20.id() + "` is invalid)"), false;
i.mapping = Zr(n), n = i;
break;
}
case void 0:
break;
default:
return false;
}
return u ? (c ? n.bypassed = l.bypassed : n.bypassed = l, a[n.name] = n) : c ? l.bypassed = n : a[n.name] = n, f(), true;
};
ir.cleanElements = function(t20, e) {
for (var r = 0; r < t20.length; r++) {
var n = t20[r];
if (this.clearStyleHints(n), n.dirtyCompoundBoundsCache(), n.dirtyBoundingBoxCache(), !e)
n._private.style = {};
else
for (var a = n._private.style, i = Object.keys(a), o = 0; o < i.length; o++) {
var s = i[o], u = a[s];
u != null && (u.bypass ? u.bypassed = null : a[s] = null);
}
}
};
ir.update = function() {
var t20 = this._private.cy, e = t20.mutableElements();
e.updateStyle();
};
ir.updateTransitions = function(t20, e) {
var r = this, n = t20._private, a = t20.pstyle("transition-property").value, i = t20.pstyle("transition-duration").pfValue, o = t20.pstyle("transition-delay").pfValue;
if (a.length > 0 && i > 0) {
for (var s = {}, u = false, l = 0; l < a.length; l++) {
var c = a[l], d = t20.pstyle(c), v = e[c];
if (v) {
var h6 = v.prev, f = h6, p = v.next != null ? v.next : d, m = false, g = void 0, y = 1e-6;
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(t20, c, g), u = true));
}
}
if (!u)
return;
n.transitioning = true, new hi(function(b) {
o > 0 ? t20.delayAnimation(o).play().promise().then(b) : b();
}).then(function() {
return t20.animation({
style: s,
duration: i,
easing: t20.pstyle("transition-timing-function").value,
queue: false
}).play().promise();
}).then(function() {
r.removeBypasses(t20, a), t20.emitAndNotify("style"), n.transitioning = false;
});
} else n.transitioning && (this.removeBypasses(t20, a), t20.emitAndNotify("style"), n.transitioning = false);
};
ir.checkTrigger = function(t20, e, r, n, a, i) {
var o = this.properties[e], s = a(o);
s != null && s(r, n) && i(o);
};
ir.checkZOrderTrigger = function(t20, e, r, n) {
var a = this;
this.checkTrigger(t20, e, r, n, function(i) {
return i.triggersZOrder;
}, function() {
a._private.cy.notify("zorder", t20);
});
};
ir.checkBoundsTrigger = function(t20, e, r, n) {
this.checkTrigger(t20, e, r, n, function(a) {
return a.triggersBounds;
}, function(a) {
t20.dirtyCompoundBoundsCache(), t20.dirtyBoundingBoxCache(), // only for beziers -- so performance of other edges isn't affected
a.triggersBoundsOfParallelBeziers && e === "curve-style" && (r === "bezier" || n === "bezier") && t20.parallelEdges().forEach(function(i) {
i.isBundledBezier() && i.dirtyBoundingBoxCache();
}), a.triggersBoundsOfConnectedEdges && e === "display" && (r === "none" || n === "none") && t20.connectedEdges().forEach(function(i) {
i.dirtyBoundingBoxCache();
});
});
};
ir.checkTriggers = function(t20, e, r, n) {
t20.dirtyStyleCache(), this.checkZOrderTrigger(t20, e, r, n), this.checkBoundsTrigger(t20, e, r, n);
};
var Fo = {};
Fo.applyBypass = function(t20, e, r, n) {
var a = this, i = [], o = true;
if (e === "*" || e === "**") {
if (r !== void 0)
for (var s = 0; s < a.properties.length; s++) {
var u = a.properties[s], l = u.name, c = this.parse(l, r, true);
c && i.push(c);
}
} else if (Ie(e)) {
var d = this.parse(e, r, true);
d && i.push(d);
} else if (Xe(e)) {
var v = e;
n = r;
for (var h6 = Object.keys(v), f = 0; f < h6.length; f++) {
var p = h6[f], m = v[p];
if (m === void 0 && (m = v[Js(p)]), m !== void 0) {
var g = this.parse(p, m, true);
g && i.push(g);
}
}
} else
return false;
if (i.length === 0)
return false;
for (var y = false, b = 0; b < t20.length; b++) {
for (var w = t20[b], C = {}, E = void 0, x = 0; x < i.length; x++) {
var T = i[x];
if (n) {
var k = w.pstyle(T.name);
E = C[T.name] = {
prev: k
};
}
y = this.applyParsedProperty(w, Zr(T)) || y, n && (E.next = w.pstyle(T.name));
}
y && this.updateStyleHints(w), n && this.updateTransitions(w, C, o);
}
return y;
};
Fo.overrideBypass = function(t20, e, r) {
e = sc(e);
for (var n = 0; n < t20.length; n++) {
var a = t20[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;
!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);
}
};
Fo.removeAllBypasses = function(t20, e) {
return this.removeBypasses(t20, this.propertyNames, e);
};
Fo.removeBypasses = function(t20, e, r) {
for (var n = true, a = 0; a < t20.length; a++) {
for (var i = t20[a], o = {}, s = 0; s < e.length; s++) {
var u = e[s], l = this.properties[u], c = i.pstyle(l.name);
if (!(!c || !c.bypass)) {
var d = "", v = this.parse(u, d, true), h6 = o[l.name] = {
prev: c
};
this.applyParsedProperty(i, v), h6.next = i.pstyle(l.name);
}
}
this.updateStyleHints(i), r && this.updateTransitions(i, o, n);
}
};
var xc = {};
xc.getEmSizeInPixels = function() {
var t20 = this.containerCss("font-size");
return t20 != null ? parseFloat(t20) : 1;
};
xc.containerCss = function(t20) {
var e = this._private.cy, r = e.container(), n = e.window();
if (n && r && n.getComputedStyle)
return n.getComputedStyle(r).getPropertyValue(t20);
};
var rn = {};
rn.getRenderedStyle = function(t20, e) {
return e ? this.getStylePropertyValue(t20, e, true) : this.getRawStyle(t20, true);
};
rn.getRawStyle = function(t20, e) {
var r = this;
if (t20 = t20[0], t20) {
for (var n = {}, a = 0; a < r.properties.length; a++) {
var i = r.properties[a], o = r.getStylePropertyValue(t20, i.name, e);
o != null && (n[i.name] = o, n[Js(i.name)] = o);
}
return n;
}
};
rn.getIndexedStyle = function(t20, e, r, n) {
var a = t20.pstyle(e)[r][n];
return a ?? t20.cy().style().getDefaultProperty(e)[r][0];
};
rn.getStylePropertyValue = function(t20, e, r) {
var n = this;
if (t20 = t20[0], t20) {
var a = n.properties[e];
a.alias && (a = a.pointsTo);
var i = a.type, o = t20.pstyle(a.name);
if (o) {
var s = o.value, u = o.units, l = o.strValue;
if (r && i.number && s != null && be(s)) {
var c = t20.cy().zoom(), d = function(m) {
return m * c;
}, v = function(m, g) {
return d(m) + g;
}, h6 = st(s), f = h6 ? u.every(function(p) {
return p != null;
}) : u != null;
return f ? h6 ? s.map(function(p, m) {
return v(p, u[m]);
}).join(" ") : v(s, u) : h6 ? s.map(function(p) {
return Ie(p) ? p : "" + d(p);
}).join(" ") : "" + d(s);
} else if (l != null)
return l;
}
return null;
}
};
rn.getAnimationStartStyle = function(t20, e) {
for (var r = {}, n = 0; n < e.length; n++) {
var a = e[n], i = a.name, o = t20.pstyle(i);
o !== void 0 && (Xe(o) ? o = this.parse(i, o.strValue) : o = this.parse(i, o)), o && (r[i] = o);
}
return r;
};
rn.getPropsList = function(t20) {
var e = this, r = [], n = t20, a = e.properties;
if (n)
for (var i = Object.keys(n), o = 0; o < i.length; o++) {
var s = i[o], u = n[s], l = a[s] || a[sc(s)], c = this.parse(l.name, u);
c && r.push(c);
}
return r;
};
rn.getNonDefaultPropertiesHash = function(t20, e, r) {
var n = r.slice(), a, i, o, s, u, l;
for (u = 0; u < e.length; u++)
if (a = e[u], i = t20.pstyle(a, false), i != null)
if (i.pfValue != null)
n[0] = ro(s, n[0]), n[1] = no(s, n[1]);
else
for (o = i.strValue, l = 0; l < o.length; l++)
s = o.charCodeAt(l), n[0] = ro(s, n[0]), n[1] = no(s, n[1]);
return n;
};
rn.getPropertiesHash = rn.getNonDefaultPropertiesHash;
var fl = {};
fl.appendFromJson = function(t20) {
for (var e = this, r = 0; r < t20.length; r++) {
var n = t20[r], a = n.selector, i = n.style || n.css, o = Object.keys(i);
e.selector(a);
for (var s = 0; s < o.length; s++) {
var u = o[s], l = i[u];
e.css(u, l);
}
}
return e;
};
fl.fromJson = function(t20) {
var e = this;
return e.resetToDefault(), e.appendFromJson(t20), e;
};
fl.json = function() {
for (var t20 = [], e = this.defaultLength; e < this.length; e++) {
for (var r = this[e], n = r.selector, a = r.properties, i = {}, o = 0; o < a.length; o++) {
var s = a[o];
i[s.name] = s.strValue;
}
t20.push({
selector: n ? n.toString() : "core",
style: i
});
}
return t20;
};
var Cc = {};
Cc.appendFromString = function(t20) {
var e = this, r = this, n = "" + t20, a, i, o;
n = n.replace(/[/][*](\s|.)+?[*][/]/g, "");
function s() {
n.length > a.length ? n = n.substr(a.length) : n = "";
}
function u() {
i.length > o.length ? i = i.substr(o.length) : i = "";
}
for (; ; ) {
var l = n.match(/^\s*$/);
if (l)
break;
var c = n.match(/^\s*((?:.|\s)+?)\s*\{((?:.|\s)+?)\}/);
if (!c) {
tt("Halting stylesheet parsing: String stylesheet contains more to parse but no selector and block found in: " + n);
break;
}
a = c[0];
var d = c[1];
if (d !== "core") {
var v = new Un(d);
if (v.invalid) {
tt("Skipping parsing of block: Invalid selector found in string stylesheet: " + d), s();
continue;
}
}
var h6 = c[2], f = false;
i = h6;
for (var p = []; ; ) {
var m = i.match(/^\s*$/);
if (m)
break;
var g = i.match(/^\s*(.+?)\s*:\s*(.+?)(?:\s*;|\s*$)/);
if (!g) {
tt("Skipping parsing of block: Invalid formatting of style property and value definitions found in:" + h6), f = true;
break;
}
o = g[0];
var y = g[1], b = g[2], w = e.properties[y];
if (!w) {
tt("Skipping property: Invalid property name in: " + o), u();
continue;
}
var C = r.parse(y, b);
if (!C) {
tt("Skipping property: Invalid property definition in: " + o), u();
continue;
}
p.push({
name: y,
val: b
}), u();
}
if (f) {
s();
break;
}
r.selector(d);
for (var E = 0; E < p.length; E++) {
var x = p[E];
r.css(x.name, x.val);
}
s();
}
return r;
};
Cc.fromString = function(t20) {
var e = this;
return e.resetToDefault(), e.appendFromString(t20), e;
};
var Rt = {};
(function() {
var t20 = Ft, e = vT, r = pT, n = gT, a = mT, i = function($) {
return "^" + $ + "\\s*\\(\\s*([\\w\\.]+)\\s*\\)$";
}, o = function($) {
var G = t20 + "|\\w+|" + e + "|" + r + "|" + n + "|" + a;
return "^" + $ + "\\s*\\(([\\w\\.]+)\\s*\\,\\s*(" + t20 + ")\\s*\\,\\s*(" + t20 + ")\\s*,\\s*(" + G + ")\\s*\\,\\s*(" + G + ")\\)$";
}, s = [`^url\\s*\\(\\s*['"]?(.+?)['"]?\\s*\\)$`, "^(none)$", "^(.+)$"];
Rt.types = {
time: {
number: true,
min: 0,
units: "s|ms",
implicitUnits: "ms"
},
percent: {
number: true,
min: 0,
max: 100,
units: "%",
implicitUnits: "%"
},
percentages: {
number: true,
min: 0,
max: 100,
units: "%",
implicitUnits: "%",
multiple: true
},
zeroOneNumber: {
number: true,
min: 0,
max: 1,
unitless: true
},
zeroOneNumbers: {
number: true,
min: 0,
max: 1,
unitless: true,
multiple: true
},
nOneOneNumber: {
number: true,
min: -1,
max: 1,
unitless: true
},
nonNegativeInt: {
number: true,
min: 0,
integer: true,
unitless: true
},
nonNegativeNumber: {
number: true,
min: 0,
unitless: true
},
position: {
enums: ["parent", "origin"]
},
nodeSize: {
number: true,
min: 0,
enums: ["label"]
},
number: {
number: true,
unitless: true
},
numbers: {
number: true,
unitless: true,
multiple: true
},
positiveNumber: {
number: true,
unitless: true,
min: 0,
strictMin: true
},
size: {
number: true,
min: 0
},
bidirectionalSize: {
number: true
},
// allows negative
bidirectionalSizeMaybePercent: {
number: true,
allowPercent: true
},
// allows negative
bidirectionalSizes: {
number: true,
multiple: true
},
// allows negative
sizeMaybePercent: {
number: true,
min: 0,
allowPercent: true
},
axisDirection: {
enums: ["horizontal", "leftward", "rightward", "vertical", "upward", "downward", "auto"]
},
paddingRelativeTo: {
enums: ["width", "height", "average", "min", "max"]
},
bgWH: {
number: true,
min: 0,
allowPercent: true,
enums: ["auto"],
multiple: true
},
bgPos: {
number: true,
allowPercent: true,
multiple: true
},
bgRelativeTo: {
enums: ["inner", "include-padding"],
multiple: true
},
bgRepeat: {
enums: ["repeat", "repeat-x", "repeat-y", "no-repeat"],
multiple: true
},
bgFit: {
enums: ["none", "contain", "cover"],
multiple: true
},
bgCrossOrigin: {
enums: ["anonymous", "use-credentials", "null"],
multiple: true
},
bgClip: {
enums: ["none", "node"],
multiple: true
},
bgContainment: {
enums: ["inside", "over"],
multiple: true
},
color: {
color: true
},
colors: {
color: true,
multiple: true
},
fill: {
enums: ["solid", "linear-gradient", "radial-gradient"]
},
bool: {
enums: ["yes", "no"]
},
bools: {
enums: ["yes", "no"],
multiple: true
},
lineStyle: {
enums: ["solid", "dotted", "dashed"]
},
lineCap: {
enums: ["butt", "round", "square"]
},
linePosition: {
enums: ["center", "inside", "outside"]
},
lineJoin: {
enums: ["round", "bevel", "miter"]
},
borderStyle: {
enums: ["solid", "dotted", "dashed", "double"]
},
curveStyle: {
enums: ["bezier", "unbundled-bezier", "haystack", "segments", "straight", "straight-triangle", "taxi", "round-segments", "round-taxi"]
},
radiusType: {
enums: ["arc-radius", "influence-radius"],
multiple: true
},
fontFamily: {
regex: '^([\\w- \\"]+(?:\\s*,\\s*[\\w- \\"]+)*)$'
},
fontStyle: {
enums: ["italic", "normal", "oblique"]
},
fontWeight: {
enums: ["normal", "bold", "bolder", "lighter", "100", "200", "300", "400", "500", "600", "800", "900", 100, 200, 300, 400, 500, 600, 700, 800, 900]
},
textDecoration: {
enums: ["none", "underline", "overline", "line-through"]
},
textTransform: {
enums: ["none", "uppercase", "lowercase"]
},
textWrap: {
enums: ["none", "wrap", "ellipsis"]
},
textOverflowWrap: {
enums: ["whitespace", "anywhere"]
},
textBackgroundShape: {
enums: ["rectangle", "roundrectangle", "round-rectangle"]
},
nodeShape: {
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"]
},
overlayShape: {
enums: ["roundrectangle", "round-rectangle", "ellipse"]
},
cornerRadius: {
number: true,
min: 0,
units: "px|em",
implicitUnits: "px",
enums: ["auto"]
},
compoundIncludeLabels: {
enums: ["include", "exclude"]
},
arrowShape: {
enums: ["tee", "triangle", "triangle-tee", "circle-triangle", "triangle-cross", "triangle-backcurve", "vee", "square", "circle", "diamond", "chevron", "none"]
},
arrowFill: {
enums: ["filled", "hollow"]
},
arrowWidth: {
number: true,
units: "%|px|em",
implicitUnits: "px",
enums: ["match-line"]
},
display: {
enums: ["element", "none"]
},
visibility: {
enums: ["hidden", "visible"]
},
zCompoundDepth: {
enums: ["bottom", "orphan", "auto", "top"]
},
zIndexCompare: {
enums: ["auto", "manual"]
},
valign: {
enums: ["top", "center", "bottom"]
},
halign: {
enums: ["left", "center", "right"]
},
justification: {
enums: ["left", "center", "right", "auto"]
},
text: {
string: true
},
data: {
mapping: true,
regex: i("data")
},
layoutData: {
mapping: true,
regex: i("layoutData")
},
scratch: {
mapping: true,
regex: i("scratch")
},
mapData: {
mapping: true,
regex: o("mapData")
},
mapLayoutData: {
mapping: true,
regex: o("mapLayoutData")
},
mapScratch: {
mapping: true,
regex: o("mapScratch")
},
fn: {
mapping: true,
fn: true
},
url: {
regexes: s,
singleRegexMatchValue: true
},
urls: {
regexes: s,
singleRegexMatchValue: true,
multiple: true
},
propList: {
propList: true
},
angle: {
number: true,
units: "deg|rad",
implicitUnits: "rad"
},
textRotation: {
number: true,
units: "deg|rad",
implicitUnits: "rad",
enums: ["none", "autorotate"]
},
polygonPointList: {
number: true,
multiple: true,
evenMultiple: true,
min: -1,
max: 1,
unitless: true
},
edgeDistances: {
enums: ["intersection", "node-position", "endpoints"]
},
edgeEndpoint: {
number: true,
multiple: true,
units: "%|px|em|deg|rad",
implicitUnits: "px",
enums: ["inside-to-node", "outside-to-node", "outside-to-node-or-label", "outside-to-line", "outside-to-line-or-label"],
singleEnum: true,
validate: function($, G) {
switch ($.length) {
case 2:
return G[0] !== "deg" && G[0] !== "rad" && G[1] !== "deg" && G[1] !== "rad";
case 1:
return Ie($[0]) || G[0] === "deg" || G[0] === "rad";
default:
return false;
}
}
},
easing: {
regexes: ["^(spring)\\s*\\(\\s*(" + t20 + ")\\s*,\\s*(" + t20 + ")\\s*\\)$", "^(cubic-bezier)\\s*\\(\\s*(" + t20 + ")\\s*,\\s*(" + t20 + ")\\s*,\\s*(" + t20 + ")\\s*,\\s*(" + t20 + ")\\s*\\)$"],
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"]
},
gradientDirection: {
enums: [
"to-bottom",
"to-top",
"to-left",
"to-right",
"to-bottom-right",
"to-bottom-left",
"to-top-right",
"to-top-left",
"to-right-bottom",
"to-left-bottom",
"to-right-top",
"to-left-top"
// different order
]
},
boundsExpansion: {
number: true,
multiple: true,
min: 0,
validate: function($) {
var G = $.length;
return G === 1 || G === 2 || G === 4;
}
}
};
var u = {
zeroNonZero: function($, G) {
return ($ == null || G == null) && $ !== G || $ == 0 && G != 0 ? true : $ != 0 && G == 0;
},
any: function($, G) {
return $ != G;
},
emptyNonEmpty: function($, G) {
var Q = qn($), ge2 = qn(G);
return Q && !ge2 || !Q && ge2;
}
}, l = Rt.types, c = [{
name: "label",
type: l.text,
triggersBounds: u.any,
triggersZOrder: u.emptyNonEmpty
}, {
name: "text-rotation",
type: l.textRotation,
triggersBounds: u.any
}, {
name: "text-margin-x",
type: l.bidirectionalSize,
triggersBounds: u.any
}, {
name: "text-margin-y",
type: l.bidirectionalSize,
triggersBounds: u.any
}], d = [{
name: "source-label",
type: l.text,
triggersBounds: u.any
}, {
name: "source-text-rotation",
type: l.textRotation,
triggersBounds: u.any
}, {
name: "source-text-margin-x",
type: l.bidirectionalSize,
triggersBounds: u.any
}, {
name: "source-text-margin-y",
type: l.bidirectionalSize,
triggersBounds: u.any
}, {
name: "source-text-offset",
type: l.size,
triggersBounds: u.any
}], v = [{
name: "target-label",
type: l.text,
triggersBounds: u.any
}, {
name: "target-text-rotation",
type: l.textRotation,
triggersBounds: u.any
}, {
name: "target-text-margin-x",
type: l.bidirectionalSize,
triggersBounds: u.any
}, {
name: "target-text-margin-y",
type: l.bidirectionalSize,
triggersBounds: u.any
}, {
name: "target-text-offset",
type: l.size,
triggersBounds: u.any
}], h6 = [{
name: "font-family",
type: l.fontFamily,
triggersBounds: u.any
}, {
name: "font-style",
type: l.fontStyle,
triggersBounds: u.any
}, {
name: "font-weight",
type: l.fontWeight,
triggersBounds: u.any
}, {
name: "font-size",
type: l.size,
triggersBounds: u.any
}, {
name: "text-transform",
type: l.textTransform,
triggersBounds: u.any
}, {
name: "text-wrap",
type: l.textWrap,
triggersBounds: u.any
}, {
name: "text-overflow-wrap",
type: l.textOverflowWrap,
triggersBounds: u.any
}, {
name: "text-max-width",
type: l.size,
triggersBounds: u.any
}, {
name: "text-outline-width",
type: l.size,
triggersBounds: u.any
}, {
name: "line-height",
type: l.positiveNumber,
triggersBounds: u.any
}], f = [{
name: "text-valign",
type: l.valign,
triggersBounds: u.any
}, {
name: "text-halign",
type: l.halign,
triggersBounds: u.any
}, {
name: "color",
type: l.color
}, {
name: "text-outline-color",
type: l.color
}, {
name: "text-outline-opacity",
type: l.zeroOneNumber
}, {
name: "text-background-color",
type: l.color
}, {
name: "text-background-opacity",
type: l.zeroOneNumber
}, {
name: "text-background-padding",
type: l.size,
triggersBounds: u.any
}, {
name: "text-border-opacity",
type: l.zeroOneNumber
}, {
name: "text-border-color",
type: l.color
}, {
name: "text-border-width",
type: l.size,
triggersBounds: u.any
}, {
name: "text-border-style",
type: l.borderStyle,
triggersBounds: u.any
}, {
name: "text-background-shape",
type: l.textBackgroundShape,
triggersBounds: u.any
}, {
name: "text-justification",
type: l.justification
}], p = [{
name: "events",
type: l.bool,
triggersZOrder: u.any
}, {
name: "text-events",
type: l.bool,
triggersZOrder: u.any
}], m = [{
name: "display",
type: l.display,
triggersZOrder: u.any,
triggersBounds: u.any,
triggersBoundsOfConnectedEdges: true
}, {
name: "visibility",
type: l.visibility,
triggersZOrder: u.any
}, {
name: "opacity",
type: l.zeroOneNumber,
triggersZOrder: u.zeroNonZero
}, {
name: "text-opacity",
type: l.zeroOneNumber
}, {
name: "min-zoomed-font-size",
type: l.size
}, {
name: "z-compound-depth",
type: l.zCompoundDepth,
triggersZOrder: u.any
}, {
name: "z-index-compare",
type: l.zIndexCompare,
triggersZOrder: u.any
}, {
name: "z-index",
type: l.number,
triggersZOrder: u.any
}], g = [{
name: "overlay-padding",
type: l.size,
triggersBounds: u.any
}, {
name: "overlay-color",
type: l.color
}, {
name: "overlay-opacity",
type: l.zeroOneNumber,
triggersBounds: u.zeroNonZero
}, {
name: "overlay-shape",
type: l.overlayShape,
triggersBounds: u.any
}, {
name: "overlay-corner-radius",
type: l.cornerRadius
}], y = [{
name: "underlay-padding",
type: l.size,
triggersBounds: u.any
}, {
name: "underlay-color",
type: l.color
}, {
name: "underlay-opacity",
type: l.zeroOneNumber,
triggersBounds: u.zeroNonZero
}, {
name: "underlay-shape",
type: l.overlayShape,
triggersBounds: u.any
}, {
name: "underlay-corner-radius",
type: l.cornerRadius
}], b = [{
name: "transition-property",
type: l.propList
}, {
name: "transition-duration",
type: l.time
}, {
name: "transition-delay",
type: l.time
}, {
name: "transition-timing-function",
type: l.easing
}], w = function($, G) {
return G.value === "label" ? -$.poolIndex() : G.pfValue;
}, C = [{
name: "height",
type: l.nodeSize,
triggersBounds: u.any,
hashOverride: w
}, {
name: "width",
type: l.nodeSize,
triggersBounds: u.any,
hashOverride: w
}, {
name: "shape",
type: l.nodeShape,
triggersBounds: u.any
}, {
name: "shape-polygon-points",
type: l.polygonPointList,
triggersBounds: u.any
}, {
name: "corner-radius",
type: l.cornerRadius
}, {
name: "background-color",
type: l.color
}, {
name: "background-fill",
type: l.fill
}, {
name: "background-opacity",
type: l.zeroOneNumber
}, {
name: "background-blacken",
type: l.nOneOneNumber
}, {
name: "background-gradient-stop-colors",
type: l.colors
}, {
name: "background-gradient-stop-positions",
type: l.percentages
}, {
name: "background-gradient-direction",
type: l.gradientDirection
}, {
name: "padding",
type: l.sizeMaybePercent,
triggersBounds: u.any
}, {
name: "padding-relative-to",
type: l.paddingRelativeTo,
triggersBounds: u.any
}, {
name: "bounds-expansion",
type: l.boundsExpansion,
triggersBounds: u.any
}], E = [{
name: "border-color",
type: l.color
}, {
name: "border-opacity",
type: l.zeroOneNumber
}, {
name: "border-width",
type: l.size,
triggersBounds: u.any
}, {
name: "border-style",
type: l.borderStyle
}, {
name: "border-cap",
type: l.lineCap
}, {
name: "border-join",
type: l.lineJoin
}, {
name: "border-dash-pattern",
type: l.numbers
}, {
name: "border-dash-offset",
type: l.number
}, {
name: "border-position",
type: l.linePosition
}], x = [{
name: "outline-color",
type: l.color
}, {
name: "outline-opacity",
type: l.zeroOneNumber
}, {
name: "outline-width",
type: l.size,
triggersBounds: u.any
}, {
name: "outline-style",
type: l.borderStyle
}, {
name: "outline-offset",
type: l.size,
triggersBounds: u.any
}], T = [{
name: "background-image",
type: l.urls
}, {
name: "background-image-crossorigin",
type: l.bgCrossOrigin
}, {
name: "background-image-opacity",
type: l.zeroOneNumbers
}, {
name: "background-image-containment",
type: l.bgContainment
}, {
name: "background-image-smoothing",
type: l.bools
}, {
name: "background-position-x",
type: l.bgPos
}, {
name: "background-position-y",
type: l.bgPos
}, {
name: "background-width-relative-to",
type: l.bgRelativeTo
}, {
name: "background-height-relative-to",
type: l.bgRelativeTo
}, {
name: "background-repeat",
type: l.bgRepeat
}, {
name: "background-fit",
type: l.bgFit
}, {
name: "background-clip",
type: l.bgClip
}, {
name: "background-width",
type: l.bgWH
}, {
name: "background-height",
type: l.bgWH
}, {
name: "background-offset-x",
type: l.bgPos
}, {
name: "background-offset-y",
type: l.bgPos
}], k = [{
name: "position",
type: l.position,
triggersBounds: u.any
}, {
name: "compound-sizing-wrt-labels",
type: l.compoundIncludeLabels,
triggersBounds: u.any
}, {
name: "min-width",
type: l.size,
triggersBounds: u.any
}, {
name: "min-width-bias-left",
type: l.sizeMaybePercent,
triggersBounds: u.any
}, {
name: "min-width-bias-right",
type: l.sizeMaybePercent,
triggersBounds: u.any
}, {
name: "min-height",
type: l.size,
triggersBounds: u.any
}, {
name: "min-height-bias-top",
type: l.sizeMaybePercent,
triggersBounds: u.any
}, {
name: "min-height-bias-bottom",
type: l.sizeMaybePercent,
triggersBounds: u.any
}], _ = [{
name: "line-style",
type: l.lineStyle
}, {
name: "line-color",
type: l.color
}, {
name: "line-fill",
type: l.fill
}, {
name: "line-cap",
type: l.lineCap
}, {
name: "line-opacity",
type: l.zeroOneNumber
}, {
name: "line-dash-pattern",
type: l.numbers
}, {
name: "line-dash-offset",
type: l.number
}, {
name: "line-outline-width",
type: l.size
}, {
name: "line-outline-color",
type: l.color
}, {
name: "line-gradient-stop-colors",
type: l.colors
}, {
name: "line-gradient-stop-positions",
type: l.percentages
}, {
name: "curve-style",
type: l.curveStyle,
triggersBounds: u.any,
triggersBoundsOfParallelBeziers: true
}, {
name: "haystack-radius",
type: l.zeroOneNumber,
triggersBounds: u.any
}, {
name: "source-endpoint",
type: l.edgeEndpoint,
triggersBounds: u.any
}, {
name: "target-endpoint",
type: l.edgeEndpoint,
triggersBounds: u.any
}, {
name: "control-point-step-size",
type: l.size,
triggersBounds: u.any
}, {
name: "control-point-distances",
type: l.bidirectionalSizes,
triggersBounds: u.any
}, {
name: "control-point-weights",
type: l.numbers,
triggersBounds: u.any
}, {
name: "segment-distances",
type: l.bidirectionalSizes,
triggersBounds: u.any
}, {
name: "segment-weights",
type: l.numbers,
triggersBounds: u.any
}, {
name: "segment-radii",
type: l.numbers,
triggersBounds: u.any
}, {
name: "radius-type",
type: l.radiusType,
triggersBounds: u.any
}, {
name: "taxi-turn",
type: l.bidirectionalSizeMaybePercent,
triggersBounds: u.any
}, {
name: "taxi-turn-min-distance",
type: l.size,
triggersBounds: u.any
}, {
name: "taxi-direction",
type: l.axisDirection,
triggersBounds: u.any
}, {
name: "taxi-radius",
type: l.number,
triggersBounds: u.any
}, {
name: "edge-distances",
type: l.edgeDistances,
triggersBounds: u.any
}, {
name: "arrow-scale",
type: l.positiveNumber,
triggersBounds: u.any
}, {
name: "loop-direction",
type: l.angle,
triggersBounds: u.any
}, {
name: "loop-sweep",
type: l.angle,
triggersBounds: u.any
}, {
name: "source-distance-from-node",
type: l.size,
triggersBounds: u.any
}, {
name: "target-distance-from-node",
type: l.size,
triggersBounds: u.any
}], D = [{
name: "ghost",
type: l.bool,
triggersBounds: u.any
}, {
name: "ghost-offset-x",
type: l.bidirectionalSize,
triggersBounds: u.any
}, {
name: "ghost-offset-y",
type: l.bidirectionalSize,
triggersBounds: u.any
}, {
name: "ghost-opacity",
type: l.zeroOneNumber
}], O = [{
name: "selection-box-color",
type: l.color
}, {
name: "selection-box-opacity",
type: l.zeroOneNumber
}, {
name: "selection-box-border-color",
type: l.color
}, {
name: "selection-box-border-width",
type: l.size
}, {
name: "active-bg-color",
type: l.color
}, {
name: "active-bg-opacity",
type: l.zeroOneNumber
}, {
name: "active-bg-size",
type: l.size
}, {
name: "outside-texture-bg-color",
type: l.color
}, {
name: "outside-texture-bg-opacity",
type: l.zeroOneNumber
}], I = [];
Rt.pieBackgroundN = 16, I.push({
name: "pie-size",
type: l.sizeMaybePercent
});
for (var L = 1; L <= Rt.pieBackgroundN; L++)
I.push({
name: "pie-" + L + "-background-color",
type: l.color
}), I.push({
name: "pie-" + L + "-background-size",
type: l.percent
}), I.push({
name: "pie-" + L + "-background-opacity",
type: l.zeroOneNumber
});
var B = [], F = Rt.arrowPrefixes = ["source", "mid-source", "target", "mid-target"];
[{
name: "arrow-shape",
type: l.arrowShape,
triggersBounds: u.any
}, {
name: "arrow-color",
type: l.color
}, {
name: "arrow-fill",
type: l.arrowFill
}, {
name: "arrow-width",
type: l.arrowWidth
}].forEach(function(te) {
F.forEach(function($) {
var G = $ + "-" + te.name, Q = te.type, ge2 = te.triggersBounds;
B.push({
name: G,
type: Q,
triggersBounds: ge2
});
});
}, {});
var M = Rt.properties = [].concat(p, b, m, g, y, D, f, h6, c, d, v, C, E, x, T, I, k, _, B, O), A = Rt.propertyGroups = {
// common to all eles
behavior: p,
transition: b,
visibility: m,
overlay: g,
underlay: y,
ghost: D,
// labels
commonLabel: f,
labelDimensions: h6,
mainLabel: c,
sourceLabel: d,
targetLabel: v,
// node props
nodeBody: C,
nodeBorder: E,
nodeOutline: x,
backgroundImage: T,
pie: I,
compound: k,
// edge props
edgeLine: _,
edgeArrow: B,
core: O
}, R = Rt.propertyGroupNames = {}, K10 = Rt.propertyGroupKeys = Object.keys(A);
K10.forEach(function(te) {
R[te] = A[te].map(function($) {
return $.name;
}), A[te].forEach(function($) {
return $.groupKey = te;
});
});
var H = Rt.aliases = [{
name: "content",
pointsTo: "label"
}, {
name: "control-point-distance",
pointsTo: "control-point-distances"
}, {
name: "control-point-weight",
pointsTo: "control-point-weights"
}, {
name: "segment-distance",
pointsTo: "segment-distances"
}, {
name: "segment-weight",
pointsTo: "segment-weights"
}, {
name: "segment-radius",
pointsTo: "segment-radii"
}, {
name: "edge-text-rotation",
pointsTo: "text-rotation"
}, {
name: "padding-left",
pointsTo: "padding"
}, {
name: "padding-right",
pointsTo: "padding"
}, {
name: "padding-top",
pointsTo: "padding"
}, {
name: "padding-bottom",
pointsTo: "padding"
}];
Rt.propertyNames = M.map(function(te) {
return te.name;
});
for (var q = 0; q < M.length; q++) {
var ee = M[q];
M[ee.name] = ee;
}
for (var se2 = 0; se2 < H.length; se2++) {
var oe = H[se2], ae = M[oe.pointsTo], ue = {
name: oe.name,
alias: true,
pointsTo: ae
};
M.push(ue), M[oe.name] = ue;
}
})();
Rt.getDefaultProperty = function(t20) {
return this.getDefaultProperties()[t20];
};
Rt.getDefaultProperties = function() {
var t20 = this._private;
if (t20.defaultProperties != null)
return t20.defaultProperties;
for (var e = Re({
// core props
"selection-box-color": "#ddd",
"selection-box-opacity": 0.65,
"selection-box-border-color": "#aaa",
"selection-box-border-width": 1,
"active-bg-color": "black",
"active-bg-opacity": 0.15,
"active-bg-size": 30,
"outside-texture-bg-color": "#000",
"outside-texture-bg-opacity": 0.125,
// common node/edge props
events: "yes",
"text-events": "no",
"text-valign": "top",
"text-halign": "center",
"text-justification": "auto",
"line-height": 1,
color: "#000",
"text-outline-color": "#000",
"text-outline-width": 0,
"text-outline-opacity": 1,
"text-opacity": 1,
"text-decoration": "none",
"text-transform": "none",
"text-wrap": "none",
"text-overflow-wrap": "whitespace",
"text-max-width": 9999,
"text-background-color": "#000",
"text-background-opacity": 0,
"text-background-shape": "rectangle",
"text-background-padding": 0,
"text-border-opacity": 0,
"text-border-width": 0,
"text-border-style": "solid",
"text-border-color": "#000",
"font-family": "Helvetica Neue, Helvetica, sans-serif",
"font-style": "normal",
"font-weight": "normal",
"font-size": 16,
"min-zoomed-font-size": 0,
"text-rotation": "none",
"source-text-rotation": "none",
"target-text-rotation": "none",
visibility: "visible",
display: "element",
opacity: 1,
"z-compound-depth": "auto",
"z-index-compare": "auto",
"z-index": 0,
label: "",
"text-margin-x": 0,
"text-margin-y": 0,
"source-label": "",
"source-text-offset": 0,
"source-text-margin-x": 0,
"source-text-margin-y": 0,
"target-label": "",
"target-text-offset": 0,
"target-text-margin-x": 0,
"target-text-margin-y": 0,
"overlay-opacity": 0,
"overlay-color": "#000",
"overlay-padding": 10,
"overlay-shape": "round-rectangle",
"overlay-corner-radius": "auto",
"underlay-opacity": 0,
"underlay-color": "#000",
"underlay-padding": 10,
"underlay-shape": "round-rectangle",
"underlay-corner-radius": "auto",
"transition-property": "none",
"transition-duration": 0,
"transition-delay": 0,
"transition-timing-function": "linear",
// node props
"background-blacken": 0,
"background-color": "#999",
"background-fill": "solid",
"background-opacity": 1,
"background-image": "none",
"background-image-crossorigin": "anonymous",
"background-image-opacity": 1,
"background-image-containment": "inside",
"background-image-smoothing": "yes",
"background-position-x": "50%",
"background-position-y": "50%",
"background-offset-x": 0,
"background-offset-y": 0,
"background-width-relative-to": "include-padding",
"background-height-relative-to": "include-padding",
"background-repeat": "no-repeat",
"background-fit": "none",
"background-clip": "node",
"background-width": "auto",
"background-height": "auto",
"border-color": "#000",
"border-opacity": 1,
"border-width": 0,
"border-style": "solid",
"border-dash-pattern": [4, 2],
"border-dash-offset": 0,
"border-cap": "butt",
"border-join": "miter",
"border-position": "center",
"outline-color": "#999",
"outline-opacity": 1,
"outline-width": 0,
"outline-offset": 0,
"outline-style": "solid",
height: 30,
width: 30,
shape: "ellipse",
"shape-polygon-points": "-1, -1, 1, -1, 1, 1, -1, 1",
"corner-radius": "auto",
"bounds-expansion": 0,
// node gradient
"background-gradient-direction": "to-bottom",
"background-gradient-stop-colors": "#999",
"background-gradient-stop-positions": "0%",
// ghost props
ghost: "no",
"ghost-offset-y": 0,
"ghost-offset-x": 0,
"ghost-opacity": 0,
// compound props
padding: 0,
"padding-relative-to": "width",
position: "origin",
"compound-sizing-wrt-labels": "include",
"min-width": 0,
"min-width-bias-left": 0,
"min-width-bias-right": 0,
"min-height": 0,
"min-height-bias-top": 0,
"min-height-bias-bottom": 0
}, {
// node pie bg
"pie-size": "100%"
}, [{
name: "pie-{{i}}-background-color",
value: "black"
}, {
name: "pie-{{i}}-background-size",
value: "0%"
}, {
name: "pie-{{i}}-background-opacity",
value: 1
}].reduce(function(u, l) {
for (var c = 1; c <= Rt.pieBackgroundN; c++) {
var d = l.name.replace("{{i}}", c), v = l.value;
u[d] = v;
}
return u;
}, {}), {
// edge props
"line-style": "solid",
"line-color": "#999",
"line-fill": "solid",
"line-cap": "butt",
"line-opacity": 1,
"line-outline-width": 0,
"line-outline-color": "#000",
"line-gradient-stop-colors": "#999",
"line-gradient-stop-positions": "0%",
"control-point-step-size": 40,
"control-point-weights": 0.5,
"segment-weights": 0.5,
"segment-distances": 20,
"segment-radii": 15,
"radius-type": "arc-radius",
"taxi-turn": "50%",
"taxi-radius": 15,
"taxi-turn-min-distance": 10,
"taxi-direction": "auto",
"edge-distances": "intersection",
"curve-style": "haystack",
"haystack-radius": 0,
"arrow-scale": 1,
"loop-direction": "-45deg",
"loop-sweep": "-90deg",
"source-distance-from-node": 0,
"target-distance-from-node": 0,
"source-endpoint": "outside-to-node",
"target-endpoint": "outside-to-node",
"line-dash-pattern": [6, 3],
"line-dash-offset": 0
}, [{
name: "arrow-shape",
value: "none"
}, {
name: "arrow-color",
value: "#999"
}, {
name: "arrow-fill",
value: "filled"
}, {
name: "arrow-width",
value: 1
}].reduce(function(u, l) {
return Rt.arrowPrefixes.forEach(function(c) {
var d = c + "-" + l.name, v = l.value;
u[d] = v;
}), u;
}, {})), r = {}, n = 0; n < this.properties.length; n++) {
var a = this.properties[n];
if (!a.pointsTo) {
var i = a.name, o = e[i], s = this.parse(i, o);
r[i] = s;
}
}
return t20.defaultProperties = r, t20.defaultProperties;
};
Rt.addDefaultStylesheet = function() {
this.selector(":parent").css({
shape: "rectangle",
padding: 10,
"background-color": "#eee",
"border-color": "#ccc",
"border-width": 1
}).selector("edge").css({
width: 3
}).selector(":loop").css({
"curve-style": "bezier"
}).selector("edge:compound").css({
"curve-style": "bezier",
"source-endpoint": "outside-to-line",
"target-endpoint": "outside-to-line"
}).selector(":selected").css({
"background-color": "#0169D9",
"line-color": "#0169D9",
"source-arrow-color": "#0169D9",
"target-arrow-color": "#0169D9",
"mid-source-arrow-color": "#0169D9",
"mid-target-arrow-color": "#0169D9"
}).selector(":parent:selected").css({
"background-color": "#CCE1F9",
"border-color": "#aec8e5"
}).selector(":active").css({
"overlay-color": "black",
"overlay-padding": 10,
"overlay-opacity": 0.25
}), this.defaultLength = this.length;
};
var vl = {};
vl.parse = function(t20, e, r, n) {
var a = this;
if (pt(e))
return a.parseImplWarn(t20, e, r, n);
var i = n === "mapping" || n === true || n === false || n == null ? "dontcare" : n, o = r ? "t" : "f", s = "" + e, u = ip(t20, s, o, i), l = a.propCache = a.propCache || [], c;
return (c = l[u]) || (c = l[u] = a.parseImplWarn(t20, e, r, n)), (r || n === "mapping") && (c = Zr(c), c && (c.value = Zr(c.value))), c;
};
vl.parseImplWarn = function(t20, e, r, n) {
var a = this.parseImpl(t20, e, r, n);
return !a && e != null && tt("The style property `".concat(t20, ": ").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;
};
vl.parseImpl = function(t20, e, r, n) {
var a = this;
t20 = sc(t20);
var i = a.properties[t20], o = e, s = a.types;
if (!i || e === void 0)
return null;
i.alias && (i = i.pointsTo, t20 = i.name);
var u = Ie(e);
u && (e = e.trim());
var l = i.type;
if (!l)
return null;
if (r && (e === "" || e === null))
return {
name: t20,
value: e,
bypass: true,
deleteBypass: true
};
if (pt(e))
return {
name: t20,
value: e,
strValue: "fn",
mapped: s.fn,
bypass: r
};
var c, d;
if (!(!u || n || e.length < 7 || e[1] !== "a")) {
if (e.length >= 7 && e[0] === "d" && (c = new RegExp(s.data.regex).exec(e))) {
if (r)
return false;
var v = s.data;
return {
name: t20,
value: c,
strValue: "" + e,
mapped: v,
field: c[1],
bypass: r
};
} else if (e.length >= 10 && e[0] === "m" && (d = new RegExp(s.mapData.regex).exec(e))) {
if (r || l.multiple)
return false;
var h6 = s.mapData;
if (!(l.color || l.number))
return false;
var f = this.parse(t20, d[4]);
if (!f || f.mapped)
return false;
var p = this.parse(t20, d[5]);
if (!p || p.mapped)
return false;
if (f.pfValue === p.pfValue || f.strValue === p.strValue)
return tt("`" + t20 + ": " + e + "` is not a valid mapper because the output range is zero; converting to `" + t20 + ": " + f.strValue + "`"), this.parse(t20, f.strValue);
if (l.color) {
var m = f.value, g = p.value, y = m[0] === g[0] && m[1] === g[1] && m[2] === g[2] && // optional alpha
(m[3] === g[3] || (m[3] == null || m[3] === 1) && (g[3] == null || g[3] === 1));
if (y)
return false;
}
return {
name: t20,
value: d,
strValue: "" + e,
mapped: h6,
field: d[1],
fieldMin: parseFloat(d[2]),
// min & max are numeric
fieldMax: parseFloat(d[3]),
valueMin: f.value,
valueMax: p.value,
bypass: r
};
}
}
if (l.multiple && n !== "multiple") {
var b;
if (u ? b = e.split(/\s+/) : st(e) ? b = e : b = [e], l.evenMultiple && b.length % 2 !== 0)
return null;
for (var w = [], C = [], E = [], x = "", T = false, k = 0; k < b.length; k++) {
var _ = a.parse(t20, b[k], r, "multiple");
T = T || Ie(_.value), w.push(_.value), E.push(_.pfValue != null ? _.pfValue : _.value), C.push(_.units), x += (k > 0 ? " " : "") + _.strValue;
}
return l.validate && !l.validate(w, C) ? null : l.singleEnum && T ? w.length === 1 && Ie(w[0]) ? {
name: t20,
value: w[0],
strValue: w[0],
bypass: r
} : null : {
name: t20,
value: w,
pfValue: E,
strValue: x,
bypass: r,
units: C
};
}
var D = function() {
for (var $ = 0; $ < l.enums.length; $++) {
var G = l.enums[$];
if (G === e)
return {
name: t20,
value: e,
strValue: "" + e,
bypass: r
};
}
return null;
};
if (l.number) {
var O, I = "px";
if (l.units && (O = l.units), l.implicitUnits && (I = l.implicitUnits), !l.unitless)
if (u) {
var L = "px|em" + (l.allowPercent ? "|\\%" : "");
O && (L = O);
var B = e.match("^(" + Ft + ")(" + L + ")?$");
B && (e = B[1], O = B[2] || I);
} else (!O || l.implicitUnits) && (O = I);
if (e = parseFloat(e), isNaN(e) && l.enums === void 0)
return null;
if (isNaN(e) && l.enums !== void 0)
return e = o, D();
if (l.integer && !oT(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))
return null;
var F = {
name: t20,
value: e,
strValue: "" + e + (O || ""),
units: O,
bypass: r
};
return l.unitless || O !== "px" && O !== "em" ? F.pfValue = e : F.pfValue = O === "px" || !O ? e : this.getEmSizeInPixels() * e, (O === "ms" || O === "s") && (F.pfValue = O === "ms" ? e : 1e3 * e), (O === "deg" || O === "rad") && (F.pfValue = O === "rad" ? e : z5(e)), O === "%" && (F.pfValue = e / 100), F;
} else if (l.propList) {
var M = [], A = "" + e;
if (A !== "none") {
for (var R = A.split(/\s*,\s*|\s+/), K10 = 0; K10 < R.length; K10++) {
var H = R[K10].trim();
a.properties[H] ? M.push(H) : tt("`" + H + "` is not a valid property name");
}
if (M.length === 0)
return null;
}
return {
name: t20,
value: M,
strValue: M.length === 0 ? "none" : M.join(" "),
bypass: r
};
} else if (l.color) {
var q = ET(e);
return q ? {
name: t20,
value: q,
pfValue: q,
strValue: "rgb(" + q[0] + "," + q[1] + "," + q[2] + ")",
// n.b. no spaces b/c of multiple support
bypass: r
} : null;
} else if (l.regex || l.regexes) {
if (l.enums) {
var ee = D();
if (ee)
return ee;
}
for (var se2 = l.regexes ? l.regexes : [l.regex], oe = 0; oe < se2.length; oe++) {
var ae = new RegExp(se2[oe]), ue = ae.exec(e);
if (ue)
return {
name: t20,
value: l.singleRegexMatchValue ? ue[1] : ue,
strValue: "" + e,
bypass: r
};
}
return null;
} else return l.string ? {
name: t20,
value: "" + e,
strValue: "" + e,
bypass: r
} : l.enums ? D() : null;
};
var rr = function t9(e) {
if (!(this instanceof t9))
return new t9(e);
if (!oc(e)) {
yt("A style must have a core reference");
return;
}
this._private = {
cy: e,
coreStyle: {}
}, this.length = 0, this.resetToDefault();
};
var ar = rr.prototype;
ar.instanceString = function() {
return "style";
};
ar.clear = function() {
for (var t20 = this._private, e = t20.cy, r = e.elements(), n = 0; n < this.length; n++)
this[n] = void 0;
return this.length = 0, t20.contextStyles = {}, t20.propDiffs = {}, this.cleanElements(r, true), r.forEach(function(a) {
var i = a[0]._private;
i.styleDirty = true, i.appliedInitStyle = false;
}), this;
};
ar.resetToDefault = function() {
return this.clear(), this.addDefaultStylesheet(), this;
};
ar.core = function(t20) {
return this._private.coreStyle[t20] || this.getDefaultProperty(t20);
};
ar.selector = function(t20) {
var e = t20 === "core" ? null : new Un(t20), r = this.length++;
return this[r] = {
selector: e,
properties: [],
mappedProperties: [],
index: r
}, this;
};
ar.css = function() {
var t20 = this, e = arguments;
if (e.length === 1)
for (var r = e[0], n = 0; n < t20.properties.length; n++) {
var a = t20.properties[n], i = r[a.name];
i === void 0 && (i = r[Js(a.name)]), i !== void 0 && this.cssRule(a.name, i);
}
else e.length === 2 && this.cssRule(e[0], e[1]);
return this;
};
ar.style = ar.css;
ar.cssRule = function(t20, e) {
var r = this.parse(t20, e);
if (r) {
var n = this.length - 1;
this[n].properties.push(r), this[n].properties[r.name] = r, r.name.match(/pie-(\d+)-background-size/) && r.value && (this._private.hasPie = true), r.mapped && this[n].mappedProperties.push(r);
var a = !this[n].selector;
a && (this._private.coreStyle[r.name] = r);
}
return this;
};
ar.append = function(t20) {
return Zh(t20) ? t20.appendToStyle(this) : st(t20) ? this.appendFromJson(t20) : Ie(t20) && this.appendFromString(t20), this;
};
rr.fromJson = function(t20, e) {
var r = new rr(t20);
return r.fromJson(e), r;
};
rr.fromString = function(t20, e) {
return new rr(t20).fromString(e);
};
[ir, Fo, xc, rn, fl, Cc, Rt, vl].forEach(function(t20) {
Re(ar, t20);
});
rr.types = ar.types;
rr.properties = ar.properties;
rr.propertyGroups = ar.propertyGroups;
rr.propertyGroupNames = ar.propertyGroupNames;
rr.propertyGroupKeys = ar.propertyGroupKeys;
var oP = {
style: function(e) {
if (e) {
var r = this.setStyle(e);
r.update();
}
return this._private.style;
},
setStyle: function(e) {
var r = this._private;
return Zh(e) ? r.style = e.generateStyle(this) : st(e) ? r.style = rr.fromJson(this, e) : Ie(e) ? r.style = rr.fromString(this, e) : r.style = rr(this), r.style;
},
// e.g. cy.data() changed => recalc ele mappers
updateStyle: function() {
this.mutableElements().updateStyle();
}
};
var sP = "single";
var xa = {
autolock: function(e) {
if (e !== void 0)
this._private.autolock = !!e;
else
return this._private.autolock;
return this;
},
autoungrabify: function(e) {
if (e !== void 0)
this._private.autoungrabify = !!e;
else
return this._private.autoungrabify;
return this;
},
autounselectify: function(e) {
if (e !== void 0)
this._private.autounselectify = !!e;
else
return this._private.autounselectify;
return this;
},
selectionType: function(e) {
var r = this._private;
if (r.selectionType == null && (r.selectionType = sP), e !== void 0)
(e === "additive" || e === "single") && (r.selectionType = e);
else
return r.selectionType;
return this;
},
panningEnabled: function(e) {
if (e !== void 0)
this._private.panningEnabled = !!e;
else
return this._private.panningEnabled;
return this;
},
userPanningEnabled: function(e) {
if (e !== void 0)
this._private.userPanningEnabled = !!e;
else
return this._private.userPanningEnabled;
return this;
},
zoomingEnabled: function(e) {
if (e !== void 0)
this._private.zoomingEnabled = !!e;
else
return this._private.zoomingEnabled;
return this;
},
userZoomingEnabled: function(e) {
if (e !== void 0)
this._private.userZoomingEnabled = !!e;
else
return this._private.userZoomingEnabled;
return this;
},
boxSelectionEnabled: function(e) {
if (e !== void 0)
this._private.boxSelectionEnabled = !!e;
else
return this._private.boxSelectionEnabled;
return this;
},
pan: function() {
var e = arguments, r = this._private.pan, n, a, i, o, s;
switch (e.length) {
case 0:
return r;
case 1:
if (Ie(e[0]))
return n = e[0], r[n];
if (Xe(e[0])) {
if (!this._private.panningEnabled)
return this;
i = e[0], o = i.x, s = i.y, be(o) && (r.x = o), be(s) && (r.y = s), this.emit("pan viewport");
}
break;
case 2:
if (!this._private.panningEnabled)
return this;
n = e[0], a = e[1], (n === "x" || n === "y") && be(a) && (r[n] = a), this.emit("pan viewport");
break;
}
return this.notify("viewport"), this;
},
panBy: function(e, r) {
var n = arguments, a = this._private.pan, i, o, s, u, l;
if (!this._private.panningEnabled)
return this;
switch (n.length) {
case 1:
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"));
break;
case 2:
i = e, o = r, (i === "x" || i === "y") && be(o) && (a[i] += o), this.emit("pan viewport");
break;
}
return this.notify("viewport"), this;
},
fit: function(e, r) {
var n = this.getFitViewport(e, r);
if (n) {
var a = this._private;
a.zoom = n.zoom, a.pan = n.pan, this.emit("pan zoom viewport"), this.notify("viewport");
}
return this;
},
getFitViewport: function(e, r) {
if (be(e) && r === void 0 && (r = e, e = void 0), !(!this._private.panningEnabled || !this._private.zoomingEnabled)) {
var n;
if (Ie(e)) {
var a = e;
e = this.$(a);
} else if (uT(e)) {
var i = e;
n = {
x1: i.x1,
y1: i.y1,
x2: i.x2,
y2: i.y2
}, n.w = n.x2 - n.x1, n.h = n.y2 - n.y1;
} else yr(e) || (e = this.mutableElements());
if (!(yr(e) && e.empty())) {
n = n || e.boundingBox();
var o = this.width(), s = this.height(), u;
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) {
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;
var l = {
// now pan to middle
x: (o - u * (n.x1 + n.x2)) / 2,
y: (s - u * (n.y1 + n.y2)) / 2
};
return {
zoom: u,
pan: l
};
}
}
}
},
zoomRange: function(e, r) {
var n = this._private;
if (r == null) {
var a = e;
e = a.min, r = a.max;
}
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;
},
minZoom: function(e) {
return e === void 0 ? this._private.minZoom : this.zoomRange({
min: e
});
},
maxZoom: function(e) {
return e === void 0 ? this._private.maxZoom : this.zoomRange({
max: e
});
},
getZoomedViewport: function(e) {
var r = this._private, n = r.pan, a = r.zoom, i, o, s = false;
if (r.zoomingEnabled || (s = true), 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 = true)), 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)))
return null;
if (i != null) {
var u = n, l = a, c = o, d = {
x: -c / l * (i.x - u.x) + i.x,
y: -c / l * (i.y - u.y) + i.y
};
return {
zoomed: true,
panned: true,
zoom: c,
pan: d
};
} else
return {
zoomed: true,
panned: false,
zoom: o,
pan: n
};
},
zoom: function(e) {
if (e === void 0)
return this._private.zoom;
var r = this.getZoomedViewport(e), n = this._private;
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);
},
viewport: function(e) {
var r = this._private, n = true, a = true, i = [], o = false, s = false;
if (!e)
return this;
if (be(e.zoom) || (n = false), Xe(e.pan) || (a = false), !n && !a)
return this;
if (n) {
var u = e.zoom;
u < r.minZoom || u > r.maxZoom || !r.zoomingEnabled ? o = true : (r.zoom = u, i.push("zoom"));
}
if (a && (!o || !e.cancelOnFailedZoom) && r.panningEnabled) {
var l = e.pan;
be(l.x) && (r.pan.x = l.x, s = false), be(l.y) && (r.pan.y = l.y, s = false), s || i.push("pan");
}
return i.length > 0 && (i.push("viewport"), this.emit(i.join(" ")), this.notify("viewport")), this;
},
center: function(e) {
var r = this.getCenterPan(e);
return r && (this._private.pan = r, this.emit("pan viewport"), this.notify("viewport")), this;
},
getCenterPan: function(e, r) {
if (this._private.panningEnabled) {
if (Ie(e)) {
var n = e;
e = this.mutableElements().filter(n);
} else yr(e) || (e = this.mutableElements());
if (e.length !== 0) {
var a = e.boundingBox(), i = this.width(), o = this.height();
r = r === void 0 ? this._private.zoom : r;
var s = {
// middle
x: (i - r * (a.x1 + a.x2)) / 2,
y: (o - r * (a.y1 + a.y2)) / 2
};
return s;
}
}
},
reset: function() {
return !this._private.panningEnabled || !this._private.zoomingEnabled ? this : (this.viewport({
pan: {
x: 0,
y: 0
},
zoom: 1
}), this);
},
invalidateSize: function() {
this._private.sizeCache = null;
},
size: function() {
var e = this._private, r = e.container, n = this;
return e.sizeCache = e.sizeCache || (r ? function() {
var a = n.window().getComputedStyle(r), i = function(s) {
return parseFloat(a.getPropertyValue(s));
};
return {
width: r.clientWidth - i("padding-left") - i("padding-right"),
height: r.clientHeight - i("padding-top") - i("padding-bottom")
};
}() : {
// fallback if no container (not 0 b/c can be used for dividing etc)
width: 1,
height: 1
});
},
width: function() {
return this.size().width;
},
height: function() {
return this.size().height;
},
extent: function() {
var e = this._private.pan, r = this._private.zoom, n = this.renderedExtent(), a = {
x1: (n.x1 - e.x) / r,
x2: (n.x2 - e.x) / r,
y1: (n.y1 - e.y) / r,
y2: (n.y2 - e.y) / r
};
return a.w = a.x2 - a.x1, a.h = a.y2 - a.y1, a;
},
renderedExtent: function() {
var e = this.width(), r = this.height();
return {
x1: 0,
y1: 0,
x2: e,
y2: r,
w: e,
h: r
};
},
multiClickDebounceTime: function(e) {
if (e) this._private.multiClickDebounceTime = e;
else return this._private.multiClickDebounceTime;
return this;
}
};
xa.centre = xa.center;
xa.autolockNodes = xa.autolock;
xa.autoungrabifyNodes = xa.autoungrabify;
var co = {
data: et.data({
field: "data",
bindingEvent: "data",
allowBinding: true,
allowSetting: true,
settingEvent: "data",
settingTriggersEvent: true,
triggerFnName: "trigger",
allowGetting: true,
updateStyle: true
}),
removeData: et.removeData({
field: "data",
event: "data",
triggerFnName: "trigger",
triggerEvent: true,
updateStyle: true
}),
scratch: et.data({
field: "scratch",
bindingEvent: "scratch",
allowBinding: true,
allowSetting: true,
settingEvent: "scratch",
settingTriggersEvent: true,
triggerFnName: "trigger",
allowGetting: true,
updateStyle: true
}),
removeScratch: et.removeData({
field: "scratch",
event: "scratch",
triggerFnName: "trigger",
triggerEvent: true,
updateStyle: true
})
};
co.attr = co.data;
co.removeAttr = co.removeData;
var fo = function(e) {
var r = this;
e = Re({}, e);
var n = e.container;
n && !Ds(n) && Ds(n[0]) && (n = n[0]);
var a = n ? n._cyreg : null;
a = a || {}, a && a.cy && (a.cy.destroy(), a = {});
var i = a.readies = a.readies || [];
n && (n._cyreg = a), a.cy = r;
var o = Ot !== void 0 && n !== void 0 && !e.headless, s = e;
s.layout = Re({
name: o ? "grid" : "null"
}, s.layout), s.renderer = Re({
name: o ? "canvas" : "null"
}, s.renderer);
var u = function(f, p, m) {
return p !== void 0 ? p : m !== void 0 ? m : f;
}, l = this._private = {
container: n,
// html dom ele container
ready: false,
// whether ready has been triggered
options: s,
// cached options
elements: new Gt(this),
// elements in the graph
listeners: [],
// list of listeners
aniEles: new Gt(this),
// elements being animated
data: s.data || {},
// data for the core
scratch: {},
// scratch object for core
layout: null,
renderer: null,
destroyed: false,
// whether destroy was called
notificationsEnabled: true,
// whether notifications are sent to the renderer
minZoom: 1e-50,
maxZoom: 1e50,
zoomingEnabled: u(true, s.zoomingEnabled),
userZoomingEnabled: u(true, s.userZoomingEnabled),
panningEnabled: u(true, s.panningEnabled),
userPanningEnabled: u(true, s.userPanningEnabled),
boxSelectionEnabled: u(true, s.boxSelectionEnabled),
autolock: u(false, s.autolock, s.autolockNodes),
autoungrabify: u(false, s.autoungrabify, s.autoungrabifyNodes),
autounselectify: u(false, s.autounselectify),
styleEnabled: s.styleEnabled === void 0 ? o : s.styleEnabled,
zoom: be(s.zoom) ? s.zoom : 1,
pan: {
x: Xe(s.pan) && be(s.pan.x) ? s.pan.x : 0,
y: Xe(s.pan) && be(s.pan.y) ? s.pan.y : 0
},
animation: {
// object for currently-running animations
current: [],
queue: []
},
hasCompoundNodes: false,
multiClickDebounceTime: u(250, s.multiClickDebounceTime)
};
this.createEmitter(), this.selectionType(s.selectionType), this.zoomRange({
min: s.minZoom,
max: s.maxZoom
});
var c = function(f, p) {
var m = f.some(cT);
if (m)
return hi.all(f).then(p);
p(f);
};
l.styleEnabled && r.setStyle([]);
var d = Re({}, s, s.renderer);
r.initRenderer(d);
var v = function(f, p, m) {
r.notifications(false);
var g = r.mutableElements();
g.length > 0 && g.remove(), f != null && (Xe(f) || st(f)) && r.add(f), r.one("layoutready", function(b) {
r.notifications(true), r.emit(b), r.one("load", p), r.emitAndNotify("load");
}).one("layoutstop", function() {
r.one("done", m), r.emit("done");
});
var y = Re({}, r._private.options.layout);
y.eles = r.elements(), r.layout(y).run();
};
c([s.style, s.elements], function(h6) {
var f = h6[0], p = h6[1];
l.styleEnabled && r.style().append(f), v(p, function() {
r.startAnimationLoop(), l.ready = true, pt(s.ready) && r.on("ready", s.ready);
for (var m = 0; m < i.length; m++) {
var g = i[m];
r.on("ready", g);
}
a && (a.readies = []), r.emit("ready");
}, s.done);
});
};
var Ms = fo.prototype;
Re(Ms, {
instanceString: function() {
return "core";
},
isReady: function() {
return this._private.ready;
},
destroyed: function() {
return this._private.destroyed;
},
ready: function(e) {
return this.isReady() ? this.emitter().emit("ready", [], e) : this.on("ready", e), this;
},
destroy: function() {
var e = this;
if (!e.destroyed())
return e.stopAnimationLoop(), e.destroyRenderer(), this.emit("destroy"), e._private.destroyed = true, e;
},
hasElementWithId: function(e) {
return this._private.elements.hasElementWithId(e);
},
getElementById: function(e) {
return this._private.elements.getElementById(e);
},
hasCompoundNodes: function() {
return this._private.hasCompoundNodes;
},
headless: function() {
return this._private.renderer.isHeadless();
},
styleEnabled: function() {
return this._private.styleEnabled;
},
addToPool: function(e) {
return this._private.elements.merge(e), this;
},
removeFromPool: function(e) {
return this._private.elements.unmerge(e), this;
},
container: function() {
return this._private.container || null;
},
window: function() {
var e = this._private.container;
if (e == null) return Ot;
var r = this._private.container.ownerDocument;
return r === void 0 || r == null ? Ot : r.defaultView || Ot;
},
mount: function(e) {
if (e != null) {
var r = this, n = r._private, a = n.options;
return !Ds(e) && Ds(e[0]) && (e = e[0]), r.stopAnimationLoop(), r.destroyRenderer(), n.container = e, n.styleEnabled = true, r.invalidateSize(), r.initRenderer(Re({}, a, a.renderer, {
// allow custom renderer name to be re-used, otherwise use canvas
name: a.renderer.name === "null" ? "canvas" : a.renderer.name
})), r.startAnimationLoop(), r.style(a.style), r.emit("mount"), r;
}
},
unmount: function() {
var e = this;
return e.stopAnimationLoop(), e.destroyRenderer(), e.initRenderer({
name: "null"
}), e.emit("unmount"), e;
},
options: function() {
return Zr(this._private.options);
},
json: function(e) {
var r = this, n = r._private, a = r.mutableElements(), i = function(w) {
return r.getElementById(w.id());
};
if (Xe(e)) {
if (r.startBatch(), e.elements) {
var o = {}, s = function(w, C) {
for (var E = [], x = [], T = 0; T < w.length; T++) {
var k = w[T];
if (!k.data.id) {
tt("cy.json() cannot handle elements without an ID attribute");
continue;
}
var _ = "" + k.data.id, D = r.getElementById(_);
o[_] = true, D.length !== 0 ? x.push({
ele: D,
json: k
}) : (C && (k.group = C), E.push(k));
}
r.add(E);
for (var O = 0; O < x.length; O++) {
var I = x[O], L = I.ele, B = I.json;
L.json(B);
}
};
if (st(e.elements))
s(e.elements);
else
for (var u = ["nodes", "edges"], l = 0; l < u.length; l++) {
var c = u[l], d = e.elements[c];
st(d) && s(d, c);
}
var v = r.collection();
a.filter(function(b) {
return !o[b.id()];
}).forEach(function(b) {
b.isParent() ? v.merge(b) : b.remove();
}), v.forEach(function(b) {
return b.children().move({
parent: null
});
}), v.forEach(function(b) {
return i(b).remove();
});
}
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);
for (var h6 = ["minZoom", "maxZoom", "zoomingEnabled", "userZoomingEnabled", "panningEnabled", "userPanningEnabled", "boxSelectionEnabled", "autolock", "autoungrabify", "autounselectify", "multiClickDebounceTime"], f = 0; f < h6.length; f++) {
var p = h6[f];
e[p] != null && r[p](e[p]);
}
return r.endBatch(), this;
} else {
var m = !!e, g = {};
m ? g.elements = this.elements().map(function(b) {
return b.json();
}) : (g.elements = {}, a.forEach(function(b) {
var w = b.group();
g.elements[w] || (g.elements[w] = []), g.elements[w].push(b.json());
})), this._private.styleEnabled && (g.style = r.style().json()), g.data = Zr(r.data());
var y = n.options;
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;
}
}
});
Ms.$id = Ms.getElementById;
[XD, tP, Xp, vu, hs, nP, hu, ps, oP, xa, co].forEach(function(t20) {
Re(Ms, t20);
});
var lP = {
fit: true,
// whether to fit the viewport to the graph
directed: false,
// whether the tree is directed downwards (or edges can point in any direction if false)
padding: 30,
// padding on fit
circle: false,
// put depths in concentric circles if true, put depths top down if false
grid: false,
// whether to create an even grid into which the DAG is placed (circle:false only)
spacingFactor: 1.75,
// positive spacing factor, larger => more space between nodes (N.B. n/a if causes overlap)
boundingBox: void 0,
// constrain layout bounds; { x1, y1, x2, y2 } or { x1, y1, w, h }
avoidOverlap: true,
// prevents node overlap, may overflow boundingBox if not enough space
nodeDimensionsIncludeLabels: false,
// Excludes the label when calculating node bounding boxes for the layout algorithm
roots: void 0,
// the roots of the trees
depthSort: void 0,
// a sorting function to order nodes at equal depth. e.g. function(a, b){ return a.data('weight') - b.data('weight') }
animate: false,
// whether to transition the node positions
animationDuration: 500,
// duration of animation in ms if enabled
animationEasing: void 0,
// easing of animation if enabled,
animateFilter: function(e, r) {
return true;
},
// 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
ready: void 0,
// callback on layoutready
stop: void 0,
// callback on layoutstop
transform: function(e, r) {
return r;
}
// transform a given node position. Useful for changing flow direction in discrete layouts
};
var uP = {
maximal: false,
// 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
acyclic: false
// 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
};
var Ba = function(e) {
return e.scratch("breadthfirst");
};
var Wf = function(e, r) {
return e.scratch("breadthfirst", r);
};
function jp(t20) {
this.options = Re({}, lP, uP, t20);
}
jp.prototype.run = function() {
var t20 = this.options, e = t20, r = t20.cy, n = e.eles, a = n.nodes().filter(function(fe) {
return !fe.isParent();
}), i = n, o = e.directed, s = e.acyclic || e.maximal || e.maximalAdjustments > 0, u = pr(e.boundingBox ? e.boundingBox : {
x1: 0,
y1: 0,
w: r.width(),
h: r.height()
}), l;
if (yr(e.roots))
l = e.roots;
else if (st(e.roots)) {
for (var c = [], d = 0; d < e.roots.length; d++) {
var v = e.roots[d], h6 = r.getElementById(v);
c.push(h6);
}
l = r.collection(c);
} else if (Ie(e.roots))
l = r.$(e.roots);
else if (o)
l = a.roots();
else {
var f = n.components();
l = r.collection();
for (var p = function(me) {
var xe = f[me], ke2 = xe.maxDegree(false), Ce = xe.filter(function(De) {
return De.degree(false) === ke2;
});
l = l.add(Ce);
}, m = 0; m < f.length; m++)
p(m);
}
var g = [], y = {}, b = function(me, xe) {
g[xe] == null && (g[xe] = []);
var ke2 = g[xe].length;
g[xe].push(me), Wf(me, {
index: ke2,
depth: xe
});
}, w = function(me, xe) {
var ke2 = Ba(me), Ce = ke2.depth, De = ke2.index;
g[Ce][De] = null, b(me, xe);
};
i.bfs({
roots: l,
directed: e.directed,
visit: function(me, xe, ke2, Ce, De) {
var qe = me[0], Ke = qe.id();
b(qe, De), y[Ke] = true;
}
});
for (var C = [], E = 0; E < a.length; E++) {
var x = a[E];
y[x.id()] || C.push(x);
}
var T = function(me) {
for (var xe = g[me], ke2 = 0; ke2 < xe.length; ke2++) {
var Ce = xe[ke2];
if (Ce == null) {
xe.splice(ke2, 1), ke2--;
continue;
}
Wf(Ce, {
depth: me,
index: ke2
});
}
}, k = function() {
for (var me = 0; me < g.length; me++)
T(me);
}, _ = function(me, xe) {
for (var ke2 = Ba(me), Ce = me.incomers().filter(function(S) {
return S.isNode() && n.has(S);
}), De = -1, qe = me.id(), Ke = 0; Ke < Ce.length; Ke++) {
var Be = Ce[Ke], Ge = Ba(Be);
De = Math.max(De, Ge.depth);
}
if (ke2.depth <= De) {
if (!e.acyclic && xe[qe])
return null;
var le = De + 1;
return w(me, le), xe[qe] = le, true;
}
return false;
};
if (o && s) {
var D = [], O = {}, I = function(me) {
return D.push(me);
}, L = function() {
return D.shift();
};
for (a.forEach(function(fe) {
return D.push(fe);
}); D.length > 0; ) {
var B = L(), F = _(B, O);
if (F)
B.outgoers().filter(function(fe) {
return fe.isNode() && n.has(fe);
}).forEach(I);
else if (F === null) {
tt("Detected double maximal shift for node `" + B.id() + "`. Bailing maximal adjustment due to cycle. Use `options.maximal: true` only on DAGs.");
break;
}
}
}
k();
var M = 0;
if (e.avoidOverlap)
for (var A = 0; A < a.length; A++) {
var R = a[A], K10 = R.layoutDimensions(e), H = K10.w, q = K10.h;
M = Math.max(M, H, q);
}
var ee = {}, se2 = function(me) {
if (ee[me.id()])
return ee[me.id()];
for (var xe = Ba(me).depth, ke2 = me.neighborhood(), Ce = 0, De = 0, qe = 0; qe < ke2.length; qe++) {
var Ke = ke2[qe];
if (!(Ke.isEdge() || Ke.isParent() || !a.has(Ke))) {
var Be = Ba(Ke);
if (Be != null) {
var Ge = Be.index, le = Be.depth;
if (!(Ge == null || le == null)) {
var S = g[le].length;
le < xe && (Ce += Ge / S, De++);
}
}
}
}
return De = Math.max(1, De), Ce = Ce / De, De === 0 && (Ce = 0), ee[me.id()] = Ce, Ce;
}, oe = function(me, xe) {
var ke2 = se2(me), Ce = se2(xe), De = ke2 - Ce;
return De === 0 ? jh(me.id(), xe.id()) : De;
};
e.depthSort !== void 0 && (oe = e.depthSort);
for (var ae = 0; ae < g.length; ae++)
g[ae].sort(oe), T(ae);
for (var ue = [], te = 0; te < C.length; te++)
ue.push(C[te]);
g.unshift(ue), k();
for (var $ = 0, G = 0; G < g.length; G++)
$ = Math.max(g[G].length, $);
var Q = {
x: u.x1 + u.w / 2,
y: u.x1 + u.h / 2
}, ge2 = g.reduce(function(fe, me) {
return Math.max(fe, me.length);
}, 0), Ee2 = function(me) {
var xe = Ba(me), ke2 = xe.depth, Ce = xe.index, De = g[ke2].length, qe = Math.max(u.w / ((e.grid ? ge2 : 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);
if (Be = Math.max(Be, M), e.circle) {
var le = Be * ke2 + Be - (g.length > 0 && g[0].length <= 3 ? Be / 2 : 0), S = 2 * Math.PI / g[ke2].length * Ce;
return ke2 === 0 && g[0].length === 1 && (le = 1), {
x: Q.x + le * Math.cos(S),
y: Q.y + le * Math.sin(S)
};
} else {
var Ge = {
x: Q.x + (Ce + 1 - (De + 1) / 2) * qe,
y: (ke2 + 1) * Ke
};
return Ge;
}
};
return n.nodes().layoutPositions(this, e, Ee2), this;
};
var cP = {
fit: true,
// whether to fit the viewport to the graph
padding: 30,
// the padding on fit
boundingBox: void 0,
// constrain layout bounds; { x1, y1, x2, y2 } or { x1, y1, w, h }
avoidOverlap: true,
// prevents node overlap, may overflow boundingBox and radius if not enough space
nodeDimensionsIncludeLabels: false,
// Excludes the label when calculating node bounding boxes for the layout algorithm
spacingFactor: void 0,
// Applies a multiplicative factor (>0) to expand or compress the overall area that the nodes take up
radius: void 0,
// the radius of the circle
startAngle: 3 / 2 * Math.PI,
// where nodes start in radians
sweep: void 0,
// how many radians should be between the first and last node (defaults to full circle)
clockwise: true,
// whether the layout should go clockwise (true) or counterclockwise/anticlockwise (false)
sort: void 0,
// a sorting function to order the nodes; e.g. function(a, b){ return a.data('weight') - b.data('weight') }
animate: false,
// whether to transition the node positions
animationDuration: 500,
// duration of animation in ms if enabled
animationEasing: void 0,
// easing of animation if enabled
animateFilter: function(e, r) {
return true;
},
// 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
ready: void 0,
// callback on layoutready
stop: void 0,
// callback on layoutstop
transform: function(e, r) {
return r;
}
// transform a given node position. Useful for changing flow direction in discrete layouts
};
function Qp(t20) {
this.options = Re({}, cP, t20);
}
Qp.prototype.run = function() {
var t20 = this.options, e = t20, r = t20.cy, n = e.eles, a = e.counterclockwise !== void 0 ? !e.counterclockwise : e.clockwise, i = n.nodes().not(":parent");
e.sort && (i = i.sort(e.sort));
for (var o = pr(e.boundingBox ? e.boundingBox : {
x1: 0,
y1: 0,
w: r.width(),
h: r.height()
}), s = {
x: o.x1 + o.w / 2,
y: o.y1 + o.h / 2
}, 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++) {
var h6 = i[v], f = h6.layoutDimensions(e), p = f.w, m = f.h;
d = Math.max(d, p, m);
}
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) {
d *= 1.75;
var g = Math.cos(l) - Math.cos(0), y = Math.sin(l) - Math.sin(0), b = Math.sqrt(d * d / (g * g + y * y));
c = Math.max(b, c);
}
var w = function(E, x) {
var T = e.startAngle + x * l * (a ? 1 : -1), k = c * Math.cos(T), _ = c * Math.sin(T), D = {
x: s.x + k,
y: s.y + _
};
return D;
};
return n.nodes().layoutPositions(this, e, w), this;
};
var dP = {
fit: true,
// whether to fit the viewport to the graph
padding: 30,
// the padding on fit
startAngle: 3 / 2 * Math.PI,
// where nodes start in radians
sweep: void 0,
// how many radians should be between the first and last node (defaults to full circle)
clockwise: true,
// whether the layout should go clockwise (true) or counterclockwise/anticlockwise (false)
equidistant: false,
// whether levels have an equal radial distance betwen them, may cause bounding box overflow
minNodeSpacing: 10,
// min spacing between outside of nodes (used for radius adjustment)
boundingBox: void 0,
// constrain layout bounds; { x1, y1, x2, y2 } or { x1, y1, w, h }
avoidOverlap: true,
// prevents node overlap, may overflow boundingBox if not enough space
nodeDimensionsIncludeLabels: false,
// Excludes the label when calculating node bounding boxes for the layout algorithm
height: void 0,
// height of layout area (overrides container height)
width: void 0,
// width of layout area (overrides container width)
spacingFactor: void 0,
// Applies a multiplicative factor (>0) to expand or compress the overall area that the nodes take up
concentric: function(e) {
return e.degree();
},
levelWidth: function(e) {
return e.maxDegree() / 4;
},
animate: false,
// whether to transition the node positions
animationDuration: 500,
// duration of animation in ms if enabled
animationEasing: void 0,
// easing of animation if enabled
animateFilter: function(e, r) {
return true;
},
// 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
ready: void 0,
// callback on layoutready
stop: void 0,
// callback on layoutstop
transform: function(e, r) {
return r;
}
// transform a given node position. Useful for changing flow direction in discrete layouts
};
function Jp(t20) {
this.options = Re({}, dP, t20);
}
Jp.prototype.run = function() {
for (var t20 = this.options, e = t20, r = e.counterclockwise !== void 0 ? !e.counterclockwise : e.clockwise, n = t20.cy, a = e.eles, i = a.nodes().not(":parent"), o = pr(e.boundingBox ? e.boundingBox : {
x1: 0,
y1: 0,
w: n.width(),
h: n.height()
}), s = {
x: o.x1 + o.w / 2,
y: o.y1 + o.h / 2
}, u = [], l = 0, c = 0; c < i.length; c++) {
var d = i[c], v = void 0;
v = e.concentric(d), u.push({
value: v,
node: d
}), d._private.scratch.concentric = v;
}
i.updateStyle();
for (var h6 = 0; h6 < i.length; h6++) {
var f = i[h6], p = f.layoutDimensions(e);
l = Math.max(l, p.w, p.h);
}
u.sort(function(fe, me) {
return me.value - fe.value;
});
for (var m = e.levelWidth(i), g = [[]], y = g[0], b = 0; b < u.length; b++) {
var w = u[b];
if (y.length > 0) {
var C = Math.abs(y[0].value - w.value);
C >= m && (y = [], g.push(y));
}
y.push(w);
}
var E = l + e.minNodeSpacing;
if (!e.avoidOverlap) {
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);
E = Math.min(E, k);
}
for (var _ = 0, D = 0; D < g.length; D++) {
var O = g[D], I = e.sweep === void 0 ? 2 * Math.PI - 2 * Math.PI / O.length : e.sweep, L = O.dTheta = I / Math.max(1, O.length - 1);
if (O.length > 1 && e.avoidOverlap) {
var B = Math.cos(L) - Math.cos(0), F = Math.sin(L) - Math.sin(0), M = Math.sqrt(E * E / (B * B + F * F));
_ = Math.max(M, _);
}
O.r = _, _ += E;
}
if (e.equidistant) {
for (var A = 0, R = 0, K10 = 0; K10 < g.length; K10++) {
var H = g[K10], q = H.r - R;
A = Math.max(A, q);
}
R = 0;
for (var ee = 0; ee < g.length; ee++) {
var se2 = g[ee];
ee === 0 && (R = se2.r), se2.r = R, R += A;
}
}
for (var oe = {}, ae = 0; ae < g.length; ae++)
for (var ue = g[ae], te = ue.dTheta, $ = ue.r, G = 0; G < ue.length; G++) {
var Q = ue[G], ge2 = e.startAngle + (r ? 1 : -1) * te * G, Ee2 = {
x: s.x + $ * Math.cos(ge2),
y: s.y + $ * Math.sin(ge2)
};
oe[Q.node.id()] = Ee2;
}
return a.nodes().layoutPositions(this, e, function(fe) {
var me = fe.id();
return oe[me];
}), this;
};
var Hl;
var fP = {
// Called on `layoutready`
ready: function() {
},
// Called on `layoutstop`
stop: function() {
},
// Whether to animate while running the layout
// true : Animate continuously as the layout is running
// false : Just show the end result
// 'end' : Animate with the end result, from the initial positions to the end positions
animate: true,
// Easing of the animation for animate:'end'
animationEasing: void 0,
// The duration of the animation for animate:'end'
animationDuration: void 0,
// 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
animateFilter: function(e, r) {
return true;
},
// The layout animates only after this many milliseconds for animate:true
// (prevents flashing on fast runs)
animationThreshold: 250,
// Number of iterations between consecutive screen positions update
refresh: 20,
// Whether to fit the network view after when done
fit: true,
// Padding on fit
padding: 30,
// Constrain layout bounds; { x1, y1, x2, y2 } or { x1, y1, w, h }
boundingBox: void 0,
// Excludes the label when calculating node bounding boxes for the layout algorithm
nodeDimensionsIncludeLabels: false,
// Randomize the initial positions of the nodes (true) or use existing positions (false)
randomize: false,
// Extra spacing between components in non-compound graphs
componentSpacing: 40,
// Node repulsion (non overlapping) multiplier
nodeRepulsion: function(e) {
return 2048;
},
// Node repulsion (overlapping) multiplier
nodeOverlap: 4,
// Ideal edge (non nested) length
idealEdgeLength: function(e) {
return 32;
},
// Divisor to compute edge forces
edgeElasticity: function(e) {
return 32;
},
// Nesting factor (multiplier) to compute ideal edge length for nested edges
nestingFactor: 1.2,
// Gravity force (constant)
gravity: 1,
// Maximum number of iterations to perform
numIter: 1e3,
// Initial temperature (maximum node displacement)
initialTemp: 1e3,
// Cooling factor (how the temperature is reduced between consecutive iterations
coolingFactor: 0.99,
// Lower temperature threshold (below this point the layout will end)
minTemp: 1
};
function hl(t20) {
this.options = Re({}, fP, t20), this.options.layout = this;
var e = this.options.eles.nodes(), r = this.options.eles.edges(), n = r.filter(function(a) {
var i = a.source().data("id"), o = a.target().data("id"), s = e.some(function(l) {
return l.data("id") === i;
}), u = e.some(function(l) {
return l.data("id") === o;
});
return !s || !u;
});
this.options.eles = this.options.eles.not(n);
}
hl.prototype.run = function() {
var t20 = this.options, e = t20.cy, r = this;
r.stopped = false, (t20.animate === true || t20.animate === false) && r.emit({
type: "layoutstart",
layout: r
}), t20.debug === true ? Hl = true : Hl = false;
var n = vP(e, r, t20);
Hl && gP(n), t20.randomize && mP(n);
var a = gn(), i = function() {
yP(n, e, t20), t20.fit === true && e.fit(t20.padding);
}, o = function(v) {
return !(r.stopped || v >= t20.numIter || (bP(n, t20), n.temperature = n.temperature * t20.coolingFactor, n.temperature < t20.minTemp));
}, s = function() {
if (t20.animate === true || t20.animate === false)
i(), r.one("layoutstop", t20.stop), r.emit({
type: "layoutstop",
layout: r
});
else {
var v = t20.eles.nodes(), h6 = eg(n, t20, v);
v.layoutPositions(r, t20, h6);
}
}, u = 0, l = true;
if (t20.animate === true) {
var c = function d() {
for (var v = 0; l && v < t20.refresh; )
l = o(u), u++, v++;
if (!l)
Zf(n, t20), s();
else {
var h6 = gn();
h6 - a >= t20.animationThreshold && i(), Ps(d);
}
};
c();
} else {
for (; l; )
l = o(u), u++;
Zf(n, t20), s();
}
return this;
};
hl.prototype.stop = function() {
return this.stopped = true, this.thread && this.thread.stop(), this.emit("layoutstop"), this;
};
hl.prototype.destroy = function() {
return this.thread && this.thread.stop(), this;
};
var vP = function(e, r, n) {
for (var a = n.eles.edges(), i = n.eles.nodes(), o = pr(n.boundingBox ? n.boundingBox : {
x1: 0,
y1: 0,
w: e.width(),
h: e.height()
}), s = {
isCompound: e.hasCompoundNodes(),
layoutNodes: [],
idToIndex: {},
nodeSize: i.size(),
graphSet: [],
indexToGraph: [],
layoutEdges: [],
edgeSize: a.size(),
temperature: n.initialTemp,
clientWidth: o.w,
clientHeight: o.h,
boundingBox: o
}, u = n.eles.components(), l = {}, c = 0; c < u.length; c++)
for (var d = u[c], v = 0; v < d.length; v++) {
var h6 = d[v];
l[h6.id()] = c;
}
for (var c = 0; c < s.nodeSize; c++) {
var f = i[c], p = f.layoutDimensions(n), m = {};
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;
}
for (var g = [], y = 0, b = -1, w = [], c = 0; c < s.nodeSize; c++) {
var f = s.layoutNodes[c], C = f.parentId;
C != null ? s.layoutNodes[s.idToIndex[C]].children.push(f.id) : (g[++b] = f.id, w.push(f.id));
}
for (s.graphSet.push(w); y <= b; ) {
var E = g[y++], x = s.idToIndex[E], h6 = s.layoutNodes[x], T = h6.children;
if (T.length > 0) {
s.graphSet.push(T);
for (var c = 0; c < T.length; c++)
g[++b] = T[c];
}
}
for (var c = 0; c < s.graphSet.length; c++)
for (var k = s.graphSet[c], v = 0; v < k.length; v++) {
var _ = s.idToIndex[k[v]];
s.indexToGraph[_] = c;
}
for (var c = 0; c < s.edgeSize; c++) {
var D = a[c], O = {};
O.id = D.data("id"), O.sourceId = D.data("source"), O.targetId = D.data("target");
var I = pt(n.idealEdgeLength) ? n.idealEdgeLength(D) : n.idealEdgeLength, L = pt(n.edgeElasticity) ? n.edgeElasticity(D) : n.edgeElasticity, B = s.idToIndex[O.sourceId], F = s.idToIndex[O.targetId], M = s.indexToGraph[B], A = s.indexToGraph[F];
if (M != A) {
for (var R = hP(O.sourceId, O.targetId, s), K10 = s.graphSet[R], H = 0, m = s.layoutNodes[B]; K10.indexOf(m.id) === -1; )
m = s.layoutNodes[s.idToIndex[m.parentId]], H++;
for (m = s.layoutNodes[F]; K10.indexOf(m.id) === -1; )
m = s.layoutNodes[s.idToIndex[m.parentId]], H++;
I *= H * n.nestingFactor;
}
O.idealLength = I, O.elasticity = L, s.layoutEdges.push(O);
}
return s;
};
var hP = function(e, r, n) {
var a = pP(e, r, 0, n);
return 2 > a.count ? 0 : a.graph;
};
var pP = function t10(e, r, n, a) {
var i = a.graphSet[n];
if (-1 < i.indexOf(e) && -1 < i.indexOf(r))
return {
count: 2,
graph: n
};
for (var o = 0, s = 0; s < i.length; s++) {
var u = i[s], l = a.idToIndex[u], c = a.layoutNodes[l].children;
if (c.length !== 0) {
var d = a.indexToGraph[a.idToIndex[c[0]]], v = t10(e, r, d, a);
if (v.count !== 0)
if (v.count === 1) {
if (o++, o === 2)
break;
} else
return v;
}
}
return {
count: o,
graph: n
};
};
var gP;
var mP = function(e, r) {
for (var n = e.clientWidth, a = e.clientHeight, i = 0; i < e.nodeSize; i++) {
var o = e.layoutNodes[i];
o.children.length === 0 && !o.isLocked && (o.positionX = Math.random() * n, o.positionY = Math.random() * a);
}
};
var eg = function(e, r, n) {
var a = e.boundingBox, i = {
x1: 1 / 0,
x2: -1 / 0,
y1: 1 / 0,
y2: -1 / 0
};
return r.boundingBox && (n.forEach(function(o) {
var s = e.layoutNodes[e.idToIndex[o.data("id")]];
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);
}), i.w = i.x2 - i.x1, i.h = i.y2 - i.y1), function(o, s) {
var u = e.layoutNodes[e.idToIndex[o.data("id")]];
if (r.boundingBox) {
var l = (u.positionX - i.x1) / i.w, c = (u.positionY - i.y1) / i.h;
return {
x: a.x1 + l * a.w,
y: a.y1 + c * a.h
};
} else
return {
x: u.positionX,
y: u.positionY
};
};
};
var yP = function(e, r, n) {
var a = n.layout, i = n.eles.nodes(), o = eg(e, n, i);
i.positions(o), e.ready !== true && (e.ready = true, a.one("layoutready", n.ready), a.emit({
type: "layoutready",
layout: this
}));
};
var bP = function(e, r, n) {
wP(e, r), EP(e), kP(e, r), SP(e), TP(e);
};
var wP = function(e, r) {
for (var n = 0; n < e.graphSet.length; n++)
for (var a = e.graphSet[n], i = a.length, o = 0; o < i; o++)
for (var s = e.layoutNodes[e.idToIndex[a[o]]], u = o + 1; u < i; u++) {
var l = e.layoutNodes[e.idToIndex[a[u]]];
xP(s, l, e, r);
}
};
var Yf = function(e) {
return -e + 2 * e * Math.random();
};
var xP = function(e, r, n, a) {
var i = e.cmptId, o = r.cmptId;
if (!(i !== o && !n.isCompound)) {
var s = r.positionX - e.positionX, u = r.positionY - e.positionY, l = 1;
s === 0 && u === 0 && (s = Yf(l), u = Yf(l));
var c = CP(e, r, s, u);
if (c > 0)
var d = a.nodeOverlap * c, v = Math.sqrt(s * s + u * u), h6 = d * s / v, f = d * u / v;
else
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, h6 = d * g / v, f = d * y / v;
e.isLocked || (e.offsetX -= h6, e.offsetY -= f), r.isLocked || (r.offsetX += h6, r.offsetY += f);
}
};
var CP = function(e, r, n, a) {
if (n > 0)
var i = e.maxX - r.minX;
else
var i = r.maxX - e.minX;
if (a > 0)
var o = e.maxY - r.minY;
else
var o = r.maxY - e.minY;
return i >= 0 && o >= 0 ? Math.sqrt(i * i + o * o) : 0;
};
var Bs = function(e, r, n) {
var a = e.positionX, i = e.positionY, o = e.height || 1, s = e.width || 1, u = n / r, l = o / s, c = {};
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);
};
var EP = function(e, r) {
for (var n = 0; n < e.edgeSize; 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;
if (!(l === 0 && c === 0)) {
var d = Bs(o, l, c), v = Bs(u, -1 * l, -1 * c), h6 = v.x - d.x, f = v.y - d.y, p = Math.sqrt(h6 * h6 + f * f), m = Math.pow(a.idealLength - p, 2) / a.elasticity;
if (p !== 0)
var g = m * h6 / p, y = m * f / p;
else
var g = 0, y = 0;
o.isLocked || (o.offsetX += g, o.offsetY += y), u.isLocked || (u.offsetX -= g, u.offsetY -= y);
}
}
};
var kP = function(e, r) {
if (r.gravity !== 0)
for (var n = 1, a = 0; a < e.graphSet.length; a++) {
var i = e.graphSet[a], o = i.length;
if (a === 0)
var s = e.clientHeight / 2, u = e.clientWidth / 2;
else
var l = e.layoutNodes[e.idToIndex[i[0]]], c = e.layoutNodes[e.idToIndex[l.parentId]], s = c.positionX, u = c.positionY;
for (var d = 0; d < o; d++) {
var v = e.layoutNodes[e.idToIndex[i[d]]];
if (!v.isLocked) {
var h6 = s - v.positionX, f = u - v.positionY, p = Math.sqrt(h6 * h6 + f * f);
if (p > n) {
var m = r.gravity * h6 / p, g = r.gravity * f / p;
v.offsetX += m, v.offsetY += g;
}
}
}
}
};
var SP = function(e, r) {
var n = [], a = 0, i = -1;
for (n.push.apply(n, e.graphSet[0]), i += e.graphSet[0].length; a <= i; ) {
var o = n[a++], s = e.idToIndex[o], u = e.layoutNodes[s], l = u.children;
if (0 < l.length && !u.isLocked) {
for (var c = u.offsetX, d = u.offsetY, v = 0; v < l.length; v++) {
var h6 = e.layoutNodes[e.idToIndex[l[v]]];
h6.offsetX += c, h6.offsetY += d, n[++i] = l[v];
}
u.offsetX = 0, u.offsetY = 0;
}
}
};
var TP = function(e, r) {
for (var n = 0; n < e.nodeSize; n++) {
var a = e.layoutNodes[n];
0 < a.children.length && (a.maxX = void 0, a.minX = void 0, a.maxY = void 0, a.minY = void 0);
}
for (var n = 0; n < e.nodeSize; n++) {
var a = e.layoutNodes[n];
if (!(0 < a.children.length || a.isLocked)) {
var i = _P(a.offsetX, a.offsetY, e.temperature);
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, DP(a, e);
}
}
for (var n = 0; n < e.nodeSize; n++) {
var a = e.layoutNodes[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);
}
};
var _P = function(e, r, n) {
var a = Math.sqrt(e * e + r * r);
if (a > n)
var i = {
x: n * e / a,
y: n * r / a
};
else
var i = {
x: e,
y: r
};
return i;
};
var DP = function t11(e, r) {
var n = e.parentId;
if (n != null) {
var a = r.layoutNodes[r.idToIndex[n]], i = false;
if ((a.maxX == null || e.maxX + a.padRight > a.maxX) && (a.maxX = e.maxX + a.padRight, i = true), (a.minX == null || e.minX - a.padLeft < a.minX) && (a.minX = e.minX - a.padLeft, i = true), (a.maxY == null || e.maxY + a.padBottom > a.maxY) && (a.maxY = e.maxY + a.padBottom, i = true), (a.minY == null || e.minY - a.padTop < a.minY) && (a.minY = e.minY - a.padTop, i = true), i)
return t11(a, r);
}
};
var Zf = function(e, r) {
for (var n = e.layoutNodes, a = [], i = 0; i < n.length; i++) {
var o = n[i], s = o.cmptId, u = a[s] = a[s] || [];
u.push(o);
}
for (var l = 0, i = 0; i < a.length; i++) {
var c = a[i];
if (c) {
c.x1 = 1 / 0, c.x2 = -1 / 0, c.y1 = 1 / 0, c.y2 = -1 / 0;
for (var d = 0; d < c.length; d++) {
var v = c[d];
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);
}
c.w = c.x2 - c.x1, c.h = c.y2 - c.y1, l += c.w * c.h;
}
}
a.sort(function(y, b) {
return b.w * b.h - y.w * y.h;
});
for (var h6 = 0, f = 0, p = 0, m = 0, g = Math.sqrt(l) * e.clientWidth / e.clientHeight, i = 0; i < a.length; i++) {
var c = a[i];
if (c) {
for (var d = 0; d < c.length; d++) {
var v = c[d];
v.isLocked || (v.positionX += h6 - c.x1, v.positionY += f - c.y1);
}
h6 += c.w + r.componentSpacing, p += c.w + r.componentSpacing, m = Math.max(m, c.h), p > g && (f += m + r.componentSpacing, h6 = 0, p = 0, m = 0);
}
}
};
var PP = {
fit: true,
// whether to fit the viewport to the graph
padding: 30,
// padding used on fit
boundingBox: void 0,
// constrain layout bounds; { x1, y1, x2, y2 } or { x1, y1, w, h }
avoidOverlap: true,
// prevents node overlap, may overflow boundingBox if not enough space
avoidOverlapPadding: 10,
// extra spacing around nodes when avoidOverlap: true
nodeDimensionsIncludeLabels: false,
// Excludes the label when calculating node bounding boxes for the layout algorithm
spacingFactor: void 0,
// Applies a multiplicative factor (>0) to expand or compress the overall area that the nodes take up
condense: false,
// uses all available space on false, uses minimal space on true
rows: void 0,
// force num of rows in the grid
cols: void 0,
// force num of columns in the grid
position: function(e) {
},
// returns { row, col } for element
sort: void 0,
// a sorting function to order the nodes; e.g. function(a, b){ return a.data('weight') - b.data('weight') }
animate: false,
// whether to transition the node positions
animationDuration: 500,
// duration of animation in ms if enabled
animationEasing: void 0,
// easing of animation if enabled
animateFilter: function(e, r) {
return true;
},
// 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
ready: void 0,
// callback on layoutready
stop: void 0,
// callback on layoutstop
transform: function(e, r) {
return r;
}
// transform a given node position. Useful for changing flow direction in discrete layouts
};
function tg(t20) {
this.options = Re({}, PP, t20);
}
tg.prototype.run = function() {
var t20 = this.options, e = t20, r = t20.cy, n = e.eles, a = n.nodes().not(":parent");
e.sort && (a = a.sort(e.sort));
var i = pr(e.boundingBox ? e.boundingBox : {
x1: 0,
y1: 0,
w: r.width(),
h: r.height()
});
if (i.h === 0 || i.w === 0)
n.nodes().layoutPositions(this, e, function(ee) {
return {
x: i.x1,
y: i.y1
};
});
else {
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(se2) {
if (se2 == null)
return Math.min(u, l);
var oe = Math.min(u, l);
oe == u ? u = se2 : l = se2;
}, d = function(se2) {
if (se2 == null)
return Math.max(u, l);
var oe = Math.max(u, l);
oe == u ? u = se2 : l = se2;
}, v = e.rows, h6 = e.cols != null ? e.cols : e.columns;
if (v != null && h6 != null)
u = v, l = h6;
else if (v != null && h6 == null)
u = v, l = Math.ceil(o / u);
else if (v == null && h6 != null)
l = h6, u = Math.ceil(o / l);
else if (l * u > o) {
var f = c(), p = d();
(f - 1) * p >= o ? c(f - 1) : (p - 1) * f >= o && d(p - 1);
} else
for (; l * u < o; ) {
var m = c(), g = d();
(g + 1) * m >= o ? d(g + 1) : c(m + 1);
}
var y = i.w / l, b = i.h / u;
if (e.condense && (y = 0, b = 0), e.avoidOverlap)
for (var w = 0; w < a.length; w++) {
var C = a[w], E = C._private.position;
(E.x == null || E.y == null) && (E.x = 0, E.y = 0);
var x = C.layoutDimensions(e), T = e.avoidOverlapPadding, k = x.w + T, _ = x.h + T;
y = Math.max(y, k), b = Math.max(b, _);
}
for (var D = {}, O = function(se2, oe) {
return !!D["c-" + se2 + "-" + oe];
}, I = function(se2, oe) {
D["c-" + se2 + "-" + oe] = true;
}, L = 0, B = 0, F = function() {
B++, B >= l && (B = 0, L++);
}, M = {}, A = 0; A < a.length; A++) {
var R = a[A], K10 = e.position(R);
if (K10 && (K10.row !== void 0 || K10.col !== void 0)) {
var H = {
row: K10.row,
col: K10.col
};
if (H.col === void 0)
for (H.col = 0; O(H.row, H.col); )
H.col++;
else if (H.row === void 0)
for (H.row = 0; O(H.row, H.col); )
H.row++;
M[R.id()] = H, I(H.row, H.col);
}
}
var q = function(se2, oe) {
var ae, ue;
if (se2.locked() || se2.isParent())
return false;
var te = M[se2.id()];
if (te)
ae = te.col * y + y / 2 + i.x1, ue = te.row * b + b / 2 + i.y1;
else {
for (; O(L, B); )
F();
ae = B * y + y / 2 + i.x1, ue = L * b + b / 2 + i.y1, I(L, B), F();
}
return {
x: ae,
y: ue
};
};
a.layoutPositions(this, e, q);
}
return this;
};
var OP = {
ready: function() {
},
// on layoutready
stop: function() {
}
// on layoutstop
};
function Ec(t20) {
this.options = Re({}, OP, t20);
}
Ec.prototype.run = function() {
var t20 = this.options, e = t20.eles, r = this;
return t20.cy, r.emit("layoutstart"), e.nodes().positions(function() {
return {
x: 0,
y: 0
};
}), r.one("layoutready", t20.ready), r.emit("layoutready"), r.one("layoutstop", t20.stop), r.emit("layoutstop"), this;
};
Ec.prototype.stop = function() {
return this;
};
var LP = {
positions: void 0,
// map of (node id) => (position obj); or function(node){ return somPos; }
zoom: void 0,
// the zoom level to set (prob want fit = false if set)
pan: void 0,
// the pan level to set (prob want fit = false if set)
fit: true,
// whether to fit to viewport
padding: 30,
// padding on fit
spacingFactor: void 0,
// Applies a multiplicative factor (>0) to expand or compress the overall area that the nodes take up
animate: false,
// whether to transition the node positions
animationDuration: 500,
// duration of animation in ms if enabled
animationEasing: void 0,
// easing of animation if enabled
animateFilter: function(e, r) {
return true;
},
// 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
ready: void 0,
// callback on layoutready
stop: void 0,
// callback on layoutstop
transform: function(e, r) {
return r;
}
// transform a given node position. Useful for changing flow direction in discrete layouts
};
function rg(t20) {
this.options = Re({}, LP, t20);
}
rg.prototype.run = function() {
var t20 = this.options, e = t20.eles, r = e.nodes(), n = pt(t20.positions);
function a(i) {
if (t20.positions == null)
return M5(i.position());
if (n)
return t20.positions(i);
var o = t20.positions[i._private.data.id];
return o ?? null;
}
return r.layoutPositions(this, t20, function(i, o) {
var s = a(i);
return i.locked() || s == null ? false : s;
}), this;
};
var FP = {
fit: true,
// whether to fit to viewport
padding: 30,
// fit padding
boundingBox: void 0,
// constrain layout bounds; { x1, y1, x2, y2 } or { x1, y1, w, h }
animate: false,
// whether to transition the node positions
animationDuration: 500,
// duration of animation in ms if enabled
animationEasing: void 0,
// easing of animation if enabled
animateFilter: function(e, r) {
return true;
},
// 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
ready: void 0,
// callback on layoutready
stop: void 0,
// callback on layoutstop
transform: function(e, r) {
return r;
}
// transform a given node position. Useful for changing flow direction in discrete layouts
};
function ng(t20) {
this.options = Re({}, FP, t20);
}
ng.prototype.run = function() {
var t20 = this.options, e = t20.cy, r = t20.eles, n = pr(t20.boundingBox ? t20.boundingBox : {
x1: 0,
y1: 0,
w: e.width(),
h: e.height()
}), a = function(o, s) {
return {
x: n.x1 + Math.round(Math.random() * n.w),
y: n.y1 + Math.round(Math.random() * n.h)
};
};
return r.nodes().layoutPositions(this, t20, a), this;
};
var IP = [{
name: "breadthfirst",
impl: jp
}, {
name: "circle",
impl: Qp
}, {
name: "concentric",
impl: Jp
}, {
name: "cose",
impl: hl
}, {
name: "grid",
impl: tg
}, {
name: "null",
impl: Ec
}, {
name: "preset",
impl: rg
}, {
name: "random",
impl: ng
}];
function ag(t20) {
this.options = t20, this.notifications = 0;
}
var Xf = function() {
};
var jf = function() {
throw new Error("A headless instance can not render images");
};
ag.prototype = {
recalculateRenderedStyle: Xf,
notify: function() {
this.notifications++;
},
init: Xf,
isHeadless: function() {
return true;
},
png: jf,
jpg: jf
};
var kc = {};
kc.arrowShapeWidth = 0.3;
kc.registerArrowShapes = function() {
var t20 = this.arrowShapes = {}, e = this, r = function(l, c, d, v, h6, f, p) {
var m = h6.x - d / 2 - p, g = h6.x + d / 2 + p, y = h6.y - d / 2 - p, b = h6.y + d / 2 + p, w = m <= l && l <= g && y <= c && c <= b;
return w;
}, n = function(l, c, d, v, h6) {
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 + h6.x, b = g + h6.y;
return {
x: y,
y: b
};
}, a = function(l, c, d, v) {
for (var h6 = [], f = 0; f < l.length; f += 2) {
var p = l[f], m = l[f + 1];
h6.push(n(p, m, c, d, v));
}
return h6;
}, i = function(l) {
for (var c = [], d = 0; d < l.length; d++) {
var v = l[d];
c.push(v.x, v.y);
}
return c;
}, o = function(l) {
return l.pstyle("width").pfValue * l.pstyle("arrow-scale").pfValue * 2;
}, s = function(l, c) {
Ie(c) && (c = t20[c]), t20[l] = Re({
name: l,
points: [-0.15, -0.3, 0.15, -0.3, 0.15, 0.3, -0.15, 0.3],
collide: function(v, h6, f, p, m, g) {
var y = i(a(this.points, f + 2 * g, p, m)), b = dr(v, h6, y);
return b;
},
roughCollide: r,
draw: function(v, h6, f, p) {
var m = a(this.points, h6, f, p);
e.arrowShapeImpl("polygon")(v, m);
},
spacing: function(v) {
return 0;
},
gap: o
}, c);
};
s("none", {
collide: Os,
roughCollide: Os,
draw: uc,
spacing: sf,
gap: sf
}), s("triangle", {
points: [-0.15, -0.3, 0, 0, 0.15, -0.3]
}), s("arrow", "triangle"), s("triangle-backcurve", {
points: t20.triangle.points,
controlPoint: [0, -0.15],
roughCollide: r,
draw: function(l, c, d, v, h6) {
var f = a(this.points, c, d, v), p = this.controlPoint, m = n(p[0], p[1], c, d, v);
e.arrowShapeImpl(this.name)(l, f, m);
},
gap: function(l) {
return o(l) * 0.8;
}
}), s("triangle-tee", {
points: [0, 0, 0.15, -0.3, -0.15, -0.3, 0, 0],
pointsTee: [-0.15, -0.4, -0.15, -0.5, 0.15, -0.5, 0.15, -0.4],
collide: function(l, c, d, v, h6, f, p) {
var m = i(a(this.points, d + 2 * p, v, h6)), g = i(a(this.pointsTee, d + 2 * p, v, h6)), y = dr(l, c, m) || dr(l, c, g);
return y;
},
draw: function(l, c, d, v, h6) {
var f = a(this.points, c, d, v), p = a(this.pointsTee, c, d, v);
e.arrowShapeImpl(this.name)(l, f, p);
}
}), s("circle-triangle", {
radius: 0.15,
pointsTr: [0, -0.15, 0.15, -0.45, -0.15, -0.45, 0, -0.15],
collide: function(l, c, d, v, h6, f, p) {
var m = h6, 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, h6));
return dr(l, c, y) || g;
},
draw: function(l, c, d, v, h6) {
var f = a(this.pointsTr, c, d, v);
e.arrowShapeImpl(this.name)(l, f, v.x, v.y, this.radius * c);
},
spacing: function(l) {
return e.getArrowWidth(l.pstyle("width").pfValue, l.pstyle("arrow-scale").value) * this.radius;
}
}), s("triangle-cross", {
points: [0, 0, 0.15, -0.3, -0.15, -0.3, 0, 0],
baseCrossLinePts: [
-0.15,
-0.4,
// first half of the rectangle
-0.15,
-0.4,
0.15,
-0.4,
// second half of the rectangle
0.15,
-0.4
],
crossLinePts: function(l, c) {
var d = this.baseCrossLinePts.slice(), v = c / l, h6 = 3, f = 5;
return d[h6] = d[h6] - v, d[f] = d[f] - v, d;
},
collide: function(l, c, d, v, h6, f, p) {
var m = i(a(this.points, d + 2 * p, v, h6)), g = i(a(this.crossLinePts(d, f), d + 2 * p, v, h6)), y = dr(l, c, m) || dr(l, c, g);
return y;
},
draw: function(l, c, d, v, h6) {
var f = a(this.points, c, d, v), p = a(this.crossLinePts(c, h6), c, d, v);
e.arrowShapeImpl(this.name)(l, f, p);
}
}), s("vee", {
points: [-0.15, -0.3, 0, 0, 0.15, -0.3, 0, -0.15],
gap: function(l) {
return o(l) * 0.525;
}
}), s("circle", {
radius: 0.15,
collide: function(l, c, d, v, h6, f, p) {
var m = h6, g = Math.pow(m.x - l, 2) + Math.pow(m.y - c, 2) <= Math.pow((d + 2 * p) * this.radius, 2);
return g;
},
draw: function(l, c, d, v, h6) {
e.arrowShapeImpl(this.name)(l, v.x, v.y, this.radius * c);
},
spacing: function(l) {
return e.getArrowWidth(l.pstyle("width").pfValue, l.pstyle("arrow-scale").value) * this.radius;
}
}), s("tee", {
points: [-0.15, 0, -0.15, -0.1, 0.15, -0.1, 0.15, 0],
spacing: function(l) {
return 1;
},
gap: function(l) {
return 1;
}
}), s("square", {
points: [-0.15, 0, 0.15, 0, 0.15, -0.3, -0.15, -0.3]
}), s("diamond", {
points: [-0.15, -0.15, 0, -0.3, 0.15, -0.15, 0, 0],
gap: function(l) {
return l.pstyle("width").pfValue * l.pstyle("arrow-scale").value;
}
}), s("chevron", {
points: [0, 0, -0.15, -0.15, -0.1, -0.2, 0, -0.1, 0.1, -0.2, 0.15, -0.15],
gap: function(l) {
return 0.95 * l.pstyle("width").pfValue * l.pstyle("arrow-scale").value;
}
});
};
var Da = {};
Da.projectIntoViewport = function(t20, e) {
var r = this.cy, n = this.findContainerClientCoords(), a = n[0], i = n[1], o = n[4], s = r.pan(), u = r.zoom(), l = ((t20 - a) / o - s.x) / u, c = ((e - i) / o - s.y) / u;
return [l, c];
};
Da.findContainerClientCoords = function() {
if (this.containerBB)
return this.containerBB;
var t20 = this.container, e = t20.getBoundingClientRect(), r = this.cy.window().getComputedStyle(t20), n = function(g) {
return parseFloat(r.getPropertyValue(g));
}, a = {
left: n("padding-left"),
right: n("padding-right"),
top: n("padding-top"),
bottom: n("padding-bottom")
}, i = {
left: n("border-left-width"),
right: n("border-right-width"),
top: n("border-top-width"),
bottom: n("border-bottom-width")
}, o = t20.clientWidth, s = t20.clientHeight, u = a.left + a.right, l = a.top + a.bottom, c = i.left + i.right, d = e.width / (o + c), v = o - u, h6 = s - l, f = e.left + a.left + i.left, p = e.top + a.top + i.top;
return this.containerBB = [f, p, v, h6, d];
};
Da.invalidateContainerClientCoordsCache = function() {
this.containerBB = null;
};
Da.findNearestElement = function(t20, e, r, n) {
return this.findNearestElements(t20, e, r, n)[0];
};
Da.findNearestElements = function(t20, e, r, 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, h6 = 1 / 0, f, p;
r && (o = o.interactive);
function m(x, T) {
if (x.isNode()) {
if (p)
return;
p = x, s.push(x);
}
if (x.isEdge() && (T == null || T < h6))
if (f) {
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) {
for (var k = 0; k < s.length; k++)
if (s[k].isEdge()) {
s[k] = x, f = x, h6 = T ?? h6;
break;
}
}
} else
s.push(x), f = x, h6 = T ?? h6;
}
function g(x) {
var T = x.outerWidth() + 2 * d, k = x.outerHeight() + 2 * d, _ = T / 2, D = k / 2, O = x.position(), I = x.pstyle("corner-radius").value === "auto" ? "auto" : x.pstyle("corner-radius").pfValue, L = x._private.rscratch;
if (O.x - _ <= t20 && t20 <= O.x + _ && O.y - D <= e && e <= O.y + D) {
var B = i.nodeShapes[a.getNodeShape(x)];
if (B.checkPoint(t20, e, 0, T, k, O.x, O.y, I, L))
return m(x, 0), true;
}
}
function y(x) {
var T = x._private, k = T.rscratch, _ = x.pstyle("width").pfValue, D = x.pstyle("arrow-scale").value, O = _ / 2 + c, I = O * O, L = O * 2, A = T.source, R = T.target, B;
if (k.edgeType === "segments" || k.edgeType === "straight" || k.edgeType === "haystack") {
for (var F = k.allpts, M = 0; M + 3 < F.length; M += 2)
if (Y5(t20, e, F[M], F[M + 1], F[M + 2], F[M + 3], L) && I > (B = J5(t20, e, F[M], F[M + 1], F[M + 2], F[M + 3])))
return m(x, B), true;
} else if (k.edgeType === "bezier" || k.edgeType === "multibezier" || k.edgeType === "self" || k.edgeType === "compound") {
for (var F = k.allpts, M = 0; M + 5 < k.allpts.length; M += 4)
if (Z5(t20, e, F[M], F[M + 1], F[M + 2], F[M + 3], F[M + 4], F[M + 5], L) && I > (B = Q5(t20, e, F[M], F[M + 1], F[M + 2], F[M + 3], F[M + 4], F[M + 5])))
return m(x, B), true;
}
for (var A = A || T.source, R = R || T.target, K10 = a.getArrowWidth(_, D), H = [{
name: "source",
x: k.arrowStartX,
y: k.arrowStartY,
angle: k.srcArrowAngle
}, {
name: "target",
x: k.arrowEndX,
y: k.arrowEndY,
angle: k.tgtArrowAngle
}, {
name: "mid-source",
x: k.midX,
y: k.midY,
angle: k.midsrcArrowAngle
}, {
name: "mid-target",
x: k.midX,
y: k.midY,
angle: k.midtgtArrowAngle
}], M = 0; M < H.length; M++) {
var q = H[M], ee = i.arrowShapes[x.pstyle(q.name + "-arrow-shape").value], se2 = x.pstyle("width").pfValue;
if (ee.roughCollide(t20, e, K10, q.angle, {
x: q.x,
y: q.y
}, se2, c) && ee.collide(t20, e, K10, q.angle, {
x: q.x,
y: q.y
}, se2, c))
return m(x), true;
}
l && s.length > 0 && (g(A), g(R));
}
function b(x, T, k) {
return Nr(x, T, k);
}
function w(x, T) {
var k = x._private, _ = v, D;
T ? D = T + "-" : D = "", x.boundingBox();
var O = k.labelBounds[T || "main"], I = x.pstyle(D + "label").value, L = x.pstyle("text-events").strValue === "yes";
if (!(!L || !I)) {
var B = b(k.rscratch, "labelX", T), F = 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, K10 = O.x1 - _ - A, H = O.x2 + _ - A, q = O.y1 - _ - R, ee = O.y2 + _ - R;
if (M) {
var se2 = Math.cos(M), oe = Math.sin(M), ae = function(Ee2, fe) {
return Ee2 = Ee2 - B, fe = fe - F, {
x: Ee2 * se2 - fe * oe + B,
y: Ee2 * oe + fe * se2 + F
};
}, ue = ae(K10, q), te = ae(K10, ee), $ = ae(H, q), G = ae(H, ee), Q = [
// with the margin added after the rotation is applied
ue.x + A,
ue.y + R,
$.x + A,
$.y + R,
G.x + A,
G.y + R,
te.x + A,
te.y + R
];
if (dr(t20, e, Q))
return m(x), true;
} else if (oi(O, t20, e))
return m(x), true;
}
}
for (var C = o.length - 1; C >= 0; C--) {
var E = o[C];
E.isNode() ? g(E) || w(E) : y(E) || w(E) || w(E, "source") || w(E, "target");
}
return s;
};
Da.getAllInBox = function(t20, e, r, n) {
var a = this.getCachedZSortedEles().interactive, i = [], o = Math.min(t20, r), s = Math.max(t20, r), u = Math.min(e, n), l = Math.max(e, n);
t20 = o, r = s, e = u, n = l;
for (var c = pr({
x1: t20,
y1: e,
x2: r,
y2: n
}), d = 0; d < a.length; d++) {
var v = a[d];
if (v.isNode()) {
var h6 = v, f = h6.boundingBox({
includeNodes: true,
includeEdges: false,
includeLabels: false
});
fc(c, f) && !vp(f, c) && i.push(h6);
} else {
var p = v, m = p._private, g = m.rscratch;
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))
continue;
if (g.edgeType === "bezier" || g.edgeType === "multibezier" || g.edgeType === "self" || g.edgeType === "compound" || g.edgeType === "segments" || g.edgeType === "haystack") {
for (var y = m.rstyle.bezierPts || m.rstyle.linePts || m.rstyle.haystackPts, b = true, w = 0; w < y.length; w++)
if (!W5(c, y[w])) {
b = false;
break;
}
b && i.push(p);
} else (g.edgeType === "haystack" || g.edgeType === "straight") && i.push(p);
}
}
return i;
};
var Ns = {};
Ns.calculateArrowAngles = function(t20) {
var e = t20._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, h6, g, y;
if (r ? (c = e.haystackPts[0], d = e.haystackPts[1], v = e.haystackPts[2], h6 = e.haystackPts[3]) : (c = e.arrowStartX, d = e.arrowStartY, v = e.arrowEndX, h6 = e.arrowEndY), g = e.midX, y = e.midY, i)
u = c - e.segpts[0], l = d - e.segpts[1];
else if (a || o || s || 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);
u = c - p, l = d - m;
} else
u = c - g, l = d - y;
e.srcArrowAngle = Wo(u, l);
var g = e.midX, y = e.midY;
if (r && (g = (c + v) / 2, y = (d + h6) / 2), u = v - c, l = h6 - d, i) {
var f = e.allpts;
if (f.length / 2 % 2 === 0) {
var b = f.length / 2, w = b - 2;
u = f[b] - f[w], l = f[b + 1] - f[w + 1];
} else if (e.isRound)
u = e.midVector[1], l = -e.midVector[0];
else {
var b = f.length / 2 - 1, w = b - 2;
u = f[b] - f[w], l = f[b + 1] - f[w + 1];
}
} else if (a || o || s) {
var f = e.allpts, C = e.ctrlpts, E, x, T, k;
if (C.length / 2 % 2 === 0) {
var _ = f.length / 2 - 1, D = _ + 2, O = D + 2;
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);
} else {
var D = f.length / 2 - 1, _ = D - 2, O = D + 2;
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);
}
u = T - E, l = k - x;
}
if (e.midtgtArrowAngle = Wo(u, l), e.midDispX = u, e.midDispY = l, u *= -1, l *= -1, i) {
var f = e.allpts;
if (f.length / 2 % 2 !== 0) {
if (!e.isRound) {
var b = f.length / 2 - 1, I = b + 2;
u = -(f[I] - f[b]), l = -(f[I + 1] - f[b + 1]);
}
}
}
if (e.midsrcArrowAngle = Wo(u, l), i)
u = v - e.segpts[e.segpts.length - 2], l = h6 - e.segpts[e.segpts.length - 1];
else if (a || o || s || 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);
u = v - p, l = h6 - m;
} else
u = v - g, l = h6 - y;
e.tgtArrowAngle = Wo(u, l);
};
Ns.getArrowWidth = Ns.getArrowHeight = function(t20, e) {
var r = this.arrowWidthCache = this.arrowWidthCache || {}, n = r[t20 + ", " + e];
return n || (n = Math.max(Math.pow(t20 * 13.37, 0.9), 29) * e, r[t20 + ", " + e] = n, n);
};
var pu;
var gu;
var Yr = {};
var Cr = {};
var Qf;
var Jf;
var oa;
var gs;
var un;
var ea;
var na;
var Wr;
var Na;
var rs;
var ig;
var og;
var mu;
var yu;
var ev;
var tv = function(e, r, 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);
};
var AP = function(e, r) {
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;
};
var MP = function(e, r, n, a, i) {
if (e !== ev ? tv(r, e, Yr) : AP(Cr, Yr), tv(r, n, Cr), Qf = Yr.nx * Cr.ny - Yr.ny * Cr.nx, Jf = Yr.nx * Cr.nx - Yr.ny * -Cr.ny, un = Math.asin(Math.max(-1, Math.min(1, Qf))), Math.abs(un) < 1e-6) {
pu = r.x, gu = r.y, na = Na = 0;
return;
}
oa = 1, gs = false, Jf < 0 ? un < 0 ? un = Math.PI + un : (un = Math.PI - un, oa = -1, gs = true) : un > 0 && (oa = -1, gs = true), 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, ig = r.x + Yr.nx * Wr, og = r.y + Yr.ny * Wr, ev = r;
};
function sg(t20, e) {
e.radius === 0 ? t20.lineTo(e.cx, e.cy) : t20.arc(e.cx, e.cy, e.radius, e.startAngle, e.endAngle, e.counterClockwise);
}
function Sc(t20, e, r, n) {
var a = arguments.length > 4 && arguments[4] !== void 0 ? arguments[4] : true;
return n === 0 || e.radius === 0 ? {
cx: e.x,
cy: e.y,
radius: 0,
startX: e.x,
startY: e.y,
stopX: e.x,
stopY: e.y,
startAngle: void 0,
endAngle: void 0,
counterClockwise: void 0
} : (MP(t20, e, r, n, a), {
cx: pu,
cy: gu,
radius: na,
startX: ig,
startY: og,
stopX: mu,
stopY: yu,
startAngle: Yr.ang + Math.PI / 2 * oa,
endAngle: Cr.ang - Math.PI / 2 * oa,
counterClockwise: gs
});
}
var or = {};
or.findMidptPtsEtc = function(t20, e) {
var r = e.posPts, n = e.intersectionPts, a = e.vectorNormInverse, i, o = t20.pstyle("source-endpoint"), s = t20.pstyle("target-endpoint"), u = o.units != null && s.units != null, l = function(C, E, x, T) {
var k = T - E, _ = x - C, D = Math.sqrt(_ * _ + k * k);
return {
x: -k / D,
y: _ / D
};
}, c = t20.pstyle("edge-distances").value;
switch (c) {
case "node-position":
i = r;
break;
case "intersection":
i = n;
break;
case "endpoints": {
if (u) {
var d = this.manualEndptToPx(t20.source()[0], o), v = Mr(d, 2), h6 = v[0], f = v[1], p = this.manualEndptToPx(t20.target()[0], s), m = Mr(p, 2), g = m[0], y = m[1], b = {
x1: h6,
y1: f,
x2: g,
y2: y
};
a = l(h6, f, g, y), i = b;
} else
tt("Edge ".concat(t20.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;
break;
}
}
return {
midptPts: i,
vectorNormInverse: a
};
};
or.findHaystackPoints = function(t20) {
for (var e = 0; e < t20.length; e++) {
var r = t20[e], n = r._private, a = n.rscratch;
if (!a.haystack) {
var i = Math.random() * 2 * Math.PI;
a.source = {
x: Math.cos(i),
y: Math.sin(i)
}, i = Math.random() * 2 * Math.PI, a.target = {
x: Math.cos(i),
y: Math.sin(i)
};
}
var o = n.source, s = n.target, u = o.position(), l = s.position(), c = o.width(), d = s.width(), v = o.height(), h6 = s.height(), f = r.pstyle("haystack-radius").value, p = f / 2;
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 * h6 * 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 = true, this.storeEdgeProjections(r), this.calculateArrowAngles(r), this.recalculateEdgeLabelProjections(r), this.calculateLabelAngles(r);
}
};
or.findSegmentsPoints = function(t20, e) {
var r = t20._private.rscratch, n = t20.pstyle("segment-weights"), a = t20.pstyle("segment-distances"), i = t20.pstyle("segment-radii"), o = t20.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];
r.edgeType = "segments", r.segpts = [], r.radii = [], r.isArcRadius = [];
for (var c = 0; c < s; c++) {
var d = n.pfValue[c], v = a.pfValue[c], h6 = 1 - d, f = d, p = this.findMidptPtsEtc(t20, e), m = p.midptPts, g = p.vectorNormInverse, y = {
x: m.x1 * h6 + m.x2 * f,
y: m.y1 * h6 + m.y2 * f
};
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");
}
};
or.findLoopPoints = function(t20, e, r, n) {
var a = t20._private.rscratch, i = e.dirCounts, o = e.srcPos, s = t20.pstyle("control-point-distances"), u = s ? s.pfValue[0] : void 0, l = t20.pstyle("loop-direction").pfValue, c = t20.pstyle("loop-sweep").pfValue, d = t20.pstyle("control-point-step-size").pfValue;
a.edgeType = "self";
var v = r, h6 = d;
n && (v = 0, h6 = u);
var f = l - Math.PI / 2, p = f - c / 2, m = f + c / 2, g = l + "_" + c;
v = i[g] === void 0 ? i[g] = 0 : ++i[g], a.ctrlpts = [o.x + Math.cos(p) * 1.4 * h6 * (v / 3 + 1), o.y + Math.sin(p) * 1.4 * h6 * (v / 3 + 1), o.x + Math.cos(m) * 1.4 * h6 * (v / 3 + 1), o.y + Math.sin(m) * 1.4 * h6 * (v / 3 + 1)];
};
or.findCompoundLoopPoints = function(t20, e, r, n) {
var a = t20._private.rscratch;
a.edgeType = "compound";
var i = e.srcPos, o = e.tgtPos, s = e.srcW, u = e.srcH, l = e.tgtW, c = e.tgtH, d = t20.pstyle("control-point-step-size").pfValue, v = t20.pstyle("control-point-distances"), h6 = v ? v.pfValue[0] : void 0, f = r, p = d;
n && (f = 0, p = h6);
var m = 50, g = {
x: i.x - s / 2,
y: i.y - u / 2
}, y = {
x: o.x - l / 2,
y: o.y - c / 2
}, b = {
x: Math.min(g.x, y.x),
y: Math.min(g.y, y.y)
}, w = 0.5, C = Math.max(w, Math.log(s * 0.01)), E = Math.max(w, Math.log(l * 0.01));
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];
};
or.findStraightEdgePoints = function(t20) {
t20._private.rscratch.edgeType = "straight";
};
or.findBezierPoints = function(t20, e, r, n, a) {
var i = t20._private.rscratch, o = t20.pstyle("control-point-step-size").pfValue, s = t20.pstyle("control-point-distances"), u = t20.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;
i.edgeType = v ? "multibezier" : "bezier", i.ctrlpts = [];
for (var h6 = 0; h6 < l; h6++) {
var f = (0.5 - e.eles.length / 2 + r) * o * (a ? -1 : 1), p = void 0, m = dp(f);
v && (c = s ? s.pfValue[h6] : o, d = u.value[h6]), n ? p = c : p = c !== void 0 ? m * c : void 0;
var g = p !== void 0 ? p : f, y = 1 - d, b = d, w = this.findMidptPtsEtc(t20, e), C = w.midptPts, E = w.vectorNormInverse, x = {
x: C.x1 * y + C.x2 * b,
y: C.y1 * y + C.y2 * b
};
i.ctrlpts.push(x.x + E.x * g, x.y + E.y * g);
}
};
or.findTaxiPoints = function(t20, e) {
var r = t20._private.rscratch;
r.edgeType = "segments";
var n = "vertical", a = "horizontal", i = "leftward", o = "rightward", s = "downward", u = "upward", l = "auto", c = e.posPts, d = e.srcW, v = e.srcH, h6 = e.tgtW, f = e.tgtH, p = t20.pstyle("edge-distances").value, m = p !== "node-position", g = t20.pstyle("taxi-direction").value, y = g, b = t20.pstyle("taxi-turn"), w = b.units === "%", C = b.pfValue, E = C < 0, x = t20.pstyle("taxi-turn-min-distance").pfValue, T = m ? (d + h6) / 2 : 0, k = m ? (v + f) / 2 : 0, _ = c.x2 - c.x1, D = c.y2 - c.y1, O = function(Ae, Me) {
return Ae > 0 ? Math.max(Ae - Me, 0) : Math.min(Ae + Me, 0);
}, I = O(_, T), L = O(D, k), B = false;
y === l ? g = Math.abs(I) > Math.abs(L) ? a : n : y === u || y === s ? (g = n, B = true) : (y === i || y === o) && (g = a, B = true);
var F = g === n, M = F ? L : I, A = F ? D : _, R = dp(A), K10 = false;
!(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), K10 = true);
var H;
if (w) {
var q = C < 0 ? 1 + C : C;
H = q * M;
} else {
var ee = C < 0 ? M : 0;
H = ee + C * R;
}
var se2 = function(Ae) {
return Math.abs(Ae) < x || Math.abs(Ae) >= Math.abs(M);
}, oe = se2(H), ae = se2(Math.abs(M) - Math.abs(H)), ue = oe || ae;
if (ue && !K10)
if (F) {
var te = Math.abs(A) <= v / 2, $ = Math.abs(_) <= h6 / 2;
if (te) {
var G = (c.x1 + c.x2) / 2, Q = c.y1, ge2 = c.y2;
r.segpts = [G, Q, G, ge2];
} else if ($) {
var Ee2 = (c.y1 + c.y2) / 2, fe = c.x1, me = c.x2;
r.segpts = [fe, Ee2, me, Ee2];
} else
r.segpts = [c.x1, c.y2];
} else {
var xe = Math.abs(A) <= d / 2, ke2 = Math.abs(D) <= f / 2;
if (xe) {
var Ce = (c.y1 + c.y2) / 2, De = c.x1, qe = c.x2;
r.segpts = [De, Ce, qe, Ce];
} else if (ke2) {
var Ke = (c.x1 + c.x2) / 2, Be = c.y1, Ge = c.y2;
r.segpts = [Ke, Be, Ke, Ge];
} else
r.segpts = [c.x2, c.y1];
}
else if (F) {
var le = c.y1 + H + (m ? v / 2 * R : 0), S = c.x1, z = c.x2;
r.segpts = [S, le, z, le];
} else {
var ie = c.x1 + H + (m ? d / 2 * R : 0), j = c.y1, Y = c.y2;
r.segpts = [ie, j, ie, Y];
}
if (r.isRound) {
var pe = t20.pstyle("taxi-radius").value, re = t20.pstyle("radius-type").value[0] === "arc-radius";
r.radii = new Array(r.segpts.length / 2).fill(pe), r.isArcRadius = new Array(r.segpts.length / 2).fill(re);
}
};
or.tryToCorrectInvalidPoints = function(t20, e) {
var r = t20._private.rscratch;
if (r.edgeType === "bezier") {
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, h6 = 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(t20.pstyle("width").pfValue, t20.pstyle("arrow-scale").value) * this.arrowShapeWidth, C = b * w, E = ya({
x: r.ctrlpts[0],
y: r.ctrlpts[1]
}, {
x: r.startX,
y: r.startY
}), x = E < C, T = ya({
x: r.ctrlpts[0],
y: r.ctrlpts[1]
}, {
x: r.endX,
y: r.endY
}), k = T < C, _ = false;
if (p || m || x) {
_ = true;
var D = {
// delta
x: r.ctrlpts[0] - n.x,
y: r.ctrlpts[1] - n.y
}, O = Math.sqrt(D.x * D.x + D.y * D.y), I = {
// normalised delta
x: D.x / O,
y: D.y / O
}, L = Math.max(i, o), B = {
// *2 radius guarantees outside shape
x: r.ctrlpts[0] + I.x * 2 * L,
y: r.ctrlpts[1] + I.y * 2 * L
}, F = l.intersectLine(n.x, n.y, i, o, B.x, B.y, 0, d, h6);
x ? (r.ctrlpts[0] = r.ctrlpts[0] + I.x * (C - E), r.ctrlpts[1] = r.ctrlpts[1] + I.y * (C - E)) : (r.ctrlpts[0] = F[0] + I.x * C, r.ctrlpts[1] = F[1] + I.y * C);
}
if (g || y || k) {
_ = true;
var M = {
// delta
x: r.ctrlpts[0] - a.x,
y: r.ctrlpts[1] - a.y
}, A = Math.sqrt(M.x * M.x + M.y * M.y), R = {
// normalised delta
x: M.x / A,
y: M.y / A
}, K10 = Math.max(i, o), H = {
// *2 radius guarantees outside shape
x: r.ctrlpts[0] + R.x * 2 * K10,
y: r.ctrlpts[1] + R.y * 2 * K10
}, q = c.intersectLine(a.x, a.y, s, u, H.x, H.y, 0, v, f);
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);
}
_ && this.findEndpoints(t20);
}
};
or.storeAllpts = function(t20) {
var e = t20._private.rscratch;
if (e.edgeType === "multibezier" || e.edgeType === "bezier" || e.edgeType === "self" || e.edgeType === "compound") {
e.allpts = [], e.allpts.push(e.startX, e.startY);
for (var r = 0; r + 1 < e.ctrlpts.length; r += 2)
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);
e.allpts.push(e.endX, e.endY);
var n, a;
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));
} else if (e.edgeType === "straight")
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;
else if (e.edgeType === "segments") {
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) {
e.roundCorners = [];
for (var i = 2; i + 3 < e.allpts.length; i += 2) {
var o = e.radii[i / 2 - 1], s = e.isArcRadius[i / 2 - 1];
e.roundCorners.push(Sc({
x: e.allpts[i - 2],
y: e.allpts[i - 1]
}, {
x: e.allpts[i],
y: e.allpts[i + 1],
radius: o
}, {
x: e.allpts[i + 2],
y: e.allpts[i + 3]
}, o, s));
}
}
if (e.segpts.length % 4 === 0) {
var u = e.segpts.length / 2, l = u - 2;
e.midX = (e.segpts[l] + e.segpts[u]) / 2, e.midY = (e.segpts[l + 1] + e.segpts[u + 1]) / 2;
} else {
var c = e.segpts.length / 2 - 1;
if (!e.isRound)
e.midX = e.segpts[c], e.midY = e.segpts[c + 1];
else {
var d = {
x: e.segpts[c],
y: e.segpts[c + 1]
}, v = e.roundCorners[c / 2], h6 = [d.x - v.cx, d.y - v.cy], f = v.radius / Math.sqrt(Math.pow(h6[0], 2) + Math.pow(h6[1], 2));
h6 = h6.map(function(p) {
return p * f;
}), e.midX = v.cx + h6[0], e.midY = v.cy + h6[1], e.midVector = h6;
}
}
}
};
or.checkForInvalidEdgeWarning = function(t20) {
var e = t20[0]._private.rscratch;
e.nodesOverlap || be(e.startX) && be(e.startY) && be(e.endX) && be(e.endY) ? e.loggedErr = false : e.loggedErr || (e.loggedErr = true, tt("Edge `" + t20.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."));
};
or.findEdgeControlPoints = function(t20) {
var e = this;
if (!(!t20 || t20.length === 0)) {
for (var r = this, n = r.cy, a = n.hasCompoundNodes(), i = {
map: new Xr(),
get: function(x) {
var T = this.map.get(x[0]);
return T != null ? T.get(x[1]) : null;
},
set: function(x, T) {
var k = this.map.get(x[0]);
k == null && (k = new Xr(), this.map.set(x[0], k)), k.set(x[1], T);
}
}, o = [], s = [], u = 0; u < t20.length; u++) {
var l = t20[u], c = l._private, d = l.pstyle("curve-style").value;
if (!(l.removed() || !l.takesUpSpace())) {
if (d === "haystack") {
s.push(l);
continue;
}
var v = d === "unbundled-bezier" || d.endsWith("segments") || d === "straight" || d === "straight-triangle" || d.endsWith("taxi"), h6 = 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);
b == null && (b = {
eles: []
}, i.set(y, b), o.push(y)), b.eles.push(l), v && (b.hasUnbundled = true), h6 && (b.hasBezier = true);
}
}
for (var w = function(x) {
var T = o[x], k = i.get(T), _ = void 0;
if (!k.hasUnbundled) {
var D = k.eles[0].parallelEdges().filter(function(ie) {
return ie.isBundledBezier();
});
cc(k.eles), D.forEach(function(ie) {
return k.eles.push(ie);
}), k.eles.sort(function(ie, j) {
return ie.poolIndex() - j.poolIndex();
});
}
var O = k.eles[0], I = O.source(), L = O.target();
if (I.poolIndex() > L.poolIndex()) {
var B = I;
I = L, L = B;
}
var F = k.srcPos = I.position(), M = k.tgtPos = L.position(), A = k.srcW = I.outerWidth(), R = k.srcH = I.outerHeight(), K10 = k.tgtW = L.outerWidth(), H = k.tgtH = L.outerHeight(), q = k.srcShape = r.nodeShapes[e.getNodeShape(I)], ee = k.tgtShape = r.nodeShapes[e.getNodeShape(L)], se2 = k.srcCornerRadius = I.pstyle("corner-radius").value === "auto" ? "auto" : I.pstyle("corner-radius").pfValue, oe = k.tgtCornerRadius = L.pstyle("corner-radius").value === "auto" ? "auto" : L.pstyle("corner-radius").pfValue, ae = k.tgtRs = L._private.rscratch, ue = k.srcRs = I._private.rscratch;
k.dirCounts = {
north: 0,
west: 0,
south: 0,
east: 0,
northwest: 0,
southwest: 0,
northeast: 0,
southeast: 0
};
for (var te = 0; te < k.eles.length; te++) {
var $ = k.eles[te], G = $[0]._private.rscratch, Q = $.pstyle("curve-style").value, ge2 = Q === "unbundled-bezier" || Q.endsWith("segments") || Q.endsWith("taxi"), Ee2 = !I.same($.source());
if (!k.calculatedIntersection && I !== L && (k.hasBezier || k.hasUnbundled)) {
k.calculatedIntersection = true;
var fe = q.intersectLine(F.x, F.y, A, R, M.x, M.y, 0, se2, ue), me = k.srcIntn = fe, xe = ee.intersectLine(M.x, M.y, K10, H, F.x, F.y, 0, oe, ae), ke2 = k.tgtIntn = xe, Ce = k.intersectionPts = {
x1: fe[0],
x2: xe[0],
y1: fe[1],
y2: xe[1]
}, De = k.posPts = {
x1: F.x,
x2: M.x,
y1: F.y,
y2: M.y
}, qe = xe[1] - fe[1], Ke = xe[0] - fe[0], Be = Math.sqrt(Ke * Ke + qe * qe), Ge = k.vector = {
x: Ke,
y: qe
}, le = k.vectorNorm = {
x: Ge.x / Be,
y: Ge.y / Be
}, S = {
x: -le.y,
y: le.x
};
k.nodesOverlap = !be(Be) || ee.checkPoint(fe[0], fe[1], 0, K10, H, M.x, M.y, oe, ae) || q.checkPoint(xe[0], xe[1], 0, A, R, F.x, F.y, se2, ue), k.vectorNormInverse = S, _ = {
nodesOverlap: k.nodesOverlap,
dirCounts: k.dirCounts,
calculatedIntersection: true,
hasBezier: k.hasBezier,
hasUnbundled: k.hasUnbundled,
eles: k.eles,
srcPos: M,
tgtPos: F,
srcW: K10,
srcH: H,
tgtW: A,
tgtH: R,
srcIntn: ke2,
tgtIntn: me,
srcShape: ee,
tgtShape: q,
posPts: {
x1: De.x2,
y1: De.y2,
x2: De.x1,
y2: De.y1
},
intersectionPts: {
x1: Ce.x2,
y1: Ce.y2,
x2: Ce.x1,
y2: Ce.y1
},
vector: {
x: -Ge.x,
y: -Ge.y
},
vectorNorm: {
x: -le.x,
y: -le.y
},
vectorNormInverse: {
x: -S.x,
y: -S.y
}
};
}
var z = Ee2 ? _ : k;
G.nodesOverlap = z.nodesOverlap, G.srcIntn = z.srcIntn, G.tgtIntn = z.tgtIntn, G.isRound = Q.startsWith("round"), a && (I.isParent() || I.isChild() || L.isParent() || L.isChild()) && (I.parents().anySame(L) || L.parents().anySame(I) || I.same(L) && I.isParent()) ? e.findCompoundLoopPoints($, z, te, ge2) : I === L ? e.findLoopPoints($, z, te, ge2) : Q.endsWith("segments") ? e.findSegmentsPoints($, z) : Q.endsWith("taxi") ? e.findTaxiPoints($, z) : Q === "straight" || !ge2 && k.eles.length % 2 === 1 && te === Math.floor(k.eles.length / 2) ? e.findStraightEdgePoints($) : e.findBezierPoints($, z, te, ge2, Ee2), e.findEndpoints($), e.tryToCorrectInvalidPoints($, z), e.checkForInvalidEdgeWarning($), e.storeAllpts($), e.storeEdgeProjections($), e.calculateArrowAngles($), e.recalculateEdgeLabelProjections($), e.calculateLabelAngles($);
}
}, C = 0; C < o.length; C++)
w(C);
this.findHaystackPoints(s);
}
};
function lg(t20) {
var e = [];
if (t20 != null) {
for (var r = 0; r < t20.length; r += 2) {
var n = t20[r], a = t20[r + 1];
e.push({
x: n,
y: a
});
}
return e;
}
}
or.getSegmentPoints = function(t20) {
var e = t20[0]._private.rscratch, r = e.edgeType;
if (r === "segments")
return this.recalculateRenderedStyle(t20), lg(e.segpts);
};
or.getControlPoints = function(t20) {
var e = t20[0]._private.rscratch, r = e.edgeType;
if (r === "bezier" || r === "multibezier" || r === "self" || r === "compound")
return this.recalculateRenderedStyle(t20), lg(e.ctrlpts);
};
or.getEdgeMidpoint = function(t20) {
var e = t20[0]._private.rscratch;
return this.recalculateRenderedStyle(t20), {
x: e.midX,
y: e.midY
};
};
var Io = {};
Io.manualEndptToPx = function(t20, e) {
var r = this, n = t20.position(), a = t20.outerWidth(), i = t20.outerHeight(), o = t20._private.rscratch;
if (e.value.length === 2) {
var s = [e.pfValue[0], e.pfValue[1]];
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;
} else {
var u = e.pfValue[0];
u = -Math.PI / 2 + u;
var l = 2 * Math.max(a, i), c = [n.x + Math.cos(u) * l, n.y + Math.sin(u) * l];
return r.nodeShapes[this.getNodeShape(t20)].intersectLine(n.x, n.y, a, i, c[0], c[1], 0, t20.pstyle("corner-radius").value === "auto" ? "auto" : t20.pstyle("corner-radius").pfValue, o);
}
};
Io.findEndpoints = function(t20) {
var e = this, r, n = t20.source()[0], a = t20.target()[0], i = n.position(), o = a.position(), s = t20.pstyle("target-arrow-shape").value, u = t20.pstyle("source-arrow-shape").value, l = t20.pstyle("target-distance-from-node").pfValue, c = t20.pstyle("source-distance-from-node").pfValue, d = n._private.rscratch, v = a._private.rscratch, h6 = t20.pstyle("curve-style").value, f = t20._private.rscratch, p = f.edgeType, m = h6 === "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 = t20.pstyle("source-endpoint"), k = x ? "outside-to-node" : T.value, _ = n.pstyle("corner-radius").value === "auto" ? "auto" : n.pstyle("corner-radius").pfValue, D = t20.pstyle("target-endpoint"), O = x ? "outside-to-node" : D.value, I = a.pstyle("corner-radius").value === "auto" ? "auto" : a.pstyle("corner-radius").pfValue;
f.srcManEndpt = T, f.tgtManEndpt = D;
var L, B, F, M;
if (y) {
var A = [f.ctrlpts[0], f.ctrlpts[1]], R = b ? [f.ctrlpts[f.ctrlpts.length - 2], f.ctrlpts[f.ctrlpts.length - 1]] : A;
L = R, B = A;
} else if (w) {
var K10 = C ? f.segpts.slice(0, 2) : [o.x, o.y], H = C ? f.segpts.slice(f.segpts.length - 2) : [i.x, i.y];
L = H, B = K10;
}
if (O === "inside-to-node")
r = [o.x, o.y];
else if (D.units)
r = this.manualEndptToPx(a, D);
else if (O === "outside-to-line")
r = f.tgtIntn;
else if (O === "outside-to-node" || O === "outside-to-node-or-label" ? F = L : (O === "outside-to-line" || O === "outside-to-line-or-label") && (F = [i.x, i.y]), r = e.nodeShapes[this.getNodeShape(a)].intersectLine(o.x, o.y, a.outerWidth(), a.outerHeight(), F[0], F[1], 0, I, v), O === "outside-to-node-or-label" || O === "outside-to-line-or-label") {
var q = a._private.rscratch, ee = q.labelWidth, se2 = q.labelHeight, oe = q.labelX, ae = q.labelY, ue = ee / 2, te = se2 / 2, $ = a.pstyle("text-valign").value;
$ === "top" ? ae -= te : $ === "bottom" && (ae += te);
var G = a.pstyle("text-halign").value;
G === "left" ? oe -= ue : G === "right" && (oe += ue);
var Q = oo(F[0], F[1], [oe - ue, ae - te, oe + ue, ae - te, oe + ue, ae + te, oe - ue, ae + te], o.x, o.y);
if (Q.length > 0) {
var ge2 = i, Ee2 = ta(ge2, Ha(r)), fe = ta(ge2, Ha(Q)), me = Ee2;
if (fe < Ee2 && (r = Q, me = fe), Q.length > 2) {
var xe = ta(ge2, {
x: Q[2],
y: Q[3]
});
xe < me && (r = [Q[2], Q[3]]);
}
}
}
var ke2 = Yo(r, L, e.arrowShapes[s].spacing(t20) + l), Ce = Yo(r, L, e.arrowShapes[s].gap(t20) + l);
if (f.endX = Ce[0], f.endY = Ce[1], f.arrowEndX = ke2[0], f.arrowEndY = ke2[1], k === "inside-to-node")
r = [i.x, i.y];
else if (T.units)
r = this.manualEndptToPx(n, T);
else if (k === "outside-to-line")
r = f.srcIntn;
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") {
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;
z === "top" ? Ge -= S : z === "bottom" && (Ge += S);
var ie = n.pstyle("text-halign").value;
ie === "left" ? Be -= le : ie === "right" && (Be += le);
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);
if (j.length > 0) {
var Y = o, pe = ta(Y, Ha(r)), re = ta(Y, Ha(j)), ve = pe;
if (re < pe && (r = [j[0], j[1]], ve = re), j.length > 2) {
var Ae = ta(Y, {
x: j[2],
y: j[3]
});
Ae < ve && (r = [j[2], j[3]]);
}
}
}
var Me = Yo(r, B, e.arrowShapes[u].spacing(t20) + c), _e = Yo(r, B, e.arrowShapes[u].gap(t20) + c);
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 = true : f.badLine = false);
};
Io.getSourceEndpoint = function(t20) {
var e = t20[0]._private.rscratch;
switch (this.recalculateRenderedStyle(t20), e.edgeType) {
case "haystack":
return {
x: e.haystackPts[0],
y: e.haystackPts[1]
};
default:
return {
x: e.arrowStartX,
y: e.arrowStartY
};
}
};
Io.getTargetEndpoint = function(t20) {
var e = t20[0]._private.rscratch;
switch (this.recalculateRenderedStyle(t20), e.edgeType) {
case "haystack":
return {
x: e.haystackPts[2],
y: e.haystackPts[3]
};
default:
return {
x: e.arrowEndX,
y: e.arrowEndY
};
}
};
var Tc = {};
function BP(t20, e, r) {
for (var n = function(l, c, d, v) {
return Nt(l, c, d, v);
}, a = e._private, i = a.rstyle.bezierPts, o = 0; o < t20.bezierProjPcts.length; o++) {
var s = t20.bezierProjPcts[o];
i.push({
x: n(r[0], r[2], r[4], s),
y: n(r[1], r[3], r[5], s)
});
}
}
Tc.storeEdgeProjections = function(t20) {
var e = t20._private, r = e.rscratch, n = r.edgeType;
if (e.rstyle.bezierPts = null, e.rstyle.linePts = null, e.rstyle.haystackPts = null, n === "multibezier" || n === "bezier" || n === "self" || n === "compound") {
e.rstyle.bezierPts = [];
for (var a = 0; a + 5 < r.allpts.length; a += 4)
BP(this, t20, r.allpts.slice(a, a + 6));
} else if (n === "segments")
for (var i = e.rstyle.linePts = [], a = 0; a + 1 < r.allpts.length; a += 2)
i.push({
x: r.allpts[a],
y: r.allpts[a + 1]
});
else if (n === "haystack") {
var o = r.haystackPts;
e.rstyle.haystackPts = [{
x: o[0],
y: o[1]
}, {
x: o[2],
y: o[3]
}];
}
e.rstyle.arrowWidth = this.getArrowWidth(t20.pstyle("width").pfValue, t20.pstyle("arrow-scale").value) * this.arrowShapeWidth;
};
Tc.recalculateEdgeProjections = function(t20) {
this.findEdgeControlPoints(t20);
};
var an = {};
an.recalculateNodeLabelProjection = function(t20) {
var e = t20.pstyle("label").strValue;
if (!qn(e)) {
var r, n, a = t20._private, i = t20.width(), o = t20.height(), s = t20.padding(), u = t20.position(), l = t20.pstyle("text-halign").strValue, c = t20.pstyle("text-valign").strValue, d = a.rscratch, v = a.rstyle;
switch (l) {
case "left":
r = u.x - i / 2 - s;
break;
case "right":
r = u.x + i / 2 + s;
break;
default:
r = u.x;
}
switch (c) {
case "top":
n = u.y - o / 2 - s;
break;
case "bottom":
n = u.y + o / 2 + s;
break;
default:
n = u.y;
}
d.labelX = r, d.labelY = n, v.labelX = r, v.labelY = n, this.calculateLabelAngles(t20), this.applyLabelDimensions(t20);
}
};
var ug = function(e, r) {
var n = Math.atan(r / e);
return e === 0 && n < 0 && (n = n * -1), n;
};
var cg = function(e, r) {
var n = r.x - e.x, a = r.y - e.y;
return ug(n, a);
};
var NP = function(e, r, n, a) {
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);
return cg(s, u);
};
an.recalculateEdgeLabelProjections = function(t20) {
var e, r = t20._private, n = r.rscratch, a = this, i = {
mid: t20.pstyle("label").strValue,
source: t20.pstyle("source-label").strValue,
target: t20.pstyle("target-label").strValue
};
if (i.mid || i.source || i.target) {
e = {
x: n.midX,
y: n.midY
};
var o = function(d, v, h6) {
An(r.rscratch, d, v, h6), An(r.rstyle, d, v, h6);
};
o("labelX", null, e.x), o("labelY", null, e.y);
var s = ug(n.midDispX, n.midDispY);
o("labelAutoAngle", null, s);
var u = function c() {
if (c.cache)
return c.cache;
for (var d = [], v = 0; v + 5 < n.allpts.length; v += 4) {
var h6 = {
x: n.allpts[v],
y: n.allpts[v + 1]
}, f = {
x: n.allpts[v + 2],
y: n.allpts[v + 3]
}, p = {
x: n.allpts[v + 4],
y: n.allpts[v + 5]
};
d.push({
p0: h6,
p1: f,
p2: p,
startDist: 0,
length: 0,
segments: []
});
}
var m = r.rstyle.bezierPts, g = a.bezierProjPcts.length;
function y(x, T, k, _, D) {
var O = ya(T, k), I = x.segments[x.segments.length - 1], L = {
p0: T,
p1: k,
t0: _,
t1: D,
startDist: I ? I.startDist + I.length : 0,
length: O
};
x.segments.push(L), x.length += O;
}
for (var b = 0; b < d.length; b++) {
var w = d[b], C = d[b - 1];
C && (w.startDist = C.startDist + C.length), y(w, w.p0, m[b * g], 0, a.bezierProjPcts[0]);
for (var E = 0; E < g - 1; E++)
y(w, m[b * g + E], m[b * g + E + 1], a.bezierProjPcts[E], a.bezierProjPcts[E + 1]);
y(w, m[b * g + g - 1], w.p2, a.bezierProjPcts[g - 1], 1);
}
return c.cache = d;
}, l = function(d) {
var v, h6 = d === "source";
if (i[d]) {
var f = t20.pstyle(d + "-text-offset").pfValue;
switch (n.edgeType) {
case "self":
case "compound":
case "bezier":
case "multibezier": {
for (var p = u(), m, g = 0, y = 0, b = 0; b < p.length; b++) {
for (var w = p[h6 ? b : p.length - 1 - b], C = 0; C < w.segments.length; C++) {
var E = w.segments[h6 ? C : w.segments.length - 1 - C], x = b === p.length - 1 && C === w.segments.length - 1;
if (g = y, y += E.length, y >= f || x) {
m = {
cp: w,
segment: E
};
break;
}
}
if (m)
break;
}
var T = m.cp, k = m.segment, _ = (f - g) / k.length, D = k.t1 - k.t0, O = h6 ? k.t0 + D * _ : k.t1 - D * _;
O = io(0, O, 1), e = Ga(T.p0, T.p1, T.p2, O), v = NP(T.p0, T.p1, T.p2, O);
break;
}
case "straight":
case "segments":
case "haystack": {
for (var I = 0, L, B, F, M, A = n.allpts.length, R = 0; R + 3 < A && (h6 ? (F = {
x: n.allpts[R],
y: n.allpts[R + 1]
}, M = {
x: n.allpts[R + 2],
y: n.allpts[R + 3]
}) : (F = {
x: n.allpts[A - 2 - R],
y: n.allpts[A - 1 - R]
}, M = {
x: n.allpts[A - 4 - R],
y: n.allpts[A - 3 - R]
}), L = ya(F, M), B = I, I += L, !(I >= f)); R += 2)
;
var K10 = f - B, H = K10 / L;
H = io(0, H, 1), e = H5(F, M, H), v = cg(F, M);
break;
}
}
o("labelX", d, e.x), o("labelY", d, e.y), o("labelAutoAngle", d, v);
}
};
l("source"), l("target"), this.applyLabelDimensions(t20);
}
};
an.applyLabelDimensions = function(t20) {
this.applyPrefixedLabelDimensions(t20), t20.isEdge() && (this.applyPrefixedLabelDimensions(t20, "source"), this.applyPrefixedLabelDimensions(t20, "target"));
};
an.applyPrefixedLabelDimensions = function(t20, e) {
var r = t20._private, n = this.getLabelText(t20, e), a = this.calculateLabelDimensions(t20, n), i = t20.pstyle("line-height").pfValue, o = t20.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;
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);
};
an.getLabelText = function(t20, e) {
var r = t20._private, n = e ? e + "-" : "", a = t20.pstyle(n + "label").strValue, i = t20.pstyle("text-transform").value, o = function(ee, se2) {
return se2 ? (An(r.rscratch, ee, e, se2), se2) : Nr(r.rscratch, ee, e);
};
if (!a)
return "";
i == "none" || (i == "uppercase" ? a = a.toUpperCase() : i == "lowercase" && (a = a.toLowerCase()));
var s = t20.pstyle("text-wrap").value;
if (s === "wrap") {
var u = o("labelKey");
if (u != null && o("labelWrapKey") === u)
return o("labelWrapCachedText");
for (var l = "", c = a.split(`
`), d = t20.pstyle("text-max-width").pfValue, v = t20.pstyle("text-overflow-wrap").value, h6 = v === "anywhere", f = [], p = /[\s\u200b]+|$/g, m = 0; m < c.length; m++) {
var g = c[m], y = this.calculateLabelDimensions(t20, g), b = y.width;
if (h6) {
var w = g.split("").join(l);
g = w;
}
if (b > d) {
var C = g.matchAll(p), E = "", x = 0, T = Gh(C), k;
try {
for (T.s(); !(k = T.n()).done; ) {
var _ = k.value, D = _[0], O = g.substring(x, _.index);
x = _.index + D.length;
var I = E.length === 0 ? O : E + O + D, L = this.calculateLabelDimensions(t20, I), B = L.width;
B <= d ? E += O + D : (E && f.push(E), E = O + D);
}
} catch (q) {
T.e(q);
} finally {
T.f();
}
E.match(/^[\s\u200b]+$/) || f.push(E);
} else
f.push(g);
}
o("labelWrapCachedLines", f), a = o("labelWrapCachedText", f.join(`
`)), o("labelWrapKey", u);
} else if (s === "ellipsis") {
var F = t20.pstyle("text-max-width").pfValue, M = "", A = "…", R = false;
if (this.calculateLabelDimensions(t20, a).width < F)
return a;
for (var K10 = 0; K10 < a.length; K10++) {
var H = this.calculateLabelDimensions(t20, M + a[K10] + A).width;
if (H > F)
break;
M += a[K10], K10 === a.length - 1 && (R = true);
}
return R || (M += A), M;
}
return a;
};
an.getLabelJustification = function(t20) {
var e = t20.pstyle("text-justification").strValue, r = t20.pstyle("text-halign").strValue;
if (e === "auto")
if (t20.isNode())
switch (r) {
case "left":
return "right";
case "right":
return "left";
default:
return "center";
}
else
return "center";
else
return e;
};
an.calculateLabelDimensions = function(t20, e) {
var r = this, n = r.cy.window(), a = n.document, i = ma(e, t20._private.labelDimsKey), o = r.labelDimCache || (r.labelDimCache = []), s = o[i];
if (s != null)
return s;
var u = 0, l = t20.pstyle("font-style").strValue, c = t20.pstyle("font-size").pfValue, d = t20.pstyle("font-family").strValue, v = t20.pstyle("font-weight").strValue, h6 = this.labelCalcCanvas, f = this.labelCalcCanvasContext;
if (!h6) {
h6 = this.labelCalcCanvas = a.createElement("canvas"), f = this.labelCalcCanvasContext = h6.getContext("2d");
var p = h6.style;
p.position = "absolute", p.left = "-9999px", p.top = "-9999px", p.zIndex = "-1", p.visibility = "hidden", p.pointerEvents = "none";
}
f.font = "".concat(l, " ").concat(v, " ").concat(c, "px ").concat(d);
for (var m = 0, g = 0, y = e.split(`
`), b = 0; b < y.length; b++) {
var w = y[b], C = f.measureText(w), E = Math.ceil(C.width), x = c;
m = Math.max(E, m), g += x;
}
return m += u, g += u, o[i] = {
width: m,
height: g
};
};
an.calculateLabelAngle = function(t20, e) {
var r = t20._private, n = r.rscratch, a = t20.isEdge(), i = e ? e + "-" : "", o = t20.pstyle(i + "text-rotation"), s = o.strValue;
return s === "none" ? 0 : a && s === "autorotate" ? n.labelAutoAngle : s === "autorotate" ? 0 : o.pfValue;
};
an.calculateLabelAngles = function(t20) {
var e = this, r = t20.isEdge(), n = t20._private, a = n.rscratch;
a.labelAngle = e.calculateLabelAngle(t20), r && (a.sourceLabelAngle = e.calculateLabelAngle(t20, "source"), a.targetLabelAngle = e.calculateLabelAngle(t20, "target"));
};
var dg = {};
var rv = 28;
var nv = false;
dg.getNodeShape = function(t20) {
var e = this, r = t20.pstyle("shape").value;
if (r === "cutrectangle" && (t20.width() < rv || t20.height() < rv))
return nv || (tt("The `cutrectangle` node shape can not be used at small sizes so `rectangle` is used instead"), nv = true), "rectangle";
if (t20.isParent())
return r === "rectangle" || r === "roundrectangle" || r === "round-rectangle" || r === "cutrectangle" || r === "cut-rectangle" || r === "barrel" ? r : "rectangle";
if (r === "polygon") {
var n = t20.pstyle("shape-polygon-points").value;
return e.nodeShapes.makePolygon(n).name;
}
return r;
};
var pl = {};
pl.registerCalculationListeners = function() {
var t20 = this.cy, e = t20.collection(), r = this, n = function(o) {
var s = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : true;
if (e.merge(o), s)
for (var u = 0; u < o.length; u++) {
var l = o[u], c = l._private, d = c.rstyle;
d.clean = false, d.cleanConnected = false;
}
};
r.binder(t20).on("bounds.* dirty.*", function(o) {
var s = o.target;
n(s);
}).on("style.* background.*", function(o) {
var s = o.target;
n(s, false);
});
var a = function(o) {
if (o) {
var s = r.onUpdateEleCalcsFns;
e.cleanStyle();
for (var u = 0; u < e.length; u++) {
var l = e[u], c = l._private.rstyle;
l.isNode() && !c.cleanConnected && (n(l.connectedEdges()), c.cleanConnected = true);
}
if (s)
for (var d = 0; d < s.length; d++) {
var v = s[d];
v(o, e);
}
r.recalculateRenderedStyle(e), e = t20.collection();
}
};
r.flushRenderedStyleQueue = function() {
a(true);
}, r.beforeRender(a, r.beforeRenderPriorities.eleCalcs);
};
pl.onUpdateEleCalcs = function(t20) {
var e = this.onUpdateEleCalcsFns = this.onUpdateEleCalcsFns || [];
e.push(t20);
};
pl.recalculateRenderedStyle = function(t20, e) {
var r = function(w) {
return w._private.rstyle.cleanConnected;
}, n = [], a = [];
if (!this.destroyed) {
e === void 0 && (e = true);
for (var i = 0; i < t20.length; i++) {
var o = t20[i], s = o._private, u = s.rstyle;
o.isEdge() && (!r(o.source()) || !r(o.target())) && (u.clean = false), !(e && u.clean || o.removed()) && o.pstyle("display").value !== "none" && (s.group === "nodes" ? a.push(o) : n.push(o), u.clean = true);
}
for (var l = 0; l < a.length; l++) {
var c = a[l], d = c._private, v = d.rstyle, h6 = c.position();
this.recalculateNodeLabelProjection(c), v.nodeX = h6.x, v.nodeY = h6.y, v.nodeW = c.pstyle("width").pfValue, v.nodeH = c.pstyle("height").pfValue;
}
this.recalculateEdgeProjections(n);
for (var f = 0; f < n.length; f++) {
var p = n[f], m = p._private, g = m.rstyle, y = m.rscratch;
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;
}
}
};
var gl = {};
gl.updateCachedGrabbedEles = function() {
var t20 = this.cachedZSortedEles;
if (t20) {
t20.drag = [], t20.nondrag = [];
for (var e = [], r = 0; r < t20.length; r++) {
var n = t20[r], a = n._private.rscratch;
n.grabbed() && !n.isParent() ? e.push(n) : a.inDragLayer ? t20.drag.push(n) : t20.nondrag.push(n);
}
for (var r = 0; r < e.length; r++) {
var n = e[r];
t20.drag.push(n);
}
}
};
gl.invalidateCachedZSortedEles = function() {
this.cachedZSortedEles = null;
};
gl.getCachedZSortedEles = function(t20) {
if (t20 || !this.cachedZSortedEles) {
var e = this.cy.mutableElements().toArray();
e.sort(Yp), e.interactive = e.filter(function(r) {
return r.interactive();
}), this.cachedZSortedEles = e, this.updateCachedGrabbedEles();
} else
e = this.cachedZSortedEles;
return e;
};
var fg = {};
[Da, Ns, or, Io, Tc, an, dg, pl, gl].forEach(function(t20) {
Re(fg, t20);
});
var vg = {};
vg.getCachedImage = function(t20, e, r) {
var n = this, a = n.imageCache = n.imageCache || {}, i = a[t20];
if (i)
return i.image.complete || i.image.addEventListener("load", r), i.image;
i = a[t20] = a[t20] || {};
var o = i.image = new Image();
o.addEventListener("load", r), o.addEventListener("error", function() {
o.error = true;
});
var s = "data:", u = t20.substring(0, s.length).toLowerCase() === s;
return u || (e = e === "null" ? null : e, o.crossOrigin = e), o.src = t20, o;
};
var wi = {};
wi.registerBinding = function(t20, e, r, n) {
var a = Array.prototype.slice.apply(arguments, [1]), i = this.binder(t20);
return i.on.apply(i, a);
};
wi.binder = function(t20) {
var e = this, r = e.cy.window(), n = t20 === r || t20 === r.document || t20 === r.document.body || lT(t20);
if (e.supportsPassiveEvents == null) {
var a = false;
try {
var i = Object.defineProperty({}, "passive", {
get: function() {
return a = true, true;
}
});
r.addEventListener("test", null, i);
} catch {
}
e.supportsPassiveEvents = a;
}
var o = function(u, l, c) {
var d = Array.prototype.slice.call(arguments);
return n && e.supportsPassiveEvents && (d[2] = {
capture: c ?? false,
passive: false,
once: false
}), e.bindings.push({
target: t20,
args: d
}), (t20.addEventListener || t20.on).apply(t20, d), this;
};
return {
on: o,
addEventListener: o,
addListener: o,
bind: o
};
};
wi.nodeIsDraggable = function(t20) {
return t20 && t20.isNode() && !t20.locked() && t20.grabbable();
};
wi.nodeIsGrabbable = function(t20) {
return this.nodeIsDraggable(t20) && t20.interactive();
};
wi.load = function() {
var t20 = this, e = t20.cy.window(), r = function(S) {
return S.selected();
}, n = function(S, z, ie, j) {
S == null && (S = t20.cy);
for (var Y = 0; Y < z.length; Y++) {
var pe = z[Y];
S.emit({
originalEvent: ie,
type: pe,
position: j
});
}
}, a = function(S) {
return S.shiftKey || S.metaKey || S.ctrlKey;
}, i = function(S, z) {
var ie = true;
if (t20.cy.hasCompoundNodes() && S && S.pannable())
for (var j = 0; z && j < z.length; j++) {
var S = z[j];
if (S.isNode() && S.isParent() && !S.pannable()) {
ie = false;
break;
}
}
else
ie = true;
return ie;
}, o = function(S) {
S[0]._private.grabbed = true;
}, s = function(S) {
S[0]._private.grabbed = false;
}, u = function(S) {
S[0]._private.rscratch.inDragLayer = true;
}, l = function(S) {
S[0]._private.rscratch.inDragLayer = false;
}, c = function(S) {
S[0]._private.rscratch.isGrabTarget = true;
}, d = function(S) {
S[0]._private.rscratch.isGrabTarget = false;
}, v = function(S, z) {
var ie = z.addToList, j = ie.has(S);
!j && S.grabbable() && !S.locked() && (ie.merge(S), o(S));
}, h6 = function(S, z) {
if (S.cy().hasCompoundNodes() && !(z.inDragLayer == null && z.addToList == null)) {
var ie = S.descendants();
z.inDragLayer && (ie.forEach(u), ie.connectedEdges().forEach(u)), z.addToList && v(ie, z);
}
}, f = function(S, z) {
z = z || {};
var ie = S.cy().hasCompoundNodes();
z.inDragLayer && (S.forEach(u), S.neighborhood().stdFilter(function(j) {
return !ie || j.isEdge();
}).forEach(u)), z.addToList && S.forEach(function(j) {
v(j, z);
}), h6(S, z), g(S, {
inDragLayer: z.inDragLayer
}), t20.updateCachedGrabbedEles();
}, p = f, m = function(S) {
S && (t20.getCachedZSortedEles().forEach(function(z) {
s(z), l(z), d(z);
}), t20.updateCachedGrabbedEles());
}, g = function(S, z) {
if (!(z.inDragLayer == null && z.addToList == null) && S.cy().hasCompoundNodes()) {
var ie = S.ancestors().orphans();
if (!ie.same(S)) {
var j = ie.descendants().spawnSelf().merge(ie).unmerge(S).unmerge(S.descendants()), Y = j.connectedEdges();
z.inDragLayer && (Y.forEach(u), j.forEach(u)), z.addToList && j.forEach(function(pe) {
v(pe, z);
});
}
}
}, y = function() {
document.activeElement != null && document.activeElement.blur != null && document.activeElement.blur();
}, b = typeof MutationObserver < "u", w = typeof ResizeObserver < "u";
b ? (t20.removeObserver = new MutationObserver(function(le) {
for (var S = 0; S < le.length; S++) {
var z = le[S], ie = z.removedNodes;
if (ie)
for (var j = 0; j < ie.length; j++) {
var Y = ie[j];
if (Y === t20.container) {
t20.destroy();
break;
}
}
}
}), t20.container.parentNode && t20.removeObserver.observe(t20.container.parentNode, {
childList: true
})) : t20.registerBinding(t20.container, "DOMNodeRemoved", function(le) {
t20.destroy();
});
var C = tl(function() {
t20.cy.resize();
}, 100);
b && (t20.styleObserver = new MutationObserver(C), t20.styleObserver.observe(t20.container, {
attributes: true
})), t20.registerBinding(e, "resize", C), w && (t20.resizeObserver = new ResizeObserver(C), t20.resizeObserver.observe(t20.container));
var E = function(S, z) {
for (; S != null; )
z(S), S = S.parentNode;
}, x = function() {
t20.invalidateContainerClientCoordsCache();
};
E(t20.container, function(le) {
t20.registerBinding(le, "transitionend", x), t20.registerBinding(le, "animationend", x), t20.registerBinding(le, "scroll", x);
}), t20.registerBinding(t20.container, "contextmenu", function(le) {
le.preventDefault();
});
var T = function() {
return t20.selection[4] !== 0;
}, k = function(S) {
for (var z = t20.findContainerClientCoords(), ie = z[0], j = z[1], Y = z[2], pe = z[3], re = S.touches ? S.touches : [S], ve = false, Ae = 0; Ae < re.length; Ae++) {
var Me = re[Ae];
if (ie <= Me.clientX && Me.clientX <= ie + Y && j <= Me.clientY && Me.clientY <= j + pe) {
ve = true;
break;
}
}
if (!ve)
return false;
for (var _e = t20.container, Ne = S.target, Te = Ne.parentNode, Oe = false; Te; ) {
if (Te === _e) {
Oe = true;
break;
}
Te = Te.parentNode;
}
return !!Oe;
};
t20.registerBinding(t20.container, "mousedown", function(S) {
if (k(S) && !(t20.hoverData.which === 1 && S.which !== 1)) {
S.preventDefault(), y(), t20.hoverData.capture = true, t20.hoverData.which = S.which;
var z = t20.cy, ie = [S.clientX, S.clientY], j = t20.projectIntoViewport(ie[0], ie[1]), Y = t20.selection, pe = t20.findNearestElements(j[0], j[1], true, false), re = pe[0], ve = t20.dragData.possibleDragElements;
t20.hoverData.mdownPos = j, t20.hoverData.mdownGPos = ie;
var Ae = function() {
t20.hoverData.tapholdCancelled = false, clearTimeout(t20.hoverData.tapholdTimeout), t20.hoverData.tapholdTimeout = setTimeout(function() {
if (!t20.hoverData.tapholdCancelled) {
var ut = t20.hoverData.down;
ut ? ut.emit({
originalEvent: S,
type: "taphold",
position: {
x: j[0],
y: j[1]
}
}) : z.emit({
originalEvent: S,
type: "taphold",
position: {
x: j[0],
y: j[1]
}
});
}
}, t20.tapholdDuration);
};
if (S.which == 3) {
t20.hoverData.cxtStarted = true;
var Me = {
originalEvent: S,
type: "cxttapstart",
position: {
x: j[0],
y: j[1]
}
};
re ? (re.activate(), re.emit(Me), t20.hoverData.down = re) : z.emit(Me), t20.hoverData.downTime = (/* @__PURE__ */ new Date()).getTime(), t20.hoverData.cxtDragged = false;
} else if (S.which == 1) {
re && re.activate();
{
if (re != null && t20.nodeIsGrabbable(re)) {
var _e = function(ut) {
return {
originalEvent: S,
type: ut,
position: {
x: j[0],
y: j[1]
}
};
}, Ne = function(ut) {
ut.emit(_e("grab"));
};
if (c(re), !re.selected())
ve = t20.dragData.possibleDragElements = z.collection(), p(re, {
addToList: ve
}), re.emit(_e("grabon")).emit(_e("grab"));
else {
ve = t20.dragData.possibleDragElements = z.collection();
var Te = z.$(function(Oe) {
return Oe.isNode() && Oe.selected() && t20.nodeIsGrabbable(Oe);
});
f(Te, {
addToList: ve
}), re.emit(_e("grabon")), Te.forEach(Ne);
}
t20.redrawHint("eles", true), t20.redrawHint("drag", true);
}
t20.hoverData.down = re, t20.hoverData.downs = pe, t20.hoverData.downTime = (/* @__PURE__ */ new Date()).getTime();
}
n(re, ["mousedown", "tapstart", "vmousedown"], S, {
x: j[0],
y: j[1]
}), re == null ? (Y[4] = 1, t20.data.bgActivePosistion = {
x: j[0],
y: j[1]
}, t20.redrawHint("select", true), t20.redraw()) : re.pannable() && (Y[4] = 1), Ae();
}
Y[0] = Y[2] = j[0], Y[1] = Y[3] = j[1];
}
}, false), t20.registerBinding(e, "mousemove", function(S) {
var z = t20.hoverData.capture;
if (!(!z && !k(S))) {
var ie = false, j = t20.cy, Y = j.zoom(), pe = [S.clientX, S.clientY], re = t20.projectIntoViewport(pe[0], pe[1]), ve = t20.hoverData.mdownPos, Ae = t20.hoverData.mdownGPos, Me = t20.selection, _e = null;
!t20.hoverData.draggingEles && !t20.hoverData.dragging && !t20.hoverData.selecting && (_e = t20.findNearestElement(re[0], re[1], true, false));
var Ne = t20.hoverData.last, Te = t20.hoverData.down, Oe = [re[0] - Me[2], re[1] - Me[3]], ut = t20.dragData.possibleDragElements, nt;
if (Ae) {
var kt = pe[0] - Ae[0], St = kt * kt, wt = pe[1] - Ae[1], Zt = wt * wt, Pt = St + Zt;
t20.hoverData.isOverThresholdDrag = nt = Pt >= t20.desktopTapThreshold2;
}
var Mt = a(S);
nt && (t20.hoverData.tapholdCancelled = true);
var gr = function() {
var W = t20.hoverData.dragDelta = t20.hoverData.dragDelta || [];
W.length === 0 ? (W.push(Oe[0]), W.push(Oe[1])) : (W[0] += Oe[0], W[1] += Oe[1]);
};
ie = true, n(_e, ["mousemove", "vmousemove", "tapdrag"], S, {
x: re[0],
y: re[1]
});
var Xt = function() {
t20.data.bgActivePosistion = void 0, t20.hoverData.selecting || j.emit({
originalEvent: S,
type: "boxstart",
position: {
x: re[0],
y: re[1]
}
}), Me[4] = 1, t20.hoverData.selecting = true, t20.redrawHint("select", true), t20.redraw();
};
if (t20.hoverData.which === 3) {
if (nt) {
var jt = {
originalEvent: S,
type: "cxtdrag",
position: {
x: re[0],
y: re[1]
}
};
Te ? Te.emit(jt) : j.emit(jt), t20.hoverData.cxtDragged = true, (!t20.hoverData.cxtOver || _e !== t20.hoverData.cxtOver) && (t20.hoverData.cxtOver && t20.hoverData.cxtOver.emit({
originalEvent: S,
type: "cxtdragout",
position: {
x: re[0],
y: re[1]
}
}), t20.hoverData.cxtOver = _e, _e && _e.emit({
originalEvent: S,
type: "cxtdragover",
position: {
x: re[0],
y: re[1]
}
}));
}
} else if (t20.hoverData.dragging) {
if (ie = true, j.panningEnabled() && j.userPanningEnabled()) {
var wr;
if (t20.hoverData.justStartedPan) {
var Pr = t20.hoverData.mdownPos;
wr = {
x: (re[0] - Pr[0]) * Y,
y: (re[1] - Pr[1]) * Y
}, t20.hoverData.justStartedPan = false;
} else
wr = {
x: Oe[0] * Y,
y: Oe[1] * Y
};
j.panBy(wr), j.emit("dragpan"), t20.hoverData.dragged = true;
}
re = t20.projectIntoViewport(S.clientX, S.clientY);
} else if (Me[4] == 1 && (Te == null || Te.pannable())) {
if (nt) {
if (!t20.hoverData.dragging && j.boxSelectionEnabled() && (Mt || !j.panningEnabled() || !j.userPanningEnabled()))
Xt();
else if (!t20.hoverData.selecting && j.panningEnabled() && j.userPanningEnabled()) {
var ur = i(Te, t20.hoverData.downs);
ur && (t20.hoverData.dragging = true, t20.hoverData.justStartedPan = true, Me[4] = 0, t20.data.bgActivePosistion = Ha(ve), t20.redrawHint("select", true), t20.redraw());
}
Te && Te.pannable() && Te.active() && Te.unactivate();
}
} else {
if (Te && Te.pannable() && Te.active() && Te.unactivate(), (!Te || !Te.grabbed()) && _e != Ne && (Ne && n(Ne, ["mouseout", "tapdragout"], S, {
x: re[0],
y: re[1]
}), _e && n(_e, ["mouseover", "tapdragover"], S, {
x: re[0],
y: re[1]
}), t20.hoverData.last = _e), Te)
if (nt) {
if (j.boxSelectionEnabled() && Mt)
Te && Te.grabbed() && (m(ut), Te.emit("freeon"), ut.emit("free"), t20.dragData.didDrag && (Te.emit("dragfreeon"), ut.emit("dragfree"))), Xt();
else if (Te && Te.grabbed() && t20.nodeIsDraggable(Te)) {
var xt = !t20.dragData.didDrag;
xt && t20.redrawHint("eles", true), t20.dragData.didDrag = true, t20.hoverData.draggingEles || f(ut, {
inDragLayer: true
});
var Tt = {
x: 0,
y: 0
};
if (be(Oe[0]) && be(Oe[1]) && (Tt.x += Oe[0], Tt.y += Oe[1], xt)) {
var Bt = t20.hoverData.dragDelta;
Bt && be(Bt[0]) && be(Bt[1]) && (Tt.x += Bt[0], Tt.y += Bt[1]);
}
t20.hoverData.draggingEles = true, ut.silentShift(Tt).emit("position drag"), t20.redrawHint("drag", true), t20.redraw();
}
} else
gr();
ie = true;
}
if (Me[2] = re[0], Me[3] = re[1], ie)
return S.stopPropagation && S.stopPropagation(), S.preventDefault && S.preventDefault(), false;
}
}, false);
var _, D, O;
t20.registerBinding(e, "mouseup", function(S) {
if (!(t20.hoverData.which === 1 && S.which !== 1 && t20.hoverData.capture)) {
var z = t20.hoverData.capture;
if (z) {
t20.hoverData.capture = false;
var ie = t20.cy, j = t20.projectIntoViewport(S.clientX, S.clientY), Y = t20.selection, pe = t20.findNearestElement(j[0], j[1], true, false), re = t20.dragData.possibleDragElements, ve = t20.hoverData.down, Ae = a(S);
if (t20.data.bgActivePosistion && (t20.redrawHint("select", true), t20.redraw()), t20.hoverData.tapholdCancelled = true, t20.data.bgActivePosistion = void 0, ve && ve.unactivate(), t20.hoverData.which === 3) {
var Me = {
originalEvent: S,
type: "cxttapend",
position: {
x: j[0],
y: j[1]
}
};
if (ve ? ve.emit(Me) : ie.emit(Me), !t20.hoverData.cxtDragged) {
var _e = {
originalEvent: S,
type: "cxttap",
position: {
x: j[0],
y: j[1]
}
};
ve ? ve.emit(_e) : ie.emit(_e);
}
t20.hoverData.cxtDragged = false, t20.hoverData.which = null;
} else if (t20.hoverData.which === 1) {
if (n(pe, ["mouseup", "tapend", "vmouseup"], S, {
x: j[0],
y: j[1]
}), !t20.dragData.didDrag && // didn't move a node around
!t20.hoverData.dragged && // didn't pan
!t20.hoverData.selecting && // not box selection
!t20.hoverData.isOverThresholdDrag && (n(ve, ["click", "tap", "vclick"], S, {
x: j[0],
y: j[1]
}), D = false, S.timeStamp - O <= ie.multiClickDebounceTime() ? (_ && clearTimeout(_), D = true, O = null, n(ve, ["dblclick", "dbltap", "vdblclick"], S, {
x: j[0],
y: j[1]
})) : (_ = setTimeout(function() {
D || n(ve, ["oneclick", "onetap", "voneclick"], S, {
x: j[0],
y: j[1]
});
}, ie.multiClickDebounceTime()), O = S.timeStamp)), ve == null && !t20.dragData.didDrag && !t20.hoverData.selecting && !t20.hoverData.dragged && !a(S) && (ie.$(r).unselect(["tapunselect"]), re.length > 0 && t20.redrawHint("eles", true), t20.dragData.possibleDragElements = re = ie.collection()), pe == ve && !t20.dragData.didDrag && !t20.hoverData.selecting && pe != null && pe._private.selectable && (t20.hoverData.dragging || (ie.selectionType() === "additive" || Ae ? pe.selected() ? pe.unselect(["tapunselect"]) : pe.select(["tapselect"]) : Ae || (ie.$(r).unmerge(pe).unselect(["tapunselect"]), pe.select(["tapselect"]))), t20.redrawHint("eles", true)), t20.hoverData.selecting) {
var Ne = ie.collection(t20.getAllInBox(Y[0], Y[1], Y[2], Y[3]));
t20.redrawHint("select", true), Ne.length > 0 && t20.redrawHint("eles", true), ie.emit({
type: "boxend",
originalEvent: S,
position: {
x: j[0],
y: j[1]
}
});
var Te = function(nt) {
return nt.selectable() && !nt.selected();
};
ie.selectionType() === "additive" || Ae || ie.$(r).unmerge(Ne).unselect(), Ne.emit("box").stdFilter(Te).select().emit("boxselect"), t20.redraw();
}
if (t20.hoverData.dragging && (t20.hoverData.dragging = false, t20.redrawHint("select", true), t20.redrawHint("eles", true), t20.redraw()), !Y[4]) {
t20.redrawHint("drag", true), t20.redrawHint("eles", true);
var Oe = ve && ve.grabbed();
m(re), Oe && (ve.emit("freeon"), re.emit("free"), t20.dragData.didDrag && (ve.emit("dragfreeon"), re.emit("dragfree")));
}
}
Y[4] = 0, t20.hoverData.down = null, t20.hoverData.cxtStarted = false, t20.hoverData.draggingEles = false, t20.hoverData.selecting = false, t20.hoverData.isOverThresholdDrag = false, t20.dragData.didDrag = false, t20.hoverData.dragged = false, t20.hoverData.dragDelta = [], t20.hoverData.mdownPos = null, t20.hoverData.mdownGPos = null, t20.hoverData.which = null;
}
}
}, false);
var I = function(S) {
if (!t20.scrollingPage) {
var z = t20.cy, ie = z.zoom(), j = z.pan(), Y = t20.projectIntoViewport(S.clientX, S.clientY), pe = [Y[0] * ie + j.x, Y[1] * ie + j.y];
if (t20.hoverData.draggingEles || t20.hoverData.dragging || t20.hoverData.cxtStarted || T()) {
S.preventDefault();
return;
}
if (z.panningEnabled() && z.userPanningEnabled() && z.zoomingEnabled() && z.userZoomingEnabled()) {
S.preventDefault(), t20.data.wheelZooming = true, clearTimeout(t20.data.wheelTimeout), t20.data.wheelTimeout = setTimeout(function() {
t20.data.wheelZooming = false, t20.redrawHint("eles", true), t20.redraw();
}, 150);
var re;
S.deltaY != null ? re = S.deltaY / -250 : S.wheelDeltaY != null ? re = S.wheelDeltaY / 1e3 : re = S.wheelDelta / 1e3, re = re * t20.wheelSensitivity;
var ve = S.deltaMode === 1;
ve && (re *= 33);
var Ae = z.zoom() * Math.pow(10, re);
S.type === "gesturechange" && (Ae = t20.gestureStartZoom * S.scale), z.zoom({
level: Ae,
renderedPosition: {
x: pe[0],
y: pe[1]
}
}), z.emit(S.type === "gesturechange" ? "pinchzoom" : "scrollzoom");
}
}
};
t20.registerBinding(t20.container, "wheel", I, true), t20.registerBinding(e, "scroll", function(S) {
t20.scrollingPage = true, clearTimeout(t20.scrollingPageTimeout), t20.scrollingPageTimeout = setTimeout(function() {
t20.scrollingPage = false;
}, 250);
}, true), t20.registerBinding(t20.container, "gesturestart", function(S) {
t20.gestureStartZoom = t20.cy.zoom(), t20.hasTouchStarted || S.preventDefault();
}, true), t20.registerBinding(t20.container, "gesturechange", function(le) {
t20.hasTouchStarted || I(le);
}, true), t20.registerBinding(t20.container, "mouseout", function(S) {
var z = t20.projectIntoViewport(S.clientX, S.clientY);
t20.cy.emit({
originalEvent: S,
type: "mouseout",
position: {
x: z[0],
y: z[1]
}
});
}, false), t20.registerBinding(t20.container, "mouseover", function(S) {
var z = t20.projectIntoViewport(S.clientX, S.clientY);
t20.cy.emit({
originalEvent: S,
type: "mouseover",
position: {
x: z[0],
y: z[1]
}
});
}, false);
var L, B, F, M, A, R, K10, H, q, ee, se2, oe, ae, ue = function(S, z, ie, j) {
return Math.sqrt((ie - S) * (ie - S) + (j - z) * (j - z));
}, te = function(S, z, ie, j) {
return (ie - S) * (ie - S) + (j - z) * (j - z);
}, $;
t20.registerBinding(t20.container, "touchstart", $ = function(S) {
if (t20.hasTouchStarted = true, !!k(S)) {
y(), t20.touchData.capture = true, t20.data.bgActivePosistion = void 0;
var z = t20.cy, ie = t20.touchData.now, j = t20.touchData.earlier;
if (S.touches[0]) {
var Y = t20.projectIntoViewport(S.touches[0].clientX, S.touches[0].clientY);
ie[0] = Y[0], ie[1] = Y[1];
}
if (S.touches[1]) {
var Y = t20.projectIntoViewport(S.touches[1].clientX, S.touches[1].clientY);
ie[2] = Y[0], ie[3] = Y[1];
}
if (S.touches[2]) {
var Y = t20.projectIntoViewport(S.touches[2].clientX, S.touches[2].clientY);
ie[4] = Y[0], ie[5] = Y[1];
}
if (S.touches[1]) {
t20.touchData.singleTouchMoved = true, m(t20.dragData.touchDragEles);
var pe = t20.findContainerClientCoords();
q = pe[0], ee = pe[1], se2 = pe[2], oe = pe[3], L = S.touches[0].clientX - q, B = S.touches[0].clientY - ee, F = S.touches[1].clientX - q, M = S.touches[1].clientY - ee, ae = 0 <= L && L <= se2 && 0 <= F && F <= se2 && 0 <= B && B <= oe && 0 <= M && M <= oe;
var re = z.pan(), ve = z.zoom();
A = ue(L, B, F, M), R = te(L, B, F, M), K10 = [(L + F) / 2, (B + M) / 2], H = [(K10[0] - re.x) / ve, (K10[1] - re.y) / ve];
var Ae = 200, Me = Ae * Ae;
if (R < Me && !S.touches[2]) {
var _e = t20.findNearestElement(ie[0], ie[1], true, true), Ne = t20.findNearestElement(ie[2], ie[3], true, true);
_e && _e.isNode() ? (_e.activate().emit({
originalEvent: S,
type: "cxttapstart",
position: {
x: ie[0],
y: ie[1]
}
}), t20.touchData.start = _e) : Ne && Ne.isNode() ? (Ne.activate().emit({
originalEvent: S,
type: "cxttapstart",
position: {
x: ie[0],
y: ie[1]
}
}), t20.touchData.start = Ne) : z.emit({
originalEvent: S,
type: "cxttapstart",
position: {
x: ie[0],
y: ie[1]
}
}), t20.touchData.start && (t20.touchData.start._private.grabbed = false), t20.touchData.cxt = true, t20.touchData.cxtDragged = false, t20.data.bgActivePosistion = void 0, t20.redraw();
return;
}
}
if (S.touches[2])
z.boxSelectionEnabled() && S.preventDefault();
else if (!S.touches[1]) {
if (S.touches[0]) {
var Te = t20.findNearestElements(ie[0], ie[1], true, true), Oe = Te[0];
if (Oe != null && (Oe.activate(), t20.touchData.start = Oe, t20.touchData.starts = Te, t20.nodeIsGrabbable(Oe))) {
var ut = t20.dragData.touchDragEles = z.collection(), nt = null;
t20.redrawHint("eles", true), t20.redrawHint("drag", true), Oe.selected() ? (nt = z.$(function(Pt) {
return Pt.selected() && t20.nodeIsGrabbable(Pt);
}), f(nt, {
addToList: ut
})) : p(Oe, {
addToList: ut
}), c(Oe);
var kt = function(Mt) {
return {
originalEvent: S,
type: Mt,
position: {
x: ie[0],
y: ie[1]
}
};
};
Oe.emit(kt("grabon")), nt ? nt.forEach(function(Pt) {
Pt.emit(kt("grab"));
}) : Oe.emit(kt("grab"));
}
n(Oe, ["touchstart", "tapstart", "vmousedown"], S, {
x: ie[0],
y: ie[1]
}), Oe == null && (t20.data.bgActivePosistion = {
x: Y[0],
y: Y[1]
}, t20.redrawHint("select", true), t20.redraw()), t20.touchData.singleTouchMoved = false, t20.touchData.singleTouchStartTime = +/* @__PURE__ */ new Date(), clearTimeout(t20.touchData.tapholdTimeout), t20.touchData.tapholdTimeout = setTimeout(function() {
t20.touchData.singleTouchMoved === false && !t20.pinching && !t20.touchData.selecting && n(t20.touchData.start, ["taphold"], S, {
x: ie[0],
y: ie[1]
});
}, t20.tapholdDuration);
}
}
if (S.touches.length >= 1) {
for (var St = t20.touchData.startPosition = [null, null, null, null, null, null], wt = 0; wt < ie.length; wt++)
St[wt] = j[wt] = ie[wt];
var Zt = S.touches[0];
t20.touchData.startGPosition = [Zt.clientX, Zt.clientY];
}
}
}, false);
var G;
t20.registerBinding(e, "touchmove", G = function(S) {
var z = t20.touchData.capture;
if (!(!z && !k(S))) {
var ie = t20.selection, j = t20.cy, Y = t20.touchData.now, pe = t20.touchData.earlier, re = j.zoom();
if (S.touches[0]) {
var ve = t20.projectIntoViewport(S.touches[0].clientX, S.touches[0].clientY);
Y[0] = ve[0], Y[1] = ve[1];
}
if (S.touches[1]) {
var ve = t20.projectIntoViewport(S.touches[1].clientX, S.touches[1].clientY);
Y[2] = ve[0], Y[3] = ve[1];
}
if (S.touches[2]) {
var ve = t20.projectIntoViewport(S.touches[2].clientX, S.touches[2].clientY);
Y[4] = ve[0], Y[5] = ve[1];
}
var Ae = t20.touchData.startGPosition, Me;
if (z && S.touches[0] && Ae) {
for (var _e = [], Ne = 0; Ne < Y.length; Ne++)
_e[Ne] = Y[Ne] - pe[Ne];
var Te = S.touches[0].clientX - Ae[0], Oe = Te * Te, ut = S.touches[0].clientY - Ae[1], nt = ut * ut, kt = Oe + nt;
Me = kt >= t20.touchTapThreshold2;
}
if (z && t20.touchData.cxt) {
S.preventDefault();
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;
if (gr >= Pr || Mt >= jt) {
t20.touchData.cxt = false, t20.data.bgActivePosistion = void 0, t20.redrawHint("select", true);
var ur = {
originalEvent: S,
type: "cxttapend",
position: {
x: Y[0],
y: Y[1]
}
};
t20.touchData.start ? (t20.touchData.start.unactivate().emit(ur), t20.touchData.start = null) : j.emit(ur);
}
}
if (z && t20.touchData.cxt) {
var ur = {
originalEvent: S,
type: "cxtdrag",
position: {
x: Y[0],
y: Y[1]
}
};
t20.data.bgActivePosistion = void 0, t20.redrawHint("select", true), t20.touchData.start ? t20.touchData.start.emit(ur) : j.emit(ur), t20.touchData.start && (t20.touchData.start._private.grabbed = false), t20.touchData.cxtDragged = true;
var xt = t20.findNearestElement(Y[0], Y[1], true, true);
(!t20.touchData.cxtOver || xt !== t20.touchData.cxtOver) && (t20.touchData.cxtOver && t20.touchData.cxtOver.emit({
originalEvent: S,
type: "cxtdragout",
position: {
x: Y[0],
y: Y[1]
}
}), t20.touchData.cxtOver = xt, xt && xt.emit({
originalEvent: S,
type: "cxtdragover",
position: {
x: Y[0],
y: Y[1]
}
}));
} else if (z && S.touches[2] && j.boxSelectionEnabled())
S.preventDefault(), t20.data.bgActivePosistion = void 0, this.lastThreeTouch = +/* @__PURE__ */ new Date(), t20.touchData.selecting || j.emit({
originalEvent: S,
type: "boxstart",
position: {
x: Y[0],
y: Y[1]
}
}), t20.touchData.selecting = true, t20.touchData.didSelect = true, ie[4] = 1, !ie || ie.length === 0 || ie[0] === void 0 ? (ie[0] = (Y[0] + Y[2] + Y[4]) / 3, ie[1] = (Y[1] + Y[3] + Y[5]) / 3, ie[2] = (Y[0] + Y[2] + Y[4]) / 3 + 1, ie[3] = (Y[1] + Y[3] + Y[5]) / 3 + 1) : (ie[2] = (Y[0] + Y[2] + Y[4]) / 3, ie[3] = (Y[1] + Y[3] + Y[5]) / 3), t20.redrawHint("select", true), t20.redraw();
else if (z && S.touches[1] && !t20.touchData.didSelect && j.zoomingEnabled() && j.panningEnabled() && j.userZoomingEnabled() && j.userPanningEnabled()) {
S.preventDefault(), t20.data.bgActivePosistion = void 0, t20.redrawHint("select", true);
var Tt = t20.dragData.touchDragEles;
if (Tt) {
t20.redrawHint("drag", true);
for (var Bt = 0; Bt < Tt.length; Bt++) {
var kn = Tt[Bt]._private;
kn.grabbed = false, kn.rscratch.inDragLayer = false;
}
}
var W = t20.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;
if (ae) {
var at = St - L, Gr2 = wt - B, Sn2 = Zt - F, Oa = Pt - M, sn = (at + Sn2) / 2, xr = (Gr2 + Oa) / 2, Tn = j.zoom(), ml2 = Tn * We, Bo = j.pan(), Oc = H[0] * Tn + Bo.x, Lc = H[1] * Tn + Bo.y, d02 = {
x: -ml2 / Tn * (Oc - Bo.x - sn) + Oc,
y: -ml2 / Tn * (Lc - Bo.y - xr) + Lc
};
if (W && W.active()) {
var Tt = t20.dragData.touchDragEles;
m(Tt), t20.redrawHint("drag", true), t20.redrawHint("eles", true), W.unactivate().emit("freeon"), Tt.emit("free"), t20.dragData.didDrag && (W.emit("dragfreeon"), Tt.emit("dragfree"));
}
j.viewport({
zoom: ml2,
pan: d02,
cancelOnFailedZoom: true
}), j.emit("pinchzoom"), A = we, L = St, B = wt, F = Zt, M = Pt, t20.pinching = true;
}
if (S.touches[0]) {
var ve = t20.projectIntoViewport(S.touches[0].clientX, S.touches[0].clientY);
Y[0] = ve[0], Y[1] = ve[1];
}
if (S.touches[1]) {
var ve = t20.projectIntoViewport(S.touches[1].clientX, S.touches[1].clientY);
Y[2] = ve[0], Y[3] = ve[1];
}
if (S.touches[2]) {
var ve = t20.projectIntoViewport(S.touches[2].clientX, S.touches[2].clientY);
Y[4] = ve[0], Y[5] = ve[1];
}
} else if (S.touches[0] && !t20.touchData.didSelect) {
var Or = t20.touchData.start, yl2 = t20.touchData.last, xt;
if (!t20.hoverData.draggingEles && !t20.swipePanning && (xt = t20.findNearestElement(Y[0], Y[1], true, true)), z && Or != null && S.preventDefault(), z && Or != null && t20.nodeIsDraggable(Or))
if (Me) {
var Tt = t20.dragData.touchDragEles, Fc = !t20.dragData.didDrag;
Fc && f(Tt, {
inDragLayer: true
}), t20.dragData.didDrag = true;
var ki = {
x: 0,
y: 0
};
if (be(_e[0]) && be(_e[1]) && (ki.x += _e[0], ki.y += _e[1], Fc)) {
t20.redrawHint("eles", true);
var Lr = t20.touchData.dragDelta;
Lr && be(Lr[0]) && be(Lr[1]) && (ki.x += Lr[0], ki.y += Lr[1]);
}
t20.hoverData.draggingEles = true, Tt.silentShift(ki).emit("position drag"), t20.redrawHint("drag", true), t20.touchData.startPosition[0] == pe[0] && t20.touchData.startPosition[1] == pe[1] && t20.redrawHint("eles", true), t20.redraw();
} else {
var Lr = t20.touchData.dragDelta = t20.touchData.dragDelta || [];
Lr.length === 0 ? (Lr.push(_e[0]), Lr.push(_e[1])) : (Lr[0] += _e[0], Lr[1] += _e[1]);
}
if (n(Or || xt, ["touchmove", "tapdrag", "vmousemove"], S, {
x: Y[0],
y: Y[1]
}), (!Or || !Or.grabbed()) && xt != yl2 && (yl2 && yl2.emit({
originalEvent: S,
type: "tapdragout",
position: {
x: Y[0],
y: Y[1]
}
}), xt && xt.emit({
originalEvent: S,
type: "tapdragover",
position: {
x: Y[0],
y: Y[1]
}
})), t20.touchData.last = xt, z)
for (var Bt = 0; Bt < Y.length; Bt++)
Y[Bt] && t20.touchData.startPosition[Bt] && Me && (t20.touchData.singleTouchMoved = true);
if (z && (Or == null || Or.pannable()) && j.panningEnabled() && j.userPanningEnabled()) {
var f02 = i(Or, t20.touchData.starts);
f02 && (S.preventDefault(), t20.data.bgActivePosistion || (t20.data.bgActivePosistion = Ha(t20.touchData.startPosition)), t20.swipePanning ? (j.panBy({
x: _e[0] * re,
y: _e[1] * re
}), j.emit("dragpan")) : Me && (t20.swipePanning = true, j.panBy({
x: Te * re,
y: ut * re
}), j.emit("dragpan"), Or && (Or.unactivate(), t20.redrawHint("select", true), t20.touchData.start = null)));
var ve = t20.projectIntoViewport(S.touches[0].clientX, S.touches[0].clientY);
Y[0] = ve[0], Y[1] = ve[1];
}
}
for (var Ne = 0; Ne < Y.length; Ne++)
pe[Ne] = Y[Ne];
z && S.touches.length > 0 && !t20.hoverData.draggingEles && !t20.swipePanning && t20.data.bgActivePosistion != null && (t20.data.bgActivePosistion = void 0, t20.redrawHint("select", true), t20.redraw());
}
}, false);
var Q;
t20.registerBinding(e, "touchcancel", Q = function(S) {
var z = t20.touchData.start;
t20.touchData.capture = false, z && z.unactivate();
});
var ge2, Ee2, fe, me;
if (t20.registerBinding(e, "touchend", ge2 = function(S) {
var z = t20.touchData.start, ie = t20.touchData.capture;
if (ie)
S.touches.length === 0 && (t20.touchData.capture = false), S.preventDefault();
else
return;
var j = t20.selection;
t20.swipePanning = false, t20.hoverData.draggingEles = false;
var Y = t20.cy, pe = Y.zoom(), re = t20.touchData.now, ve = t20.touchData.earlier;
if (S.touches[0]) {
var Ae = t20.projectIntoViewport(S.touches[0].clientX, S.touches[0].clientY);
re[0] = Ae[0], re[1] = Ae[1];
}
if (S.touches[1]) {
var Ae = t20.projectIntoViewport(S.touches[1].clientX, S.touches[1].clientY);
re[2] = Ae[0], re[3] = Ae[1];
}
if (S.touches[2]) {
var Ae = t20.projectIntoViewport(S.touches[2].clientX, S.touches[2].clientY);
re[4] = Ae[0], re[5] = Ae[1];
}
z && z.unactivate();
var Me;
if (t20.touchData.cxt) {
if (Me = {
originalEvent: S,
type: "cxttapend",
position: {
x: re[0],
y: re[1]
}
}, z ? z.emit(Me) : Y.emit(Me), !t20.touchData.cxtDragged) {
var _e = {
originalEvent: S,
type: "cxttap",
position: {
x: re[0],
y: re[1]
}
};
z ? z.emit(_e) : Y.emit(_e);
}
t20.touchData.start && (t20.touchData.start._private.grabbed = false), t20.touchData.cxt = false, t20.touchData.start = null, t20.redraw();
return;
}
if (!S.touches[2] && Y.boxSelectionEnabled() && t20.touchData.selecting) {
t20.touchData.selecting = false;
var Ne = Y.collection(t20.getAllInBox(j[0], j[1], j[2], j[3]));
j[0] = void 0, j[1] = void 0, j[2] = void 0, j[3] = void 0, j[4] = 0, t20.redrawHint("select", true), Y.emit({
type: "boxend",
originalEvent: S,
position: {
x: re[0],
y: re[1]
}
});
var Te = function(jt) {
return jt.selectable() && !jt.selected();
};
Ne.emit("box").stdFilter(Te).select().emit("boxselect"), Ne.nonempty() && t20.redrawHint("eles", true), t20.redraw();
}
if (z != null && z.unactivate(), S.touches[2])
t20.data.bgActivePosistion = void 0, t20.redrawHint("select", true);
else if (!S.touches[1]) {
if (!S.touches[0]) {
if (!S.touches[0]) {
t20.data.bgActivePosistion = void 0, t20.redrawHint("select", true);
var Oe = t20.dragData.touchDragEles;
if (z != null) {
var ut = z._private.grabbed;
m(Oe), t20.redrawHint("drag", true), t20.redrawHint("eles", true), ut && (z.emit("freeon"), Oe.emit("free"), t20.dragData.didDrag && (z.emit("dragfreeon"), Oe.emit("dragfree"))), n(z, ["touchend", "tapend", "vmouseup", "tapdragout"], S, {
x: re[0],
y: re[1]
}), z.unactivate(), t20.touchData.start = null;
} else {
var nt = t20.findNearestElement(re[0], re[1], true, true);
n(nt, ["touchend", "tapend", "vmouseup", "tapdragout"], S, {
x: re[0],
y: re[1]
});
}
var kt = t20.touchData.startPosition[0] - re[0], St = kt * kt, wt = t20.touchData.startPosition[1] - re[1], Zt = wt * wt, Pt = St + Zt, Mt = Pt * pe * pe;
t20.touchData.singleTouchMoved || (z || Y.$(":selected").unselect(["tapunselect"]), n(z, ["tap", "vclick"], S, {
x: re[0],
y: re[1]
}), Ee2 = false, S.timeStamp - me <= Y.multiClickDebounceTime() ? (fe && clearTimeout(fe), Ee2 = true, me = null, n(z, ["dbltap", "vdblclick"], S, {
x: re[0],
y: re[1]
})) : (fe = setTimeout(function() {
Ee2 || n(z, ["onetap", "voneclick"], S, {
x: re[0],
y: re[1]
});
}, Y.multiClickDebounceTime()), me = S.timeStamp)), z != null && !t20.dragData.didDrag && z._private.selectable && Mt < t20.touchTapThreshold2 && !t20.pinching && (Y.selectionType() === "single" ? (Y.$(r).unmerge(z).unselect(["tapunselect"]), z.select(["tapselect"])) : z.selected() ? z.unselect(["tapunselect"]) : z.select(["tapselect"]), t20.redrawHint("eles", true)), t20.touchData.singleTouchMoved = true;
}
}
}
for (var gr = 0; gr < re.length; gr++)
ve[gr] = re[gr];
t20.dragData.didDrag = false, S.touches.length === 0 && (t20.touchData.dragDelta = [], t20.touchData.startPosition = [null, null, null, null, null, null], t20.touchData.startGPosition = null, t20.touchData.didSelect = false), S.touches.length < 2 && (S.touches.length === 1 && (t20.touchData.startGPosition = [S.touches[0].clientX, S.touches[0].clientY]), t20.pinching = false, t20.redrawHint("eles", true), t20.redraw());
}, false), typeof TouchEvent > "u") {
var xe = [], ke2 = function(S) {
return {
clientX: S.clientX,
clientY: S.clientY,
force: 1,
identifier: S.pointerId,
pageX: S.pageX,
pageY: S.pageY,
radiusX: S.width / 2,
radiusY: S.height / 2,
screenX: S.screenX,
screenY: S.screenY,
target: S.target
};
}, Ce = function(S) {
return {
event: S,
touch: ke2(S)
};
}, De = function(S) {
xe.push(Ce(S));
}, qe = function(S) {
for (var z = 0; z < xe.length; z++) {
var ie = xe[z];
if (ie.event.pointerId === S.pointerId) {
xe.splice(z, 1);
return;
}
}
}, Ke = function(S) {
var z = xe.filter(function(ie) {
return ie.event.pointerId === S.pointerId;
})[0];
z.event = S, z.touch = ke2(S);
}, Be = function(S) {
S.touches = xe.map(function(z) {
return z.touch;
});
}, Ge = function(S) {
return S.pointerType === "mouse" || S.pointerType === 4;
};
t20.registerBinding(t20.container, "pointerdown", function(le) {
Ge(le) || (le.preventDefault(), De(le), Be(le), $(le));
}), t20.registerBinding(t20.container, "pointerup", function(le) {
Ge(le) || (qe(le), Be(le), ge2(le));
}), t20.registerBinding(t20.container, "pointercancel", function(le) {
Ge(le) || (qe(le), Be(le), Q(le));
}), t20.registerBinding(t20.container, "pointermove", function(le) {
Ge(le) || (le.preventDefault(), Ke(le), Be(le), G(le));
});
}
};
var Cn = {};
Cn.generatePolygon = function(t20, e) {
return this.nodeShapes[t20] = {
renderer: this,
name: t20,
points: e,
draw: function(n, a, i, o, s, u) {
this.renderer.nodeShapeImpl("polygon", n, a, i, o, s, this.points);
},
intersectLine: function(n, a, i, o, s, u, l, c) {
return oo(s, u, this.points, n, a, i / 2, o / 2, l);
},
checkPoint: function(n, a, i, o, s, u, l, c) {
return mn(n, a, this.points, u, l, o, s, [0, -1], i);
}
};
};
Cn.generateEllipse = function() {
return this.nodeShapes.ellipse = {
renderer: this,
name: "ellipse",
draw: function(e, r, n, a, i, o) {
this.renderer.nodeShapeImpl(this.name, e, r, n, a, i);
},
intersectLine: function(e, r, n, a, i, o, s, u) {
return t4(i, o, e, r, n / 2 + s, a / 2 + s);
},
checkPoint: function(e, r, n, a, i, o, s, u) {
return la(e, r, a, i, o, s, n);
}
};
};
Cn.generateRoundPolygon = function(t20, e) {
return this.nodeShapes[t20] = {
renderer: this,
name: t20,
points: e,
getOrCreateCorners: function(n, a, i, o, s, u, l) {
if (u[l] !== void 0 && u[l + "-cx"] === n && u[l + "-cy"] === a)
return u[l];
u[l] = new Array(e.length / 2), u[l + "-cx"] = n, u[l + "-cy"] = a;
var c = i / 2, d = o / 2;
s = s === "auto" ? gp(i, o) : s;
for (var v = new Array(e.length / 2), h6 = 0; h6 < e.length / 2; h6++)
v[h6] = {
x: n + c * e[h6 * 2],
y: a + d * e[h6 * 2 + 1]
};
var f, p, m, g, y = v.length;
for (p = v[y - 1], f = 0; f < y; f++)
m = v[f % y], g = v[(f + 1) % y], u[l][f] = Sc(p, m, g, s), p = m, m = g;
return u[l];
},
draw: function(n, a, i, o, s, u, l) {
this.renderer.nodeShapeImpl("round-polygon", n, a, i, o, s, this.points, this.getOrCreateCorners(a, i, o, s, u, l, "drawCorners"));
},
intersectLine: function(n, a, i, o, s, u, l, c, d) {
return r4(s, u, this.points, n, a, i, o, l, this.getOrCreateCorners(n, a, i, o, c, d, "corners"));
},
checkPoint: function(n, a, i, o, s, u, l, c, d) {
return e4(n, a, this.points, u, l, o, s, this.getOrCreateCorners(u, l, o, s, c, d, "corners"));
}
};
};
Cn.generateRoundRectangle = function() {
return this.nodeShapes["round-rectangle"] = this.nodeShapes.roundrectangle = {
renderer: this,
name: "round-rectangle",
points: sr(4, 0),
draw: function(e, r, n, a, i, o) {
this.renderer.nodeShapeImpl(this.name, e, r, n, a, i, this.points, o);
},
intersectLine: function(e, r, n, a, i, o, s, u) {
return hp(i, o, e, r, n, a, s, u);
},
checkPoint: function(e, r, n, a, i, o, s, u) {
var l = a / 2, c = i / 2;
u = u === "auto" ? ba(a, i) : u, u = Math.min(l, c, u);
var d = u * 2;
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));
}
};
};
Cn.generateCutRectangle = function() {
return this.nodeShapes["cut-rectangle"] = this.nodeShapes.cutrectangle = {
renderer: this,
name: "cut-rectangle",
cornerLength: vc(),
points: sr(4, 0),
draw: function(e, r, n, a, i, o) {
this.renderer.nodeShapeImpl(this.name, e, r, n, a, i, null, o);
},
generateCutTrianglePts: function(e, r, n, a, i) {
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;
return {
topLeft: [l, d + o, l + o, d, l + o, d + o],
topRight: [c - o, d, c, d + o, c - o, d + o],
bottomRight: [c, v - o, c - o, v, c - o, v - o],
bottomLeft: [l + o, v, l, v - o, l + o, v - o]
};
},
intersectLine: function(e, r, n, a, i, o, s, u) {
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)]);
return oo(i, o, c, e, r);
},
checkPoint: function(e, r, n, a, i, o, s, u) {
var l = u === "auto" ? this.cornerLength : u;
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))
return true;
var c = this.generateCutTrianglePts(a, i, o, s);
return dr(e, r, c.topLeft) || dr(e, r, c.topRight) || dr(e, r, c.bottomRight) || dr(e, r, c.bottomLeft);
}
};
};
Cn.generateBarrel = function() {
return this.nodeShapes.barrel = {
renderer: this,
name: "barrel",
points: sr(4, 0),
draw: function(e, r, n, a, i, o) {
this.renderer.nodeShapeImpl(this.name, e, r, n, a, i);
},
intersectLine: function(e, r, n, a, i, o, s, u) {
var l = 0.15, c = 0.5, d = 0.85, v = this.generateBarrelBezierPts(n + 2 * s, a + 2 * s, e, r), h6 = function(m) {
var g = Ga({
x: m[0],
y: m[1]
}, {
x: m[2],
y: m[3]
}, {
x: m[4],
y: m[5]
}, l), y = Ga({
x: m[0],
y: m[1]
}, {
x: m[2],
y: m[3]
}, {
x: m[4],
y: m[5]
}, c), b = Ga({
x: m[0],
y: m[1]
}, {
x: m[2],
y: m[3]
}, {
x: m[4],
y: m[5]
}, d);
return [m[0], m[1], g.x, g.y, y.x, y.y, b.x, b.y, m[4], m[5]];
}, f = [].concat(h6(v.topLeft), h6(v.topRight), h6(v.bottomRight), h6(v.bottomLeft));
return oo(i, o, f, e, r);
},
generateBarrelBezierPts: function(e, r, n, a) {
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, h6 = d.widthOffset, f = d.ctrlPtOffsetPct * e, p = {
topLeft: [s, l + v, s + f, l, s + h6, l],
topRight: [u - h6, l, u - f, l, u, l + v],
bottomRight: [u, c - v, u - f, c, u - h6, c],
bottomLeft: [s + h6, c, s + f, c, s, c - v]
};
return p.topLeft.isTop = true, p.topRight.isTop = true, p.bottomLeft.isBottom = true, p.bottomRight.isBottom = true, p;
},
checkPoint: function(e, r, n, a, i, o, s, u) {
var l = lu(a, i), c = l.heightOffset, d = l.widthOffset;
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))
return true;
for (var v = this.generateBarrelBezierPts(a, i, o, s), h6 = function(T, k, _) {
var D = _[4], O = _[2], I = _[0], L = _[5], B = _[1], F = Math.min(D, I), M = Math.max(D, I), A = Math.min(L, B), R = Math.max(L, B);
if (F <= T && T <= M && A <= k && k <= R) {
var K10 = n4(D, O, I), H = X5(K10[0], K10[1], K10[2], T), q = H.filter(function(ee) {
return 0 <= ee && ee <= 1;
});
if (q.length > 0)
return q[0];
}
return null;
}, f = Object.keys(v), p = 0; p < f.length; p++) {
var m = f[p], g = v[m], y = h6(e, r, g);
if (y != null) {
var b = g[5], w = g[3], C = g[1], E = Nt(b, w, C, y);
if (g.isTop && E <= r || g.isBottom && r <= E)
return true;
}
}
return false;
}
};
};
Cn.generateBottomRoundrectangle = function() {
return this.nodeShapes["bottom-round-rectangle"] = this.nodeShapes.bottomroundrectangle = {
renderer: this,
name: "bottom-round-rectangle",
points: sr(4, 0),
draw: function(e, r, n, a, i, o) {
this.renderer.nodeShapeImpl(this.name, e, r, n, a, i, this.points, o);
},
intersectLine: function(e, r, n, a, i, o, s, u) {
var l = e - (n / 2 + s), c = r - (a / 2 + s), d = c, v = e + (n / 2 + s), h6 = Nn(i, o, e, r, l, c, v, d, false);
return h6.length > 0 ? h6 : hp(i, o, e, r, n, a, s, u);
},
checkPoint: function(e, r, n, a, i, o, s, u) {
u = u === "auto" ? ba(a, i) : u;
var l = 2 * u;
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))
return true;
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];
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));
}
};
};
Cn.registerNodeShapes = function() {
var t20 = this.nodeShapes = {}, e = this;
this.generateEllipse(), this.generatePolygon("triangle", sr(3, 0)), this.generateRoundPolygon("round-triangle", sr(3, 0)), this.generatePolygon("rectangle", sr(4, 0)), t20.square = t20.rectangle, this.generateRoundRectangle(), this.generateCutRectangle(), this.generateBarrel(), this.generateBottomRoundrectangle();
{
var r = [0, 1, 1, 0, 0, -1, -1, 0];
this.generatePolygon("diamond", r), this.generateRoundPolygon("round-diamond", r);
}
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));
var n = new Array(20);
{
var a = su(5, 0), i = su(5, Math.PI / 5), o = 0.5 * (3 - Math.sqrt(5));
o *= 1.57;
for (var s = 0; s < i.length / 2; s++)
i[s * 2] *= o, i[s * 2 + 1] *= o;
for (var s = 0; s < 20 / 4; s++)
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 = pp(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]);
{
var u = [-1, -1, 0.25, -1, 1, 0, 0.25, 1, -1, 1];
this.generatePolygon("tag", u), this.generateRoundPolygon("round-tag", u);
}
t20.makePolygon = function(l) {
var c = l.join("$"), d = "polygon-" + c, v;
return (v = this[d]) ? v : e.generatePolygon(d, l);
};
};
var Ao = {};
Ao.timeToRender = function() {
return this.redrawTotalTime / this.redrawCount;
};
Ao.redraw = function(t20) {
t20 = t20 || up();
var e = this;
e.averageRedrawTime === void 0 && (e.averageRedrawTime = 0), e.lastRedrawTime === void 0 && (e.lastRedrawTime = 0), e.lastDrawTime === void 0 && (e.lastDrawTime = 0), e.requestedFrame = true, e.renderOptions = t20;
};
Ao.beforeRender = function(t20, e) {
if (!this.destroyed) {
e == null && yt("Priority is not optional for beforeRender");
var r = this.beforeRenderCallbacks;
r.push({
fn: t20,
priority: e
}), r.sort(function(n, a) {
return a.priority - n.priority;
});
}
};
var av = function(e, r, n) {
for (var a = e.beforeRenderCallbacks, i = 0; i < a.length; i++)
a[i].fn(r, n);
};
Ao.startRenderLoop = function() {
var t20 = this, e = t20.cy;
if (!t20.renderLoopStarted) {
t20.renderLoopStarted = true;
var r = function n(a) {
if (!t20.destroyed) {
if (!e.batching()) if (t20.requestedFrame && !t20.skipFrame) {
av(t20, true, a);
var i = gn();
t20.render(t20.renderOptions);
var o = t20.lastDrawTime = gn();
t20.averageRedrawTime === void 0 && (t20.averageRedrawTime = o - i), t20.redrawCount === void 0 && (t20.redrawCount = 0), t20.redrawCount++, t20.redrawTotalTime === void 0 && (t20.redrawTotalTime = 0);
var s = o - i;
t20.redrawTotalTime += s, t20.lastRedrawTime = s, t20.averageRedrawTime = t20.averageRedrawTime / 2 + s / 2, t20.requestedFrame = false;
} else
av(t20, false, a);
t20.skipFrame = false, Ps(n);
}
};
Ps(r);
}
};
var $P = function(e) {
this.init(e);
};
var hg = $P;
var xi = hg.prototype;
xi.clientFunctions = ["redrawHint", "render", "renderTo", "matchCanvasSize", "nodeShapeImpl", "arrowShapeImpl"];
xi.init = function(t20) {
var e = this;
e.options = t20, e.cy = t20.cy;
var r = e.container = t20.cy.container(), n = e.cy.window();
if (n) {
var a = n.document, i = a.head, o = "__________cytoscape_stylesheet", s = "__________cytoscape_container", u = a.getElementById(o) != null;
if (r.className.indexOf(s) < 0 && (r.className = (r.className || "") + " " + s), !u) {
var l = a.createElement("style");
l.id = o, l.textContent = "." + s + " { position: relative; }", i.insertBefore(l, i.children[0]);
}
var c = n.getComputedStyle(r), d = c.getPropertyValue("position");
d === "static" && tt("A Cytoscape container has style position:static and so can not use UI extensions properly");
}
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 = {
down: null,
last: null,
downTime: null,
triggerMode: null,
dragging: false,
initialPan: [null, null],
capture: false
}, e.dragData = {
possibleDragElements: []
}, e.touchData = {
start: null,
capture: false,
// These 3 fields related to tap, taphold events
startPosition: [null, null, null, null, null, null],
singleTouchStartTime: null,
singleTouchMoved: true,
now: [null, null, null, null, null, null],
earlier: [null, null, null, null, null, null]
}, e.redraws = 0, e.showFps = t20.showFps, e.debug = t20.debug, e.hideEdgesOnViewport = t20.hideEdgesOnViewport, e.textureOnViewport = t20.textureOnViewport, e.wheelSensitivity = t20.wheelSensitivity, e.motionBlurEnabled = t20.motionBlur, e.forcedPixelRatio = be(t20.pixelRatio) ? t20.pixelRatio : null, e.motionBlur = t20.motionBlur, e.motionBlurOpacity = t20.motionBlurOpacity, e.motionBlurTransparency = 1 - e.motionBlurOpacity, e.motionBlurPxRatio = 1, e.mbPxRBlurry = 1, e.minMbLowQualFrames = 4, e.fullQualityMb = false, e.clearedForMotionBlur = [], e.desktopTapThreshold = t20.desktopTapThreshold, e.desktopTapThreshold2 = t20.desktopTapThreshold * t20.desktopTapThreshold, e.touchTapThreshold = t20.touchTapThreshold, e.touchTapThreshold2 = t20.touchTapThreshold * t20.touchTapThreshold, e.tapholdDuration = 500, e.bindings = [], e.beforeRenderCallbacks = [], e.beforeRenderPriorities = {
// higher priority execs before lower one
animations: 400,
eleCalcs: 300,
eleTxrDeq: 200,
lyrTxrDeq: 150,
lyrTxrSkip: 100
}, e.registerNodeShapes(), e.registerArrowShapes(), e.registerCalculationListeners();
};
xi.notify = function(t20, e) {
var r = this, n = r.cy;
if (!this.destroyed) {
if (t20 === "init") {
r.load();
return;
}
if (t20 === "destroy") {
r.destroy();
return;
}
(t20 === "add" || t20 === "remove" || t20 === "move" && n.hasCompoundNodes() || t20 === "load" || t20 === "zorder" || t20 === "mount") && r.invalidateCachedZSortedEles(), t20 === "viewport" && r.redrawHint("select", true), (t20 === "load" || t20 === "resize" || t20 === "mount") && (r.invalidateContainerClientCoordsCache(), r.matchCanvasSize(r.container)), r.redrawHint("eles", true), r.redrawHint("drag", true), this.startRenderLoop(), this.redraw();
}
};
xi.destroy = function() {
var t20 = this;
t20.destroyed = true, t20.cy.stopAnimationLoop();
for (var e = 0; e < t20.bindings.length; e++) {
var r = t20.bindings[e], n = r, a = n.target;
(a.off || a.removeEventListener).apply(a, n.args);
}
if (t20.bindings = [], t20.beforeRenderCallbacks = [], t20.onUpdateEleCalcsFns = [], t20.removeObserver && t20.removeObserver.disconnect(), t20.styleObserver && t20.styleObserver.disconnect(), t20.resizeObserver && t20.resizeObserver.disconnect(), t20.labelCalcDiv)
try {
document.body.removeChild(t20.labelCalcDiv);
} catch {
}
};
xi.isHeadless = function() {
return false;
};
[kc, fg, vg, wi, Cn, Ao].forEach(function(t20) {
Re(xi, t20);
});
var ql = 1e3 / 60;
var pg = {
setupDequeueing: function(e) {
return function() {
var n = this, a = this.renderer;
if (!n.dequeueingSetup) {
n.dequeueingSetup = true;
var i = tl(function() {
a.redrawHint("eles", true), a.redrawHint("drag", true), a.redraw();
}, e.deqRedrawThreshold), o = function(l, c) {
var d = gn(), v = a.averageRedrawTime, h6 = a.lastRedrawTime, f = [], p = a.cy.extent(), m = a.getPixelRatio();
for (l || a.flushRenderedStyleQueue(); ; ) {
var g = gn(), y = g - d, b = g - c;
if (h6 < ql) {
var w = ql - (l ? v : 0);
if (b >= e.deqFastCost * w)
break;
} else if (l) {
if (y >= e.deqCost * h6 || y >= e.deqAvgCost * v)
break;
} else if (b >= e.deqNoDrawCost * ql)
break;
var C = e.deq(n, m, p);
if (C.length > 0)
for (var E = 0; E < C.length; E++)
f.push(C[E]);
else
break;
}
f.length > 0 && (e.onDeqd(n, f), !l && e.shouldRedraw(n, f, m, p) && i());
}, s = e.priority || uc;
a.beforeRender(o, s(n));
}
};
}
};
var RP = function() {
function t20(e) {
var r = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : Os;
ac(this, t20), this.idsByKey = new Xr(), this.keyForId = new Xr(), this.cachesByLvl = new Xr(), this.lvls = [], this.getKey = e, this.doesEleInvalidateKey = r;
}
return ic(t20, [{
key: "getIdsFor",
value: function(r) {
r == null && yt("Can not get id list for null key");
var n = this.idsByKey, a = this.idsByKey.get(r);
return a || (a = new vi(), n.set(r, a)), a;
}
}, {
key: "addIdForKey",
value: function(r, n) {
r != null && this.getIdsFor(r).add(n);
}
}, {
key: "deleteIdForKey",
value: function(r, n) {
r != null && this.getIdsFor(r).delete(n);
}
}, {
key: "getNumberOfIdsForKey",
value: function(r) {
return r == null ? 0 : this.getIdsFor(r).size;
}
}, {
key: "updateKeyMappingFor",
value: function(r) {
var n = r.id(), a = this.keyForId.get(n), i = this.getKey(r);
this.deleteIdForKey(a, n), this.addIdForKey(i, n), this.keyForId.set(n, i);
}
}, {
key: "deleteKeyMappingFor",
value: function(r) {
var n = r.id(), a = this.keyForId.get(n);
this.deleteIdForKey(a, n), this.keyForId.delete(n);
}
}, {
key: "keyHasChangedFor",
value: function(r) {
var n = r.id(), a = this.keyForId.get(n), i = this.getKey(r);
return a !== i;
}
}, {
key: "isInvalid",
value: function(r) {
return this.keyHasChangedFor(r) || this.doesEleInvalidateKey(r);
}
}, {
key: "getCachesAt",
value: function(r) {
var n = this.cachesByLvl, a = this.lvls, i = n.get(r);
return i || (i = new Xr(), n.set(r, i), a.push(r)), i;
}
}, {
key: "getCache",
value: function(r, n) {
return this.getCachesAt(n).get(r);
}
}, {
key: "get",
value: function(r, n) {
var a = this.getKey(r), i = this.getCache(a, n);
return i != null && this.updateKeyMappingFor(r), i;
}
}, {
key: "getForCachedKey",
value: function(r, n) {
var a = this.keyForId.get(r.id()), i = this.getCache(a, n);
return i;
}
}, {
key: "hasCache",
value: function(r, n) {
return this.getCachesAt(n).has(r);
}
}, {
key: "has",
value: function(r, n) {
var a = this.getKey(r);
return this.hasCache(a, n);
}
}, {
key: "setCache",
value: function(r, n, a) {
a.key = r, this.getCachesAt(n).set(r, a);
}
}, {
key: "set",
value: function(r, n, a) {
var i = this.getKey(r);
this.setCache(i, n, a), this.updateKeyMappingFor(r);
}
}, {
key: "deleteCache",
value: function(r, n) {
this.getCachesAt(n).delete(r);
}
}, {
key: "delete",
value: function(r, n) {
var a = this.getKey(r);
this.deleteCache(a, n);
}
}, {
key: "invalidateKey",
value: function(r) {
var n = this;
this.lvls.forEach(function(a) {
return n.deleteCache(r, a);
});
}
// returns true if no other eles reference the invalidated cache (n.b. other eles may need the cache with the same key)
}, {
key: "invalidate",
value: function(r) {
var n = r.id(), a = this.keyForId.get(n);
this.deleteKeyMappingFor(r);
var i = this.doesEleInvalidateKey(r);
return i && this.invalidateKey(a), i || this.getNumberOfIdsForKey(a) === 0;
}
}]), t20;
}();
var iv = 25;
var ns = 50;
var ms = -4;
var bu = 3;
var zP = 7.99;
var VP = 8;
var HP = 1024;
var qP = 1024;
var KP = 1024;
var UP = 0.2;
var GP = 0.8;
var WP = 10;
var YP = 0.15;
var ZP = 0.1;
var XP = 0.9;
var jP = 0.9;
var QP = 100;
var JP = 1;
var qa = {
dequeue: "dequeue",
downscale: "downscale",
highQuality: "highQuality"
};
var eO = Wt({
getKey: null,
doesEleInvalidateKey: Os,
drawElement: null,
getBoundingBox: null,
getRotationPoint: null,
getRotationOffset: null,
isVisible: op,
allowEdgeTxrCaching: true,
allowParentTxrCaching: true
});
var Ri = function(e, r) {
var n = this;
n.renderer = e, n.onDequeues = [];
var a = eO(r);
Re(n, a), n.lookup = new RP(a.getKey, a.doesEleInvalidateKey), n.setupDequeueing();
};
var At = Ri.prototype;
At.reasons = qa;
At.getTextureQueue = function(t20) {
var e = this;
return e.eleImgCaches = e.eleImgCaches || {}, e.eleImgCaches[t20] = e.eleImgCaches[t20] || [];
};
At.getRetiredTextureQueue = function(t20) {
var e = this, r = e.eleImgCaches.retired = e.eleImgCaches.retired || {}, n = r[t20] = r[t20] || [];
return n;
};
At.getElementQueue = function() {
var t20 = this, e = t20.eleCacheQueue = t20.eleCacheQueue || new Oo(function(r, n) {
return n.reqs - r.reqs;
});
return e;
};
At.getElementKeyToQueue = function() {
var t20 = this, e = t20.eleKeyToCacheQueue = t20.eleKeyToCacheQueue || {};
return e;
};
At.getElement = function(t20, e, r, n, a) {
var i = this, o = this.renderer, s = o.cy.zoom(), u = this.lookup;
if (!e || e.w === 0 || e.h === 0 || isNaN(e.w) || isNaN(e.h) || !t20.visible() || t20.removed() || !i.allowEdgeTxrCaching && t20.isEdge() || !i.allowParentTxrCaching && t20.isParent())
return null;
if (n == null && (n = Math.ceil(dc(s * r))), n < ms)
n = ms;
else if (s >= zP || n > bu)
return null;
var l = Math.pow(2, n), c = e.h * l, d = e.w * l, v = o.eleTextBiggerThanMin(t20, l);
if (!this.isVisible(t20, v))
return null;
var h6 = u.get(t20, n);
if (h6 && h6.invalidated && (h6.invalidated = false, h6.texture.invalidatedWidth -= h6.width), h6)
return h6;
var f;
if (c <= iv ? f = iv : c <= ns ? f = ns : f = Math.ceil(c / ns) * ns, c > KP || d > qP)
return null;
var p = i.getTextureQueue(f), m = p[p.length - 2], g = function() {
return i.recycleTexture(f, d) || i.addTexture(f, d);
};
m || (m = p[p.length - 1]), m || (m = g()), m.width - m.usedWidth < d && (m = g());
for (var y = function(F) {
return F && F.scaledLabelShown === v;
}, b = a && a === qa.dequeue, w = a && a === qa.highQuality, C = a && a === qa.downscale, E, x = n + 1; x <= bu; x++) {
var T = u.get(t20, x);
if (T) {
E = T;
break;
}
}
var k = E && E.level === n + 1 ? E : null, _ = function() {
m.context.drawImage(k.texture.canvas, k.x, 0, k.width, k.height, m.usedWidth, 0, d, c);
};
if (m.context.setTransform(1, 0, 0, 1, 0, 0), m.context.clearRect(m.usedWidth, 0, d, f), y(k))
_();
else if (y(E))
if (w) {
for (var D = E.level; D > n; D--)
k = i.getElement(t20, e, r, D, qa.downscale);
_();
} else
return i.queueElement(t20, E.level - 1), E;
else {
var O;
if (!b && !w && !C)
for (var I = n - 1; I >= ms; I--) {
var L = u.get(t20, I);
if (L) {
O = L;
break;
}
}
if (y(O))
return i.queueElement(t20, n), O;
m.context.translate(m.usedWidth, 0), m.context.scale(l, l), this.drawElement(m.context, t20, e, v, false), m.context.scale(1 / l, 1 / l), m.context.translate(-m.usedWidth, 0);
}
return h6 = {
x: m.usedWidth,
texture: m,
level: n,
scale: l,
width: d,
height: c,
scaledLabelShown: v
}, m.usedWidth += Math.ceil(d + VP), m.eleCaches.push(h6), u.set(t20, n, h6), i.checkTextureFullness(m), h6;
};
At.invalidateElements = function(t20) {
for (var e = 0; e < t20.length; e++)
this.invalidateElement(t20[e]);
};
At.invalidateElement = function(t20) {
var e = this, r = e.lookup, n = [], a = r.isInvalid(t20);
if (a) {
for (var i = ms; i <= bu; i++) {
var o = r.getForCachedKey(t20, i);
o && n.push(o);
}
var s = r.invalidate(t20);
if (s)
for (var u = 0; u < n.length; u++) {
var l = n[u], c = l.texture;
c.invalidatedWidth += l.width, l.invalidated = true, e.checkTextureUtility(c);
}
e.removeFromQueue(t20);
}
};
At.checkTextureUtility = function(t20) {
t20.invalidatedWidth >= UP * t20.width && this.retireTexture(t20);
};
At.checkTextureFullness = function(t20) {
var e = this, r = e.getTextureQueue(t20.height);
t20.usedWidth / t20.width > GP && t20.fullnessChecks >= WP ? Kn(r, t20) : t20.fullnessChecks++;
};
At.retireTexture = function(t20) {
var e = this, r = t20.height, n = e.getTextureQueue(r), a = this.lookup;
Kn(n, t20), t20.retired = true;
for (var i = t20.eleCaches, o = 0; o < i.length; o++) {
var s = i[o];
a.deleteCache(s.key, s.level);
}
cc(i);
var u = e.getRetiredTextureQueue(r);
u.push(t20);
};
At.addTexture = function(t20, e) {
var r = this, n = r.getTextureQueue(t20), a = {};
return n.push(a), a.eleCaches = [], a.height = t20, a.width = Math.max(HP, 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;
};
At.recycleTexture = function(t20, e) {
for (var r = this, n = r.getTextureQueue(t20), a = r.getRetiredTextureQueue(t20), i = 0; i < a.length; i++) {
var o = a[i];
if (o.width >= e)
return o.retired = false, o.usedWidth = 0, o.invalidatedWidth = 0, o.fullnessChecks = 0, cc(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;
}
};
At.queueElement = function(t20, e) {
var r = this, n = r.getElementQueue(), a = r.getElementKeyToQueue(), i = this.getKey(t20), o = a[i];
if (o)
o.level = Math.max(o.level, e), o.eles.merge(t20), o.reqs++, n.updateItem(o);
else {
var s = {
eles: t20.spawn().merge(t20),
level: e,
reqs: 1,
key: i
};
n.push(s), a[i] = s;
}
};
At.dequeue = function(t20) {
for (var e = this, r = e.getElementQueue(), n = e.getElementKeyToQueue(), a = [], i = e.lookup, o = 0; o < JP && r.size() > 0; o++) {
var s = r.pop(), u = s.key, l = s.eles[0], c = i.hasCache(l, s.level);
if (n[u] = null, c)
continue;
a.push(s);
var d = e.getBoundingBox(l);
e.getElement(l, d, t20, s.level, qa.dequeue);
}
return a;
};
At.removeFromQueue = function(t20) {
var e = this, r = e.getElementQueue(), n = e.getElementKeyToQueue(), a = this.getKey(t20), i = n[a];
i != null && (i.eles.length === 1 ? (i.reqs = lc, r.updateItem(i), r.pop(), n[a] = null) : i.eles.unmerge(t20));
};
At.onDequeue = function(t20) {
this.onDequeues.push(t20);
};
At.offDequeue = function(t20) {
Kn(this.onDequeues, t20);
};
At.setupDequeueing = pg.setupDequeueing({
deqRedrawThreshold: QP,
deqCost: YP,
deqAvgCost: ZP,
deqNoDrawCost: XP,
deqFastCost: jP,
deq: function(e, r, n) {
return e.dequeue(r, n);
},
onDeqd: function(e, r) {
for (var n = 0; n < e.onDequeues.length; n++) {
var a = e.onDequeues[n];
a(r);
}
},
shouldRedraw: function(e, r, n, a) {
for (var i = 0; i < r.length; i++)
for (var o = r[i].eles, s = 0; s < o.length; s++) {
var u = o[s].boundingBox();
if (fc(u, a))
return true;
}
return false;
},
priority: function(e) {
return e.renderer.beforeRenderPriorities.eleTxrDeq;
}
});
var tO = 1;
var Ui = -4;
var $s = 2;
var rO = 3.99;
var nO = 50;
var aO = 50;
var iO = 0.15;
var oO = 0.1;
var sO = 0.9;
var lO = 0.9;
var uO = 1;
var ov = 250;
var cO = 4e3 * 4e3;
var dO = true;
var gg = function(e) {
var r = this, n = r.renderer = e, a = n.cy;
r.layersByLevel = {}, r.firstGet = true, r.lastInvalidationTime = gn() - 2 * ov, r.skipping = false, r.eleTxrDeqs = a.collection(), r.scheduleElementRefinement = tl(function() {
r.refineElementTextures(r.eleTxrDeqs), r.eleTxrDeqs.unmerge(r.eleTxrDeqs);
}, aO), n.beforeRender(function(o, s) {
s - r.lastInvalidationTime <= ov ? r.skipping = true : r.skipping = false;
}, n.beforeRenderPriorities.lyrTxrSkip);
var i = function(s, u) {
return u.reqs - s.reqs;
};
r.layersQueue = new Oo(i), r.setupDequeueing();
};
var Yt = gg.prototype;
var sv = 0;
var fO = Math.pow(2, 53) - 1;
Yt.makeLayer = function(t20, e) {
var r = Math.pow(2, e), n = Math.ceil(t20.w * r), a = Math.ceil(t20.h * r), i = this.renderer.makeOffscreenCanvas(n, a), o = {
id: sv = ++sv % fO,
bb: t20,
level: e,
width: n,
height: a,
canvas: i,
context: i.getContext("2d"),
eles: [],
elesQueue: [],
reqs: 0
}, s = o.context, u = -o.bb.x1, l = -o.bb.y1;
return s.scale(r, r), s.translate(u, l), o;
};
Yt.getLayers = function(t20, e, r) {
var n = this, a = n.renderer, i = a.cy, o = i.zoom(), s = n.firstGet;
if (n.firstGet = false, r == null) {
if (r = Math.ceil(dc(o * e)), r < Ui)
r = Ui;
else if (o >= rO || r > $s)
return null;
}
n.validateLayersElesOrdering(r, t20);
var u = n.layersByLevel, l = Math.pow(2, r), c = u[r] = u[r] || [], d, v = n.levelIsComplete(r, t20), h6, f = function() {
var _ = function(B) {
if (n.validateLayersElesOrdering(B, t20), n.levelIsComplete(B, t20))
return h6 = u[B], true;
}, D = function(B) {
if (!h6)
for (var F = r + B; Ui <= F && F <= $s && !_(F); F += B)
;
};
D(1), D(-1);
for (var O = c.length - 1; O >= 0; O--) {
var I = c[O];
I.invalid && Kn(c, I);
}
};
if (!v)
f();
else
return c;
var p = function() {
if (!d) {
d = pr();
for (var _ = 0; _ < t20.length; _++)
fp(d, t20[_].boundingBox());
}
return d;
}, m = function(_) {
_ = _ || {};
var D = _.after;
p();
var O = d.w * l * (d.h * l);
if (O > cO)
return null;
var I = n.makeLayer(d, r);
if (D != null) {
var L = c.indexOf(D) + 1;
c.splice(L, 0, I);
} else (_.insert === void 0 || _.insert) && c.unshift(I);
return I;
};
if (n.skipping && !s)
return null;
for (var g = null, y = t20.length / tO, b = !s, w = 0; w < t20.length; w++) {
var C = t20[w], E = C._private.rscratch, x = E.imgLayerCaches = E.imgLayerCaches || {}, T = x[r];
if (T) {
g = T;
continue;
}
if ((!g || g.eles.length >= y || !vp(g.bb, C.boundingBox())) && (g = m({
insert: true,
after: g
}), !g))
return null;
h6 || b ? n.queueLayer(g, C) : n.drawEleInLayer(g, C, r, e), g.eles.push(C), x[r] = g;
}
return h6 || (b ? null : c);
};
Yt.getEleLevelForLayerLevel = function(t20, e) {
return t20;
};
Yt.drawEleInLayer = function(t20, e, r, n) {
var a = this, i = this.renderer, o = t20.context, s = e.boundingBox();
s.w === 0 || s.h === 0 || !e.visible() || (r = a.getEleLevelForLayerLevel(r, n), i.setImgSmoothing(o, false), i.drawCachedElement(o, e, null, null, r, dO), i.setImgSmoothing(o, true));
};
Yt.levelIsComplete = function(t20, e) {
var r = this, n = r.layersByLevel[t20];
if (!n || n.length === 0)
return false;
for (var a = 0, i = 0; i < n.length; i++) {
var o = n[i];
if (o.reqs > 0 || o.invalid)
return false;
a += o.eles.length;
}
return a === e.length;
};
Yt.validateLayersElesOrdering = function(t20, e) {
var r = this.layersByLevel[t20];
if (r)
for (var n = 0; n < r.length; n++) {
for (var a = r[n], i = -1, o = 0; o < e.length; o++)
if (a.eles[0] === e[o]) {
i = o;
break;
}
if (i < 0) {
this.invalidateLayer(a);
continue;
}
for (var s = i, o = 0; o < a.eles.length; o++)
if (a.eles[o] !== e[s + o]) {
this.invalidateLayer(a);
break;
}
}
};
Yt.updateElementsInLayers = function(t20, e) {
for (var r = this, n = Do(t20[0]), a = 0; a < t20.length; a++)
for (var i = n ? null : t20[a], o = n ? t20[a] : t20[a].ele, s = o._private.rscratch, u = s.imgLayerCaches = s.imgLayerCaches || {}, l = Ui; l <= $s; l++) {
var c = u[l];
c && (i && r.getEleLevelForLayerLevel(c.level) !== i.level || e(c, o, i));
}
};
Yt.haveLayers = function() {
for (var t20 = this, e = false, r = Ui; r <= $s; r++) {
var n = t20.layersByLevel[r];
if (n && n.length > 0) {
e = true;
break;
}
}
return e;
};
Yt.invalidateElements = function(t20) {
var e = this;
t20.length !== 0 && (e.lastInvalidationTime = gn(), !(t20.length === 0 || !e.haveLayers()) && e.updateElementsInLayers(t20, function(n, a, i) {
e.invalidateLayer(n);
}));
};
Yt.invalidateLayer = function(t20) {
if (this.lastInvalidationTime = gn(), !t20.invalid) {
var e = t20.level, r = t20.eles, n = this.layersByLevel[e];
Kn(n, t20), t20.elesQueue = [], t20.invalid = true, t20.replacement && (t20.replacement.invalid = true);
for (var a = 0; a < r.length; a++) {
var i = r[a]._private.rscratch.imgLayerCaches;
i && (i[e] = null);
}
}
};
Yt.refineElementTextures = function(t20) {
var e = this;
e.updateElementsInLayers(t20, function(n, a, i) {
var o = n.replacement;
if (o || (o = n.replacement = e.makeLayer(n.bb, n.level), o.replaces = n, o.eles = n.eles), !o.reqs)
for (var s = 0; s < o.eles.length; s++)
e.queueLayer(o, o.eles[s]);
});
};
Yt.enqueueElementRefinement = function(t20) {
this.eleTxrDeqs.merge(t20), this.scheduleElementRefinement();
};
Yt.queueLayer = function(t20, e) {
var r = this, n = r.layersQueue, a = t20.elesQueue, i = a.hasId = a.hasId || {};
if (!t20.replacement) {
if (e) {
if (i[e.id()])
return;
a.push(e), i[e.id()] = true;
}
t20.reqs ? (t20.reqs++, n.updateItem(t20)) : (t20.reqs = 1, n.push(t20));
}
};
Yt.dequeue = function(t20) {
for (var e = this, r = e.layersQueue, n = [], a = 0; a < uO && r.size() !== 0; ) {
var i = r.peek();
if (i.replacement) {
r.pop();
continue;
}
if (i.replaces && i !== i.replaces.replacement) {
r.pop();
continue;
}
if (i.invalid) {
r.pop();
continue;
}
var o = i.elesQueue.shift();
o && (e.drawEleInLayer(i, o, i.level, t20), a++), n.length === 0 && n.push(true), i.elesQueue.length === 0 && (r.pop(), i.reqs = 0, i.replaces && e.applyLayerReplacement(i), e.requestRedraw());
}
return n;
};
Yt.applyLayerReplacement = function(t20) {
var e = this, r = e.layersByLevel[t20.level], n = t20.replaces, a = r.indexOf(n);
if (!(a < 0 || n.invalid)) {
r[a] = t20;
for (var i = 0; i < t20.eles.length; i++) {
var o = t20.eles[i]._private, s = o.imgLayerCaches = o.imgLayerCaches || {};
s && (s[t20.level] = t20);
}
e.requestRedraw();
}
};
Yt.requestRedraw = tl(function() {
var t20 = this.renderer;
t20.redrawHint("eles", true), t20.redrawHint("drag", true), t20.redraw();
}, 100);
Yt.setupDequeueing = pg.setupDequeueing({
deqRedrawThreshold: nO,
deqCost: iO,
deqAvgCost: oO,
deqNoDrawCost: sO,
deqFastCost: lO,
deq: function(e, r) {
return e.dequeue(r);
},
onDeqd: uc,
shouldRedraw: op,
priority: function(e) {
return e.renderer.beforeRenderPriorities.lyrTxrDeq;
}
});
var mg = {};
var lv;
function vO(t20, e) {
for (var r = 0; r < e.length; r++) {
var n = e[r];
t20.lineTo(n.x, n.y);
}
}
function hO(t20, e, r) {
for (var n, a = 0; a < e.length; a++) {
var i = e[a];
a === 0 && (n = i), t20.lineTo(i.x, i.y);
}
t20.quadraticCurveTo(r.x, r.y, n.x, n.y);
}
function uv(t20, e, r) {
t20.beginPath && t20.beginPath();
for (var n = e, a = 0; a < n.length; a++) {
var i = n[a];
t20.lineTo(i.x, i.y);
}
var o = r, s = r[0];
t20.moveTo(s.x, s.y);
for (var a = 1; a < o.length; a++) {
var i = o[a];
t20.lineTo(i.x, i.y);
}
t20.closePath && t20.closePath();
}
function pO(t20, e, r, n, a) {
t20.beginPath && t20.beginPath(), t20.arc(r, n, a, 0, Math.PI * 2, false);
var i = e, o = i[0];
t20.moveTo(o.x, o.y);
for (var s = 0; s < i.length; s++) {
var u = i[s];
t20.lineTo(u.x, u.y);
}
t20.closePath && t20.closePath();
}
function gO(t20, e, r, n) {
t20.arc(e, r, n, 0, Math.PI * 2, false);
}
mg.arrowShapeImpl = function(t20) {
return (lv || (lv = {
polygon: vO,
"triangle-backcurve": hO,
"triangle-tee": uv,
"circle-triangle": pO,
"triangle-cross": uv,
circle: gO
}))[t20];
};
var on = {};
on.drawElement = function(t20, e, r, n, a, i) {
var o = this;
e.isNode() ? o.drawNode(t20, e, r, n, a, i) : o.drawEdge(t20, e, r, n, a, i);
};
on.drawElementOverlay = function(t20, e) {
var r = this;
e.isNode() ? r.drawNodeOverlay(t20, e) : r.drawEdgeOverlay(t20, e);
};
on.drawElementUnderlay = function(t20, e) {
var r = this;
e.isNode() ? r.drawNodeUnderlay(t20, e) : r.drawEdgeUnderlay(t20, e);
};
on.drawCachedElementPortion = function(t20, e, r, n, a, i, o, s) {
var u = this, l = r.getBoundingBox(e);
if (!(l.w === 0 || l.h === 0)) {
var c = r.getElement(e, l, n, a, i);
if (c != null) {
var d = s(u, e);
if (d === 0)
return;
var v = o(u, e), h6 = l.x1, f = l.y1, p = l.w, m = l.h, g, y, b, w, C;
if (v !== 0) {
var E = r.getRotationPoint(e);
b = E.x, w = E.y, t20.translate(b, w), t20.rotate(v), C = u.getImgSmoothing(t20), C || u.setImgSmoothing(t20, true);
var x = r.getRotationOffset(e);
g = x.x, y = x.y;
} else
g = h6, y = f;
var T;
d !== 1 && (T = t20.globalAlpha, t20.globalAlpha = T * d), t20.drawImage(c.texture.canvas, c.x, 0, c.width, c.height, g, y, p, m), d !== 1 && (t20.globalAlpha = T), v !== 0 && (t20.rotate(-v), t20.translate(-b, -w), C || u.setImgSmoothing(t20, false));
} else
r.drawElement(t20, e);
}
};
var mO = function() {
return 0;
};
var yO = function(e, r) {
return e.getTextAngle(r, null);
};
var bO = function(e, r) {
return e.getTextAngle(r, "source");
};
var wO = function(e, r) {
return e.getTextAngle(r, "target");
};
var xO = function(e, r) {
return r.effectiveOpacity();
};
var Kl = function(e, r) {
return r.pstyle("text-opacity").pfValue * r.effectiveOpacity();
};
on.drawCachedElement = function(t20, e, r, n, a, i) {
var o = this, s = o.data, u = s.eleTxrCache, l = s.lblTxrCache, c = s.slbTxrCache, d = s.tlbTxrCache, v = e.boundingBox(), h6 = i === true ? u.reasons.highQuality : null;
if (!(v.w === 0 || v.h === 0 || !e.visible()) && (!n || fc(v, n))) {
var f = e.isEdge(), p = e.element()._private.rscratch.badLine;
o.drawElementUnderlay(t20, e), o.drawCachedElementPortion(t20, e, u, r, a, h6, mO, xO), (!f || !p) && o.drawCachedElementPortion(t20, e, l, r, a, h6, yO, Kl), f && !p && (o.drawCachedElementPortion(t20, e, c, r, a, h6, bO, Kl), o.drawCachedElementPortion(t20, e, d, r, a, h6, wO, Kl)), o.drawElementOverlay(t20, e);
}
};
on.drawElements = function(t20, e) {
for (var r = this, n = 0; n < e.length; n++) {
var a = e[n];
r.drawElement(t20, a);
}
};
on.drawCachedElements = function(t20, e, r, n) {
for (var a = this, i = 0; i < e.length; i++) {
var o = e[i];
a.drawCachedElement(t20, o, r, n);
}
};
on.drawCachedNodes = function(t20, e, r, n) {
for (var a = this, i = 0; i < e.length; i++) {
var o = e[i];
o.isNode() && a.drawCachedElement(t20, o, r, n);
}
};
on.drawLayeredElements = function(t20, e, r, n) {
var a = this, i = a.data.lyrTxrCache.getLayers(e, r);
if (i)
for (var o = 0; o < i.length; o++) {
var s = i[o], u = s.bb;
u.w === 0 || u.h === 0 || t20.drawImage(s.canvas, u.x1, u.y1, u.w, u.h);
}
else
a.drawCachedElements(t20, e, r, n);
};
var En = {};
En.drawEdge = function(t20, e, r) {
var n = arguments.length > 3 && arguments[3] !== void 0 ? arguments[3] : true, a = arguments.length > 4 && arguments[4] !== void 0 ? arguments[4] : true, i = arguments.length > 5 && arguments[5] !== void 0 ? arguments[5] : true, o = this, s = e._private.rscratch;
if (!(i && !e.visible()) && !(s.badLine || s.allpts == null || isNaN(s.allpts[0]))) {
var u;
r && (u = r, t20.translate(-u.x1, -u.y1));
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, h6 = 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() {
var B = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : g;
d === "straight-triangle" ? (o.eleStrokeStyle(t20, e, B), o.drawEdgeTrianglePath(e, t20, s.allpts)) : (t20.lineWidth = h6, t20.lineCap = f, o.eleStrokeStyle(t20, e, B), o.drawEdgePath(e, t20, s.allpts, v), t20.lineCap = "butt");
}, w = function() {
var B = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : g;
if (t20.lineWidth = h6 + p, t20.lineCap = f, p > 0)
o.colorStrokeStyle(t20, m[0], m[1], m[2], B);
else {
t20.lineCap = "butt";
return;
}
d === "straight-triangle" ? o.drawEdgeTrianglePath(e, t20, s.allpts) : (o.drawEdgePath(e, t20, s.allpts, v), t20.lineCap = "butt");
}, C = function() {
a && o.drawEdgeOverlay(t20, e);
}, E = function() {
a && o.drawEdgeUnderlay(t20, e);
}, x = function() {
var B = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : y;
o.drawArrowheads(t20, e, B);
}, T = function() {
o.drawElementText(t20, e, null, n);
};
t20.lineJoin = "round";
var k = e.pstyle("ghost").value === "yes";
if (k) {
var _ = e.pstyle("ghost-offset-x").pfValue, D = e.pstyle("ghost-offset-y").pfValue, O = e.pstyle("ghost-opacity").value, I = g * O;
t20.translate(_, D), b(I), x(I), t20.translate(-_, -D);
} else
w();
E(), b(), x(), C(), T(), r && t20.translate(u.x1, u.y1);
}
};
var yg = function(e) {
if (!["overlay", "underlay"].includes(e))
throw new Error("Invalid state");
return function(r, n) {
if (n.visible()) {
var a = n.pstyle("".concat(e, "-opacity")).value;
if (a !== 0) {
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;
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");
}
}
};
};
En.drawEdgeOverlay = yg("overlay");
En.drawEdgeUnderlay = yg("underlay");
En.drawEdgePath = function(t20, e, r, n) {
var a = t20._private.rscratch, i = e, o, s = false, u = this.usePaths(), l = t20.pstyle("line-dash-pattern").pfValue, c = t20.pstyle("line-dash-offset").pfValue;
if (u) {
var d = r.join("$"), v = a.pathCacheKey && a.pathCacheKey === d;
v ? (o = e = a.pathCache, s = true) : (o = e = new Path2D(), a.pathCacheKey = d, a.pathCache = o);
}
if (i.setLineDash)
switch (n) {
case "dotted":
i.setLineDash([1, 1]);
break;
case "dashed":
i.setLineDash(l), i.lineDashOffset = c;
break;
case "solid":
i.setLineDash([]);
break;
}
if (!s && !a.badLine)
switch (e.beginPath && e.beginPath(), e.moveTo(r[0], r[1]), a.edgeType) {
case "bezier":
case "self":
case "compound":
case "multibezier":
for (var h6 = 2; h6 + 3 < r.length; h6 += 4)
e.quadraticCurveTo(r[h6], r[h6 + 1], r[h6 + 2], r[h6 + 3]);
break;
case "straight":
case "haystack":
for (var f = 2; f + 1 < r.length; f += 2)
e.lineTo(r[f], r[f + 1]);
break;
case "segments":
if (a.isRound) {
var p = Gh(a.roundCorners), m;
try {
for (p.s(); !(m = p.n()).done; ) {
var g = m.value;
sg(e, g);
}
} catch (b) {
p.e(b);
} finally {
p.f();
}
e.lineTo(r[r.length - 2], r[r.length - 1]);
} else
for (var y = 2; y + 1 < r.length; y += 2)
e.lineTo(r[y], r[y + 1]);
break;
}
e = i, u ? e.stroke(o) : e.stroke(), e.setLineDash && e.setLineDash([]);
};
En.drawEdgeTrianglePath = function(t20, e, r) {
e.fillStyle = e.strokeStyle;
for (var n = t20.pstyle("width").pfValue, a = 0; a + 1 < r.length; a += 2) {
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];
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();
}
};
En.drawArrowheads = function(t20, e, r) {
var n = e._private.rscratch, a = n.edgeType === "haystack";
a || this.drawArrowhead(t20, e, "source", n.arrowStartX, n.arrowStartY, n.srcArrowAngle, r), this.drawArrowhead(t20, e, "mid-target", n.midX, n.midY, n.midtgtArrowAngle, r), this.drawArrowhead(t20, e, "mid-source", n.midX, n.midY, n.midsrcArrowAngle, r), a || this.drawArrowhead(t20, e, "target", n.arrowEndX, n.arrowEndY, n.tgtArrowAngle, r);
};
En.drawArrowhead = function(t20, e, r, n, a, i, o) {
if (!(isNaN(n) || n == null || isNaN(a) || a == null || isNaN(i) || i == null)) {
var s = this, u = e.pstyle(r + "-arrow-shape").value;
if (u !== "none") {
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"), h6 = v.value === "match-line" ? d : v.pfValue;
v.units === "%" && (h6 *= d);
var f = e.pstyle("opacity").value;
o === void 0 && (o = f);
var p = t20.globalCompositeOperation;
(o !== 1 || c === "hollow") && (t20.globalCompositeOperation = "destination-out", s.colorFillStyle(t20, 255, 255, 255, 1), s.colorStrokeStyle(t20, 255, 255, 255, 1), s.drawArrowShape(e, t20, l, d, u, h6, n, a, i), t20.globalCompositeOperation = p);
var m = e.pstyle(r + "-arrow-color").value;
s.colorFillStyle(t20, m[0], m[1], m[2], o), s.colorStrokeStyle(t20, m[0], m[1], m[2], o), s.drawArrowShape(e, t20, c, d, u, h6, n, a, i);
}
}
};
En.drawArrowShape = function(t20, e, r, n, a, i, o, s, u) {
var l = this, c = this.usePaths() && a !== "triangle-cross", d = false, v, h6 = e, f = {
x: o,
y: s
}, p = t20.pstyle("arrow-scale").value, m = this.getArrowWidth(n, p), g = l.arrowShapes[a];
if (c) {
var y = l.arrowPathCache = l.arrowPathCache || [], b = ma(a), w = y[b];
w != null ? (v = e = w, d = true) : (v = e = new Path2D(), y[b] = v);
}
d || (e.beginPath && e.beginPath(), c ? g.draw(e, 1, 0, {
x: 0,
y: 0
}, 1) : g.draw(e, m, u, f, n), e.closePath && e.closePath()), e = h6, 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));
};
var _c = {};
_c.safeDrawImage = function(t20, e, r, n, a, i, o, s, u, l) {
if (!(a <= 0 || i <= 0 || u <= 0 || l <= 0))
try {
t20.drawImage(e, r, n, a, i, o, s, u, l);
} catch (c) {
tt(c);
}
};
_c.drawInscribedImage = function(t20, e, r, n, a) {
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), h6 = r.width(), f = r.height(), p = r.padding() * 2, m = h6 + (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;
x !== "auto" && (x = r.pstyle("corner-radius").pfValue);
var T = e.width || e.cachedW, k = e.height || e.cachedH;
(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));
var _ = T, D = k;
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)) {
if (d === "contain") {
var O = Math.min(m / _, g / D);
_ *= O, D *= O;
} else if (d === "cover") {
var O = Math.max(m / _, g / D);
_ *= O, D *= O;
}
var I = s - m / 2, L = c(r, "background-position-x", "units", n), B = c(r, "background-position-x", "pfValue", n);
L === "%" ? I += (m - _) * B : I += B;
var F = c(r, "background-offset-x", "units", n), M = c(r, "background-offset-x", "pfValue", n);
F === "%" ? I += (m - _) * M : I += M;
var A = u - g / 2, R = c(r, "background-position-y", "units", n), K10 = c(r, "background-position-y", "pfValue", n);
R === "%" ? A += (g - D) * K10 : A += K10;
var H = c(r, "background-offset-y", "units", n), q = c(r, "background-offset-y", "pfValue", n);
H === "%" ? A += (g - D) * q : A += q, y.pathCache && (I -= s, A -= u, s = 0, u = 0);
var ee = t20.globalAlpha;
t20.globalAlpha = C;
var se2 = i.getImgSmoothing(t20), oe = false;
if (E === "no" && se2 ? (i.setImgSmoothing(t20, false), oe = true) : E === "yes" && !se2 && (i.setImgSmoothing(t20, true), oe = true), v === "no-repeat")
w && (t20.save(), y.pathCache ? t20.clip(y.pathCache) : (i.nodeShapes[i.getNodeShape(r)].draw(t20, s, u, m, g, x, y), t20.clip())), i.safeDrawImage(t20, e, 0, 0, T, k, I, A, _, D), w && t20.restore();
else {
var ae = t20.createPattern(e, v);
t20.fillStyle = ae, i.nodeShapes[i.getNodeShape(r)].draw(t20, s, u, m, g, x, y), t20.translate(I, A), t20.fill(), t20.translate(-I, -A);
}
t20.globalAlpha = ee, oe && i.setImgSmoothing(t20, se2);
}
};
var Pa = {};
Pa.eleTextBiggerThanMin = function(t20, e) {
if (!e) {
var r = t20.cy().zoom(), n = this.getPixelRatio(), a = Math.ceil(dc(r * n));
e = Math.pow(2, a);
}
var i = t20.pstyle("font-size").pfValue * e, o = t20.pstyle("min-zoomed-font-size").pfValue;
return !(i < o);
};
Pa.drawElementText = function(t20, e, r, n, a) {
var i = arguments.length > 5 && arguments[5] !== void 0 ? arguments[5] : true, o = this;
if (n == null) {
if (i && !o.eleTextBiggerThanMin(e))
return;
} else if (n === false)
return;
if (e.isNode()) {
var s = e.pstyle("label");
if (!s || !s.value)
return;
var u = o.getLabelJustification(e);
t20.textAlign = u, t20.textBaseline = "bottom";
} else {
var l = e.element()._private.rscratch.badLine, c = e.pstyle("label"), d = e.pstyle("source-label"), v = e.pstyle("target-label");
if (l || (!c || !c.value) && (!d || !d.value) && (!v || !v.value))
return;
t20.textAlign = "center", t20.textBaseline = "bottom";
}
var h6 = !r, f;
r && (f = r, t20.translate(-f.x1, -f.y1)), a == null ? (o.drawText(t20, e, null, h6, i), e.isEdge() && (o.drawText(t20, e, "source", h6, i), o.drawText(t20, e, "target", h6, i))) : o.drawText(t20, e, a, h6, i), r && t20.translate(f.x1, f.y1);
};
Pa.getFontCache = function(t20) {
var e;
this.fontCaches = this.fontCaches || [];
for (var r = 0; r < this.fontCaches.length; r++)
if (e = this.fontCaches[r], e.context === t20)
return e;
return e = {
context: t20
}, this.fontCaches.push(e), e;
};
Pa.setupTextStyle = function(t20, e) {
var r = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : true, 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;
t20.font = n + " " + o + " " + a + " " + i, t20.lineJoin = "round", this.colorFillStyle(t20, l[0], l[1], l[2], s), this.colorStrokeStyle(t20, c[0], c[1], c[2], u);
};
function Ul(t20, e, r, n, a) {
var i = arguments.length > 5 && arguments[5] !== void 0 ? arguments[5] : 5, o = arguments.length > 6 ? arguments[6] : void 0;
t20.beginPath(), t20.moveTo(e + i, r), t20.lineTo(e + n - i, r), t20.quadraticCurveTo(e + n, r, e + n, r + i), t20.lineTo(e + n, r + a - i), t20.quadraticCurveTo(e + n, r + a, e + n - i, r + a), t20.lineTo(e + i, r + a), t20.quadraticCurveTo(e, r + a, e, r + a - i), t20.lineTo(e, r + i), t20.quadraticCurveTo(e, r, e + i, r), t20.closePath(), o ? t20.stroke() : t20.fill();
}
Pa.getTextAngle = function(t20, e) {
var r, n = t20._private, a = n.rscratch, i = e ? e + "-" : "", o = t20.pstyle(i + "text-rotation"), s = Nr(a, "labelAngle", e);
return o.strValue === "autorotate" ? r = t20.isEdge() ? s : 0 : o.strValue === "none" ? r = 0 : r = o.pfValue, r;
};
Pa.drawText = function(t20, e, r) {
var n = arguments.length > 3 && arguments[3] !== void 0 ? arguments[3] : true, a = arguments.length > 4 && arguments[4] !== void 0 ? arguments[4] : true, i = e._private, o = i.rscratch, s = a ? e.effectiveOpacity() : 1;
if (!(a && (s === 0 || e.pstyle("text-opacity").value === 0))) {
r === "main" && (r = null);
var u = Nr(o, "labelX", r), l = Nr(o, "labelY", r), c, d, v = this.getLabelText(e, r);
if (v != null && v !== "" && !isNaN(u) && !isNaN(l)) {
this.setupTextStyle(t20, e, a);
var h6 = r ? r + "-" : "", f = Nr(o, "labelWidth", r), p = Nr(o, "labelHeight", r), m = e.pstyle(h6 + "text-margin-x").pfValue, g = e.pstyle(h6 + "text-margin-y").pfValue, y = e.isEdge(), b = e.pstyle("text-halign").value, w = e.pstyle("text-valign").value;
y && (b = "center", w = "center"), u += m, l += g;
var C;
switch (n ? C = this.getTextAngle(e, r) : C = 0, C !== 0 && (c = u, d = l, t20.translate(c, d), t20.rotate(C), u = 0, l = 0), w) {
case "top":
break;
case "center":
l += p / 2;
break;
case "bottom":
l += p;
break;
}
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;
if (E > 0 || T > 0 && x > 0) {
var I = u - k;
switch (b) {
case "left":
I -= f;
break;
case "center":
I -= f / 2;
break;
}
var L = l - p - k, B = f + 2 * k, F = p + 2 * k;
if (E > 0) {
var M = t20.fillStyle, A = e.pstyle("text-background-color").value;
t20.fillStyle = "rgba(" + A[0] + "," + A[1] + "," + A[2] + "," + E * s + ")", D ? Ul(t20, I, L, B, F, O) : t20.fillRect(I, L, B, F), t20.fillStyle = M;
}
if (T > 0 && x > 0) {
var R = t20.strokeStyle, K10 = t20.lineWidth, H = e.pstyle("text-border-color").value, q = e.pstyle("text-border-style").value;
if (t20.strokeStyle = "rgba(" + H[0] + "," + H[1] + "," + H[2] + "," + x * s + ")", t20.lineWidth = T, t20.setLineDash)
switch (q) {
case "dotted":
t20.setLineDash([1, 1]);
break;
case "dashed":
t20.setLineDash([4, 2]);
break;
case "double":
t20.lineWidth = T / 4, t20.setLineDash([]);
break;
case "solid":
t20.setLineDash([]);
break;
}
if (D ? Ul(t20, I, L, B, F, O, "stroke") : t20.strokeRect(I, L, B, F), q === "double") {
var ee = T / 2;
D ? Ul(t20, I + ee, L + ee, B - ee * 2, F - ee * 2, O, "stroke") : t20.strokeRect(I + ee, L + ee, B - ee * 2, F - ee * 2);
}
t20.setLineDash && t20.setLineDash([]), t20.lineWidth = K10, t20.strokeStyle = R;
}
}
var se2 = 2 * e.pstyle("text-outline-width").pfValue;
if (se2 > 0 && (t20.lineWidth = se2), e.pstyle("text-wrap").value === "wrap") {
var oe = Nr(o, "labelWrapCachedLines", r), ae = Nr(o, "labelLineHeight", r), ue = f / 2, te = this.getLabelJustification(e);
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) {
case "top":
l -= (oe.length - 1) * ae;
break;
case "center":
case "bottom":
l -= (oe.length - 1) * ae;
break;
}
for (var $ = 0; $ < oe.length; $++)
se2 > 0 && t20.strokeText(oe[$], u, l), t20.fillText(oe[$], u, l), l += ae;
} else
se2 > 0 && t20.strokeText(v, u, l), t20.fillText(v, u, l);
C !== 0 && (t20.rotate(-C), t20.translate(-c, -d));
}
}
};
var Ci = {};
Ci.drawNode = function(t20, e, r) {
var n = arguments.length > 3 && arguments[3] !== void 0 ? arguments[3] : true, a = arguments.length > 4 && arguments[4] !== void 0 ? arguments[4] : true, i = arguments.length > 5 && arguments[5] !== void 0 ? arguments[5] : true, o = this, s, u, l = e._private, c = l.rscratch, d = e.position();
if (!(!be(d.x) || !be(d.y)) && !(i && !e.visible())) {
var v = i ? e.effectiveOpacity() : 1, h6 = o.usePaths(), f, p = false, m = e.padding();
s = e.width() + 2 * m, u = e.height() + 2 * m;
var g;
r && (g = r, t20.translate(-g.x1, -g.y1));
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++) {
var T = b[x], k = w[x] = T != null && T !== "none";
if (k) {
var _ = e.cy().style().getIndexedStyle(e, "background-image-crossorigin", "value", x);
E++, C[x] = o.getCachedImage(T, _, function() {
l.backgroundTimestamp = Date.now(), e.emitAndNotify("background");
});
}
}
var D = e.pstyle("background-blacken").value, O = e.pstyle("border-width").pfValue, I = e.pstyle("background-opacity").value * v, L = e.pstyle("border-color").value, B = e.pstyle("border-style").value, F = e.pstyle("border-join").value, M = e.pstyle("border-cap").value, A = e.pstyle("border-position").value, R = e.pstyle("border-dash-pattern").pfValue, K10 = 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, se2 = e.pstyle("outline-style").value, oe = e.pstyle("outline-opacity").value * v, ae = e.pstyle("outline-offset").value, ue = e.pstyle("corner-radius").value;
ue !== "auto" && (ue = e.pstyle("corner-radius").pfValue);
var te = function() {
var pe = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : I;
o.eleFillStyle(t20, e, pe);
}, $ = function() {
var pe = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : H;
o.colorStrokeStyle(t20, L[0], L[1], L[2], pe);
}, G = function() {
var pe = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : oe;
o.colorStrokeStyle(t20, ee[0], ee[1], ee[2], pe);
}, Q = function(pe, re, ve, Ae) {
var Me = o.nodePathCache = o.nodePathCache || [], _e = ip(ve === "polygon" ? ve + "," + Ae.join(",") : ve, "" + re, "" + pe, "" + ue), Ne = Me[_e], Te, Oe = false;
return Ne != null ? (Te = Ne, Oe = true, c.pathCache = Te) : (Te = new Path2D(), Me[_e] = c.pathCache = Te), {
path: Te,
cacheHit: Oe
};
}, ge2 = e.pstyle("shape").strValue, Ee2 = e.pstyle("shape-polygon-points").pfValue;
if (h6) {
t20.translate(d.x, d.y);
var fe = Q(s, u, ge2, Ee2);
f = fe.path, p = fe.cacheHit;
}
var me = function() {
if (!p) {
var pe = d;
h6 && (pe = {
x: 0,
y: 0
}), o.nodeShapes[o.getNodeShape(e)].draw(f || t20, pe.x, pe.y, s, u, ue, c);
}
h6 ? t20.fill(f) : t20.fill();
}, xe = function() {
for (var pe = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : v, re = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : true, ve = l.backgrounding, Ae = 0, Me = 0; Me < C.length; Me++) {
var _e = e.cy().style().getIndexedStyle(e, "background-image-containment", "value", Me);
if (re && _e === "over" || !re && _e === "inside") {
Ae++;
continue;
}
w[Me] && C[Me].complete && !C[Me].error && (Ae++, o.drawInscribedImage(t20, C[Me], e, Me, pe));
}
l.backgrounding = Ae !== E, ve !== l.backgrounding && e.updateStyle(false);
}, ke2 = function() {
var pe = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : false, re = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : v;
o.hasPie(e) && (o.drawPie(t20, e, re), pe && (h6 || o.nodeShapes[o.getNodeShape(e)].draw(t20, d.x, d.y, s, u, ue, c)));
}, Ce = function() {
var pe = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : v, re = (D > 0 ? D : -D) * pe, ve = D > 0 ? 0 : 255;
D !== 0 && (o.colorFillStyle(t20, ve, ve, ve, re), h6 ? t20.fill(f) : t20.fill());
}, De = function() {
if (O > 0) {
if (t20.lineWidth = O, t20.lineCap = M, t20.lineJoin = F, t20.setLineDash)
switch (B) {
case "dotted":
t20.setLineDash([1, 1]);
break;
case "dashed":
t20.setLineDash(R), t20.lineDashOffset = K10;
break;
case "solid":
case "double":
t20.setLineDash([]);
break;
}
if (A !== "center") {
if (t20.save(), t20.lineWidth *= 2, A === "inside")
h6 ? t20.clip(f) : t20.clip();
else {
var pe = new Path2D();
pe.rect(-s / 2 - O, -u / 2 - O, s + 2 * O, u + 2 * O), pe.addPath(f), t20.clip(pe, "evenodd");
}
h6 ? t20.stroke(f) : t20.stroke(), t20.restore();
} else
h6 ? t20.stroke(f) : t20.stroke();
if (B === "double") {
t20.lineWidth = O / 3;
var re = t20.globalCompositeOperation;
t20.globalCompositeOperation = "destination-out", h6 ? t20.stroke(f) : t20.stroke(), t20.globalCompositeOperation = re;
}
t20.setLineDash && t20.setLineDash([]);
}
}, qe = function() {
if (q > 0) {
if (t20.lineWidth = q, t20.lineCap = "butt", t20.setLineDash)
switch (se2) {
case "dotted":
t20.setLineDash([1, 1]);
break;
case "dashed":
t20.setLineDash([4, 2]);
break;
case "solid":
case "double":
t20.setLineDash([]);
break;
}
var pe = d;
h6 && (pe = {
x: 0,
y: 0
});
var re = o.getNodeShape(e), ve = O;
A === "inside" && (ve = 0), A === "outside" && (ve *= 2);
var Ae = (s + ve + (q + ae)) / s, Me = (u + ve + (q + ae)) / u, _e = s * Ae, Ne = u * Me, Te = o.nodeShapes[re].points, Oe;
if (h6) {
var ut = Q(_e, Ne, re, Te);
Oe = ut.path;
}
if (re === "ellipse")
o.drawEllipsePath(Oe || t20, pe.x, pe.y, _e, Ne);
else if (["round-diamond", "round-heptagon", "round-hexagon", "round-octagon", "round-pentagon", "round-polygon", "round-triangle", "round-tag"].includes(re)) {
var nt = 0, kt = 0, St = 0;
re === "round-diamond" ? nt = (ve + ae + q) * 1.4 : re === "round-heptagon" ? (nt = (ve + ae + q) * 1.075, St = -(ve / 2 + ae + q) / 35) : re === "round-hexagon" ? nt = (ve + ae + q) * 1.12 : re === "round-pentagon" ? (nt = (ve + ae + q) * 1.13, St = -(ve / 2 + ae + q) / 15) : re === "round-tag" ? (nt = (ve + ae + q) * 1.12, kt = (ve / 2 + q + ae) * 0.07) : re === "round-triangle" && (nt = (ve + ae + q) * (Math.PI / 2), St = -(ve + ae / 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" ? gp(_e, Ne) : ue;
for (var wt = _e / 2, Zt = Ne / 2, Pt = ue + (ve + q + ae) / 2, Mt = new Array(Te.length / 2), gr = new Array(Te.length / 2), Xt = 0; Xt < Te.length / 2; Xt++)
Mt[Xt] = {
x: pe.x + kt + wt * Te[Xt * 2],
y: pe.y + St + Zt * Te[Xt * 2 + 1]
};
var jt, wr, Pr, ur, xt = Mt.length;
for (wr = Mt[xt - 1], jt = 0; jt < xt; jt++)
Pr = Mt[jt % xt], ur = Mt[(jt + 1) % xt], gr[jt] = Sc(wr, Pr, ur, Pt), wr = Pr, Pr = ur;
o.drawRoundPolygonPath(Oe || t20, pe.x + kt, pe.y + St, s * Ae, u * Me, Te, gr);
} else if (["roundrectangle", "round-rectangle"].includes(re))
ue = ue === "auto" ? ba(_e, Ne) : ue, o.drawRoundRectanglePath(Oe || t20, pe.x, pe.y, _e, Ne, ue + (ve + q + ae) / 2);
else if (["cutrectangle", "cut-rectangle"].includes(re))
ue = ue === "auto" ? vc() : ue, o.drawCutRectanglePath(Oe || t20, pe.x, pe.y, _e, Ne, null, ue + (ve + q + ae) / 4);
else if (["bottomroundrectangle", "bottom-round-rectangle"].includes(re))
ue = ue === "auto" ? ba(_e, Ne) : ue, o.drawBottomRoundRectanglePath(Oe || t20, pe.x, pe.y, _e, Ne, ue + (ve + q + ae) / 2);
else if (re === "barrel")
o.drawBarrelPath(Oe || t20, pe.x, pe.y, _e, Ne);
else if (re.startsWith("polygon") || ["rhomboid", "right-rhomboid", "round-tag", "tag", "vee"].includes(re)) {
var Tt = (ve + q + ae) / s;
Te = Ls(Fs(Te, Tt)), o.drawPolygonPath(Oe || t20, pe.x, pe.y, s, u, Te);
} else {
var Bt = (ve + q + ae) / s;
Te = Ls(Fs(Te, -Bt)), o.drawPolygonPath(Oe || t20, pe.x, pe.y, s, u, Te);
}
if (h6 ? t20.stroke(Oe) : t20.stroke(), se2 === "double") {
t20.lineWidth = ve / 3;
var kn = t20.globalCompositeOperation;
t20.globalCompositeOperation = "destination-out", h6 ? t20.stroke(Oe) : t20.stroke(), t20.globalCompositeOperation = kn;
}
t20.setLineDash && t20.setLineDash([]);
}
}, Ke = function() {
a && o.drawNodeOverlay(t20, e, d, s, u);
}, Be = function() {
a && o.drawNodeUnderlay(t20, e, d, s, u);
}, Ge = function() {
o.drawElementText(t20, e, null, n);
}, le = e.pstyle("ghost").value === "yes";
if (le) {
var S = e.pstyle("ghost-offset-x").pfValue, z = e.pstyle("ghost-offset-y").pfValue, ie = e.pstyle("ghost-opacity").value, j = ie * v;
t20.translate(S, z), G(), qe(), te(ie * I), me(), xe(j, true), $(ie * H), De(), ke2(D !== 0 || O !== 0), xe(j, false), Ce(j), t20.translate(-S, -z);
}
h6 && t20.translate(-d.x, -d.y), Be(), h6 && t20.translate(d.x, d.y), G(), qe(), te(), me(), xe(v, true), $(), De(), ke2(D !== 0 || O !== 0), xe(v, false), Ce(), h6 && t20.translate(-d.x, -d.y), Ge(), Ke(), r && t20.translate(g.x1, g.y1);
}
};
var bg = function(e) {
if (!["overlay", "underlay"].includes(e))
throw new Error("Invalid state");
return function(r, n, a, i, o) {
var s = this;
if (n.visible()) {
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;
if (l > 0) {
if (a = a || n.position(), i == null || o == null) {
var h6 = n.padding();
i = n.width() + 2 * h6, o = n.height() + 2 * h6;
}
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();
}
}
};
};
Ci.drawNodeOverlay = bg("overlay");
Ci.drawNodeUnderlay = bg("underlay");
Ci.hasPie = function(t20) {
return t20 = t20[0], t20._private.hasPie;
};
Ci.drawPie = function(t20, e, r, n) {
e = e[0], n = n || e.position();
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();
v && (o = 0, s = 0), i.units === "%" ? c = c * i.pfValue : i.pfValue !== void 0 && (c = i.pfValue / 2);
for (var h6 = 1; h6 <= a.pieBackgroundN; h6++) {
var f = e.pstyle("pie-" + h6 + "-background-size").value, p = e.pstyle("pie-" + h6 + "-background-color").value, m = e.pstyle("pie-" + h6 + "-background-opacity").value * r, g = f / 100;
g + d > 1 && (g = 1 - d);
var y = 1.5 * Math.PI + 2 * Math.PI * d, b = 2 * Math.PI * g, w = y + b;
f === 0 || d >= 1 || d + g > 1 || (t20.beginPath(), t20.moveTo(o, s), t20.arc(o, s, c, y, w), t20.closePath(), this.colorFillStyle(t20, p[0], p[1], p[2], m), t20.fill(), d += g);
}
};
var br = {};
var CO = 100;
br.getPixelRatio = function() {
var t20 = this.data.contexts[0];
if (this.forcedPixelRatio != null)
return this.forcedPixelRatio;
var e = this.cy.window(), r = t20.backingStorePixelRatio || t20.webkitBackingStorePixelRatio || t20.mozBackingStorePixelRatio || t20.msBackingStorePixelRatio || t20.oBackingStorePixelRatio || t20.backingStorePixelRatio || 1;
return (e.devicePixelRatio || 1) / r;
};
br.paintCache = function(t20) {
for (var e = this.paintCaches = this.paintCaches || [], r = true, n, a = 0; a < e.length; a++)
if (n = e[a], n.context === t20) {
r = false;
break;
}
return r && (n = {
context: t20
}, e.push(n)), n;
};
br.createGradientStyleFor = function(t20, e, r, n, a) {
var i, o = this.usePaths(), s = r.pstyle(e + "-gradient-stop-colors").value, u = r.pstyle(e + "-gradient-stop-positions").pfValue;
if (n === "radial-gradient")
if (r.isEdge()) {
var l = r.sourceEndpoint(), c = r.targetEndpoint(), d = r.midpoint(), v = ya(l, d), h6 = ya(c, d);
i = t20.createRadialGradient(d.x, d.y, 0, d.x, d.y, Math.max(v, h6));
} else {
var f = o ? {
x: 0,
y: 0
} : r.position(), p = r.paddedWidth(), m = r.paddedHeight();
i = t20.createRadialGradient(f.x, f.y, 0, f.x, f.y, Math.max(p, m));
}
else if (r.isEdge()) {
var g = r.sourceEndpoint(), y = r.targetEndpoint();
i = t20.createLinearGradient(g.x, g.y, y.x, y.y);
} else {
var b = o ? {
x: 0,
y: 0
} : r.position(), w = r.paddedWidth(), C = r.paddedHeight(), E = w / 2, x = C / 2, T = r.pstyle("background-gradient-direction").value;
switch (T) {
case "to-bottom":
i = t20.createLinearGradient(b.x, b.y - x, b.x, b.y + x);
break;
case "to-top":
i = t20.createLinearGradient(b.x, b.y + x, b.x, b.y - x);
break;
case "to-left":
i = t20.createLinearGradient(b.x + E, b.y, b.x - E, b.y);
break;
case "to-right":
i = t20.createLinearGradient(b.x - E, b.y, b.x + E, b.y);
break;
case "to-bottom-right":
case "to-right-bottom":
i = t20.createLinearGradient(b.x - E, b.y - x, b.x + E, b.y + x);
break;
case "to-top-right":
case "to-right-top":
i = t20.createLinearGradient(b.x - E, b.y + x, b.x + E, b.y - x);
break;
case "to-bottom-left":
case "to-left-bottom":
i = t20.createLinearGradient(b.x + E, b.y - x, b.x - E, b.y + x);
break;
case "to-top-left":
case "to-left-top":
i = t20.createLinearGradient(b.x + E, b.y + x, b.x - E, b.y - x);
break;
}
}
if (!i) return null;
for (var k = u.length === s.length, _ = s.length, D = 0; D < _; D++)
i.addColorStop(k ? u[D] : D / (_ - 1), "rgba(" + s[D][0] + "," + s[D][1] + "," + s[D][2] + "," + a + ")");
return i;
};
br.gradientFillStyle = function(t20, e, r, n) {
var a = this.createGradientStyleFor(t20, "background", e, r, n);
if (!a) return null;
t20.fillStyle = a;
};
br.colorFillStyle = function(t20, e, r, n, a) {
t20.fillStyle = "rgba(" + e + "," + r + "," + n + "," + a + ")";
};
br.eleFillStyle = function(t20, e, r) {
var n = e.pstyle("background-fill").value;
if (n === "linear-gradient" || n === "radial-gradient")
this.gradientFillStyle(t20, e, n, r);
else {
var a = e.pstyle("background-color").value;
this.colorFillStyle(t20, a[0], a[1], a[2], r);
}
};
br.gradientStrokeStyle = function(t20, e, r, n) {
var a = this.createGradientStyleFor(t20, "line", e, r, n);
if (!a) return null;
t20.strokeStyle = a;
};
br.colorStrokeStyle = function(t20, e, r, n, a) {
t20.strokeStyle = "rgba(" + e + "," + r + "," + n + "," + a + ")";
};
br.eleStrokeStyle = function(t20, e, r) {
var n = e.pstyle("line-fill").value;
if (n === "linear-gradient" || n === "radial-gradient")
this.gradientStrokeStyle(t20, e, n, r);
else {
var a = e.pstyle("line-color").value;
this.colorStrokeStyle(t20, a[0], a[1], a[2], r);
}
};
br.matchCanvasSize = function(t20) {
var e = this, r = e.data, n = e.findContainerClientCoords(), a = n[2], i = n[3], o = e.getPixelRatio(), s = e.motionBlurPxRatio;
(t20 === e.data.bufferCanvases[e.MOTIONBLUR_BUFFER_NODE] || t20 === e.data.bufferCanvases[e.MOTIONBLUR_BUFFER_DRAG]) && (o = s);
var u = a * o, l = i * o, c;
if (!(u === e.canvasWidth && l === e.canvasHeight)) {
e.fontCaches = null;
var d = r.canvasContainer;
d.style.width = a + "px", d.style.height = i + "px";
for (var v = 0; v < e.CANVAS_LAYERS; v++)
c = r.canvases[v], c.width = u, c.height = l, c.style.width = a + "px", c.style.height = i + "px";
for (var v = 0; v < e.BUFFER_COUNT; v++)
c = r.bufferCanvases[v], c.width = u, c.height = l, c.style.width = a + "px", c.style.height = i + "px";
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;
}
};
br.renderTo = function(t20, e, r, n) {
this.render({
forcedContext: t20,
forcedZoom: e,
forcedPan: r,
drawAllLayers: true,
forcedPxRatio: n
});
};
br.render = function(t20) {
t20 = t20 || up();
var e = t20.forcedContext, r = t20.drawAllLayers, n = t20.drawOnlyNodeLayer, a = t20.forcedZoom, i = t20.forcedPan, o = this, s = t20.forcedPxRatio === void 0 ? this.getPixelRatio() : t20.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 = t20.motionBlur !== void 0 ? t20.motionBlur : o.motionBlur, h6 = o.motionBlurPxRatio, f = u.hasCompoundNodes(), p = o.hoverData.draggingEles, m = !!(o.hoverData.selecting || o.touchData.selecting);
v = v && !e && o.motionBlurEnabled && !m;
var g = v;
e || (o.prevPxRatio !== s && (o.invalidateContainerClientCoordsCache(), o.matchCanvasSize(o.container), o.redrawHint("eles", true), o.redrawHint("drag", true)), o.prevPxRatio = s), !e && o.motionBlurTimeout && clearTimeout(o.motionBlurTimeout), v && (o.mbFrames == null && (o.mbFrames = 0), o.mbFrames++, o.mbFrames < 3 && (g = false), o.mbFrames > o.minMbLowQualFrames && (o.motionBlurPxRatio = o.mbPxRBlurry)), o.clearingMotionBlur && (o.motionBlurPxRatio = 1), o.textureDrawLastFrame && !d && (c[o.NODE] = true, c[o.SELECT_BOX] = true);
var y = u.style(), b = u.zoom(), w = a !== void 0 ? a : b, C = u.pan(), E = {
x: C.x,
y: C.y
}, x = {
zoom: b,
pan: {
x: C.x,
y: C.y
}
}, T = o.prevViewport, k = T === void 0 || x.zoom !== T.zoom || x.pan.x !== T.pan.x || x.pan.y !== T.pan.y;
!k && !(p && !f) && (o.motionBlurPxRatio = 1), i && (E = i), w *= s, E.x *= s, E.y *= s;
var _ = o.getCachedZSortedEles();
function D(fe, me, xe, ke2, Ce) {
var De = fe.globalCompositeOperation;
fe.globalCompositeOperation = "destination-out", o.colorFillStyle(fe, 255, 255, 255, o.motionBlurTransparency), fe.fillRect(me, xe, ke2, Ce), fe.globalCompositeOperation = De;
}
function O(fe, me) {
var xe, ke2, Ce, De;
!o.clearingMotionBlur && (fe === l.bufferContexts[o.MOTIONBLUR_BUFFER_NODE] || fe === l.bufferContexts[o.MOTIONBLUR_BUFFER_DRAG]) ? (xe = {
x: C.x * h6,
y: C.y * h6
}, ke2 = b * h6, Ce = o.canvasWidth * h6, De = o.canvasHeight * h6) : (xe = E, ke2 = 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(ke2, ke2)), i && fe.translate(i.x, i.y), a && fe.scale(a, a);
}
if (d || (o.textureDrawLastFrame = false), d) {
if (o.textureDrawLastFrame = true, !o.textureCache) {
o.textureCache = {}, o.textureCache.bb = u.mutableElements().boundingBox(), o.textureCache.texture = o.data.bufferCanvases[o.TEXTURE_BUFFER];
var I = o.data.bufferContexts[o.TEXTURE_BUFFER];
I.setTransform(1, 0, 0, 1, 0, 0), I.clearRect(0, 0, o.canvasWidth * o.textureMult, o.canvasHeight * o.textureMult), o.render({
forcedContext: I,
drawOnlyNodeLayer: true,
forcedPxRatio: s * o.textureMult
});
var x = o.textureCache.viewport = {
zoom: u.zoom(),
pan: u.pan(),
width: o.canvasWidth,
height: o.canvasHeight
};
x.mpan = {
x: (0 - x.pan.x) / x.zoom,
y: (0 - x.pan.y) / x.zoom
};
}
c[o.DRAG] = false, c[o.NODE] = false;
var L = l.contexts[o.NODE], B = o.textureCache.texture, x = o.textureCache.viewport;
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);
var F = y.core("outside-texture-bg-color").value, M = y.core("outside-texture-bg-opacity").value;
o.colorFillStyle(L, F[0], F[1], F[2], M), L.fillRect(0, 0, x.width, x.height);
var b = u.zoom();
O(L, false), 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);
} else o.textureOnViewport && !e && (o.textureCache = null);
var A = u.extent(), R = o.pinching || o.hoverData.dragging || o.swipePanning || o.data.wheelZooming || o.hoverData.draggingEles || o.cy.animated(), K10 = o.hideEdgesOnViewport && R, H = [];
if (H[o.NODE] = !c[o.NODE] && v && !o.clearedForMotionBlur[o.NODE] || o.clearingMotionBlur, H[o.NODE] && (o.clearedForMotionBlur[o.NODE] = true), H[o.DRAG] = !c[o.DRAG] && v && !o.clearedForMotionBlur[o.DRAG] || o.clearingMotionBlur, H[o.DRAG] && (o.clearedForMotionBlur[o.DRAG] = true), c[o.NODE] || r || n || H[o.NODE]) {
var q = v && !H[o.NODE] && h6 !== 1, L = e || (q ? o.data.bufferContexts[o.MOTIONBLUR_BUFFER_NODE] : l.contexts[o.NODE]), ee = v && !q ? "motionBlur" : void 0;
O(L, ee), K10 ? o.drawCachedNodes(L, _.nondrag, s, A) : o.drawLayeredElements(L, _.nondrag, s, A), o.debug && o.drawDebugPoints(L, _.nondrag), !r && !v && (c[o.NODE] = false);
}
if (!n && (c[o.DRAG] || r || H[o.DRAG])) {
var q = v && !H[o.DRAG] && h6 !== 1, L = e || (q ? o.data.bufferContexts[o.MOTIONBLUR_BUFFER_DRAG] : l.contexts[o.DRAG]);
O(L, v && !q ? "motionBlur" : void 0), K10 ? o.drawCachedNodes(L, _.drag, s, A) : o.drawCachedElements(L, _.drag, s, A), o.debug && o.drawDebugPoints(L, _.drag), !r && !v && (c[o.DRAG] = false);
}
if (o.showFps || !n && c[o.SELECT_BOX] && !r) {
var L = e || l.contexts[o.SELECT_BOX];
if (O(L), o.selection[4] == 1 && (o.hoverData.selecting || o.touchData.selecting)) {
var b = o.cy.zoom(), se2 = y.core("selection-box-border-width").value / b;
L.lineWidth = se2, 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]), se2 > 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]));
}
if (l.bgActivePosistion && !o.hoverData.selecting) {
var b = o.cy.zoom(), oe = l.bgActivePosistion;
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();
}
var ae = o.lastRedrawTime;
if (o.showFps && ae) {
ae = Math.round(ae);
var ue = Math.round(1e3 / ae);
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 = " + ae + " ms = " + ue + " fps", 0, 20);
var te = 60;
L.strokeRect(0, 30, 250, 20), L.fillRect(0, 30, 250 * Math.min(ue / te, 1), 20);
}
r || (c[o.SELECT_BOX] = false);
}
if (v && h6 !== 1) {
var $ = l.contexts[o.NODE], G = o.data.bufferCanvases[o.MOTIONBLUR_BUFFER_NODE], Q = l.contexts[o.DRAG], ge2 = o.data.bufferCanvases[o.MOTIONBLUR_BUFFER_DRAG], Ee2 = function(me, xe, ke2) {
me.setTransform(1, 0, 0, 1, 0, 0), ke2 || !g ? me.clearRect(0, 0, o.canvasWidth, o.canvasHeight) : D(me, 0, 0, o.canvasWidth, o.canvasHeight);
var Ce = h6;
me.drawImage(
xe,
// img
0,
0,
// sx, sy
o.canvasWidth * Ce,
o.canvasHeight * Ce,
// sw, sh
0,
0,
// x, y
o.canvasWidth,
o.canvasHeight
// w, h
);
};
(c[o.NODE] || H[o.NODE]) && (Ee2($, G, H[o.NODE]), c[o.NODE] = false), (c[o.DRAG] || H[o.DRAG]) && (Ee2(Q, ge2, H[o.DRAG]), c[o.DRAG] = false);
}
o.prevViewport = x, o.clearingMotionBlur && (o.clearingMotionBlur = false, o.motionBlurCleared = true, o.motionBlur = true), v && (o.motionBlurTimeout = setTimeout(function() {
o.motionBlurTimeout = null, o.clearedForMotionBlur[o.NODE] = false, o.clearedForMotionBlur[o.DRAG] = false, o.motionBlur = false, o.clearingMotionBlur = !d, o.mbFrames = 0, c[o.NODE] = true, c[o.DRAG] = true, o.redraw();
}, CO)), e || u.emit("render");
};
var jn = {};
jn.drawPolygonPath = function(t20, e, r, n, a, i) {
var o = n / 2, s = a / 2;
t20.beginPath && t20.beginPath(), t20.moveTo(e + o * i[0], r + s * i[1]);
for (var u = 1; u < i.length / 2; u++)
t20.lineTo(e + o * i[u * 2], r + s * i[u * 2 + 1]);
t20.closePath();
};
jn.drawRoundPolygonPath = function(t20, e, r, n, a, i, o) {
o.forEach(function(s) {
return sg(t20, s);
}), t20.closePath();
};
jn.drawRoundRectanglePath = function(t20, e, r, n, a, i) {
var o = n / 2, s = a / 2, u = i === "auto" ? ba(n, a) : Math.min(i, s, o);
t20.beginPath && t20.beginPath(), t20.moveTo(e, r - s), t20.arcTo(e + o, r - s, e + o, r, u), t20.arcTo(e + o, r + s, e, r + s, u), t20.arcTo(e - o, r + s, e - o, r, u), t20.arcTo(e - o, r - s, e, r - s, u), t20.lineTo(e, r - s), t20.closePath();
};
jn.drawBottomRoundRectanglePath = function(t20, e, r, n, a, i) {
var o = n / 2, s = a / 2, u = i === "auto" ? ba(n, a) : i;
t20.beginPath && t20.beginPath(), t20.moveTo(e, r - s), t20.lineTo(e + o, r - s), t20.lineTo(e + o, r), t20.arcTo(e + o, r + s, e, r + s, u), t20.arcTo(e - o, r + s, e - o, r, u), t20.lineTo(e - o, r - s), t20.lineTo(e, r - s), t20.closePath();
};
jn.drawCutRectanglePath = function(t20, e, r, n, a, i, o) {
var s = n / 2, u = a / 2, l = o === "auto" ? vc() : o;
t20.beginPath && t20.beginPath(), t20.moveTo(e - s + l, r - u), t20.lineTo(e + s - l, r - u), t20.lineTo(e + s, r - u + l), t20.lineTo(e + s, r + u - l), t20.lineTo(e + s - l, r + u), t20.lineTo(e - s + l, r + u), t20.lineTo(e - s, r + u - l), t20.lineTo(e - s, r - u + l), t20.closePath();
};
jn.drawBarrelPath = function(t20, e, r, n, a) {
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, h6 = d.heightOffset, f = d.ctrlPtOffsetPct * v;
t20.beginPath && t20.beginPath(), t20.moveTo(s, l + h6), t20.lineTo(s, c - h6), t20.quadraticCurveTo(s + f, c, s + v, c), t20.lineTo(u - v, c), t20.quadraticCurveTo(u - f, c, u, c - h6), t20.lineTo(u, l + h6), t20.quadraticCurveTo(u - f, l, u - v, l), t20.lineTo(s + v, l), t20.quadraticCurveTo(s + f, l, s, l + h6), t20.closePath();
};
var cv = Math.sin(0);
var dv = Math.cos(0);
var wu = {};
var xu = {};
var wg = Math.PI / 40;
for ($a2 = 0 * Math.PI; $a2 < 2 * Math.PI; $a2 += wg)
wu[$a2] = Math.sin($a2), xu[$a2] = Math.cos($a2);
var $a2;
jn.drawEllipsePath = function(t20, e, r, n, a) {
if (t20.beginPath && t20.beginPath(), t20.ellipse)
t20.ellipse(e, r, n / 2, a / 2, 0, 0, 2 * Math.PI);
else
for (var i, o, s = n / 2, u = a / 2, l = 0 * Math.PI; l < 2 * Math.PI; l += wg)
i = e - s * wu[l] * cv + s * xu[l] * dv, o = r + u * xu[l] * cv + u * wu[l] * dv, l === 0 ? t20.moveTo(i, o) : t20.lineTo(i, o);
t20.closePath();
};
var Mo = {};
Mo.createBuffer = function(t20, e) {
var r = document.createElement("canvas");
return r.width = t20, r.height = e, [r, r.getContext("2d")];
};
Mo.bufferCanvasImage = function(t20) {
var e = this.cy, r = e.mutableElements(), n = r.boundingBox(), a = this.findContainerClientCoords(), i = t20.full ? Math.ceil(n.w) : a[2], o = t20.full ? Math.ceil(n.h) : a[3], s = be(t20.maxWidth) || be(t20.maxHeight), u = this.getPixelRatio(), l = 1;
if (t20.scale !== void 0)
i *= t20.scale, o *= t20.scale, l = t20.scale;
else if (s) {
var c = 1 / 0, d = 1 / 0;
be(t20.maxWidth) && (c = l * t20.maxWidth / i), be(t20.maxHeight) && (d = l * t20.maxHeight / o), l = Math.min(c, d), i *= l, o *= l;
}
s || (i *= u, o *= u, l *= u);
var v = document.createElement("canvas");
v.width = i, v.height = o, v.style.width = i + "px", v.style.height = o + "px";
var h6 = v.getContext("2d");
if (i > 0 && o > 0) {
h6.clearRect(0, 0, i, o), h6.globalCompositeOperation = "source-over";
var f = this.getCachedZSortedEles();
if (t20.full)
h6.translate(-n.x1 * l, -n.y1 * l), h6.scale(l, l), this.drawElements(h6, f), h6.scale(1 / l, 1 / l), h6.translate(n.x1 * l, n.y1 * l);
else {
var p = e.pan(), m = {
x: p.x * l,
y: p.y * l
};
l *= e.zoom(), h6.translate(m.x, m.y), h6.scale(l, l), this.drawElements(h6, f), h6.scale(1 / l, 1 / l), h6.translate(-m.x, -m.y);
}
t20.bg && (h6.globalCompositeOperation = "destination-over", h6.fillStyle = t20.bg, h6.rect(0, 0, i, o), h6.fill());
}
return v;
};
function EO(t20, e) {
for (var r = atob(t20), n = new ArrayBuffer(r.length), a = new Uint8Array(n), i = 0; i < r.length; i++)
a[i] = r.charCodeAt(i);
return new Blob([n], {
type: e
});
}
function fv(t20) {
var e = t20.indexOf(",");
return t20.substr(e + 1);
}
function xg(t20, e, r) {
var n = function() {
return e.toDataURL(r, t20.quality);
};
switch (t20.output) {
case "blob-promise":
return new hi(function(a, i) {
try {
e.toBlob(function(o) {
o != null ? a(o) : i(new Error("`canvas.toBlob()` sent a null value in its callback"));
}, r, t20.quality);
} catch (o) {
i(o);
}
});
case "blob":
return EO(fv(n()), r);
case "base64":
return fv(n());
case "base64uri":
default:
return n();
}
}
Mo.png = function(t20) {
return xg(t20, this.bufferCanvasImage(t20), "image/png");
};
Mo.jpg = function(t20) {
return xg(t20, this.bufferCanvasImage(t20), "image/jpeg");
};
var Cg = {};
Cg.nodeShapeImpl = function(t20, e, r, n, a, i, o, s) {
switch (t20) {
case "ellipse":
return this.drawEllipsePath(e, r, n, a, i);
case "polygon":
return this.drawPolygonPath(e, r, n, a, i, o);
case "round-polygon":
return this.drawRoundPolygonPath(e, r, n, a, i, o, s);
case "roundrectangle":
case "round-rectangle":
return this.drawRoundRectanglePath(e, r, n, a, i, s);
case "cutrectangle":
case "cut-rectangle":
return this.drawCutRectanglePath(e, r, n, a, i, o, s);
case "bottomroundrectangle":
case "bottom-round-rectangle":
return this.drawBottomRoundRectanglePath(e, r, n, a, i, s);
case "barrel":
return this.drawBarrelPath(e, r, n, a, i);
}
};
var kO = Eg;
var je = Eg.prototype;
je.CANVAS_LAYERS = 3;
je.SELECT_BOX = 0;
je.DRAG = 1;
je.NODE = 2;
je.BUFFER_COUNT = 3;
je.TEXTURE_BUFFER = 0;
je.MOTIONBLUR_BUFFER_NODE = 1;
je.MOTIONBLUR_BUFFER_DRAG = 2;
function Eg(t20) {
var e = this, r = e.cy.window(), n = r.document;
e.data = {
canvases: new Array(je.CANVAS_LAYERS),
contexts: new Array(je.CANVAS_LAYERS),
canvasNeedsRedraw: new Array(je.CANVAS_LAYERS),
bufferCanvases: new Array(je.BUFFER_COUNT),
bufferContexts: new Array(je.CANVAS_LAYERS)
};
var a = "-webkit-tap-highlight-color", i = "rgba(0,0,0,0)";
e.data.canvasContainer = n.createElement("div");
var o = e.data.canvasContainer.style;
e.data.canvasContainer.style[a] = i, o.position = "relative", o.zIndex = "0", o.overflow = "hidden";
var s = t20.cy.container();
s.appendChild(e.data.canvasContainer), s.style[a] = i;
var u = {
"-webkit-user-select": "none",
"-moz-user-select": "-moz-none",
"user-select": "none",
"-webkit-tap-highlight-color": "rgba(0,0,0,0)",
"outline-style": "none"
};
dT() && (u["-ms-touch-action"] = "none", u["touch-action"] = "none");
for (var l = 0; l < je.CANVAS_LAYERS; l++) {
var c = e.data.canvases[l] = n.createElement("canvas");
e.data.contexts[l] = c.getContext("2d"), Object.keys(u).forEach(function(te) {
c.style[te] = u[te];
}), 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] = false;
}
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");
for (var l = 0; l < je.BUFFER_COUNT; l++)
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";
e.pathsEnabled = true;
var d = pr(), v = function($) {
return {
x: ($.x1 + $.x2) / 2,
y: ($.y1 + $.y2) / 2
};
}, h6 = function($) {
return {
x: -$.w / 2,
y: -$.h / 2
};
}, f = function($) {
var G = $[0]._private, Q = G.oldBackgroundTimestamp === G.backgroundTimestamp;
return !Q;
}, p = function($) {
return $[0]._private.nodeKey;
}, m = function($) {
return $[0]._private.labelStyleKey;
}, g = function($) {
return $[0]._private.sourceLabelStyleKey;
}, y = function($) {
return $[0]._private.targetLabelStyleKey;
}, b = function($, G, Q, ge2, Ee2) {
return e.drawElement($, G, Q, false, false, Ee2);
}, w = function($, G, Q, ge2, Ee2) {
return e.drawElementText($, G, Q, ge2, "main", Ee2);
}, C = function($, G, Q, ge2, Ee2) {
return e.drawElementText($, G, Q, ge2, "source", Ee2);
}, E = function($, G, Q, ge2, Ee2) {
return e.drawElementText($, G, Q, ge2, "target", Ee2);
}, x = function($) {
return $.boundingBox(), $[0]._private.bodyBounds;
}, T = function($) {
return $.boundingBox(), $[0]._private.labelBounds.main || d;
}, k = function($) {
return $.boundingBox(), $[0]._private.labelBounds.source || d;
}, _ = function($) {
return $.boundingBox(), $[0]._private.labelBounds.target || d;
}, D = function($, G) {
return G;
}, O = function($) {
return v(x($));
}, I = function($, G, Q) {
var ge2 = $ ? $ + "-" : "";
return {
x: G.x + Q.pstyle(ge2 + "text-margin-x").pfValue,
y: G.y + Q.pstyle(ge2 + "text-margin-y").pfValue
};
}, L = function($, G, Q) {
var ge2 = $[0]._private.rscratch;
return {
x: ge2[G],
y: ge2[Q]
};
}, B = function($) {
return I("", L($, "labelX", "labelY"), $);
}, F = function($) {
return I("source", L($, "sourceLabelX", "sourceLabelY"), $);
}, M = function($) {
return I("target", L($, "targetLabelX", "targetLabelY"), $);
}, A = function($) {
return h6(x($));
}, R = function($) {
return h6(k($));
}, K10 = function($) {
return h6(_($));
}, H = function($) {
var G = T($), Q = h6(T($));
if ($.isNode()) {
switch ($.pstyle("text-halign").value) {
case "left":
Q.x = -G.w;
break;
case "right":
Q.x = 0;
break;
}
switch ($.pstyle("text-valign").value) {
case "top":
Q.y = -G.h;
break;
case "bottom":
Q.y = 0;
break;
}
}
return Q;
}, q = e.data.eleTxrCache = new Ri(e, {
getKey: p,
doesEleInvalidateKey: f,
drawElement: b,
getBoundingBox: x,
getRotationPoint: O,
getRotationOffset: A,
allowEdgeTxrCaching: false,
allowParentTxrCaching: false
}), ee = e.data.lblTxrCache = new Ri(e, {
getKey: m,
drawElement: w,
getBoundingBox: T,
getRotationPoint: B,
getRotationOffset: H,
isVisible: D
}), se2 = e.data.slbTxrCache = new Ri(e, {
getKey: g,
drawElement: C,
getBoundingBox: k,
getRotationPoint: F,
getRotationOffset: R,
isVisible: D
}), oe = e.data.tlbTxrCache = new Ri(e, {
getKey: y,
drawElement: E,
getBoundingBox: _,
getRotationPoint: M,
getRotationOffset: K10,
isVisible: D
}), ae = e.data.lyrTxrCache = new gg(e);
e.onUpdateEleCalcs(function($, G) {
q.invalidateElements(G), ee.invalidateElements(G), se2.invalidateElements(G), oe.invalidateElements(G), ae.invalidateElements(G);
for (var Q = 0; Q < G.length; Q++) {
var ge2 = G[Q]._private;
ge2.oldBackgroundTimestamp = ge2.backgroundTimestamp;
}
});
var ue = function($) {
for (var G = 0; G < $.length; G++)
ae.enqueueElementRefinement($[G].ele);
};
q.onDequeue(ue), ee.onDequeue(ue), se2.onDequeue(ue), oe.onDequeue(ue);
}
je.redrawHint = function(t20, e) {
var r = this;
switch (t20) {
case "eles":
r.data.canvasNeedsRedraw[je.NODE] = e;
break;
case "drag":
r.data.canvasNeedsRedraw[je.DRAG] = e;
break;
case "select":
r.data.canvasNeedsRedraw[je.SELECT_BOX] = e;
break;
}
};
var SO = typeof Path2D < "u";
je.path2dEnabled = function(t20) {
if (t20 === void 0)
return this.pathsEnabled;
this.pathsEnabled = !!t20;
};
je.usePaths = function() {
return SO && this.pathsEnabled;
};
je.setImgSmoothing = function(t20, e) {
t20.imageSmoothingEnabled != null ? t20.imageSmoothingEnabled = e : (t20.webkitImageSmoothingEnabled = e, t20.mozImageSmoothingEnabled = e, t20.msImageSmoothingEnabled = e);
};
je.getImgSmoothing = function(t20) {
return t20.imageSmoothingEnabled != null ? t20.imageSmoothingEnabled : t20.webkitImageSmoothingEnabled || t20.mozImageSmoothingEnabled || t20.msImageSmoothingEnabled;
};
je.makeOffscreenCanvas = function(t20, e) {
var r;
if ((typeof OffscreenCanvas > "u" ? "undefined" : It(OffscreenCanvas)) !== "undefined")
r = new OffscreenCanvas(t20, e);
else {
var n = this.cy.window(), a = n.document;
r = a.createElement("canvas"), r.width = t20, r.height = e;
}
return r;
};
[mg, on, En, _c, Pa, Ci, br, jn, Mo, Cg].forEach(function(t20) {
Re(je, t20);
});
var TO = [{
name: "null",
impl: ag
}, {
name: "base",
impl: hg
}, {
name: "canvas",
impl: kO
}];
var _O = [{
type: "layout",
extensions: IP
}, {
type: "renderer",
extensions: TO
}];
var kg = {};
var Sg = {};
function Tg(t20, e, r) {
var n = r, a = function(T) {
tt("Can not register `" + e + "` for `" + t20 + "` since `" + T + "` already exists in the prototype and can not be overridden");
};
if (t20 === "core") {
if (fo.prototype[e])
return a(e);
fo.prototype[e] = r;
} else if (t20 === "collection") {
if (Gt.prototype[e])
return a(e);
Gt.prototype[e] = r;
} else if (t20 === "layout") {
for (var i = function(T) {
this.options = T, r.call(this, T), Xe(this._private) || (this._private = {}), this._private.cy = T.cy, this._private.listeners = [], this.createEmitter();
}, o = i.prototype = Object.create(r.prototype), s = [], u = 0; u < s.length; u++) {
var l = s[u];
o[l] = o[l] || function() {
return this;
};
}
o.start && !o.run ? o.run = function() {
return this.start(), this;
} : !o.start && o.run && (o.start = function() {
return this.run(), this;
});
var c = r.prototype.stop;
o.stop = function() {
var x = this.options;
if (x && x.animate) {
var T = this.animations;
if (T)
for (var k = 0; k < T.length; k++)
T[k].stop();
}
return c ? c.call(this) : this.emit("layoutstop"), this;
}, o.destroy || (o.destroy = function() {
return this;
}), o.cy = function() {
return this._private.cy;
};
var d = function(T) {
return T._private.cy;
}, v = {
addEventFields: function(T, k) {
k.layout = T, k.cy = d(T), k.target = T;
},
bubble: function() {
return true;
},
parent: function(T) {
return d(T);
}
};
Re(o, {
createEmitter: function() {
return this._private.emitter = new ul(v, this), this;
},
emitter: function() {
return this._private.emitter;
},
on: function(T, k) {
return this.emitter().on(T, k), this;
},
one: function(T, k) {
return this.emitter().one(T, k), this;
},
once: function(T, k) {
return this.emitter().one(T, k), this;
},
removeListener: function(T, k) {
return this.emitter().removeListener(T, k), this;
},
removeAllListeners: function() {
return this.emitter().removeAllListeners(), this;
},
emit: function(T, k) {
return this.emitter().emit(T, k), this;
}
}), et.eventAliasesOn(o), n = i;
} else if (t20 === "renderer" && e !== "null" && e !== "base") {
var h6 = _g("renderer", "base"), f = h6.prototype, p = r, m = r.prototype, g = function() {
h6.apply(this, arguments), p.apply(this, arguments);
}, y = g.prototype;
for (var b in f) {
var w = f[b], C = m[b] != null;
if (C)
return a(b);
y[b] = w;
}
for (var E in m)
y[E] = m[E];
f.clientFunctions.forEach(function(x) {
y[x] = y[x] || function() {
yt("Renderer does not implement `renderer." + x + "()` on its prototype");
};
}), n = g;
} else if (t20 === "__proto__" || t20 === "constructor" || t20 === "prototype")
return yt(t20 + " is an illegal type to be registered, possibly lead to prototype pollutions");
return Qh({
map: kg,
keys: [t20, e],
value: n
});
}
function _g(t20, e) {
return Jh({
map: kg,
keys: [t20, e]
});
}
function DO(t20, e, r, n, a) {
return Qh({
map: Sg,
keys: [t20, e, r, n],
value: a
});
}
function PO(t20, e, r, n) {
return Jh({
map: Sg,
keys: [t20, e, r, n]
});
}
var Cu = function() {
if (arguments.length === 2)
return _g.apply(null, arguments);
if (arguments.length === 3)
return Tg.apply(null, arguments);
if (arguments.length === 4)
return PO.apply(null, arguments);
if (arguments.length === 5)
return DO.apply(null, arguments);
yt("Invalid extension access syntax");
};
fo.prototype.extension = Cu;
_O.forEach(function(t20) {
t20.extensions.forEach(function(e) {
Tg(t20.type, e.name, e.impl);
});
});
var Dg = function t12() {
if (!(this instanceof t12))
return new t12();
this.length = 0;
};
var Ca = Dg.prototype;
Ca.instanceString = function() {
return "stylesheet";
};
Ca.selector = function(t20) {
var e = this.length++;
return this[e] = {
selector: t20,
properties: []
}, this;
};
Ca.css = function(t20, e) {
var r = this.length - 1;
if (Ie(t20))
this[r].properties.push({
name: t20,
value: e
});
else if (Xe(t20))
for (var n = t20, a = Object.keys(n), i = 0; i < a.length; i++) {
var o = a[i], s = n[o];
if (s != null) {
var u = rr.properties[o] || rr.properties[Js(o)];
if (u != null) {
var l = u.name, c = s;
this[r].properties.push({
name: l,
value: c
});
}
}
}
return this;
};
Ca.style = Ca.css;
Ca.generateStyle = function(t20) {
var e = new rr(t20);
return this.appendToStyle(e);
};
Ca.appendToStyle = function(t20) {
for (var e = 0; e < this.length; e++) {
var r = this[e], n = r.selector, a = r.properties;
t20.selector(n);
for (var i = 0; i < a.length; i++) {
var o = a[i];
t20.css(o.name, o.value);
}
}
return t20;
};
var OO = "3.30.2";
var Ea = function(e) {
if (e === void 0 && (e = {}), Xe(e))
return new fo(e);
if (Ie(e))
return Cu.apply(Cu, arguments);
};
Ea.use = function(t20) {
var e = Array.prototype.slice.call(arguments, 1);
return e.unshift(Ea), t20.apply(null, e), this;
};
Ea.warnings = function(t20) {
return sp(t20);
};
Ea.version = OO;
Ea.stylesheet = Ea.Stylesheet = Dg;
var LO = class extends EventTarget {
constructor(r, n) {
super();
Fr(this, "cyg", null);
Fr(this, "nodes", []);
Fr(this, "edges", []);
Fr(this, "axons", []);
Fr(this, "dendrites", []);
Fr(this, "somas", []);
Fr(this, "labelCache", /* @__PURE__ */ new Map());
Fr(this, "graphCanvas", null);
this.labelCache = r, this.graphCanvas = n;
}
async addConnectivity(r) {
var 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)
for (const a of r.connectivity) {
const i = await this.graphNode(a[0]), o = await this.graphNode(a[1]);
this.nodes.push(i), this.nodes.push(o), this.edges.push({
id: `${i.id}_${o.id}`,
source: i.id,
target: o.id
});
}
else
this.nodes.push({
id: "MISSING",
label: "NO PATHS"
});
}
showConnectivity(r) {
this.cyg = new MO(this, r), this.cyg.on("tap-node", (n) => {
const a = new CustomEvent("tap-node", {
detail: n.detail
});
this.dispatchEvent(a);
});
}
clearConnectivity() {
var r;
(r = this.cyg) != null && r.cy && (this.cyg.cy.remove(), this.cyg.cy = null);
}
reset() {
var r;
(r = this.cyg) != null && r.cy && this.cyg.cy.reset();
}
zoom(r) {
var n;
if ((n = this.cyg) != null && n.cy) {
const a = this.cyg.cy.zoom(), i = this.cyg.cy.width(), o = this.cyg.cy.height(), s = {
x: i / 2,
y: o / 2
};
this.cyg.cy.zoom({
level: a + r,
renderedPosition: s
});
}
}
enableZoom(r) {
var n;
(n = this.cyg) != null && n.cy && this.cyg.cy.userZoomingEnabled(r);
}
get elements() {
return [
...this.nodes.map((r) => ({ data: r })),
...this.edges.map((r) => ({ data: r }))
];
}
get roots() {
return [
...this.dendrites,
...this.somas
];
}
async graphNode(r) {
const n = JSON.stringify(r), a = [r[0], ...r[1]], i = [];
for (const s of a) {
const u = this.labelCache.has(s) ? this.labelCache.get(s) : "";
i.push(u);
}
a.push(...i);
const o = {
id: n,
label: a.join(`
`)
};
return this.axons.includes(n) ? this.dendrites.includes(n) || this.somas.includes(n) ? o["both-a-d"] = true : o.axon = true : (this.dendrites.includes(n) || this.somas.includes(n)) && (o.dendrite = true), o;
}
on(r, n) {
this.addEventListener(r, n);
}
};
var FO = [
{
selector: "node",
style: {
label: function(t20) {
return IO(t20.data("label"));
},
// 'background-color': '#80F0F0',
"background-color": "transparent",
"background-opacity": "0",
"text-valign": "center",
"text-wrap": "wrap",
width: "80px",
height: "80px",
"text-max-width": "80px",
"font-size": "6px",
shape: "round-rectangle",
"border-width": 1,
"border-style": "solid",
"border-color": "gray"
}
},
{
selector: "node[axon]",
style: {
// 'background-color': 'green',
shape: "round-diamond",
width: "100px",
height: "100px"
}
},
{
selector: "node[dendrite]",
style: {
// 'background-color': 'red',
shape: "ellipse"
}
},
{
selector: "node[both-a-d]",
style: {
// 'background-color': 'gray',
shape: "round-rectangle"
}
},
{
selector: "edge",
style: {
width: 1,
"line-color": "dimgray",
"target-arrow-color": "dimgray",
"target-arrow-shape": "triangle",
"curve-style": "bezier"
}
}
];
function IO(t20) {
const e = t20.split(`
`), r = e.length / 2;
return e.slice(r).join(`
`);
}
function AO(t20) {
return t20.split(`
`).map((e) => e && e[0] >= "a" && e[0] <= "z" ? e.charAt(0).toUpperCase() + e.slice(1) : e).join(`
`);
}
var MO = class extends EventTarget {
constructor(r, n) {
var a;
super();
Fr(this, "cy");
Fr(this, "tooltip");
this.cy = Ea({
container: n,
elements: r.elements,
layout: {
name: "breadthfirst",
circle: false,
roots: r.roots
},
directed: true,
style: FO,
minZoom: 0.5,
maxZoom: 10,
wheelSensitivity: 0.4
}).on("mouseover", "node", this.overNode.bind(this)).on("mouseout", "node", this.exitNode.bind(this)).on("position", "node", this.moveNode.bind(this)).on("tap", this.tapNode.bind(this)), this.tooltip = document.createElement("div"), this.tooltip.className = "cy-graph-tooltip", this.tooltip.hidden = true, (a = n == null ? void 0 : n.lastChild) == null || a.appendChild(this.tooltip);
}
remove() {
this.cy && this.cy.destroy();
}
checkRightBoundary(r) {
var n;
r + this.tooltip.offsetWidth >= ((n = this.tooltip.parentElement) == null ? void 0 : n.offsetWidth) && (this.tooltip.style.left = `${r - this.tooltip.offsetWidth}px`);
}
overNode(r) {
const n = r.target, a = AO(n.data().label);
this.tooltip.innerText = a, this.tooltip.style.left = `${r.renderedPosition.x}px`, this.tooltip.style.top = `${r.renderedPosition.y}px`, this.tooltip.style.maxWidth = "240px", this.tooltip.hidden = false, this.checkRightBoundary(r.renderedPosition.x);
}
moveNode(r) {
const n = r.target;
this.tooltip.style.left = `${n.renderedPosition().x}px`, this.tooltip.style.top = `${n.renderedPosition().y}px`, this.checkRightBoundary(n.renderedPosition().x);
}
exitNode(r) {
this.tooltip.hidden = true;
}
tapNode(r) {
const a = r.target.data(), i = new CustomEvent("tap-node", {
detail: a
});
this.dispatchEvent(i);
}
on(r, n) {
this.addEventListener(r, n);
}
};
var BO = 1.3;
var NO = 24 * 60 * 60 * 1e3;
var $O = "Reset position";
var vv = "Lock zoom";
var RO = "Unlock zoom";
var zO = "Zoom in";
var VO = "Zoom out";
var hv = 0.25;
var HO = "#8300bf";
var qO = {
name: "ConnectivityGraph",
props: {
/**
* Entity to load its connectivity graph.
*/
entry: {
type: String,
default: ""
},
mapServer: {
type: String,
default: ""
}
},
data: function() {
return {
loading: true,
connectivityGraph: null,
selectedSource: "",
pathList: [],
schemaVersion: "",
knowledgeByPath: /* @__PURE__ */ new Map(),
labelledTerms: /* @__PURE__ */ new Set(),
labelCache: /* @__PURE__ */ new Map(),
resetLabel: $O,
zoomLockLabel: vv,
zoomInLabel: zO,
zoomOutLabel: VO,
iconColor: HO,
zoomEnabled: false,
errorMessage: ""
};
},
mounted() {
this.refreshCache(), this.loadCacheData(), this.run().then((t20) => {
this.showGraph(this.entry);
});
},
methods: {
loadCacheData: function() {
const t20 = sessionStorage.getItem("connectivity-graph-source"), e = sessionStorage.getItem("connectivity-graph-labels"), r = sessionStorage.getItem("connectivity-graph-pathlist"), n = sessionStorage.getItem("connectivity-graph-schema-version");
if (t20 && (this.selectedSource = t20), r && (this.pathList = JSON.parse(r)), e) {
const a = JSON.parse(e);
this.labelCache = new Map(Object.entries(a));
}
n && (this.schemaVersion = n);
},
removeAllCacheData: function() {
[
"connectivity-graph-expiry",
"connectivity-graph-source",
"connectivity-graph-labels",
"connectivity-graph-pathlist",
"connectivity-graph-schema-version"
].forEach((e) => {
sessionStorage.removeItem(e);
});
},
refreshCache: function() {
const t20 = sessionStorage.getItem("connectivity-graph-expiry");
(/* @__PURE__ */ new Date()).getTime() > t20 && this.removeAllCacheData();
},
updateCacheExpiry: function() {
const e = (/* @__PURE__ */ new Date()).getTime() + NO;
sessionStorage.setItem("connectivity-graph-expiry", e);
},
run: async function() {
if (this.schemaVersion || (this.schemaVersion = await this.getSchemaVersion(), sessionStorage.setItem("connectivity-graph-schema-version", this.schemaVersion), this.updateCacheExpiry()), this.schemaVersion < BO) {
console.warn("No Server!");
return;
}
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();
},
showGraph: async function(t20) {
const e = this.$refs.graphCanvas;
this.showSpinner(), this.connectivityGraph = new LO(this.labelCache, e), await this.connectivityGraph.addConnectivity(this.knowledgeByPath.get(t20)), this.hideSpinner(), this.connectivityGraph.showConnectivity(e), this.connectivityGraph.on("tap-node", (r) => {
const { label: n } = r.detail, a = n ? n.split(`
`) : [];
this.$emit("tap-node", a);
});
},
query: async function(t20, e) {
const r = `${this.mapServer}knowledge/query/`, n = { sql: t20, params: e };
try {
const a = await fetch(r, {
method: "POST",
headers: {
Accept: "application/json; charset=utf-8",
"Cache-Control": "no-store",
"Content-Type": "application/json"
},
body: JSON.stringify(n)
});
if (!a.ok)
throw new Error(`Cannot access ${r}`);
return await a.json();
} catch {
return {
values: []
};
}
},
setSourceList: async function() {
const t20 = await this.getJsonData(`${this.mapServer}knowledge/sources`), e = t20 ? t20.sources || [] : [];
let r = "";
for (const n of e)
n && r === "" && (r = n);
return r;
},
loadPathData: async function(t20) {
const e = await this.query(
`select entity, knowledge from knowledge
where entity like 'ilxtr:%' and source=?
order by entity`,
[t20]
);
return e ? e.values : [];
},
setPathList: async function(t20) {
this.pathList.length || (this.pathList = await this.loadPathData(t20), sessionStorage.setItem("connectivity-graph-pathlist", JSON.stringify(this.pathList)), this.updateCacheExpiry()), this.knowledgeByPath.clear(), this.labelledTerms = /* @__PURE__ */ new Set();
for (const [e, r] of this.pathList) {
const n = JSON.parse(r);
"connectivity" in n && (this.knowledgeByPath.set(e, n), this.cacheLabels(n));
}
return this.labelCache.size || await this.getCachedTermLabels(), "";
},
getSchemaVersion: async function() {
const t20 = await this.getJsonData(`${this.mapServer}knowledge/schema-version`);
return t20 && +t20.version || 0;
},
getJsonData: async function(t20) {
try {
const e = await fetch(t20, {
method: "GET",
headers: {
Accept: "application/json; charset=utf-8",
"Cache-Control": "no-store",
"Content-Type": "application/json"
}
});
return e.ok || console.error(`Cannot access ${t20}`), await e.json();
} catch {
return null;
}
},
getCachedTermLabels: async function() {
if (this.labelledTerms.size) {
const t20 = await this.query(
`select entity, knowledge from knowledge
where entity in (?${", ?".repeat(this.labelledTerms.size - 1)})
order by source desc`,
[...this.labelledTerms.values()]
);
let e = null;
for (const [n, a] of t20.values)
if (n !== e) {
const i = JSON.parse(a);
this.labelCache.set(n, i.label || n), e = n;
}
const r = Object.fromEntries(this.labelCache);
sessionStorage.setItem("connectivity-graph-labels", JSON.stringify(r)), this.updateCacheExpiry();
}
},
cacheNodeLabels: function(t20) {
for (const e of [t20[0], ...t20[1]])
this.labelledTerms.add(e);
},
cacheLabels: async function(t20) {
for (const e of t20.connectivity)
this.cacheNodeLabels(e[0]), this.cacheNodeLabels(e[1]);
},
showSpinner: function() {
this.loading = true;
},
hideSpinner: function() {
this.loading = false;
},
reset: function() {
this.connectivityGraph.reset();
},
zoomIn: function() {
this.connectivityGraph.zoom(hv);
},
zoomOut: function() {
this.connectivityGraph.zoom(-hv);
},
/**
* Enable/disable user zoom for scrolling
*/
toggleZoom: function() {
this.zoomEnabled = !this.zoomEnabled, this.zoomLockLabel = this.zoomEnabled ? RO : vv, this.connectivityGraph.enableZoom(!this.zoomEnabled);
},
showErrorMessage: function(t20) {
this.errorMessage = t20, setTimeout(() => {
this.errorMessage = "";
}, 3e3);
}
}
};
var KO = { class: "connectivity-graph" };
var UO = {
ref: "graphCanvas",
class: "graph-canvas"
};
var GO = { class: "control-panel control-panel-tools" };
var WO = { class: "visually-hidden" };
var YO = { class: "visually-hidden" };
var ZO = { class: "visually-hidden" };
var XO = { class: "visually-hidden" };
var jO = createStaticVNode('
Origin
Components
Destination
', 1);
var QO = {
key: 0,
class: "connectivity-graph-error"
};
function JO(t20, e, r, n, a, i) {
const o = Jb, s = Vt, u = Hr, l = ko, c = w2, d = k2, v = O2, h6 = F2, f = nc;
return withDirectives((openBlock(), createElementBlock("div", KO, [
createBaseVNode("div", UO, null, 512),
createBaseVNode("div", GO, [
createBaseVNode("div", {
class: normalizeClass(["tools", { "zoom-locked": t20.zoomEnabled }])
}, [
createVNode(l, {
content: t20.resetLabel,
placement: "top",
effect: "control-tooltip"
}, {
default: withCtx(() => [
createVNode(u, {
class: normalizeClass(["control-button", t20.theme]),
size: "small",
onClick: i.reset
}, {
default: withCtx(() => [
createVNode(s, { color: "white" }, {
default: withCtx(() => [
createVNode(o)
]),
_: 1
}),
createBaseVNode("span", WO, toDisplayString(t20.resetLabel), 1)
]),
_: 1
}, 8, ["class", "onClick"])
]),
_: 1
}, 8, ["content"]),
createVNode(l, {
content: t20.zoomLockLabel,
placement: "top",
effect: "control-tooltip"
}, {
default: withCtx(() => [
createVNode(u, {
class: normalizeClass(["control-button", t20.theme]),
size: "small",
onClick: i.toggleZoom
}, {
default: withCtx(() => [
createVNode(s, { color: "white" }, {
default: withCtx(() => [
t20.zoomEnabled ? (openBlock(), createBlock(c, { key: 0 })) : (openBlock(), createBlock(d, { key: 1 }))
]),
_: 1
}),
createBaseVNode("span", YO, toDisplayString(t20.zoomLockLabel), 1)
]),
_: 1
}, 8, ["class", "onClick"])
]),
_: 1
}, 8, ["content"]),
createVNode(l, {
content: t20.zoomInLabel,
placement: "left",
effect: "control-tooltip"
}, {
default: withCtx(() => [
createVNode(u, {
class: normalizeClass(["control-button", t20.theme]),
size: "small",
onClick: i.zoomIn
}, {
default: withCtx(() => [
createVNode(s, { color: "white" }, {
default: withCtx(() => [
createVNode(v)
]),
_: 1
}),
createBaseVNode("span", ZO, toDisplayString(t20.zoomInLabel), 1)
]),
_: 1
}, 8, ["class", "onClick"])
]),
_: 1
}, 8, ["content"]),
createVNode(l, {
content: t20.zoomOutLabel,
placement: "left",
effect: "control-tooltip"
}, {
default: withCtx(() => [
createVNode(u, {
class: normalizeClass(["control-button", t20.theme]),
size: "small",
onClick: i.zoomOut
}, {
default: withCtx(() => [
createVNode(s, { color: "white" }, {
default: withCtx(() => [
createVNode(h6)
]),
_: 1
}),
createBaseVNode("span", XO, toDisplayString(t20.zoomOutLabel), 1)
]),
_: 1
}, 8, ["class", "onClick"])
]),
_: 1
}, 8, ["content"])
], 2)
]),
jO,
t20.errorMessage ? (openBlock(), createElementBlock("div", QO, toDisplayString(t20.errorMessage), 1)) : createCommentVNode("", true)
])), [
[f, t20.loading]
]);
}
var MF = Ur(qO, [["render", JO], ["__scopeId", "data-v-aead960f"]]);
var pv = "Copy to clipboard";
var eL = "Copied!";
var tL = "#8300bf";
var rL = {
name: "CopyToClipboard",
props: {
content: {
type: String,
default: ""
},
/**
* `theme: light` will show white button,
* to use when the button is over other readable text content.
* Default button is transparent.
*/
theme: {
type: String,
default: ""
}
},
data: function() {
return {
textLabel: pv,
autoHideTimeout: 0,
iconColor: tL
};
},
methods: {
copyToClipboard: async function() {
let t20 = true;
this.autoHideTimeout = 600;
try {
const e = this.content.replaceAll(`
`, ""), r = document.createElement("div");
r.innerHTML = this.content;
const n = r.textContent || r.innerText || "", a = new Blob([e], { type: "text/html" }), i = new Blob([n], { type: "text/plain" }), o = new ClipboardItem({
"text/html": a,
"text/plain": i
});
await navigator.clipboard.write([o]);
} catch (e) {
console.error(
"Error when trying to use navigator.clipboard.write()",
e
), t20 = false;
}
t20 ? this.textLabel = eL : this.textLabel = "Error trying to copy to clipboard!";
},
resetSettings: function() {
this.autoHideTimeout = 0, this.textLabel = pv;
}
}
};
var nL = { class: "visually-hidden" };
function aL(t20, e, r, n, a, i) {
const o = u2, s = Vt, u = Hr, l = ko;
return openBlock(), createBlock(l, {
content: t20.textLabel,
placement: "bottom",
"hide-after": t20.autoHideTimeout,
effect: "clipboard-tooltip",
onHide: i.resetSettings
}, {
default: withCtx(() => [
createVNode(u, {
class: normalizeClass(["copy-clipboard-button", r.theme]),
size: "small",
onClick: i.copyToClipboard
}, {
default: withCtx(() => [
createVNode(s, { color: t20.iconColor }, {
default: withCtx(() => [
createVNode(o)
]),
_: 1
}, 8, ["color"]),
createBaseVNode("span", nL, toDisplayString(t20.textLabel), 1)
]),
_: 1
}, 8, ["class", "onClick"])
]),
_: 1
}, 8, ["content", "hide-after", "onHide"]);
}
var BF = Ur(rL, [["render", aL], ["__scopeId", "data-v-de3b5311"]]);
var iL = function(t20) {
return t20 ? t20.charAt(0).toUpperCase() + t20.slice(1) : "";
};
var oL = {
name: "ConnectionDialog",
props: {
connectionEntry: {
type: Object,
default: {}
},
inDrawing: {
type: Boolean,
default: false
},
connectionExist: {
type: Boolean,
default: false
}
},
data: function() {
return {
tooltipId: void 0
};
},
methods: {
shadowDisplay: function(t20) {
return this.tooltipId === t20 ? "always" : "hover";
},
capitalise: function(t20) {
return iL(t20);
},
handleTooltip: function(t20) {
this.tooltipId = this.tooltipId === t20 ? void 0 : t20, this.$emit("featureTooltip", this.tooltipId);
}
}
};
var Dc = (t20) => (pushScopeId("data-v-8168ee98"), t20 = t20(), popScopeId(), t20);
var sL = { class: "dialog-container" };
var lL = Dc(() => createBaseVNode("span", { class: "dialog-title" }, "Finalise drawing", -1));
var uL = Dc(() => createBaseVNode("span", { class: "dialog-title" }, "Visualise connection", -1));
var cL = Dc(() => createBaseVNode("b", null, [
createBaseVNode("span", null, "Related Features")
], -1));
function dL(t20, e, r, n, a, i) {
const o = Hr, s = gE, u = Qs, l = So, c = xE;
return openBlock(), createElementBlock("div", sL, [
createVNode(u, null, {
default: withCtx(() => [
createVNode(l, null, {
default: withCtx(() => [
r.inDrawing ? (openBlock(), createBlock(u, { key: 0 }, {
default: withCtx(() => [
lL,
createVNode(s, null, {
default: withCtx(() => [
createVNode(o, {
type: "primary",
plain: "",
onClick: e[0] || (e[0] = (d) => t20.$emit("confirmDrawn", true))
}, {
default: withCtx(() => [
createTextVNode(" Confirm ")
]),
_: 1
}),
createVNode(o, {
type: "primary",
plain: "",
onClick: e[1] || (e[1] = (d) => t20.$emit("cancelDrawn", true))
}, {
default: withCtx(() => [
createTextVNode(" Cancel ")
]),
_: 1
})
]),
_: 1
})
]),
_: 1
})) : (openBlock(), createBlock(u, { key: 1 }, {
default: withCtx(() => [
uL,
createVNode(o, {
type: "primary",
plain: "",
onClick: e[2] || (e[2] = (d) => t20.$emit("dialogDisplay", false))
}, {
default: withCtx(() => [
createTextVNode(" Close ")
]),
_: 1
})
]),
_: 1
}))
]),
_: 1
})
]),
_: 1
}),
r.connectionExist ? (openBlock(), createBlock(u, { key: 0 }, {
default: withCtx(() => [
createVNode(l, null, {
default: withCtx(() => [
cL,
(openBlock(true), createElementBlock(Fragment, null, renderList(r.connectionEntry, (d, v) => (openBlock(), createBlock(u, { key: v }, {
default: withCtx(() => [
createVNode(c, {
shadow: i.shadowDisplay(v),
onClick: (h6) => i.handleTooltip(v)
}, {
default: withCtx(() => [
createBaseVNode("span", null, toDisplayString(i.capitalise(d.label)), 1)
]),
_: 2
}, 1032, ["shadow", "onClick"])
]),
_: 2
}, 1024))), 128))
]),
_: 1
})
]),
_: 1
})) : createCommentVNode("", true)
]);
}
var fL = Ur(oL, [["render", dL], ["__scopeId", "data-v-8168ee98"]]);
var Pg = (t20, e) => {
const r = t20.__vccOpts || t20;
for (const [n, a] of e)
r[n] = a;
return r;
};
var vL = ["xlink:href"];
var hL = {
__name: "SvgIcon",
props: {
/**
* The svg icon to show.
*/
icon: {
type: String,
required: true
},
/**
* The option to spin the icon.
*/
spin: {
type: Boolean,
default: false
}
},
setup(t20) {
return (e, r) => (openBlock(), createElementBlock("svg", {
class: normalizeClass(["map-icon", { "map-icon-spin": t20.spin }])
}, [
createBaseVNode("use", {
"xlink:href": `#${t20.icon}`
}, null, 8, vL)
], 2));
}
};
var pL = Pg(hL, [["__scopeId", "data-v-e172d5ff"]]);
var Og = `
`;
var Lg = `
`;
var Fg = `
`;
var Ig = `
`;
var Ag = `
`;
var Mg = `
`;
var Bg = `
`;
var Ng = `
`;
var $g = `
`;
var Rg = `
`;
var zg = `
`;
var Vg = `
`;
var Hg = `
`;
var qg = `
`;
var Kg = `
`;
var Ug = `
`;
var Gg = `
`;
var Wg = `
`;
var Yg = `
`;
var Zg = `
`;
var Xg = '';
var jg = `
`;
var Qg = ``;
var Jg = `
`;
var e0 = `
`;
var t0 = `
`;
var r0 = `
`;
var n0 = `
`;
var a0 = `
`;
var i0 = `
`;
var o0 = `
`;
var s0 = `
`;
var l0 = `
`;
var u0 = (t20, e, r, n) => {
const a = ["title", "desc", "defs", "style"], i = ["width", "height"], o = n || [];
let s = document.createElement("div");
s.innerHTML = t20, a.map((l) => {
const c = s.querySelector(l);
c && c.remove();
}), i.map((l) => {
s.querySelector("svg").removeAttribute(l);
}), n && o.map((l) => {
Object.values(s.querySelectorAll(`[${l}]`)).map((c) => {
c.removeAttribute(l);
});
});
const u = s.innerHTML;
return s = null, u;
};
var c0 = (t20) => [
// Remove XML stuffs and comments
[/<\?xml[\s\S]*?>/gi, ""],
[//gi, ""],
[//gi, ""],
// SVG XML -> HTML5
[/\<([A-Za-z]+)([^\>]*)\/\>/g, "<$1$2>$1>"],
// convert self-closing XML SVG nodes to explicitly closed HTML5 SVG nodes
[/\s+/g, " "],
// replace whitespace sequences with a single space
[/\> \<"]
// remove whitespace between tags
].reduce((e, r) => "".replace.apply(e, r), t20).trim();
var gL = true;
var mL = true;
var yL = ["fill"];
var Eu = Object.assign({
"/assets/icons/2horpanel.svg": Og,
"/assets/icons/2vertpanel.svg": Lg,
"/assets/icons/3panel.svg": Fg,
"/assets/icons/4panel.svg": Ig,
"/assets/icons/5panel.svg": Ag,
"/assets/icons/6panel.svg": Mg,
"/assets/icons/6panelVertical.svg": Bg,
"/assets/icons/changeBckgd.svg": Ng,
"/assets/icons/close-no-bk.svg": $g,
"/assets/icons/close.svg": Rg,
"/assets/icons/closeFullScreen.svg": zg,
"/assets/icons/comment.svg": Vg,
"/assets/icons/connection.svg": Hg,
"/assets/icons/dock.svg": qg,
"/assets/icons/drawLine.svg": Kg,
"/assets/icons/drawPoint.svg": Ug,
"/assets/icons/drawPolygon.svg": Gg,
"/assets/icons/drawTrash.svg": Wg,
"/assets/icons/fitWindow.svg": Yg,
"/assets/icons/fullScreen.svg": Zg,
"/assets/icons/help.svg": Xg,
"/assets/icons/magnifyingGlass.svg": jg,
"/assets/icons/noun-filter.svg": Qg,
"/assets/icons/openMap.svg": Jg,
"/assets/icons/pause.svg": e0,
"/assets/icons/permalink.svg": t0,
"/assets/icons/play.svg": r0,
"/assets/icons/resetZoom.svg": n0,
"/assets/icons/singlepanel.svg": a0,
"/assets/icons/tooltips.svg": i0,
"/assets/icons/undock.svg": o0,
"/assets/icons/zoomIn.svg": s0,
"/assets/icons/zoomOut.svg": l0
});
var bL = Object.keys(Eu).map((t20) => {
const e = u0(Eu[t20], gL, mL, yL), r = t20.replace(/^.+\/(\w+).svg$/, "$1");
return c0(e).replace("