UNPKG

markdown-flow-ui

Version:

A React UI library for rendering markdown with interactive flow components, typewriter effects, and plugin support

1,575 lines 637 kB
function Bs(r, e) { (e == null || e > r.length) && (e = r.length); for (var t = 0, a = Array(e); t < e; t++) a[t] = r[t]; return a; } function ec(r) { if (Array.isArray(r)) return r; } function rc(r) { if (Array.isArray(r)) return Bs(r); } function ht(r, e) { if (!(r instanceof e)) throw new TypeError("Cannot call a class as a function"); } function tc(r, e) { for (var t = 0; t < e.length; t++) { var a = e[t]; a.enumerable = a.enumerable || !1, a.configurable = !0, "value" in a && (a.writable = !0), Object.defineProperty(r, jl(a.key), a); } } function gt(r, e, t) { return e && tc(r.prototype, e), Object.defineProperty(r, "prototype", { writable: !1 }), r; } function kr(r, e) { var t = typeof Symbol < "u" && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = Xs(r)) || e) { t && (r = t); var a = 0, n = function() { }; return { s: n, n: function() { return a >= r.length ? { done: !0 } : { done: !1, value: r[a++] }; }, e: function(l) { throw l; }, 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, s = !0, o = !1; return { s: function() { t = t.call(r); }, n: function() { var l = t.next(); return s = l.done, l; }, e: function(l) { o = !0, i = l; }, f: function() { try { s || t.return == null || t.return(); } finally { if (o) throw i; } } }; } function Jl(r, e, t) { return (e = jl(e)) in r ? Object.defineProperty(r, e, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : r[e] = t, r; } function ac(r) { if (typeof Symbol < "u" && r[Symbol.iterator] != null || r["@@iterator"] != null) return Array.from(r); } function nc(r, e) { var t = r == null ? null : typeof Symbol < "u" && r[Symbol.iterator] || r["@@iterator"]; if (t != null) { var a, n, i, s, o = [], l = !0, u = !1; try { if (i = (t = t.call(r)).next, e === 0) { if (Object(t) !== t) return; l = !1; } else for (; !(l = (a = i.call(t)).done) && (o.push(a.value), o.length !== e); l = !0) ; } catch (v) { u = !0, n = v; } finally { try { if (!l && t.return != null && (s = t.return(), Object(s) !== s)) return; } finally { if (u) throw n; } } return o; } } function ic() { 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 sc() { 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 Je(r, e) { return ec(r) || nc(r, e) || Xs(r, e) || ic(); } function mn(r) { return rc(r) || ac(r) || Xs(r) || sc(); } function oc(r, e) { if (typeof r != "object" || !r) return r; var t = r[Symbol.toPrimitive]; if (t !== void 0) { var a = t.call(r, e); if (typeof a != "object") return a; throw new TypeError("@@toPrimitive must return a primitive value."); } return String(r); } function jl(r) { var e = oc(r, "string"); return typeof e == "symbol" ? e : e + ""; } function ar(r) { "@babel/helpers - typeof"; return ar = 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; }, ar(r); } function Xs(r, e) { if (r) { if (typeof r == "string") return Bs(r, e); var t = {}.toString.call(r).slice(8, -1); return t === "Object" && r.constructor && (t = r.constructor.name), t === "Map" || t === "Set" ? Array.from(r) : t === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? Bs(r, e) : void 0; } } var rr = typeof window > "u" ? null : window, To = rr ? rr.navigator : null; rr && rr.document; var uc = ar(""), ev = ar({}), lc = ar(function() { }), vc = typeof HTMLElement > "u" ? "undefined" : ar(HTMLElement), La = function(e) { return e && e.instanceString && Ue(e.instanceString) ? e.instanceString() : null; }, ge = function(e) { return e != null && ar(e) == uc; }, Ue = function(e) { return e != null && ar(e) === lc; }, _e = function(e) { return !Dr(e) && (Array.isArray ? Array.isArray(e) : e != null && e instanceof Array); }, Le = function(e) { return e != null && ar(e) === ev && !_e(e) && e.constructor === Object; }, fc = function(e) { return e != null && ar(e) === ev; }, ae = function(e) { return e != null && ar(e) === ar(1) && !isNaN(e); }, cc = function(e) { return ae(e) && Math.floor(e) === e; }, bn = function(e) { if (vc !== "undefined") return e != null && e instanceof HTMLElement; }, Dr = function(e) { return Ia(e) || rv(e); }, Ia = function(e) { return La(e) === "collection" && e._private.single; }, rv = function(e) { return La(e) === "collection" && !e._private.single; }, Ys = function(e) { return La(e) === "core"; }, tv = function(e) { return La(e) === "stylesheet"; }, dc = function(e) { return La(e) === "event"; }, ut = function(e) { return e == null ? !0 : !!(e === "" || e.match(/^\s+$/)); }, hc = function(e) { return typeof HTMLElement > "u" ? !1 : e instanceof HTMLElement; }, gc = function(e) { return Le(e) && ae(e.x1) && ae(e.x2) && ae(e.y1) && ae(e.y2); }, pc = function(e) { return fc(e) && Ue(e.then); }, yc = function() { return To && To.userAgent.match(/msie|trident|edge/i); }, Qt = function(e, t) { t || (t = function() { if (arguments.length === 1) return arguments[0]; if (arguments.length === 0) return "undefined"; for (var i = [], s = 0; s < arguments.length; s++) i.push(arguments[s]); return i.join("$"); }); var a = function() { var i = this, s = arguments, o, l = t.apply(i, s), u = a.cache; return (o = u[l]) || (o = u[l] = e.apply(i, s)), o; }; return a.cache = {}, a; }, Zs = Qt(function(r) { return r.replace(/([A-Z])/g, function(e) { return "-" + e.toLowerCase(); }); }), Mn = Qt(function(r) { return r.replace(/(-\w)/g, function(e) { return e[1].toUpperCase(); }); }), av = Qt(function(r, e) { return r + e[0].toUpperCase() + e.substring(1); }, function(r, e) { return r + "$" + e; }), So = function(e) { return ut(e) ? e : e.charAt(0).toUpperCase() + e.substring(1); }, at = function(e, t) { return e.slice(-1 * t.length) === t; }, tr = "(?:[-+]?(?:(?:\\d+|\\d*\\.\\d+)(?:[Ee][+-]?\\d+)?))", mc = "rgb[a]?\\((" + tr + "[%]?)\\s*,\\s*(" + tr + "[%]?)\\s*,\\s*(" + tr + "[%]?)(?:\\s*,\\s*(" + tr + "))?\\)", bc = "rgb[a]?\\((?:" + tr + "[%]?)\\s*,\\s*(?:" + tr + "[%]?)\\s*,\\s*(?:" + tr + "[%]?)(?:\\s*,\\s*(?:" + tr + "))?\\)", wc = "hsl[a]?\\((" + tr + ")\\s*,\\s*(" + tr + "[%])\\s*,\\s*(" + tr + "[%])(?:\\s*,\\s*(" + tr + "))?\\)", xc = "hsl[a]?\\((?:" + tr + ")\\s*,\\s*(?:" + tr + "[%])\\s*,\\s*(?:" + tr + "[%])(?:\\s*,\\s*(?:" + tr + "))?\\)", Ec = "\\#[0-9a-fA-F]{3}", Cc = "\\#[0-9a-fA-F]{6}", nv = function(e, t) { return e < t ? -1 : e > t ? 1 : 0; }, Tc = function(e, t) { return -1 * nv(e, t); }, be = Object.assign != null ? Object.assign.bind(Object) : function(r) { for (var e = arguments, t = 1; t < e.length; t++) { var a = e[t]; if (a != null) for (var n = Object.keys(a), i = 0; i < n.length; i++) { var s = n[i]; r[s] = a[s]; } } return r; }, Sc = function(e) { if (!(!(e.length === 4 || e.length === 7) || e[0] !== "#")) { var t = e.length === 4, a, n, i, s = 16; return t ? (a = parseInt(e[1] + e[1], s), n = parseInt(e[2] + e[2], s), i = parseInt(e[3] + e[3], s)) : (a = parseInt(e[1] + e[2], s), n = parseInt(e[3] + e[4], s), i = parseInt(e[5] + e[6], s)), [a, n, i]; } }, kc = function(e) { var t, a, n, i, s, o, l, u; function v(d, y, g) { return g < 0 && (g += 1), g > 1 && (g -= 1), g < 1 / 6 ? d + (y - d) * 6 * g : g < 1 / 2 ? y : g < 2 / 3 ? d + (y - d) * (2 / 3 - g) * 6 : d; } var f = new RegExp("^" + wc + "$").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, s = f[4], s !== void 0 && (s = parseFloat(s), s < 0 || s > 1))) return; if (n === 0) o = l = u = Math.round(i * 255); else { var c = i < 0.5 ? i * (1 + n) : i + n - i * n, h = 2 * i - c; o = Math.round(255 * v(h, c, a + 1 / 3)), l = Math.round(255 * v(h, c, a)), u = Math.round(255 * v(h, c, a - 1 / 3)); } t = [o, l, u, s]; } return t; }, Dc = function(e) { var t, a = new RegExp("^" + mc + "$").exec(e); if (a) { t = []; for (var n = [], i = 1; i <= 3; i++) { var s = a[i]; if (s[s.length - 1] === "%" && (n[i] = !0), s = parseFloat(s), n[i] && (s = s / 100 * 255), s < 0 || s > 255) return; t.push(Math.floor(s)); } var o = n[1] || n[2] || n[3], l = n[1] && n[2] && n[3]; if (o && !l) return; var u = a[4]; if (u !== void 0) { if (u = parseFloat(u), u < 0 || u > 1) return; t.push(u); } } return t; }, Bc = function(e) { return Pc[e.toLowerCase()]; }, iv = function(e) { return (_e(e) ? e : null) || Bc(e) || Sc(e) || Dc(e) || kc(e); }, Pc = { // 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] }, sv = function(e) { for (var t = e.map, a = e.keys, n = a.length, i = 0; i < n; i++) { var s = a[i]; if (Le(s)) throw Error("Tried to set map with object key"); i < a.length - 1 ? (t[s] == null && (t[s] = {}), t = t[s]) : t[s] = e.value; } }, ov = function(e) { for (var t = e.map, a = e.keys, n = a.length, i = 0; i < n; i++) { var s = a[i]; if (Le(s)) throw Error("Tried to get map with object key"); if (t = t[s], t == null) return t; } return t; }, Ka = typeof globalThis < "u" ? globalThis : typeof window < "u" ? window : typeof global < "u" ? global : typeof self < "u" ? self : {}; function Oa(r) { return r && r.__esModule && Object.prototype.hasOwnProperty.call(r, "default") ? r.default : r; } var Jn, ko; function Na() { if (ko) return Jn; ko = 1; function r(e) { var t = typeof e; return e != null && (t == "object" || t == "function"); } return Jn = r, Jn; } var jn, Do; function Ac() { if (Do) return jn; Do = 1; var r = typeof Ka == "object" && Ka && Ka.Object === Object && Ka; return jn = r, jn; } var ei, Bo; function Ln() { if (Bo) return ei; Bo = 1; var r = Ac(), e = typeof self == "object" && self && self.Object === Object && self, t = r || e || Function("return this")(); return ei = t, ei; } var ri, Po; function Rc() { if (Po) return ri; Po = 1; var r = Ln(), e = function() { return r.Date.now(); }; return ri = e, ri; } var ti, Ao; function Mc() { if (Ao) return ti; Ao = 1; var r = /\s/; function e(t) { for (var a = t.length; a-- && r.test(t.charAt(a)); ) ; return a; } return ti = e, ti; } var ai, Ro; function Lc() { if (Ro) return ai; Ro = 1; var r = Mc(), e = /^\s+/; function t(a) { return a && a.slice(0, r(a) + 1).replace(e, ""); } return ai = t, ai; } var ni, Mo; function Qs() { if (Mo) return ni; Mo = 1; var r = Ln(), e = r.Symbol; return ni = e, ni; } var ii, Lo; function Ic() { if (Lo) return ii; Lo = 1; var r = Qs(), e = Object.prototype, t = e.hasOwnProperty, a = e.toString, n = r ? r.toStringTag : void 0; function i(s) { var o = t.call(s, n), l = s[n]; try { s[n] = void 0; var u = !0; } catch { } var v = a.call(s); return u && (o ? s[n] = l : delete s[n]), v; } return ii = i, ii; } var si, Io; function Oc() { if (Io) return si; Io = 1; var r = Object.prototype, e = r.toString; function t(a) { return e.call(a); } return si = t, si; } var oi, Oo; function uv() { if (Oo) return oi; Oo = 1; var r = Qs(), e = Ic(), t = Oc(), a = "[object Null]", n = "[object Undefined]", i = r ? r.toStringTag : void 0; function s(o) { return o == null ? o === void 0 ? n : a : i && i in Object(o) ? e(o) : t(o); } return oi = s, oi; } var ui, No; function Nc() { if (No) return ui; No = 1; function r(e) { return e != null && typeof e == "object"; } return ui = r, ui; } var li, zo; function za() { if (zo) return li; zo = 1; var r = uv(), e = Nc(), t = "[object Symbol]"; function a(n) { return typeof n == "symbol" || e(n) && r(n) == t; } return li = a, li; } var vi, Fo; function zc() { if (Fo) return vi; Fo = 1; var r = Lc(), e = Na(), t = za(), a = NaN, n = /^[-+]0x[0-9a-f]+$/i, i = /^0b[01]+$/i, s = /^0o[0-7]+$/i, o = parseInt; function l(u) { if (typeof u == "number") return u; if (t(u)) return a; if (e(u)) { var v = typeof u.valueOf == "function" ? u.valueOf() : u; u = e(v) ? v + "" : v; } if (typeof u != "string") return u === 0 ? u : +u; u = r(u); var f = i.test(u); return f || s.test(u) ? o(u.slice(2), f ? 2 : 8) : n.test(u) ? a : +u; } return vi = l, vi; } var fi, Vo; function Fc() { if (Vo) return fi; Vo = 1; var r = Na(), e = Rc(), t = zc(), a = "Expected a function", n = Math.max, i = Math.min; function s(o, l, u) { var v, f, c, h, d, y, g = 0, p = !1, m = !1, b = !0; if (typeof o != "function") throw new TypeError(a); l = t(l) || 0, r(u) && (p = !!u.leading, m = "maxWait" in u, c = m ? n(t(u.maxWait) || 0, l) : c, b = "trailing" in u ? !!u.trailing : b); function w(A) { var R = v, L = f; return v = f = void 0, g = A, h = o.apply(L, R), h; } function E(A) { return g = A, d = setTimeout(T, l), p ? w(A) : h; } function C(A) { var R = A - y, L = A - g, I = l - R; return m ? i(I, c - L) : I; } function x(A) { var R = A - y, L = A - g; return y === void 0 || R >= l || R < 0 || m && L >= c; } function T() { var A = e(); if (x(A)) return k(A); d = setTimeout(T, C(A)); } function k(A) { return d = void 0, b && v ? w(A) : (v = f = void 0, h); } function D() { d !== void 0 && clearTimeout(d), g = 0, v = y = f = d = void 0; } function B() { return d === void 0 ? h : k(e()); } function P() { var A = e(), R = x(A); if (v = arguments, f = this, y = A, R) { if (d === void 0) return E(y); if (m) return clearTimeout(d), d = setTimeout(T, l), w(y); } return d === void 0 && (d = setTimeout(T, l)), h; } return P.cancel = D, P.flush = B, P; } return fi = s, fi; } var Vc = Fc(), Fa = /* @__PURE__ */ Oa(Vc), ci = rr ? rr.performance : null, lv = ci && ci.now ? function() { return ci.now(); } : function() { return Date.now(); }, qc = (function() { if (rr) { if (rr.requestAnimationFrame) return function(r) { rr.requestAnimationFrame(r); }; if (rr.mozRequestAnimationFrame) return function(r) { rr.mozRequestAnimationFrame(r); }; if (rr.webkitRequestAnimationFrame) return function(r) { rr.webkitRequestAnimationFrame(r); }; if (rr.msRequestAnimationFrame) return function(r) { rr.msRequestAnimationFrame(r); }; } return function(r) { r && setTimeout(function() { r(lv()); }, 1e3 / 60); }; })(), wn = function(e) { return qc(e); }, Yr = lv, Tt = 9261, vv = 65599, Ht = 5381, fv = function(e) { for (var t = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : Tt, a = t, n; n = e.next(), !n.done; ) a = a * vv + n.value | 0; return a; }, Ca = function(e) { var t = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : Tt; return t * vv + e | 0; }, Ta = function(e) { var t = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : Ht; return (t << 5) + t + e | 0; }, _c = function(e, t) { return e * 2097152 + t; }, et = function(e) { return e[0] * 2097152 + e[1]; }, Xa = function(e, t) { return [Ca(e[0], t[0]), Ta(e[1], t[1])]; }, qo = function(e, t) { var a = { value: 0, done: !1 }, n = 0, i = e.length, s = { next: function() { return n < i ? a.value = e[n++] : a.done = !0, a; } }; return fv(s, t); }, Dt = function(e, t) { var a = { value: 0, done: !1 }, n = 0, i = e.length, s = { next: function() { return n < i ? a.value = e.charCodeAt(n++) : a.done = !0, a; } }; return fv(s, t); }, cv = function() { return Gc(arguments); }, Gc = function(e) { for (var t, a = 0; a < e.length; a++) { var n = e[a]; a === 0 ? t = Dt(n) : t = Dt(n, t); } return t; }; function Hc(r, e, t, a, n) { var i = n * Math.PI / 180, s = Math.cos(i) * (r - t) - Math.sin(i) * (e - a) + t, o = Math.sin(i) * (r - t) + Math.cos(i) * (e - a) + a; return { x: s, y: o }; } var Wc = function(e, t, a, n, i, s) { return { x: (e - a) * i + a, y: (t - n) * s + n }; }; function $c(r, e, t) { if (t === 0) return r; var a = (e.x1 + e.x2) / 2, n = (e.y1 + e.y2) / 2, i = e.w / e.h, s = 1 / i, o = Hc(r.x, r.y, a, n, t), l = Wc(o.x, o.y, a, n, i, s); return { x: l.x, y: l.y }; } var _o = !0, Uc = console.warn != null, Kc = console.trace != null, Js = Number.MAX_SAFE_INTEGER || 9007199254740991, dv = function() { return !0; }, xn = function() { return !1; }, Go = function() { return 0; }, js = function() { }, $e = function(e) { throw new Error(e); }, hv = function(e) { if (e !== void 0) _o = !!e; else return _o; }, Ve = function(e) { hv() && (Uc ? console.warn(e) : (console.log(e), Kc && console.trace())); }, Xc = function(e) { return be({}, e); }, qr = function(e) { return e == null ? e : _e(e) ? e.slice() : Le(e) ? Xc(e) : e; }, Yc = function(e) { return e.slice(); }, gv = function(e, t) { for ( // loop :) t = e = ""; // b - result , a - numeric letiable e++ < 36; // t += 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 t; }, Zc = {}, pv = function() { return Zc; }, cr = function(e) { var t = Object.keys(e); return function(a) { for (var n = {}, i = 0; i < t.length; i++) { var s = t[i], o = a?.[s]; n[s] = o === void 0 ? e[s] : o; } return n; }; }, lt = function(e, t, a) { for (var n = e.length - 1; n >= 0; n--) e[n] === t && e.splice(n, 1); }, eo = function(e) { e.splice(0, e.length); }, Qc = function(e, t) { for (var a = 0; a < t.length; a++) { var n = t[a]; e.push(n); } }, Tr = function(e, t, a) { return a && (t = av(a, t)), e[t]; }, Kr = function(e, t, a, n) { a && (t = av(a, t)), e[t] = n; }, Jc = /* @__PURE__ */ (function() { function r() { ht(this, r), this._obj = {}; } return gt(r, [{ key: "set", value: function(t, a) { return this._obj[t] = a, this; } }, { key: "delete", value: function(t) { return this._obj[t] = void 0, this; } }, { key: "clear", value: function() { this._obj = {}; } }, { key: "has", value: function(t) { return this._obj[t] !== void 0; } }, { key: "get", value: function(t) { return this._obj[t]; } }]); })(), Xr = typeof Map < "u" ? Map : Jc, jc = "undefined", ed = /* @__PURE__ */ (function() { function r(e) { if (ht(this, r), this._obj = /* @__PURE__ */ Object.create(null), this.size = 0, e != null) { var t; e.instanceString != null && e.instanceString() === this.instanceString() ? t = e.toArray() : t = e; for (var a = 0; a < t.length; a++) this.add(t[a]); } } return gt(r, [{ key: "instanceString", value: function() { return "set"; } }, { key: "add", value: function(t) { var a = this._obj; a[t] !== 1 && (a[t] = 1, this.size++); } }, { key: "delete", value: function(t) { var a = this._obj; a[t] === 1 && (a[t] = 0, this.size--); } }, { key: "clear", value: function() { this._obj = /* @__PURE__ */ Object.create(null); } }, { key: "has", value: function(t) { return this._obj[t] === 1; } }, { key: "toArray", value: function() { var t = this; return Object.keys(this._obj).filter(function(a) { return t.has(a); }); } }, { key: "forEach", value: function(t, a) { return this.toArray().forEach(t, a); } }]); })(), ra = (typeof Set > "u" ? "undefined" : ar(Set)) !== jc ? Set : ed, In = function(e, t) { var a = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : !0; if (e === void 0 || t === void 0 || !Ys(e)) { $e("An element must have a core reference and parameters set"); return; } var n = t.group; if (n == null && (t.data && t.data.source != null && t.data.target != null ? n = "edges" : n = "nodes"), n !== "nodes" && n !== "edges") { $e("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, // indicates this is an element data: t.data || {}, // data object position: t.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: !1, // whether the compound dimensions need to be recalculated the next time dimensions are read listeners: [], // array of bound listeners group: n, // 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: !0, // whether it's inside the vis; true if removed (set true here since we call restore) selected: !!t.selected, // whether it's selected selectable: t.selectable === void 0 ? !0 : !!t.selectable, // whether it's selectable locked: !!t.locked, // whether the element is locked (cannot be moved) grabbed: !1, // whether the element is grabbed by the mouse; renderer sets this privately grabbable: t.grabbable === void 0 ? !0 : !!t.grabbable, // whether the element can be grabbed pannable: t.pannable === void 0 ? n === "edges" : !!t.pannable, // whether the element has passthrough panning enabled active: !1, // whether the element is active from user interaction classes: new ra(), // map ( className => true ) animation: { // object for currently-running animations current: [], queue: [] }, rscratch: {}, // object in which the renderer can store information scratch: t.scratch || {}, // scratch objects edges: [], // array of connected edges children: [], // array of children parent: t.parent && t.parent.isNode() ? t.parent : null, // parent ref traversalCache: {}, // cache of output of traversal functions backgrounding: !1, // 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), t.renderedPosition) { var s = t.renderedPosition, o = e.pan(), l = e.zoom(); i.position = { x: (s.x - o.x) / l, y: (s.y - o.y) / l }; } var u = []; _e(t.classes) ? u = t.classes : ge(t.classes) && (u = t.classes.split(/\s+/)); for (var v = 0, f = u.length; v < f; v++) { var c = u[v]; !c || c === "" || i.classes.add(c); } this.createEmitter(), (a === void 0 || a) && this.restore(); var h = t.style || t.css; h && (Ve("Setting a `style` bypass at element creation should be done only when absolutely necessary. Try to use the stylesheet instead."), this.style(h)); }, Ho = function(e) { return e = { bfs: e.bfs || !e.dfs, dfs: e.dfs || !e.bfs }, function(a, n, i) { var s; Le(a) && !Dr(a) && (s = a, a = s.roots || s.root, n = s.visit, i = s.directed), i = arguments.length === 2 && !Ue(n) ? n : i, n = Ue(n) ? n : function() { }; for (var o = this._private.cy, l = a = ge(a) ? this.filter(a) : a, u = [], v = [], f = {}, c = {}, h = {}, d = 0, y, g = this.byGroup(), p = g.nodes, m = g.edges, b = 0; b < l.length; b++) { var w = l[b], E = w.id(); w.isNode() && (u.unshift(w), e.bfs && (h[E] = !0, v.push(w)), c[E] = 0); } for (var C = function() { var A = e.bfs ? u.shift() : u.pop(), R = A.id(); if (e.dfs) { if (h[R]) return 0; h[R] = !0, v.push(A); } var L = c[R], I = f[R], M = I != null ? I.source() : null, O = I != null ? I.target() : null, V = I == null ? void 0 : A.same(M) ? O[0] : M[0], G; if (G = n(A, I, V, d++, L), G === !0) return y = A, 1; if (G === !1) return 1; for (var N = A.connectedEdges().filter(function(j) { return (!i || j.source().same(A)) && m.has(j); }), F = 0; F < N.length; F++) { var U = N[F], Q = U.connectedNodes().filter(function(j) { return !j.same(A) && p.has(j); }), K = Q.id(); Q.length !== 0 && !h[K] && (Q = Q[0], u.push(Q), e.bfs && (h[K] = !0, v.push(Q)), f[K] = U, c[K] = c[R] + 1); } }, x; u.length !== 0 && (x = C(), !(x !== 0 && x === 1)); ) ; for (var T = o.collection(), k = 0; k < v.length; k++) { var D = v[k], B = f[D.id()]; B != null && T.push(B), T.push(D); } return { path: o.collection(T), found: o.collection(y) }; }; }, Sa = { breadthFirstSearch: Ho({ bfs: !0 }), depthFirstSearch: Ho({ dfs: !0 }) }; Sa.bfs = Sa.breadthFirstSearch; Sa.dfs = Sa.depthFirstSearch; var on = { exports: {} }, rd = on.exports, Wo; function td() { return Wo || (Wo = 1, (function(r, e) { (function() { var t, a, n, i, s, o, l, u, v, f, c, h, d, y, g; n = Math.floor, f = Math.min, a = function(p, m) { return p < m ? -1 : p > m ? 1 : 0; }, v = function(p, m, b, w, E) { var C; if (b == null && (b = 0), E == null && (E = a), b < 0) throw new Error("lo must be non-negative"); for (w == null && (w = p.length); b < w; ) C = n((b + w) / 2), E(m, p[C]) < 0 ? w = C : b = C + 1; return [].splice.apply(p, [b, b - b].concat(m)), m; }, o = function(p, m, b) { return b == null && (b = a), p.push(m), y(p, 0, p.length - 1, b); }, s = function(p, m) { var b, w; return m == null && (m = a), b = p.pop(), p.length ? (w = p[0], p[0] = b, g(p, 0, m)) : w = b, w; }, u = function(p, m, b) { var w; return b == null && (b = a), w = p[0], p[0] = m, g(p, 0, b), w; }, l = function(p, m, b) { var w; return b == null && (b = a), p.length && b(p[0], m) < 0 && (w = [p[0], m], m = w[0], p[0] = w[1], g(p, 0, b)), m; }, i = function(p, m) { var b, w, E, C, x, T; for (m == null && (m = a), C = (function() { T = []; for (var k = 0, D = n(p.length / 2); 0 <= D ? k < D : k > D; 0 <= D ? k++ : k--) T.push(k); return T; }).apply(this).reverse(), x = [], w = 0, E = C.length; w < E; w++) b = C[w], x.push(g(p, b, m)); return x; }, d = function(p, m, b) { var w; if (b == null && (b = a), w = p.indexOf(m), w !== -1) return y(p, 0, w, b), g(p, w, b); }, c = function(p, m, b) { var w, E, C, x, T; if (b == null && (b = a), E = p.slice(0, m), !E.length) return E; for (i(E, b), T = p.slice(m), C = 0, x = T.length; C < x; C++) w = T[C], l(E, w, b); return E.sort(b).reverse(); }, h = function(p, m, b) { var w, E, C, x, T, k, D, B, P; if (b == null && (b = a), m * 10 <= p.length) { if (C = p.slice(0, m).sort(b), !C.length) return C; for (E = C[C.length - 1], D = p.slice(m), x = 0, k = D.length; x < k; x++) w = D[x], b(w, E) < 0 && (v(C, w, 0, null, b), C.pop(), E = C[C.length - 1]); return C; } for (i(p, b), P = [], T = 0, B = f(m, p.length); 0 <= B ? T < B : T > B; 0 <= B ? ++T : --T) P.push(s(p, b)); return P; }, y = function(p, m, b, w) { var E, C, x; for (w == null && (w = a), E = p[b]; b > m; ) { if (x = b - 1 >> 1, C = p[x], w(E, C) < 0) { p[b] = C, b = x; continue; } break; } return p[b] = E; }, g = function(p, m, b) { var w, E, C, x, T; for (b == null && (b = a), E = p.length, T = m, C = p[m], w = 2 * m + 1; w < E; ) x = w + 1, x < E && !(b(p[w], p[x]) < 0) && (w = x), p[m] = p[w], m = w, w = 2 * m + 1; return p[m] = C, y(p, T, m, b); }, t = (function() { p.push = o, p.pop = s, p.replace = u, p.pushpop = l, p.heapify = i, p.updateItem = d, p.nlargest = c, p.nsmallest = h; function p(m) { this.cmp = m ?? a, this.nodes = []; } return p.prototype.push = function(m) { return o(this.nodes, m, this.cmp); }, p.prototype.pop = function() { return s(this.nodes, this.cmp); }, p.prototype.peek = function() { return this.nodes[0]; }, p.prototype.contains = function(m) { return this.nodes.indexOf(m) !== -1; }, p.prototype.replace = function(m) { return u(this.nodes, m, this.cmp); }, p.prototype.pushpop = function(m) { return l(this.nodes, m, this.cmp); }, p.prototype.heapify = function() { return i(this.nodes, this.cmp); }, p.prototype.updateItem = function(m) { return d(this.nodes, m, this.cmp); }, p.prototype.clear = function() { return this.nodes = []; }, p.prototype.empty = function() { return this.nodes.length === 0; }, p.prototype.size = function() { return this.nodes.length; }, p.prototype.clone = function() { var m; return m = new p(), m.nodes = this.nodes.slice(0), m; }, p.prototype.toArray = function() { return this.nodes.slice(0); }, p.prototype.insert = p.prototype.push, p.prototype.top = p.prototype.peek, p.prototype.front = p.prototype.peek, p.prototype.has = p.prototype.contains, p.prototype.copy = p.prototype.clone, p; })(), (function(p, m) { return r.exports = m(); })(this, function() { return t; }); }).call(rd); })(on)), on.exports; } var di, $o; function ad() { return $o || ($o = 1, di = td()), di; } var nd = ad(), Va = /* @__PURE__ */ Oa(nd), id = cr({ root: null, weight: function(e) { return 1; }, directed: !1 }), sd = { dijkstra: function(e) { if (!Le(e)) { var t = arguments; e = { root: t[0], weight: t[1], directed: t[2] }; } var a = id(e), n = a.root, i = a.weight, s = a.directed, o = this, l = i, u = ge(n) ? this.filter(n)[0] : n[0], v = {}, f = {}, c = {}, h = this.byGroup(), d = h.nodes, y = h.edges; y.unmergeBy(function(L) { return L.isLoop(); }); for (var g = function(I) { return v[I.id()]; }, p = function(I, M) { v[I.id()] = M, m.updateItem(I); }, m = new Va(function(L, I) { return g(L) - g(I); }), b = 0; b < d.length; b++) { var w = d[b]; v[w.id()] = w.same(u) ? 0 : 1 / 0, m.push(w); } for (var E = function(I, M) { for (var O = (s ? I.edgesTo(M) : I.edgesWith(M)).intersect(y), V = 1 / 0, G, N = 0; N < O.length; N++) { var F = O[N], U = l(F); (U < V || !G) && (V = U, G = F); } return { edge: G, dist: V }; }; m.size() > 0; ) { var C = m.pop(), x = g(C), T = C.id(); if (c[T] = x, x !== 1 / 0) for (var k = C.neighborhood().intersect(d), D = 0; D < k.length; D++) { var B = k[D], P = B.id(), A = E(C, B), R = x + A.dist; R < g(B) && (p(B, R), f[P] = { node: C, edge: A.edge }); } } return { distanceTo: function(I) { var M = ge(I) ? d.filter(I)[0] : I[0]; return c[M.id()]; }, pathTo: function(I) { var M = ge(I) ? d.filter(I)[0] : I[0], O = [], V = M, G = V.id(); if (M.length > 0) for (O.unshift(M); f[G]; ) { var N = f[G]; O.unshift(N.edge), O.unshift(N.node), V = N.node, G = V.id(); } return o.spawn(O); } }; } }, od = { // 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 t = this.byGroup(), a = t.nodes, n = t.edges, i = a.length, s = new Array(i), o = a, l = function(w) { for (var E = 0; E < s.length; E++) { var C = s[E]; if (C.has(w)) return E; } }, u = 0; u < i; u++) s[u] = this.spawn(a[u]); for (var v = n.sort(function(b, w) { return e(b) - e(w); }), f = 0; f < v.length; f++) { var c = v[f], h = c.source()[0], d = c.target()[0], y = l(h), g = l(d), p = s[y], m = s[g]; y !== g && (o.merge(c), p.merge(m), s.splice(g, 1)); } return o; } }, ud = cr({ root: null, goal: null, weight: function(e) { return 1; }, heuristic: function(e) { return 0; }, directed: !1 }), ld = { // Implemented from pseudocode from wikipedia aStar: function(e) { var t = this.cy(), a = ud(e), n = a.root, i = a.goal, s = a.heuristic, o = a.directed, l = a.weight; n = t.collection(n)[0], i = t.collection(i)[0]; var u = n.id(), v = i.id(), f = {}, c = {}, h = {}, d = new Va(function(G, N) { return c[G.id()] - c[N.id()]; }), y = new ra(), g = {}, p = {}, m = function(N, F) { d.push(N), y.add(F); }, b, w, E = function() { b = d.pop(), w = b.id(), y.delete(w); }, C = function(N) { return y.has(N); }; m(n, u), f[u] = 0, c[u] = s(n); for (var x = 0; d.size() > 0; ) { if (E(), x++, w === v) { for (var T = [], k = i, D = v, B = p[D]; T.unshift(k), B != null && T.unshift(B), k = g[D], k != null; ) D = k.id(), B = p[D]; return { found: !0, distance: f[w], path: this.spawn(T), steps: x }; } h[w] = !0; for (var P = b._private.edges, A = 0; A < P.length; A++) { var R = P[A]; if (this.hasElementWithId(R.id()) && !(o && R.data("source") !== w)) { var L = R.source(), I = R.target(), M = L.id() !== w ? L : I, O = M.id(); if (this.hasElementWithId(O) && !h[O]) { var V = f[w] + l(R); if (!C(O)) { f[O] = V, c[O] = V + s(M), m(M, O), g[O] = b, p[O] = R; continue; } V < f[O] && (f[O] = V, c[O] = V + s(M), g[O] = b, p[O] = R); } } } } return { found: !1, distance: void 0, path: void 0, steps: x }; } }, vd = cr({ weight: function(e) { return 1; }, directed: !1 }), fd = { // Implemented from pseudocode from wikipedia floydWarshall: function(e) { for (var t = this.cy(), a = vd(e), n = a.weight, i = a.directed, s = n, o = this.byGroup(), l = o.nodes, u = o.edges, v = l.length, f = v * v, c = function(U) { return l.indexOf(U); }, h = function(U) { return l[U]; }, d = new Array(f), y = 0; y < f; y++) { var g = y % v, p = (y - g) / v; p === g ? d[y] = 0 : d[y] = 1 / 0; } for (var m = new Array(f), b = new Array(f), w = 0; w < u.length; w++) { var E = u[w], C = E.source()[0], x = E.target()[0]; if (C !== x) { var T = c(C), k = c(x), D = T * v + k, B = s(E); if (d[D] > B && (d[D] = B, m[D] = k, b[D] = E), !i) { var P = k * v + T; !i && d[P] > B && (d[P] = B, m[P] = T, b[P] = E); } } } for (var A = 0; A < v; A++) for (var R = 0; R < v; R++) for (var L = R * v + A, I = 0; I < v; I++) { var M = R * v + I, O = A * v + I; d[L] + d[O] < d[M] && (d[M] = d[L] + d[O], m[M] = m[L]); } var V = function(U) { return (ge(U) ? t.filter(U) : U)[0]; }, G = function(U) { return c(V(U)); }, N = { distance: function(U, Q) { var K = G(U), j = G(Q); return d[K * v + j]; }, path: function(U, Q) { var K = G(U), j = G(Q), re = h(K); if (K === j) return re.collection(); if (m[K * v + j] == null) return t.collection(); var ne = t.collection(), J = K, z; for (ne.merge(re); K !== j; ) J = K, K = m[K * v + j], z = b[J * v + K], ne.merge(z), ne.merge(h(K)); return ne; } }; return N; } // floydWarshall }, cd = cr({ weight: function(e) { return 1; }, directed: !1, root: null }), dd = { // Implemented from pseudocode from wikipedia bellmanFord: function(e) { var t = this, a = cd(e), n = a.weight, i = a.directed, s = a.root, o = n, l = this, u = this.cy(), v = this.byGroup(), f = v.edges, c = v.nodes, h = c.length, d = new Xr(), y = !1, g = []; s = u.collection(s)[0], f.unmergeBy(function(Ce) { return Ce.isLoop(); }); for (var p = f.length, m = function(we) { var ye = d.get(we.id()); return ye || (ye = {}, d.set(we.id(), ye)), ye; }, b = function(we) { return (ge(we) ? u.$(we) : we)[0]; }, w = function(we) { return m(b(we)).dist; }, E = function(we) { for (var ye = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : s, ie = b(we), de = [], he = ie; ; ) { if (he == null) return t.spawn(); var Ee = m(he), pe = Ee.edge, Se = Ee.pred; if (de.unshift(he[0]), he.same(ye) && de.length > 0) break; pe != null && de.unshift(pe), he = Se; } return l.spawn(de); }, C = 0; C < h; C++) { var x = c[C], T = m(x); x.same(s) ? T.dist = 0 : T.dist = 1 / 0, T.pred = null, T.edge = null; } for (var k = !1, D = function(we, ye, ie, de, he, Ee) { var pe = de.dist + Ee; pe < he.dist && !ie.same(de.edge) && (he.dist = pe, he.pred = we, he.edge = ie, k = !0); }, B = 1; B < h; B++) { k = !1; for (var P = 0; P < p; P++) { var A = f[P], R = A.source(), L = A.target(), I = o(A), M = m(R), O = m(L); D(R, L, A, M, O, I), i || D(L, R, A, O, M, I); } if (!k) break; } if (k) for (var V = [], G = 0; G < p; G++) { var N = f[G], F = N.source(), U = N.target(), Q = o(N), K = m(F).dist, j = m(U).dist; if (K + Q < j || !i && j + Q < K) if (y || (Ve("Graph contains a negative weight cycle for Bellman-Ford"), y = !0), e.findNegativeWeightCycles !== !1) { var re = []; K + Q < j && re.push(F), !i && j + Q < K && re.push(U); for (var ne = re.length, J = 0; J < ne; J++) { var z = re[J], q = [z]; q.push(m(z).edge); for (var H = m(z).pred; q.indexOf(H) === -1; ) q.push(H), q.push(m(H).edge), H = m(H).pred; q = q.slice(q.indexOf(H)); for (var Y = q[0].id(), te = 0, ce = 2; ce < q.length; ce += 2) q[ce].id() < Y && (Y = q[ce].id(), te = ce); q = q.slice(te).concat(q.slice(0, te)), q.push(q[0]); var Ae = q.map(function(Ce) { return Ce.id(); }).join(","); V.indexOf(Ae) === -1 && (g.push(l.spawn(q)), V.push(Ae)); } } else break; } return { distanceTo: w, pathTo: E, hasNegativeWeightCycle: y, negativeWeightCycles: g }; } // bellmanFord }, hd = Math.sqrt(2), gd = function(e, t, a) { a.length === 0 && $e("Karger-Stein must be run on a connected (sub)graph"); for (var n = a[e], i = n[1], s = n[2], o = t[i], l = t[s], u = a, v = u.length - 1; v >= 0; v--) { var f = u[v], c = f[1], h = f[2]; (t[c] === o && t[h] === l || t[c] === l && t[h] === o) && u.splice(v, 1); } for (var d = 0; d < u.length; d++) { var y = u[d]; y[1] === l ? (u[d] = y.slice(), u[d][1] = o) : y[2] === l && (u[d] = y.slice(), u[d][2] = o); } for (var g = 0; g < t.length; g++) t[g] === l && (t[g] = o); return u; }, hi = function(e, t, a, n) { for (; a > n; ) { var i = Math.floor(Math.random() * t.length); t = gd(i, e, t), a--; } return t; }, pd = { // Computes the minimum cut of an undirected graph // Returns the correct answer with high probability kargerStein: function() { var e = this, t = this.byGroup(), a = t.nodes, n = t.edges; n.unmergeBy(function(O) { return O.isLoop(); }); var i = a.length, s = n.length, o = Math.ceil(Math.pow(Math.log(i) / Math.LN2, 2)), l = Math.floor(i / hd); if (i < 2) { $e("At least 2 nodes are required for Karger-Stein algorithm"); return; } for (var u = [], v = 0; v < s; v++) { var f = n[v]; u.push([v, a.indexOf(f.source()), a.indexOf(f.target())]); } for (var c = 1 / 0, h = [], d = new Array(i), y = new Array(i), g = new Array(i), p = function(V, G) { for (var N = 0; N < i; N++) G[N] = V[N]; }, m = 0; m <= o; m++) { for (var b = 0; b < i; b++) y[b] = b; var w = hi(y, u.slice(), i, l), E = w.slice(); p(y, g); var C = hi(y, w, l, 2), x = hi(g, E, l, 2); C.length <= x.length && C.length < c ? (c = C.length, h = C, p(y, d)) : x.length <= C.length && x.length < c && (c = x.length, h = x, p(g, d)); } for (var T = this.spawn(h.map(function(O) { return n[O[0]]; })), k = this.spawn(), D = this.spawn(), B = d[0], P = 0; P < d.length; P++) { var A = d[P], R = a[P]; A === B ? k.merge(R) : D.merge(R); } var L = function(V) { var G = e.spawn(); return V.forEach(function(N) { G.merge(N), N.connectedEdges().forEach(function(F) { e.contains(F) && !T.contains(F) && G.merge(F); }); }), G; }, I = [L(k), L(D)], M = { cut: T, components: I, // n.b. partitions are included to be compatible with the old api spec // (could be removed in a future major version) partition1: k, partition2: D }; return M; } }, gi, yd = function(e) { return { x: e.x, y: e.y }; }, On = function(e, t, a) { return { x: e.x * t + a.x, y: e.y * t + a.y }; }, yv = function(e, t, a) { return { x: (e.x - a.x) / t, y: (e.y - a.y) / t }; }, Wt = function(e) { return { x: e[0], y: e[1] }; }, md = function(e) { for (var t = 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 = t; i < a; i++) { var s = e[i]; isFinite(s) && (n = Math.min(s, n)); } return n; }, bd = function(e) { for (var t = 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 = t; i < a; i++) { var s = e[i]; isFinite(s) && (n = Math.max(s, n)); } return n; }, wd = function(e) { for (var t = 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, s = t; s < a; s++) { var o = e[s]; isFinite(o) && (n += o, i++); } return n / i; }, xd = function(e) { var t = 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, s = arguments.length > 5 && arguments[5] !== void 0 ? arguments[5] : !0; n ? e = e.slice(t, a) : (a < e.length && e.splice(a, e.length - a), t > 0 && e.splice(0, t)); for (var o = 0, l = e.length - 1; l >= 0; l--) { var u = e[