ranui
Version:
A framework-agnostic Web Components UI library built on native custom elements, with TypeScript types, light/dark theming, SSR and PWA support.
2,086 lines (2,085 loc) • 614 kB
JavaScript
function Do(t, e) {
(e == null || e > t.length) && (e = t.length);
for (var r = 0, a = Array(e); r < e; r++) a[r] = t[r];
return a;
}
function Qf(t) {
if (Array.isArray(t)) return t;
}
function Jf(t) {
if (Array.isArray(t)) return Do(t);
}
function lr(t, e) {
if (!(t instanceof e)) throw new TypeError("Cannot call a class as a function");
}
function jf(t, e) {
for (var r = 0; r < e.length; r++) {
var a = e[r];
a.enumerable = a.enumerable || !1, a.configurable = !0, "value" in a && (a.writable = !0), Object.defineProperty(t, Zl(a.key), a);
}
}
function vr(t, e, r) {
return e && jf(t.prototype, e), Object.defineProperty(t, "prototype", { writable: !1 }), t;
}
function Ct(t, e) {
var r = typeof Symbol < "u" && t[Symbol.iterator] || t["@@iterator"];
if (!r) {
if (Array.isArray(t) || (r = Uo(t)) || e) {
r && (t = r);
var a = 0, n = function() {
};
return {
s: n,
n: function() {
return a >= t.length ? { done: !0 } : {
done: !1,
value: t[a++]
};
},
e: function(u) {
throw u;
},
f: n
};
}
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, o = !0, s = !1;
return {
s: function() {
r = r.call(t);
},
n: function() {
var u = r.next();
return o = u.done, u;
},
e: function(u) {
s = !0, i = u;
},
f: function() {
try {
o || r.return == null || r.return();
} finally {
if (s) throw i;
}
}
};
}
function Xl(t, e, r) {
return (e = Zl(e)) in t ? Object.defineProperty(t, e, {
value: r,
enumerable: !0,
configurable: !0,
writable: !0
}) : t[e] = r, t;
}
function ec(t) {
if (typeof Symbol < "u" && t[Symbol.iterator] != null || t["@@iterator"] != null) return Array.from(t);
}
function tc(t, e) {
var r = t == null ? null : typeof Symbol < "u" && t[Symbol.iterator] || t["@@iterator"];
if (r != null) {
var a, n, i, o, s = [], u = !0, l = !1;
try {
if (i = (r = r.call(t)).next, e === 0) {
if (Object(r) !== r) return;
u = !1;
} else for (; !(u = (a = i.call(r)).done) && (s.push(a.value), s.length !== e); u = !0) ;
} catch (v) {
l = !0, n = v;
} finally {
try {
if (!u && r.return != null && (o = r.return(), Object(o) !== o)) return;
} finally {
if (l) throw n;
}
}
return s;
}
}
function rc() {
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 ac() {
throw new TypeError(`Invalid attempt to spread non-iterable instance.
In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`);
}
function Xe(t, e) {
return Qf(t) || tc(t, e) || Uo(t, e) || rc();
}
function dn(t) {
return Jf(t) || ec(t) || Uo(t) || ac();
}
function nc(t, e) {
if (typeof t != "object" || !t) return t;
var r = t[Symbol.toPrimitive];
if (r !== void 0) {
var a = r.call(t, e);
if (typeof a != "object") return a;
throw new TypeError("@@toPrimitive must return a primitive value.");
}
return String(t);
}
function Zl(t) {
var e = nc(t, "string");
return typeof e == "symbol" ? e : e + "";
}
function je(t) {
"@babel/helpers - typeof";
return je = 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;
}, je(t);
}
function Uo(t, e) {
if (t) {
if (typeof t == "string") return Do(t, e);
var r = {}.toString.call(t).slice(8, -1);
return r === "Object" && t.constructor && (r = t.constructor.name), r === "Map" || r === "Set" ? Array.from(t) : r === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r) ? Do(t, e) : void 0;
}
}
var Qe = typeof window > "u" ? null : window, xs = Qe ? Qe.navigator : null;
Qe && Qe.document;
var ic = je(""), Ql = je({}), oc = je(function() {
}), sc = typeof HTMLElement > "u" ? "undefined" : je(HTMLElement), Ba = function(e) {
return e && e.instanceString && We(e.instanceString) ? e.instanceString() : null;
}, he = function(e) {
return e != null && je(e) == ic;
}, We = function(e) {
return e != null && je(e) === oc;
}, ze = function(e) {
return !Tt(e) && (Array.isArray ? Array.isArray(e) : e != null && e instanceof Array);
}, Re = function(e) {
return e != null && je(e) === Ql && !ze(e) && e.constructor === Object;
}, uc = function(e) {
return e != null && je(e) === Ql;
}, re = function(e) {
return e != null && je(e) === je(1) && !isNaN(e);
}, lc = function(e) {
return re(e) && Math.floor(e) === e;
}, gn = function(e) {
if (sc !== "undefined")
return e != null && e instanceof HTMLElement;
}, Tt = function(e) {
return Pa(e) || Jl(e);
}, Pa = function(e) {
return Ba(e) === "collection" && e._private.single;
}, Jl = function(e) {
return Ba(e) === "collection" && !e._private.single;
}, Ko = function(e) {
return Ba(e) === "core";
}, jl = function(e) {
return Ba(e) === "stylesheet";
}, vc = function(e) {
return Ba(e) === "event";
}, ar = function(e) {
return e == null ? !0 : !!(e === "" || e.match(/^\s+$/));
}, fc = function(e) {
return typeof HTMLElement > "u" ? !1 : e instanceof HTMLElement;
}, cc = function(e) {
return Re(e) && re(e.x1) && re(e.x2) && re(e.y1) && re(e.y2);
}, hc = function(e) {
return uc(e) && We(e.then);
}, dc = function() {
return xs && xs.userAgent.match(/msie|trident|edge/i);
}, Ur = 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 a = function() {
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 a.cache = {}, a;
}, Yo = Ur(function(t) {
return t.replace(/([A-Z])/g, function(e) {
return "-" + e.toLowerCase();
});
}), An = Ur(function(t) {
return t.replace(/(-\w)/g, function(e) {
return e[1].toUpperCase();
});
}), ev = Ur(function(t, e) {
return t + e[0].toUpperCase() + e.substring(1);
}, function(t, e) {
return t + "$" + e;
}), Es = function(e) {
return ar(e) ? e : e.charAt(0).toUpperCase() + e.substring(1);
}, Jt = function(e, r) {
return e.slice(-1 * r.length) === r;
}, Je = "(?:[-+]?(?:(?:\\d+|\\d*\\.\\d+)(?:[Ee][+-]?\\d+)?))", gc = "rgb[a]?\\((" + Je + "[%]?)\\s*,\\s*(" + Je + "[%]?)\\s*,\\s*(" + Je + "[%]?)(?:\\s*,\\s*(" + Je + "))?\\)", pc = "rgb[a]?\\((?:" + Je + "[%]?)\\s*,\\s*(?:" + Je + "[%]?)\\s*,\\s*(?:" + Je + "[%]?)(?:\\s*,\\s*(?:" + Je + "))?\\)", yc = "hsl[a]?\\((" + Je + ")\\s*,\\s*(" + Je + "[%])\\s*,\\s*(" + Je + "[%])(?:\\s*,\\s*(" + Je + "))?\\)", mc = "hsl[a]?\\((?:" + Je + ")\\s*,\\s*(?:" + Je + "[%])\\s*,\\s*(?:" + Je + "[%])(?:\\s*,\\s*(?:" + Je + "))?\\)", bc = "\\#[0-9a-fA-F]{3}", wc = "\\#[0-9a-fA-F]{6}", tv = function(e, r) {
return e < r ? -1 : e > r ? 1 : 0;
}, xc = function(e, r) {
return -1 * tv(e, r);
}, ge = Object.assign != null ? Object.assign.bind(Object) : function(t) {
for (var e = arguments, r = 1; r < e.length; r++) {
var a = e[r];
if (a != null)
for (var n = Object.keys(a), i = 0; i < n.length; i++) {
var o = n[i];
t[o] = a[o];
}
}
return t;
}, Ec = function(e) {
if (!(!(e.length === 4 || e.length === 7) || e[0] !== "#")) {
var r = e.length === 4, a, n, i, o = 16;
return r ? (a = parseInt(e[1] + e[1], o), n = parseInt(e[2] + e[2], o), i = parseInt(e[3] + e[3], o)) : (a = parseInt(e[1] + e[2], o), n = parseInt(e[3] + e[4], o), i = parseInt(e[5] + e[6], o)), [
a,
n,
i
];
}
}, Cc = function(e) {
var r, a, n, i, o, s, u, l;
function v(h, g, p) {
return p < 0 && (p += 1), p > 1 && (p -= 1), p < 1 / 6 ? h + (g - h) * 6 * p : p < 1 / 2 ? g : p < 2 / 3 ? h + (g - h) * (2 / 3 - p) * 6 : h;
}
var f = new RegExp("^" + yc + "$").exec(e);
if (f) {
if (a = parseInt(f[1]), a < 0 ? a = (360 - -1 * a % 360) % 360 : a > 360 && (a = a % 360), a /= 360, n = parseFloat(f[2]), n < 0 || n > 100 || (n = n / 100, i = parseFloat(f[3]), i < 0 || i > 100) || (i = i / 100, o = f[4], o !== void 0 && (o = parseFloat(o), o < 0 || o > 1)))
return;
if (n === 0) s = u = l = Math.round(i * 255);
else {
var c = i < 0.5 ? i * (1 + n) : i + n - i * n, d = 2 * i - c;
s = Math.round(255 * v(d, c, a + 1 / 3)), u = Math.round(255 * v(d, c, a)), l = Math.round(255 * v(d, c, a - 1 / 3));
}
r = [
s,
u,
l,
o
];
}
return r;
}, Tc = function(e) {
var r, a = new RegExp("^" + gc + "$").exec(e);
if (a) {
r = [];
for (var n = [], i = 1; i <= 3; i++) {
var o = a[i];
if (o[o.length - 1] === "%" && (n[i] = !0), o = parseFloat(o), n[i] && (o = o / 100 * 255), o < 0 || o > 255) return;
r.push(Math.floor(o));
}
var s = n[1] || n[2] || n[3], u = n[1] && n[2] && n[3];
if (s && !u) return;
var l = a[4];
if (l !== void 0) {
if (l = parseFloat(l), l < 0 || l > 1) return;
r.push(l);
}
}
return r;
}, Sc = function(e) {
return Dc[e.toLowerCase()];
}, rv = function(e) {
return (ze(e) ? e : null) || Sc(e) || Ec(e) || Tc(e) || Cc(e);
}, Dc = {
transparent: [
0,
0,
0,
0
],
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
]
}, av = function(e) {
for (var r = e.map, a = e.keys, n = a.length, i = 0; i < n; i++) {
var o = a[i];
if (Re(o)) throw Error("Tried to set map with object key");
i < a.length - 1 ? (r[o] == null && (r[o] = {}), r = r[o]) : r[o] = e.value;
}
}, nv = function(e) {
for (var r = e.map, a = e.keys, n = a.length, i = 0; i < n; i++) {
var o = a[i];
if (Re(o)) throw Error("Tried to get map with object key");
if (r = r[o], r == null) return r;
}
return r;
}, Ga = typeof globalThis < "u" ? globalThis : typeof window < "u" ? window : typeof global < "u" ? global : typeof self < "u" ? self : {};
function Aa(t) {
return t && t.__esModule && Object.prototype.hasOwnProperty.call(t, "default") ? t.default : t;
}
var Xn, Cs;
function Ra() {
if (Cs) return Xn;
Cs = 1;
function t(e) {
var r = typeof e;
return e != null && (r == "object" || r == "function");
}
return Xn = t, Xn;
}
var Zn, Ts;
function kc() {
return Ts || (Ts = 1, Zn = typeof Ga == "object" && Ga && Ga.Object === Object && Ga), Zn;
}
var Qn, Ss;
function Rn() {
if (Ss) return Qn;
Ss = 1;
var t = kc(), e = typeof self == "object" && self && self.Object === Object && self;
return Qn = t || e || Function("return this")(), Qn;
}
var Jn, Ds;
function Bc() {
if (Ds) return Jn;
Ds = 1;
var t = Rn(), e = function() {
return t.Date.now();
};
return Jn = e, Jn;
}
var jn, ks;
function Pc() {
if (ks) return jn;
ks = 1;
var t = /\s/;
function e(r) {
for (var a = r.length; a-- && t.test(r.charAt(a)); ) ;
return a;
}
return jn = e, jn;
}
var ei, Bs;
function Ac() {
if (Bs) return ei;
Bs = 1;
var t = Pc(), e = /^\s+/;
function r(a) {
return a && a.slice(0, t(a) + 1).replace(e, "");
}
return ei = r, ei;
}
var ti, Ps;
function Xo() {
return Ps || (Ps = 1, ti = Rn().Symbol), ti;
}
var ri, As;
function Rc() {
if (As) return ri;
As = 1;
var t = Xo(), e = Object.prototype, r = e.hasOwnProperty, a = e.toString, n = t ? t.toStringTag : void 0;
function i(o) {
var s = r.call(o, n), u = o[n];
try {
o[n] = void 0;
var l = !0;
} catch {
}
var v = a.call(o);
return l && (s ? o[n] = u : delete o[n]), v;
}
return ri = i, ri;
}
var ai, Rs;
function Mc() {
if (Rs) return ai;
Rs = 1;
var t = Object.prototype.toString;
function e(r) {
return t.call(r);
}
return ai = e, ai;
}
var ni, Ms;
function iv() {
if (Ms) return ni;
Ms = 1;
var t = Xo(), e = Rc(), r = Mc(), a = "[object Null]", n = "[object Undefined]", i = t ? t.toStringTag : void 0;
function o(s) {
return s == null ? s === void 0 ? n : a : i && i in Object(s) ? e(s) : r(s);
}
return ni = o, ni;
}
var ii, Ls;
function Lc() {
if (Ls) return ii;
Ls = 1;
function t(e) {
return e != null && typeof e == "object";
}
return ii = t, ii;
}
var oi, Is;
function Ma() {
if (Is) return oi;
Is = 1;
var t = iv(), e = Lc(), r = "[object Symbol]";
function a(n) {
return typeof n == "symbol" || e(n) && t(n) == r;
}
return oi = a, oi;
}
var si, Os;
function Ic() {
if (Os) return si;
Os = 1;
var t = Ac(), e = Ra(), r = Ma(), a = NaN, n = /^[-+]0x[0-9a-f]+$/i, i = /^0b[01]+$/i, o = /^0o[0-7]+$/i, s = parseInt;
function u(l) {
if (typeof l == "number") return l;
if (r(l)) return a;
if (e(l)) {
var v = typeof l.valueOf == "function" ? l.valueOf() : l;
l = e(v) ? v + "" : v;
}
if (typeof l != "string") return l === 0 ? l : +l;
l = t(l);
var f = i.test(l);
return f || o.test(l) ? s(l.slice(2), f ? 2 : 8) : n.test(l) ? a : +l;
}
return si = u, si;
}
var ui, Ns;
function Oc() {
if (Ns) return ui;
Ns = 1;
var t = Ra(), e = Bc(), r = Ic(), a = "Expected a function", n = Math.max, i = Math.min;
function o(s, u, l) {
var v, f, c, d, h, g, p = 0, y = !1, b = !1, m = !0;
if (typeof s != "function") throw new TypeError(a);
u = r(u) || 0, t(l) && (y = !!l.leading, b = "maxWait" in l, c = b ? n(r(l.maxWait) || 0, u) : c, m = "trailing" in l ? !!l.trailing : m);
function w(P) {
var M = v, R = f;
return v = f = void 0, p = P, d = s.apply(R, M), d;
}
function T(P) {
return p = P, h = setTimeout(S, u), y ? w(P) : d;
}
function C(P) {
var M = P - g, R = P - p, L = u - M;
return b ? i(L, c - R) : L;
}
function x(P) {
var M = P - g, R = P - p;
return g === void 0 || M >= u || M < 0 || b && R >= c;
}
function S() {
var P = e();
if (x(P)) return D(P);
h = setTimeout(S, C(P));
}
function D(P) {
return h = void 0, m && v ? w(P) : (v = f = void 0, d);
}
function E() {
h !== void 0 && clearTimeout(h), p = 0, v = g = f = h = void 0;
}
function B() {
return h === void 0 ? d : D(e());
}
function A() {
var P = e(), M = x(P);
if (v = arguments, f = this, g = P, M) {
if (h === void 0) return T(g);
if (b)
return clearTimeout(h), h = setTimeout(S, u), w(g);
}
return h === void 0 && (h = setTimeout(S, u)), d;
}
return A.cancel = E, A.flush = B, A;
}
return ui = o, ui;
}
var La = /* @__PURE__ */ Aa(Oc()), li = Qe ? Qe.performance : null, ov = li && li.now ? function() {
return li.now();
} : function() {
return Date.now();
}, Nc = (function() {
if (Qe) {
if (Qe.requestAnimationFrame) return function(t) {
Qe.requestAnimationFrame(t);
};
if (Qe.mozRequestAnimationFrame) return function(t) {
Qe.mozRequestAnimationFrame(t);
};
if (Qe.webkitRequestAnimationFrame) return function(t) {
Qe.webkitRequestAnimationFrame(t);
};
if (Qe.msRequestAnimationFrame) return function(t) {
Qe.msRequestAnimationFrame(t);
};
}
return function(t) {
t && setTimeout(function() {
t(ov());
}, 1e3 / 60);
};
})(), pn = function(e) {
return Nc(e);
}, $t = ov, br = 9261, sv = 65599, Fr = 5381, uv = function(e) {
for (var r = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : br, a; a = e.next(), !a.done; )
r = r * sv + a.value | 0;
return r;
}, ba = function(e) {
return (arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : br) * sv + e | 0;
}, wa = function(e) {
var r = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : Fr;
return (r << 5) + r + e | 0;
}, zc = function(e, r) {
return e * 2097152 + r;
}, Xt = function(e) {
return e[0] * 2097152 + e[1];
}, Ha = function(e, r) {
return [ba(e[0], r[0]), wa(e[1], r[1])];
}, zs = function(e, r) {
var a = {
value: 0,
done: !1
}, n = 0, i = e.length;
return uv({ next: function() {
return n < i ? a.value = e[n++] : a.done = !0, a;
} }, r);
}, Er = function(e, r) {
var a = {
value: 0,
done: !1
}, n = 0, i = e.length;
return uv({ next: function() {
return n < i ? a.value = e.charCodeAt(n++) : a.done = !0, a;
} }, r);
}, lv = function() {
return Fc(arguments);
}, Fc = function(e) {
for (var r, a = 0; a < e.length; a++) {
var n = e[a];
a === 0 ? r = Er(n) : r = Er(n, r);
}
return r;
};
function Vc(t, e, r, a, n) {
var i = n * Math.PI / 180;
return {
x: Math.cos(i) * (t - r) - Math.sin(i) * (e - a) + r,
y: Math.sin(i) * (t - r) + Math.cos(i) * (e - a) + a
};
}
var qc = function(e, r, a, n, i, o) {
return {
x: (e - a) * i + a,
y: (r - n) * o + n
};
};
function _c(t, e, r) {
if (r === 0) return t;
var a = (e.x1 + e.x2) / 2, n = (e.y1 + e.y2) / 2, i = e.w / e.h, o = 1 / i, s = Vc(t.x, t.y, a, n, r), u = qc(s.x, s.y, a, n, i, o);
return {
x: u.x,
y: u.y
};
}
var Fs = !0, Gc = console.warn != null, Hc = console.trace != null, Zo = Number.MAX_SAFE_INTEGER || 9007199254740991, vv = function() {
return !0;
}, yn = function() {
return !1;
}, Vs = function() {
return 0;
}, Qo = function() {
}, He = function(e) {
throw new Error(e);
}, fv = function(e) {
if (e !== void 0) Fs = !!e;
else return Fs;
}, Ie = function(e) {
fv() && (Gc ? console.warn(e) : Hc && console.trace());
}, $c = function(e) {
return ge({}, e);
}, Ft = function(e) {
return e == null ? e : ze(e) ? e.slice() : Re(e) ? $c(e) : e;
}, Wc = function(e) {
return e.slice();
}, cv = function(e, r) {
for (r = e = ""; e++ < 36; r += e * 51 & 52 ? (e ^ 15 ? 8 ^ Math.random() * (e ^ 20 ? 16 : 4) : 4).toString(16) : "-") ;
return r;
}, Uc = {}, hv = function() {
return Uc;
}, vt = function(e) {
var r = Object.keys(e);
return function(a) {
for (var n = {}, i = 0; i < r.length; i++) {
var o = r[i], s = a?.[o];
n[o] = s === void 0 ? e[o] : s;
}
return n;
};
}, nr = function(e, r, a) {
for (var n = e.length - 1; n >= 0; n--) e[n] === r && e.splice(n, 1);
}, Jo = function(e) {
e.splice(0, e.length);
}, Kc = function(e, r) {
for (var a = 0; a < r.length; a++) {
var n = r[a];
e.push(n);
}
}, yt = function(e, r, a) {
return a && (r = ev(a, r)), e[r];
}, zt = function(e, r, a, n) {
a && (r = ev(a, r)), e[r] = n;
}, Ht = typeof Map < "u" ? Map : /* @__PURE__ */ (function() {
function t() {
lr(this, t), this._obj = {};
}
return vr(t, [
{
key: "set",
value: function(r, a) {
return this._obj[r] = a, 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];
}
}
]);
})(), Yc = "undefined", Xc = /* @__PURE__ */ (function() {
function t(e) {
if (lr(this, t), 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 a = 0; a < r.length; a++) this.add(r[a]);
}
}
return vr(t, [
{
key: "instanceString",
value: function() {
return "set";
}
},
{
key: "add",
value: function(r) {
var a = this._obj;
a[r] !== 1 && (a[r] = 1, this.size++);
}
},
{
key: "delete",
value: function(r) {
var a = this._obj;
a[r] === 1 && (a[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(a) {
return r.has(a);
});
}
},
{
key: "forEach",
value: function(r, a) {
return this.toArray().forEach(r, a);
}
}
]);
})(), Jr = (typeof Set > "u" ? "undefined" : je(Set)) !== Yc ? Set : Xc, Mn = function(e, r) {
var a = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : !0;
if (e === void 0 || r === void 0 || !Ko(e)) {
He("An element must have a core reference and parameters set");
return;
}
var n = r.group;
if (n == null && (r.data && r.data.source != null && r.data.target != null ? n = "edges" : n = "nodes"), n !== "nodes" && n !== "edges") {
He("An element must be of type `nodes` or `edges`; you specified `" + n + "`");
return;
}
this.length = 1, this[0] = this;
var i = this._private = {
cy: e,
single: !0,
data: r.data || {},
position: r.position || {
x: 0,
y: 0
},
autoWidth: void 0,
autoHeight: void 0,
autoPadding: void 0,
compoundBoundsClean: !1,
listeners: [],
group: n,
style: {},
rstyle: {},
styleCxts: [],
styleKeys: {},
removed: !0,
selected: !!r.selected,
selectable: r.selectable === void 0 ? !0 : !!r.selectable,
locked: !!r.locked,
grabbed: !1,
grabbable: r.grabbable === void 0 ? !0 : !!r.grabbable,
pannable: r.pannable === void 0 ? n === "edges" : !!r.pannable,
active: !1,
classes: new Jr(),
animation: {
current: [],
queue: []
},
rscratch: {},
scratch: r.scratch || {},
edges: [],
children: [],
parent: r.parent && r.parent.isNode() ? r.parent : null,
traversalCache: {},
backgrounding: !1,
bbCache: null,
bbCacheShift: {
x: 0,
y: 0
},
bodyBounds: null,
overlayBounds: null,
labelBounds: {
all: null,
source: null,
target: null,
main: null
},
arrowBounds: {
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 = [];
ze(r.classes) ? l = r.classes : he(r.classes) && (l = r.classes.split(/\s+/));
for (var v = 0, f = l.length; v < f; v++) {
var c = l[v];
!c || c === "" || i.classes.add(c);
}
this.createEmitter(), (a === void 0 || a) && this.restore();
var d = r.style || r.css;
d && (Ie("Setting a `style` bypass at element creation should be done only when absolutely necessary. Try to use the stylesheet instead."), this.style(d));
}, qs = function(e) {
return e = {
bfs: e.bfs || !e.dfs,
dfs: e.dfs || !e.bfs
}, function(a, n, i) {
var o;
Re(a) && !Tt(a) && (o = a, a = o.roots || o.root, n = o.visit, i = o.directed), i = arguments.length === 2 && !We(n) ? n : i, n = We(n) ? n : function() {
};
for (var s = this._private.cy, u = a = he(a) ? this.filter(a) : a, l = [], v = [], f = {}, c = {}, d = {}, h = 0, g, p = this.byGroup(), y = p.nodes, b = p.edges, m = 0; m < u.length; m++) {
var w = u[m], T = w.id();
w.isNode() && (l.unshift(w), e.bfs && (d[T] = !0, v.push(w)), c[T] = 0);
}
for (var C = function() {
var P = e.bfs ? l.shift() : l.pop(), M = P.id();
if (e.dfs) {
if (d[M]) return 0;
d[M] = !0, v.push(P);
}
var R = c[M], L = f[M], I = L != null ? L.source() : null, F = L != null ? L.target() : null, _ = L == null ? void 0 : P.same(I) ? F[0] : I[0], N = n(P, L, _, h++, R);
if (N === !0)
return g = P, 1;
if (N === !1) return 1;
for (var G = P.connectedEdges().filter(function(te) {
return (!i || te.source().same(P)) && b.has(te);
}), Z = 0; Z < G.length; Z++) {
var W = G[Z], $ = W.connectedNodes().filter(function(te) {
return !te.same(P) && y.has(te);
}), Y = $.id();
$.length !== 0 && !d[Y] && ($ = $[0], l.push($), e.bfs && (d[Y] = !0, v.push($)), f[Y] = W, c[Y] = c[M] + 1);
}
}, x; l.length !== 0 && (x = C(), !(x !== 0 && x === 1)); )
;
for (var S = s.collection(), D = 0; D < v.length; D++) {
var E = v[D], B = f[E.id()];
B != null && S.push(B), S.push(E);
}
return {
path: s.collection(S),
found: s.collection(g)
};
};
}, xa = {
breadthFirstSearch: qs({ bfs: !0 }),
depthFirstSearch: qs({ dfs: !0 })
};
xa.bfs = xa.breadthFirstSearch;
xa.dfs = xa.depthFirstSearch;
var rn = { exports: {} }, Zc = rn.exports, _s;
function Qc() {
return _s || (_s = 1, (function(t, e) {
(function() {
var r, a, n = Math.floor, i, o, s, u, l, v, f = Math.min, c, d, h, g, p;
a = function(y, b) {
return y < b ? -1 : y > b ? 1 : 0;
}, v = function(y, b, m, w, T) {
var C;
if (m == null && (m = 0), T == null && (T = a), m < 0) throw new Error("lo must be non-negative");
for (w == null && (w = y.length); m < w; )
C = n((m + w) / 2), T(b, y[C]) < 0 ? w = C : m = C + 1;
return [].splice.apply(y, [m, m - m].concat(b)), b;
}, s = function(y, b, m) {
return m == null && (m = a), y.push(b), g(y, 0, y.length - 1, m);
}, o = function(y, b) {
var m, w;
return b == null && (b = a), m = y.pop(), y.length ? (w = y[0], y[0] = m, p(y, 0, b)) : w = m, w;
}, l = function(y, b, m) {
var w;
return m == null && (m = a), w = y[0], y[0] = b, p(y, 0, m), w;
}, u = function(y, b, m) {
var w;
return m == null && (m = a), y.length && m(y[0], b) < 0 && (w = [y[0], b], b = w[0], y[0] = w[1], p(y, 0, m)), b;
}, i = function(y, b) {
var m, w, T, C, x, S;
for (b == null && (b = a), C = (function() {
S = [];
for (var D = 0, E = n(y.length / 2); 0 <= E ? D < E : D > E; 0 <= E ? D++ : D--) S.push(D);
return S;
}).apply(this).reverse(), x = [], w = 0, T = C.length; w < T; w++)
m = C[w], x.push(p(y, m, b));
return x;
}, h = function(y, b, m) {
var w;
if (m == null && (m = a), w = y.indexOf(b), w !== -1)
return g(y, 0, w, m), p(y, w, m);
}, c = function(y, b, m) {
var w, T, C, x, S;
if (m == null && (m = a), T = y.slice(0, b), !T.length) return T;
for (i(T, m), S = y.slice(b), C = 0, x = S.length; C < x; C++)
w = S[C], u(T, w, m);
return T.sort(m).reverse();
}, d = function(y, b, m) {
var w, T, C, x, S, D, E, B, A;
if (m == null && (m = a), b * 10 <= y.length) {
if (C = y.slice(0, b).sort(m), !C.length) return C;
for (T = C[C.length - 1], E = y.slice(b), x = 0, D = E.length; x < D; x++)
w = E[x], m(w, T) < 0 && (v(C, w, 0, null, m), C.pop(), T = C[C.length - 1]);
return C;
}
for (i(y, m), A = [], S = 0, B = f(b, y.length); 0 <= B ? S < B : S > B; 0 <= B ? ++S : --S) A.push(o(y, m));
return A;
}, g = function(y, b, m, w) {
var T, C, x;
for (w == null && (w = a), T = y[m]; m > b; ) {
if (x = m - 1 >> 1, C = y[x], w(T, C) < 0) {
y[m] = C, m = x;
continue;
}
break;
}
return y[m] = T;
}, p = function(y, b, m) {
var w, T, C, x, S;
for (m == null && (m = a), T = y.length, S = b, C = y[b], w = 2 * b + 1; w < T; )
x = w + 1, x < T && !(m(y[w], y[x]) < 0) && (w = x), y[b] = y[w], b = w, w = 2 * b + 1;
return y[b] = C, g(y, S, b, m);
}, r = (function() {
y.push = s, y.pop = o, y.replace = l, y.pushpop = u, y.heapify = i, y.updateItem = h, y.nlargest = c, y.nsmallest = d;
function y(b) {
this.cmp = b ?? a, this.nodes = [];
}
return y.prototype.push = function(b) {
return s(this.nodes, b, this.cmp);
}, y.prototype.pop = function() {
return o(this.nodes, this.cmp);
}, y.prototype.peek = function() {
return this.nodes[0];
}, y.prototype.contains = function(b) {
return this.nodes.indexOf(b) !== -1;
}, y.prototype.replace = function(b) {
return l(this.nodes, b, this.cmp);
}, y.prototype.pushpop = function(b) {
return u(this.nodes, b, this.cmp);
}, y.prototype.heapify = function() {
return i(this.nodes, this.cmp);
}, y.prototype.updateItem = function(b) {
return h(this.nodes, b, this.cmp);
}, y.prototype.clear = function() {
return this.nodes = [];
}, y.prototype.empty = function() {
return this.nodes.length === 0;
}, y.prototype.size = function() {
return this.nodes.length;
}, y.prototype.clone = function() {
var b = new y();
return b.nodes = this.nodes.slice(0), b;
}, y.prototype.toArray = function() {
return this.nodes.slice(0);
}, y.prototype.insert = y.prototype.push, y.prototype.top = y.prototype.peek, y.prototype.front = y.prototype.peek, y.prototype.has = y.prototype.contains, y.prototype.copy = y.prototype.clone, y;
})(), (function(y, b) {
return t.exports = b();
})(this, function() {
return r;
});
}).call(Zc);
})(rn)), rn.exports;
}
var vi, Gs;
function Jc() {
return Gs || (Gs = 1, vi = Qc()), vi;
}
var Ia = /* @__PURE__ */ Aa(Jc()), jc = vt({
root: null,
weight: function(e) {
return 1;
},
directed: !1
}), eh = { dijkstra: function(e) {
if (!Re(e)) {
var r = arguments;
e = {
root: r[0],
weight: r[1],
directed: r[2]
};
}
var a = jc(e), n = a.root, i = a.weight, o = a.directed, s = this, u = i, l = he(n) ? this.filter(n)[0] : n[0], v = {}, f = {}, c = {}, d = this.byGroup(), h = d.nodes, g = d.edges;
g.unmergeBy(function(R) {
return R.isLoop();
});
for (var p = function(L) {
return v[L.id()];
}, y = function(L, I) {
v[L.id()] = I, b.updateItem(L);
}, b = new Ia(function(R, L) {
return p(R) - p(L);
}), m = 0; m < h.length; m++) {
var w = h[m];
v[w.id()] = w.same(l) ? 0 : 1 / 0, b.push(w);
}
for (var T = function(L, I) {
for (var F = (o ? L.edgesTo(I) : L.edgesWith(I)).intersect(g), _ = 1 / 0, N, G = 0; G < F.length; G++) {
var Z = F[G], W = u(Z);
(W < _ || !N) && (_ = W, N = Z);
}
return {
edge: N,
dist: _
};
}; b.size() > 0; ) {
var C = b.pop(), x = p(C), S = C.id();
if (c[S] = x, x !== 1 / 0)
for (var D = C.neighborhood().intersect(h), E = 0; E < D.length; E++) {
var B = D[E], A = B.id(), P = T(C, B), M = x + P.dist;
M < p(B) && (y(B, M), f[A] = {
node: C,
edge: P.edge
});
}
}
return {
distanceTo: function(L) {
return c[(he(L) ? h.filter(L)[0] : L[0]).id()];
},
pathTo: function(L) {
var I = he(L) ? h.filter(L)[0] : L[0], F = [], _ = I, N = _.id();
if (I.length > 0)
for (F.unshift(I); f[N]; ) {
var G = f[N];
F.unshift(G.edge), F.unshift(G.node), _ = G.node, N = _.id();
}
return s.spawn(F);
}
};
} }, th = { kruskal: function(e) {
e = e || function(m) {
return 1;
};
for (var r = this.byGroup(), a = r.nodes, n = r.edges, i = a.length, o = new Array(i), s = a, u = function(w) {
for (var T = 0; T < o.length; T++) if (o[T].has(w)) return T;
}, l = 0; l < i; l++) o[l] = this.spawn(a[l]);
for (var v = n.sort(function(m, w) {
return e(m) - e(w);
}), f = 0; f < v.length; f++) {
var c = v[f], d = c.source()[0], h = c.target()[0], g = u(d), p = u(h), y = o[g], b = o[p];
g !== p && (s.merge(c), y.merge(b), o.splice(p, 1));
}
return s;
} }, rh = vt({
root: null,
goal: null,
weight: function(e) {
return 1;
},
heuristic: function(e) {
return 0;
},
directed: !1
}), ah = { aStar: function(e) {
var r = this.cy(), a = rh(e), n = a.root, i = a.goal, o = a.heuristic, s = a.directed, u = a.weight;
n = r.collection(n)[0], i = r.collection(i)[0];
var l = n.id(), v = i.id(), f = {}, c = {}, d = {}, h = new Ia(function(N, G) {
return c[N.id()] - c[G.id()];
}), g = new Jr(), p = {}, y = {}, b = function(G, Z) {
h.push(G), g.add(Z);
}, m, w, T = function() {
m = h.pop(), w = m.id(), g.delete(w);
}, C = function(G) {
return g.has(G);
};
b(n, l), f[l] = 0, c[l] = o(n);
for (var x = 0; h.size() > 0; ) {
if (T(), x++, w === v) {
for (var S = [], D = i, E = v, B = y[E]; S.unshift(D), B != null && S.unshift(B), D = p[E], D != null; )
E = D.id(), B = y[E];
return {
found: !0,
distance: f[w],
path: this.spawn(S),
steps: x
};
}
d[w] = !0;
for (var A = m._private.edges, P = 0; P < A.length; P++) {
var M = A[P];
if (this.hasElementWithId(M.id()) && !(s && M.data("source") !== w)) {
var R = M.source(), L = M.target(), I = R.id() !== w ? R : L, F = I.id();
if (this.hasElementWithId(F) && !d[F]) {
var _ = f[w] + u(M);
if (!C(F)) {
f[F] = _, c[F] = _ + o(I), b(I, F), p[F] = m, y[F] = M;
continue;
}
_ < f[F] && (f[F] = _, c[F] = _ + o(I), p[F] = m, y[F] = M);
}
}
}
}
return {
found: !1,
distance: void 0,
path: void 0,
steps: x
};
} }, nh = vt({
weight: function(e) {
return 1;
},
directed: !1
}), ih = { floydWarshall: function(e) {
for (var r = this.cy(), a = nh(e), n = a.weight, i = a.directed, o = n, s = this.byGroup(), u = s.nodes, l = s.edges, v = u.length, f = v * v, c = function(G) {
return u.indexOf(G);
}, d = function(G) {
return u[G];
}, h = new Array(f), g = 0; g < f; g++) {
var p = g % v;
(g - p) / v === p ? h[g] = 0 : h[g] = 1 / 0;
}
for (var y = new Array(f), b = new Array(f), m = 0; m < l.length; m++) {
var w = l[m], T = w.source()[0], C = w.target()[0];
if (T !== C) {
var x = c(T), S = c(C), D = x * v + S, E = o(w);
if (h[D] > E && (h[D] = E, y[D] = S, b[D] = w), !i) {
var B = S * v + x;
!i && h[B] > E && (h[B] = E, y[B] = x, b[B] = w);
}
}
}
for (var A = 0; A < v; A++) for (var P = 0; P < v; P++)
for (var M = P * v + A, R = 0; R < v; R++) {
var L = P * v + R, I = A * v + R;
h[M] + h[I] < h[L] && (h[L] = h[M] + h[I], y[L] = y[M]);
}
var F = function(G) {
return (he(G) ? r.filter(G) : G)[0];
}, _ = function(G) {
return c(F(G));
};
return {
distance: function(G, Z) {
var W = _(G), $ = _(Z);
return h[W * v + $];
},
path: function(G, Z) {
var W = _(G), $ = _(Z), Y = d(W);
if (W === $) return Y.collection();
if (y[W * v + $] == null) return r.collection();
var te = r.collection(), J = W, X;
for (te.merge(Y); W !== $; )
J = W, W = y[W * v + $], X = b[J * v + W], te.merge(X), te.merge(d(W));
return te;
}
};
} }, oh = vt({
weight: function(e) {
return 1;
},
directed: !1,
root: null
}), sh = { bellmanFord: function(e) {
var r = this, a = oh(e), n = a.weight, i = a.directed, o = a.root, s = n, u = this, l = this.cy(), v = this.byGroup(), f = v.edges, c = v.nodes, d = c.length, h = new Ht(), g = !1, p = [];
o = l.collection(o)[0], f.unmergeBy(function(le) {
return le.isLoop();
});
for (var y = f.length, b = function(ae) {
var fe = h.get(ae.id());
return fe || (fe = {}, h.set(ae.id(), fe)), fe;
}, m = function(ae) {
return (he(ae) ? l.$(ae) : ae)[0];
}, w = function(ae) {
return b(m(ae)).dist;
}, T = function(ae) {
for (var fe = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : o, pe = m(ae), me = [], ce = pe; ; ) {
if (ce == null) return r.spawn();
var Ce = b(ce), Be = Ce.edge, Pe = Ce.pred;
if (me.unshift(ce[0]), ce.same(fe) && me.length > 0) break;
Be != null && me.unshift(Be), ce = Pe;
}
return u.spawn(me);
}, C = 0; C < d; C++) {
var x = c[C], S = b(x);
x.same(o) ? S.dist = 0 : S.dist = 1 / 0, S.pred = null, S.edge = null;
}
for (var D = !1, E = function(ae, fe, pe, me, ce, Ce) {
var Be = me.dist + Ce;
Be < ce.dist && !pe.same(me.edge) && (ce.dist = Be, ce.pred = ae, ce.edge = pe, D = !0);
}, B = 1; B < d; B++) {
D = !1;
for (var A = 0; A < y; A++) {
var P = f[A], M = P.source(), R = P.target(), L = s(P), I = b(M), F = b(R);
E(M, R, P, I, F, L), i || E(R, M, P, F, I, L);
}
if (!D) break;
}
if (D)
for (var _ = [], N = 0; N < y; N++) {
var G = f[N], Z = G.source(), W = G.target(), $ = s(G), Y = b(Z).dist, te = b(W).dist;
if (Y + $ < te || !i && te + $ < Y)
if (g || (Ie("Graph contains a negative weight cycle for Bellman-Ford"), g = !0), e.findNegativeWeightCycles !== !1) {
var J = [];
Y + $ < te && J.push(Z), !i && te + $ < Y && J.push(W);
for (var X = J.length, O = 0; O < X; O++) {
var V = J[O], q = [V];
q.push(b(V).edge);
for (var j = b(V).pred; q.indexOf(j) === -1; )
q.push(j), q.push(b(j).edge), j = b(j).pred;
q = q.slice(q.indexOf(j));
for (var ue = q[0].id(), we = 0, be = 2; be < q.length; be += 2) q[be].id() < ue && (ue = q[be].id(), we = be);
q = q.slice(we).concat(q.slice(0, we)), q.push(q[0]);
var ke = q.map(function(le) {
return le.id();
}).join(",");
_.indexOf(ke) === -1 && (p.push(u.spawn(q)), _.push(ke));
}
} else break;
}
return {
distanceTo: w,
pathTo: T,
hasNegativeWeightCycle: g,
negativeWeightCycles: p
};
} }, uh = Math.sqrt(2), lh = function(e, r, a) {
a.length === 0 && He("Karger-Stein must be run on a connected (sub)graph");
for (var n = a[e], i = n[1], o = n[2], s = r[i], u = r[o], l = a, v = l.length - 1; v >= 0; v--) {
var f = l[v], c = f[1], d = f[2];
(r[c] === s && r[d] === u || r[c] === u && r[d] === s) && l.splice(v, 1);
}
for (var h = 0; h < l.length; h++) {
var g = l[h];
g[1] === u ? (l[h] = g.slice(), l[h][1] = s) : g[2] === u && (l[h] = g.slice(), l[h][2] = s);
}
for (var p = 0; p < r.length; p++) r[p] === u && (r[p] = s);
return l;
}, fi = function(e, r, a, n) {
for (; a > n; )
r = lh(Math.floor(Math.random() * r.length), e, r), a--;
return r;
}, vh = { kargerStein: function() {
var e = this, r = this.byGroup(), a = r.nodes, n = r.edges;
n.unmergeBy(function(L) {
return L.isLoop();
});
var i = a.length, o = n.length, s = Math.ceil(Math.pow(Math.log(i) / Math.LN2, 2)), u = Math.floor(i / uh);
if (i < 2) {
He("At least 2 nodes are required for Karger-Stein algorithm");
return;
}
for (var l = [], v = 0; v < o; v++) {
var f = n[v];
l.push([
v,
a.indexOf(f.source()),
a.indexOf(f.target())
]);
}
for (var c = 1 / 0, d = [], h = new Array(i), g = new Array(i), p = new Array(i), y = function(I, F) {
for (var _ = 0; _ < i; _++) F[_] = I[_];
}, b = 0; b <= s; b++) {
for (var m = 0; m < i; m++) g[m] = m;
var w = fi(g, l.slice(), i, u), T = w.slice();
y(g, p);
var C = fi(g, w, u, 2), x = fi(p, T, u, 2);
C.length <= x.length && C.length < c ? (c = C.length, d = C, y(g, h)) : x.length <= C.length && x.length < c && (c = x.length, d = x, y(p, h));
}
for (var S = this.spawn(d.map(function(L) {
return n[L[0]];
})), D = this.spawn(), E = this.spawn(), B = h[0], A = 0; A < h.length; A++) {
var P = h[A], M = a[A];
P === B ? D.merge(M) : E.merge(M);
}
var R = function(I) {
var F = e.spawn();
return I.forEach(function(_) {
F.merge(_), _.connectedEdges().forEach(function(N) {
e.contains(N) && !S.contains(N) && F.merge(N);
});
}), F;
};
return {
cut: S,
components: [R(D), R(E)],
partition1: D,
partition2: E
};
} }, ci, fh = function(e) {
return {
x: e.x,
y: e.y
};
}, Ln = function(e, r, a) {
return {
x: e.x * r + a.x,
y: e.y * r + a.y
};
}, dv = function(e, r, a) {
return {
x: (e.x - a.x) / r,
y: (e.y - a.y) / r
};
}, Vr = function(e) {
return {
x: e[0],
y: e[1]
};
}, ch = function(e) {
for (var r = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : 0, a = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : e.length, n = 1 / 0, i = r; i < a; i++) {
var o = e[i];
isFinite(o) && (n = Math.min(o, n));
}
return n;
}, hh = function(e) {
for (var r = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : 0, a = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : e.length, n = -1 / 0, i = r; i < a; i++) {
var o = e[i];
isFinite(o) && (n = Math.max(o, n));
}
return n;
}, dh = function(e) {
for (var r = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : 0, a = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : e.length, n = 0, i = 0, o = r; o < a; o++) {
var s = e[o];
isFinite(s) && (n += s, i++);
}
return n / i;
}, gh = function(e) {
var r = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : 0, a = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : e.length, n = arguments.length > 3 && arguments[3] !== void 0 ? arguments[3] : !0, i = arguments.length > 4 && arguments[4] !== void 0 ? arguments[4] : !0, o = arguments.length > 5 && arguments[5] !== void 0 ? arguments[5] : !0;
n ? e = e.slice(r, a) : (a < e.length && e.splice(a, e.length - a), 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(c, d) {
return c - d;
});
var v = e.length, f = Math.floor(v / 2);
return v % 2 !== 0 ? e[f + 1 + s] : (e[f - 1 + s] + e[f + s]) / 2;
}, ph = function(e) {
return Math.PI * e / 180;
}, $a = function(e, r) {
return Math.atan2(r, e) - Math.PI / 2;
}, jo = Math.log2 || function(t) {
return Math.log(t) / Math.log(2);
}, es = function(e) {
return e > 0 ? 1 : e < 0 ? -1 : 0;
}, Cr = function(e, r) {
return Math.sqrt(yr(e, r));
}, yr = function(e, r) {
var a = r.x - e.x, n = r.y - e.y;
return a * a + n * n;
}, yh = function(e) {
for (var r = e.length, a = 0, n = 0; n < r; n++) a += e[n];
for (var i = 0; i < r; i++) e[i] = e[i] / a;
return e;
}, rt = function(e, r, a, n) {
return (1 - n) * (1 - n) * e + 2 * (1 - n) * n * r + n * n * a;
}, Gr = function(e, r, a, n) {
return {
x: rt(e.x, r.x, a.x, n),
y: rt(e.y, r.y, a.y, n)
};
}, mh = function(e, r, a, n) {
var i = {