mermaid
Version:
Markdown-ish syntax for generating flowcharts, mindmaps, sequence diagrams, class diagrams, gantt charts, git graphs and more.
1,594 lines (1,593 loc) • 956 kB
JavaScript
import {
__name
} from "./chunk-DLQEHMXD.mjs";
// ../../node_modules/.pnpm/cytoscape@3.31.0/node_modules/cytoscape/dist/cytoscape.esm.mjs
function _typeof(obj) {
"@babel/helpers - typeof";
return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(obj2) {
return typeof obj2;
} : function(obj2) {
return obj2 && "function" == typeof Symbol && obj2.constructor === Symbol && obj2 !== Symbol.prototype ? "symbol" : typeof obj2;
}, _typeof(obj);
}
__name(_typeof, "_typeof");
function _classCallCheck(instance, Constructor) {
if (!(instance instanceof Constructor)) {
throw new TypeError("Cannot call a class as a function");
}
}
__name(_classCallCheck, "_classCallCheck");
function _defineProperties(target, props) {
for (var i = 0; i < props.length; i++) {
var descriptor = props[i];
descriptor.enumerable = descriptor.enumerable || false;
descriptor.configurable = true;
if ("value" in descriptor) descriptor.writable = true;
Object.defineProperty(target, descriptor.key, descriptor);
}
}
__name(_defineProperties, "_defineProperties");
function _createClass(Constructor, protoProps, staticProps) {
if (protoProps) _defineProperties(Constructor.prototype, protoProps);
if (staticProps) _defineProperties(Constructor, staticProps);
Object.defineProperty(Constructor, "prototype", {
writable: false
});
return Constructor;
}
__name(_createClass, "_createClass");
function _defineProperty$1(obj, key, value) {
if (key in obj) {
Object.defineProperty(obj, key, {
value,
enumerable: true,
configurable: true,
writable: true
});
} else {
obj[key] = value;
}
return obj;
}
__name(_defineProperty$1, "_defineProperty$1");
function _slicedToArray(arr, i) {
return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest();
}
__name(_slicedToArray, "_slicedToArray");
function _toConsumableArray(arr) {
return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread();
}
__name(_toConsumableArray, "_toConsumableArray");
function _arrayWithoutHoles(arr) {
if (Array.isArray(arr)) return _arrayLikeToArray(arr);
}
__name(_arrayWithoutHoles, "_arrayWithoutHoles");
function _arrayWithHoles(arr) {
if (Array.isArray(arr)) return arr;
}
__name(_arrayWithHoles, "_arrayWithHoles");
function _iterableToArray(iter) {
if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter);
}
__name(_iterableToArray, "_iterableToArray");
function _iterableToArrayLimit(arr, i) {
var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"];
if (_i == null) return;
var _arr = [];
var _n = true;
var _d = false;
var _s, _e;
try {
for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) {
_arr.push(_s.value);
if (i && _arr.length === i) break;
}
} catch (err) {
_d = true;
_e = err;
} finally {
try {
if (!_n && _i["return"] != null) _i["return"]();
} finally {
if (_d) throw _e;
}
}
return _arr;
}
__name(_iterableToArrayLimit, "_iterableToArrayLimit");
function _unsupportedIterableToArray(o, minLen) {
if (!o) return;
if (typeof o === "string") return _arrayLikeToArray(o, minLen);
var n = Object.prototype.toString.call(o).slice(8, -1);
if (n === "Object" && o.constructor) n = o.constructor.name;
if (n === "Map" || n === "Set") return Array.from(o);
if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);
}
__name(_unsupportedIterableToArray, "_unsupportedIterableToArray");
function _arrayLikeToArray(arr, len) {
if (len == null || len > arr.length) len = arr.length;
for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];
return arr2;
}
__name(_arrayLikeToArray, "_arrayLikeToArray");
function _nonIterableSpread() {
throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
}
__name(_nonIterableSpread, "_nonIterableSpread");
function _nonIterableRest() {
throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
}
__name(_nonIterableRest, "_nonIterableRest");
function _createForOfIteratorHelper(o, allowArrayLike) {
var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"];
if (!it) {
if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") {
if (it) o = it;
var i = 0;
var F = /* @__PURE__ */ __name(function() {
}, "F");
return {
s: F,
n: /* @__PURE__ */ __name(function() {
if (i >= o.length) return {
done: true
};
return {
done: false,
value: o[i++]
};
}, "n"),
e: /* @__PURE__ */ __name(function(e) {
throw e;
}, "e"),
f: F
};
}
throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
}
var normalCompletion = true, didErr = false, err;
return {
s: /* @__PURE__ */ __name(function() {
it = it.call(o);
}, "s"),
n: /* @__PURE__ */ __name(function() {
var step3 = it.next();
normalCompletion = step3.done;
return step3;
}, "n"),
e: /* @__PURE__ */ __name(function(e) {
didErr = true;
err = e;
}, "e"),
f: /* @__PURE__ */ __name(function() {
try {
if (!normalCompletion && it.return != null) it.return();
} finally {
if (didErr) throw err;
}
}, "f")
};
}
__name(_createForOfIteratorHelper, "_createForOfIteratorHelper");
var _window = typeof window === "undefined" ? null : window;
var navigator = _window ? _window.navigator : null;
_window ? _window.document : null;
var typeofstr = _typeof("");
var typeofobj = _typeof({});
var typeoffn = _typeof(function() {
});
var typeofhtmlele = typeof HTMLElement === "undefined" ? "undefined" : _typeof(HTMLElement);
var instanceStr = /* @__PURE__ */ __name(function instanceStr2(obj) {
return obj && obj.instanceString && fn$6(obj.instanceString) ? obj.instanceString() : null;
}, "instanceStr");
var string = /* @__PURE__ */ __name(function string2(obj) {
return obj != null && _typeof(obj) == typeofstr;
}, "string");
var fn$6 = /* @__PURE__ */ __name(function fn(obj) {
return obj != null && _typeof(obj) === typeoffn;
}, "fn");
var array = /* @__PURE__ */ __name(function array2(obj) {
return !elementOrCollection(obj) && (Array.isArray ? Array.isArray(obj) : obj != null && obj instanceof Array);
}, "array");
var plainObject = /* @__PURE__ */ __name(function plainObject2(obj) {
return obj != null && _typeof(obj) === typeofobj && !array(obj) && obj.constructor === Object;
}, "plainObject");
var object = /* @__PURE__ */ __name(function object2(obj) {
return obj != null && _typeof(obj) === typeofobj;
}, "object");
var number$1 = /* @__PURE__ */ __name(function number(obj) {
return obj != null && _typeof(obj) === _typeof(1) && !isNaN(obj);
}, "number");
var integer = /* @__PURE__ */ __name(function integer2(obj) {
return number$1(obj) && Math.floor(obj) === obj;
}, "integer");
var htmlElement = /* @__PURE__ */ __name(function htmlElement2(obj) {
if ("undefined" === typeofhtmlele) {
return void 0;
} else {
return null != obj && obj instanceof HTMLElement;
}
}, "htmlElement");
var elementOrCollection = /* @__PURE__ */ __name(function elementOrCollection2(obj) {
return element(obj) || collection(obj);
}, "elementOrCollection");
var element = /* @__PURE__ */ __name(function element2(obj) {
return instanceStr(obj) === "collection" && obj._private.single;
}, "element");
var collection = /* @__PURE__ */ __name(function collection2(obj) {
return instanceStr(obj) === "collection" && !obj._private.single;
}, "collection");
var core = /* @__PURE__ */ __name(function core2(obj) {
return instanceStr(obj) === "core";
}, "core");
var stylesheet = /* @__PURE__ */ __name(function stylesheet2(obj) {
return instanceStr(obj) === "stylesheet";
}, "stylesheet");
var event = /* @__PURE__ */ __name(function event2(obj) {
return instanceStr(obj) === "event";
}, "event");
var emptyString = /* @__PURE__ */ __name(function emptyString2(obj) {
if (obj === void 0 || obj === null) {
return true;
} else if (obj === "" || obj.match(/^\s+$/)) {
return true;
}
return false;
}, "emptyString");
var domElement = /* @__PURE__ */ __name(function domElement2(obj) {
if (typeof HTMLElement === "undefined") {
return false;
} else {
return obj instanceof HTMLElement;
}
}, "domElement");
var boundingBox = /* @__PURE__ */ __name(function boundingBox2(obj) {
return plainObject(obj) && number$1(obj.x1) && number$1(obj.x2) && number$1(obj.y1) && number$1(obj.y2);
}, "boundingBox");
var promise = /* @__PURE__ */ __name(function promise2(obj) {
return object(obj) && fn$6(obj.then);
}, "promise");
var ms = /* @__PURE__ */ __name(function ms2() {
return navigator && navigator.userAgent.match(/msie|trident|edge/i);
}, "ms");
var memoize$1 = /* @__PURE__ */ __name(function memoize(fn3, keyFn) {
if (!keyFn) {
keyFn = /* @__PURE__ */ __name(function keyFn2() {
if (arguments.length === 1) {
return arguments[0];
} else if (arguments.length === 0) {
return "undefined";
}
var args = [];
for (var i = 0; i < arguments.length; i++) {
args.push(arguments[i]);
}
return args.join("$");
}, "keyFn");
}
var memoizedFn = /* @__PURE__ */ __name(function memoizedFn2() {
var self2 = this;
var args = arguments;
var ret;
var k = keyFn.apply(self2, args);
var cache3 = memoizedFn2.cache;
if (!(ret = cache3[k])) {
ret = cache3[k] = fn3.apply(self2, args);
}
return ret;
}, "memoizedFn");
memoizedFn.cache = {};
return memoizedFn;
}, "memoize");
var camel2dash = memoize$1(function(str) {
return str.replace(/([A-Z])/g, function(v) {
return "-" + v.toLowerCase();
});
});
var dash2camel = memoize$1(function(str) {
return str.replace(/(-\w)/g, function(v) {
return v[1].toUpperCase();
});
});
var prependCamel = memoize$1(function(prefix, str) {
return prefix + str[0].toUpperCase() + str.substring(1);
}, function(prefix, str) {
return prefix + "$" + str;
});
var capitalize = /* @__PURE__ */ __name(function capitalize2(str) {
if (emptyString(str)) {
return str;
}
return str.charAt(0).toUpperCase() + str.substring(1);
}, "capitalize");
var number2 = "(?:[-+]?(?:(?:\\d+|\\d*\\.\\d+)(?:[Ee][+-]?\\d+)?))";
var rgba = "rgb[a]?\\((" + number2 + "[%]?)\\s*,\\s*(" + number2 + "[%]?)\\s*,\\s*(" + number2 + "[%]?)(?:\\s*,\\s*(" + number2 + "))?\\)";
var rgbaNoBackRefs = "rgb[a]?\\((?:" + number2 + "[%]?)\\s*,\\s*(?:" + number2 + "[%]?)\\s*,\\s*(?:" + number2 + "[%]?)(?:\\s*,\\s*(?:" + number2 + "))?\\)";
var hsla = "hsl[a]?\\((" + number2 + ")\\s*,\\s*(" + number2 + "[%])\\s*,\\s*(" + number2 + "[%])(?:\\s*,\\s*(" + number2 + "))?\\)";
var hslaNoBackRefs = "hsl[a]?\\((?:" + number2 + ")\\s*,\\s*(?:" + number2 + "[%])\\s*,\\s*(?:" + number2 + "[%])(?:\\s*,\\s*(?:" + number2 + "))?\\)";
var hex3 = "\\#[0-9a-fA-F]{3}";
var hex6 = "\\#[0-9a-fA-F]{6}";
var ascending = /* @__PURE__ */ __name(function ascending2(a, b) {
if (a < b) {
return -1;
} else if (a > b) {
return 1;
} else {
return 0;
}
}, "ascending");
var descending = /* @__PURE__ */ __name(function descending2(a, b) {
return -1 * ascending(a, b);
}, "descending");
var extend = Object.assign != null ? Object.assign.bind(Object) : function(tgt) {
var args = arguments;
for (var i = 1; i < args.length; i++) {
var obj = args[i];
if (obj == null) {
continue;
}
var keys = Object.keys(obj);
for (var j = 0; j < keys.length; j++) {
var k = keys[j];
tgt[k] = obj[k];
}
}
return tgt;
};
var hex2tuple = /* @__PURE__ */ __name(function hex2tuple2(hex) {
if (!(hex.length === 4 || hex.length === 7) || hex[0] !== "#") {
return;
}
var shortHex = hex.length === 4;
var r, g, b;
var base = 16;
if (shortHex) {
r = parseInt(hex[1] + hex[1], base);
g = parseInt(hex[2] + hex[2], base);
b = parseInt(hex[3] + hex[3], base);
} else {
r = parseInt(hex[1] + hex[2], base);
g = parseInt(hex[3] + hex[4], base);
b = parseInt(hex[5] + hex[6], base);
}
return [r, g, b];
}, "hex2tuple");
var hsl2tuple = /* @__PURE__ */ __name(function hsl2tuple2(hsl) {
var ret;
var h, s, l, a, r, g, b;
function hue2rgb(p3, q2, t) {
if (t < 0) t += 1;
if (t > 1) t -= 1;
if (t < 1 / 6) return p3 + (q2 - p3) * 6 * t;
if (t < 1 / 2) return q2;
if (t < 2 / 3) return p3 + (q2 - p3) * (2 / 3 - t) * 6;
return p3;
}
__name(hue2rgb, "hue2rgb");
var m = new RegExp("^" + hsla + "$").exec(hsl);
if (m) {
h = parseInt(m[1]);
if (h < 0) {
h = (360 - -1 * h % 360) % 360;
} else if (h > 360) {
h = h % 360;
}
h /= 360;
s = parseFloat(m[2]);
if (s < 0 || s > 100) {
return;
}
s = s / 100;
l = parseFloat(m[3]);
if (l < 0 || l > 100) {
return;
}
l = l / 100;
a = m[4];
if (a !== void 0) {
a = parseFloat(a);
if (a < 0 || a > 1) {
return;
}
}
if (s === 0) {
r = g = b = Math.round(l * 255);
} else {
var q = l < 0.5 ? l * (1 + s) : l + s - l * s;
var p2 = 2 * l - q;
r = Math.round(255 * hue2rgb(p2, q, h + 1 / 3));
g = Math.round(255 * hue2rgb(p2, q, h));
b = Math.round(255 * hue2rgb(p2, q, h - 1 / 3));
}
ret = [r, g, b, a];
}
return ret;
}, "hsl2tuple");
var rgb2tuple = /* @__PURE__ */ __name(function rgb2tuple2(rgb) {
var ret;
var m = new RegExp("^" + rgba + "$").exec(rgb);
if (m) {
ret = [];
var isPct = [];
for (var i = 1; i <= 3; i++) {
var channel = m[i];
if (channel[channel.length - 1] === "%") {
isPct[i] = true;
}
channel = parseFloat(channel);
if (isPct[i]) {
channel = channel / 100 * 255;
}
if (channel < 0 || channel > 255) {
return;
}
ret.push(Math.floor(channel));
}
var atLeastOneIsPct = isPct[1] || isPct[2] || isPct[3];
var allArePct = isPct[1] && isPct[2] && isPct[3];
if (atLeastOneIsPct && !allArePct) {
return;
}
var alpha = m[4];
if (alpha !== void 0) {
alpha = parseFloat(alpha);
if (alpha < 0 || alpha > 1) {
return;
}
ret.push(alpha);
}
}
return ret;
}, "rgb2tuple");
var colorname2tuple = /* @__PURE__ */ __name(function colorname2tuple2(color) {
return colors[color.toLowerCase()];
}, "colorname2tuple");
var color2tuple = /* @__PURE__ */ __name(function color2tuple2(color) {
return (array(color) ? color : null) || colorname2tuple(color) || hex2tuple(color) || rgb2tuple(color) || hsl2tuple(color);
}, "color2tuple");
var colors = {
// 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 setMap = /* @__PURE__ */ __name(function setMap2(options2) {
var obj = options2.map;
var keys = options2.keys;
var l = keys.length;
for (var i = 0; i < l; i++) {
var key = keys[i];
if (plainObject(key)) {
throw Error("Tried to set map with object key");
}
if (i < keys.length - 1) {
if (obj[key] == null) {
obj[key] = {};
}
obj = obj[key];
} else {
obj[key] = options2.value;
}
}
}, "setMap");
var getMap = /* @__PURE__ */ __name(function getMap2(options2) {
var obj = options2.map;
var keys = options2.keys;
var l = keys.length;
for (var i = 0; i < l; i++) {
var key = keys[i];
if (plainObject(key)) {
throw Error("Tried to get map with object key");
}
obj = obj[key];
if (obj == null) {
return obj;
}
}
return obj;
}, "getMap");
function isObject(value) {
var type = typeof value;
return value != null && (type == "object" || type == "function");
}
__name(isObject, "isObject");
var isObject_1 = isObject;
var commonjsGlobal = typeof globalThis !== "undefined" ? globalThis : typeof window !== "undefined" ? window : typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : {};
function createCommonjsModule(fn3, module) {
return module = { exports: {} }, fn3(module, module.exports), module.exports;
}
__name(createCommonjsModule, "createCommonjsModule");
var freeGlobal = typeof commonjsGlobal == "object" && commonjsGlobal && commonjsGlobal.Object === Object && commonjsGlobal;
var _freeGlobal = freeGlobal;
var freeSelf = typeof self == "object" && self && self.Object === Object && self;
var root = _freeGlobal || freeSelf || Function("return this")();
var _root = root;
var now = /* @__PURE__ */ __name(function() {
return _root.Date.now();
}, "now");
var now_1 = now;
var reWhitespace = /\s/;
function trimmedEndIndex(string3) {
var index = string3.length;
while (index-- && reWhitespace.test(string3.charAt(index))) {
}
return index;
}
__name(trimmedEndIndex, "trimmedEndIndex");
var _trimmedEndIndex = trimmedEndIndex;
var reTrimStart = /^\s+/;
function baseTrim(string3) {
return string3 ? string3.slice(0, _trimmedEndIndex(string3) + 1).replace(reTrimStart, "") : string3;
}
__name(baseTrim, "baseTrim");
var _baseTrim = baseTrim;
var Symbol$1 = _root.Symbol;
var _Symbol = Symbol$1;
var objectProto$5 = Object.prototype;
var hasOwnProperty$4 = objectProto$5.hasOwnProperty;
var nativeObjectToString$1 = objectProto$5.toString;
var symToStringTag$1 = _Symbol ? _Symbol.toStringTag : void 0;
function getRawTag(value) {
var isOwn = hasOwnProperty$4.call(value, symToStringTag$1), tag = value[symToStringTag$1];
try {
value[symToStringTag$1] = void 0;
var unmasked = true;
} catch (e) {
}
var result = nativeObjectToString$1.call(value);
if (unmasked) {
if (isOwn) {
value[symToStringTag$1] = tag;
} else {
delete value[symToStringTag$1];
}
}
return result;
}
__name(getRawTag, "getRawTag");
var _getRawTag = getRawTag;
var objectProto$4 = Object.prototype;
var nativeObjectToString = objectProto$4.toString;
function objectToString(value) {
return nativeObjectToString.call(value);
}
__name(objectToString, "objectToString");
var _objectToString = objectToString;
var nullTag = "[object Null]";
var undefinedTag = "[object Undefined]";
var symToStringTag = _Symbol ? _Symbol.toStringTag : void 0;
function baseGetTag(value) {
if (value == null) {
return value === void 0 ? undefinedTag : nullTag;
}
return symToStringTag && symToStringTag in Object(value) ? _getRawTag(value) : _objectToString(value);
}
__name(baseGetTag, "baseGetTag");
var _baseGetTag = baseGetTag;
function isObjectLike(value) {
return value != null && typeof value == "object";
}
__name(isObjectLike, "isObjectLike");
var isObjectLike_1 = isObjectLike;
var symbolTag = "[object Symbol]";
function isSymbol(value) {
return typeof value == "symbol" || isObjectLike_1(value) && _baseGetTag(value) == symbolTag;
}
__name(isSymbol, "isSymbol");
var isSymbol_1 = isSymbol;
var NAN = 0 / 0;
var reIsBadHex = /^[-+]0x[0-9a-f]+$/i;
var reIsBinary = /^0b[01]+$/i;
var reIsOctal = /^0o[0-7]+$/i;
var freeParseInt = parseInt;
function toNumber(value) {
if (typeof value == "number") {
return value;
}
if (isSymbol_1(value)) {
return NAN;
}
if (isObject_1(value)) {
var other = typeof value.valueOf == "function" ? value.valueOf() : value;
value = isObject_1(other) ? other + "" : other;
}
if (typeof value != "string") {
return value === 0 ? value : +value;
}
value = _baseTrim(value);
var isBinary = reIsBinary.test(value);
return isBinary || reIsOctal.test(value) ? freeParseInt(value.slice(2), isBinary ? 2 : 8) : reIsBadHex.test(value) ? NAN : +value;
}
__name(toNumber, "toNumber");
var toNumber_1 = toNumber;
var FUNC_ERROR_TEXT$1 = "Expected a function";
var nativeMax = Math.max;
var nativeMin = Math.min;
function debounce(func, wait, options2) {
var lastArgs, lastThis, maxWait, result, timerId, lastCallTime, lastInvokeTime = 0, leading = false, maxing = false, trailing = true;
if (typeof func != "function") {
throw new TypeError(FUNC_ERROR_TEXT$1);
}
wait = toNumber_1(wait) || 0;
if (isObject_1(options2)) {
leading = !!options2.leading;
maxing = "maxWait" in options2;
maxWait = maxing ? nativeMax(toNumber_1(options2.maxWait) || 0, wait) : maxWait;
trailing = "trailing" in options2 ? !!options2.trailing : trailing;
}
function invokeFunc(time2) {
var args = lastArgs, thisArg = lastThis;
lastArgs = lastThis = void 0;
lastInvokeTime = time2;
result = func.apply(thisArg, args);
return result;
}
__name(invokeFunc, "invokeFunc");
function leadingEdge(time2) {
lastInvokeTime = time2;
timerId = setTimeout(timerExpired, wait);
return leading ? invokeFunc(time2) : result;
}
__name(leadingEdge, "leadingEdge");
function remainingWait(time2) {
var timeSinceLastCall = time2 - lastCallTime, timeSinceLastInvoke = time2 - lastInvokeTime, timeWaiting = wait - timeSinceLastCall;
return maxing ? nativeMin(timeWaiting, maxWait - timeSinceLastInvoke) : timeWaiting;
}
__name(remainingWait, "remainingWait");
function shouldInvoke(time2) {
var timeSinceLastCall = time2 - lastCallTime, timeSinceLastInvoke = time2 - lastInvokeTime;
return lastCallTime === void 0 || timeSinceLastCall >= wait || timeSinceLastCall < 0 || maxing && timeSinceLastInvoke >= maxWait;
}
__name(shouldInvoke, "shouldInvoke");
function timerExpired() {
var time2 = now_1();
if (shouldInvoke(time2)) {
return trailingEdge(time2);
}
timerId = setTimeout(timerExpired, remainingWait(time2));
}
__name(timerExpired, "timerExpired");
function trailingEdge(time2) {
timerId = void 0;
if (trailing && lastArgs) {
return invokeFunc(time2);
}
lastArgs = lastThis = void 0;
return result;
}
__name(trailingEdge, "trailingEdge");
function cancel() {
if (timerId !== void 0) {
clearTimeout(timerId);
}
lastInvokeTime = 0;
lastArgs = lastCallTime = lastThis = timerId = void 0;
}
__name(cancel, "cancel");
function flush() {
return timerId === void 0 ? result : trailingEdge(now_1());
}
__name(flush, "flush");
function debounced() {
var time2 = now_1(), isInvoking = shouldInvoke(time2);
lastArgs = arguments;
lastThis = this;
lastCallTime = time2;
if (isInvoking) {
if (timerId === void 0) {
return leadingEdge(lastCallTime);
}
if (maxing) {
clearTimeout(timerId);
timerId = setTimeout(timerExpired, wait);
return invokeFunc(lastCallTime);
}
}
if (timerId === void 0) {
timerId = setTimeout(timerExpired, wait);
}
return result;
}
__name(debounced, "debounced");
debounced.cancel = cancel;
debounced.flush = flush;
return debounced;
}
__name(debounce, "debounce");
var debounce_1 = debounce;
var performance$1 = _window ? _window.performance : null;
var pnow = performance$1 && performance$1.now ? function() {
return performance$1.now();
} : function() {
return Date.now();
};
var raf = function() {
if (_window) {
if (_window.requestAnimationFrame) {
return function(fn3) {
_window.requestAnimationFrame(fn3);
};
} else if (_window.mozRequestAnimationFrame) {
return function(fn3) {
_window.mozRequestAnimationFrame(fn3);
};
} else if (_window.webkitRequestAnimationFrame) {
return function(fn3) {
_window.webkitRequestAnimationFrame(fn3);
};
} else if (_window.msRequestAnimationFrame) {
return function(fn3) {
_window.msRequestAnimationFrame(fn3);
};
}
}
return function(fn3) {
if (fn3) {
setTimeout(function() {
fn3(pnow());
}, 1e3 / 60);
}
};
}();
var requestAnimationFrame = /* @__PURE__ */ __name(function requestAnimationFrame2(fn3) {
return raf(fn3);
}, "requestAnimationFrame");
var performanceNow = pnow;
var DEFAULT_HASH_SEED = 9261;
var K = 65599;
var DEFAULT_HASH_SEED_ALT = 5381;
var hashIterableInts = /* @__PURE__ */ __name(function hashIterableInts2(iterator) {
var seed = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : DEFAULT_HASH_SEED;
var hash = seed;
var entry;
for (; ; ) {
entry = iterator.next();
if (entry.done) {
break;
}
hash = hash * K + entry.value | 0;
}
return hash;
}, "hashIterableInts");
var hashInt = /* @__PURE__ */ __name(function hashInt2(num) {
var seed = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : DEFAULT_HASH_SEED;
return seed * K + num | 0;
}, "hashInt");
var hashIntAlt = /* @__PURE__ */ __name(function hashIntAlt2(num) {
var seed = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : DEFAULT_HASH_SEED_ALT;
return (seed << 5) + seed + num | 0;
}, "hashIntAlt");
var combineHashes = /* @__PURE__ */ __name(function combineHashes2(hash1, hash2) {
return hash1 * 2097152 + hash2;
}, "combineHashes");
var combineHashesArray = /* @__PURE__ */ __name(function combineHashesArray2(hashes) {
return hashes[0] * 2097152 + hashes[1];
}, "combineHashesArray");
var hashArrays = /* @__PURE__ */ __name(function hashArrays2(hashes1, hashes2) {
return [hashInt(hashes1[0], hashes2[0]), hashIntAlt(hashes1[1], hashes2[1])];
}, "hashArrays");
var hashIntsArray = /* @__PURE__ */ __name(function hashIntsArray2(ints, seed) {
var entry = {
value: 0,
done: false
};
var i = 0;
var length = ints.length;
var iterator = {
next: /* @__PURE__ */ __name(function next() {
if (i < length) {
entry.value = ints[i++];
} else {
entry.done = true;
}
return entry;
}, "next")
};
return hashIterableInts(iterator, seed);
}, "hashIntsArray");
var hashString = /* @__PURE__ */ __name(function hashString2(str, seed) {
var entry = {
value: 0,
done: false
};
var i = 0;
var length = str.length;
var iterator = {
next: /* @__PURE__ */ __name(function next() {
if (i < length) {
entry.value = str.charCodeAt(i++);
} else {
entry.done = true;
}
return entry;
}, "next")
};
return hashIterableInts(iterator, seed);
}, "hashString");
var hashStrings = /* @__PURE__ */ __name(function hashStrings2() {
return hashStringsArray(arguments);
}, "hashStrings");
var hashStringsArray = /* @__PURE__ */ __name(function hashStringsArray2(strs) {
var hash;
for (var i = 0; i < strs.length; i++) {
var str = strs[i];
if (i === 0) {
hash = hashString(str);
} else {
hash = hashString(str, hash);
}
}
return hash;
}, "hashStringsArray");
var warningsEnabled = true;
var warnSupported = console.warn != null;
var traceSupported = console.trace != null;
var MAX_INT$1 = Number.MAX_SAFE_INTEGER || 9007199254740991;
var trueify = /* @__PURE__ */ __name(function trueify2() {
return true;
}, "trueify");
var falsify = /* @__PURE__ */ __name(function falsify2() {
return false;
}, "falsify");
var zeroify = /* @__PURE__ */ __name(function zeroify2() {
return 0;
}, "zeroify");
var noop$1 = /* @__PURE__ */ __name(function noop() {
}, "noop");
var error = /* @__PURE__ */ __name(function error2(msg) {
throw new Error(msg);
}, "error");
var warnings = /* @__PURE__ */ __name(function warnings2(enabled) {
if (enabled !== void 0) {
warningsEnabled = !!enabled;
} else {
return warningsEnabled;
}
}, "warnings");
var warn = /* @__PURE__ */ __name(function warn2(msg) {
if (!warnings()) {
return;
}
if (warnSupported) {
console.warn(msg);
} else {
console.log(msg);
if (traceSupported) {
console.trace();
}
}
}, "warn");
var clone = /* @__PURE__ */ __name(function clone2(obj) {
return extend({}, obj);
}, "clone");
var copy = /* @__PURE__ */ __name(function copy2(obj) {
if (obj == null) {
return obj;
}
if (array(obj)) {
return obj.slice();
} else if (plainObject(obj)) {
return clone(obj);
} else {
return obj;
}
}, "copy");
var copyArray$1 = /* @__PURE__ */ __name(function copyArray(arr) {
return arr.slice();
}, "copyArray");
var uuid = /* @__PURE__ */ __name(function uuid2(a, b) {
for (
// loop :)
b = a = "";
// b - result , a - numeric letiable
a++ < 36;
//
b += a * 51 & 52 ? (
// return a random number or 4
(a ^ 15 ? (
// generate a random number from 0 to 15
8 ^ Math.random() * (a ^ 20 ? 16 : 4)
) : 4).toString(16)
) : "-"
) {
}
return b;
}, "uuid");
var _staticEmptyObject = {};
var staticEmptyObject = /* @__PURE__ */ __name(function staticEmptyObject2() {
return _staticEmptyObject;
}, "staticEmptyObject");
var defaults$g = /* @__PURE__ */ __name(function defaults(_defaults) {
var keys = Object.keys(_defaults);
return function(opts) {
var filledOpts = {};
for (var i = 0; i < keys.length; i++) {
var key = keys[i];
var optVal = opts == null ? void 0 : opts[key];
filledOpts[key] = optVal === void 0 ? _defaults[key] : optVal;
}
return filledOpts;
};
}, "defaults");
var removeFromArray = /* @__PURE__ */ __name(function removeFromArray2(arr, ele, oneCopy) {
for (var i = arr.length - 1; i >= 0; i--) {
if (arr[i] === ele) {
arr.splice(i, 1);
if (oneCopy) {
break;
}
}
}
}, "removeFromArray");
var clearArray = /* @__PURE__ */ __name(function clearArray2(arr) {
arr.splice(0, arr.length);
}, "clearArray");
var push = /* @__PURE__ */ __name(function push2(arr, otherArr) {
for (var i = 0; i < otherArr.length; i++) {
var el = otherArr[i];
arr.push(el);
}
}, "push");
var getPrefixedProperty = /* @__PURE__ */ __name(function getPrefixedProperty2(obj, propName, prefix) {
if (prefix) {
propName = prependCamel(prefix, propName);
}
return obj[propName];
}, "getPrefixedProperty");
var setPrefixedProperty = /* @__PURE__ */ __name(function setPrefixedProperty2(obj, propName, prefix, value) {
if (prefix) {
propName = prependCamel(prefix, propName);
}
obj[propName] = value;
}, "setPrefixedProperty");
var ObjectMap = /* @__PURE__ */ function() {
function ObjectMap2() {
_classCallCheck(this, ObjectMap2);
this._obj = {};
}
__name(ObjectMap2, "ObjectMap");
_createClass(ObjectMap2, [{
key: "set",
value: /* @__PURE__ */ __name(function set2(key, val) {
this._obj[key] = val;
return this;
}, "set")
}, {
key: "delete",
value: /* @__PURE__ */ __name(function _delete(key) {
this._obj[key] = void 0;
return this;
}, "_delete")
}, {
key: "clear",
value: /* @__PURE__ */ __name(function clear() {
this._obj = {};
}, "clear")
}, {
key: "has",
value: /* @__PURE__ */ __name(function has(key) {
return this._obj[key] !== void 0;
}, "has")
}, {
key: "get",
value: /* @__PURE__ */ __name(function get2(key) {
return this._obj[key];
}, "get")
}]);
return ObjectMap2;
}();
var Map$2 = typeof Map !== "undefined" ? Map : ObjectMap;
var undef = "undefined";
var ObjectSet = /* @__PURE__ */ function() {
function ObjectSet2(arrayOrObjectSet) {
_classCallCheck(this, ObjectSet2);
this._obj = /* @__PURE__ */ Object.create(null);
this.size = 0;
if (arrayOrObjectSet != null) {
var arr;
if (arrayOrObjectSet.instanceString != null && arrayOrObjectSet.instanceString() === this.instanceString()) {
arr = arrayOrObjectSet.toArray();
} else {
arr = arrayOrObjectSet;
}
for (var i = 0; i < arr.length; i++) {
this.add(arr[i]);
}
}
}
__name(ObjectSet2, "ObjectSet");
_createClass(ObjectSet2, [{
key: "instanceString",
value: /* @__PURE__ */ __name(function instanceString4() {
return "set";
}, "instanceString")
}, {
key: "add",
value: /* @__PURE__ */ __name(function add3(val) {
var o = this._obj;
if (o[val] !== 1) {
o[val] = 1;
this.size++;
}
}, "add")
}, {
key: "delete",
value: /* @__PURE__ */ __name(function _delete(val) {
var o = this._obj;
if (o[val] === 1) {
o[val] = 0;
this.size--;
}
}, "_delete")
}, {
key: "clear",
value: /* @__PURE__ */ __name(function clear() {
this._obj = /* @__PURE__ */ Object.create(null);
}, "clear")
}, {
key: "has",
value: /* @__PURE__ */ __name(function has(val) {
return this._obj[val] === 1;
}, "has")
}, {
key: "toArray",
value: /* @__PURE__ */ __name(function toArray2() {
var _this = this;
return Object.keys(this._obj).filter(function(key) {
return _this.has(key);
});
}, "toArray")
}, {
key: "forEach",
value: /* @__PURE__ */ __name(function forEach2(callback, thisArg) {
return this.toArray().forEach(callback, thisArg);
}, "forEach")
}]);
return ObjectSet2;
}();
var Set$1 = (typeof Set === "undefined" ? "undefined" : _typeof(Set)) !== undef ? Set : ObjectSet;
var Element = /* @__PURE__ */ __name(function Element2(cy, params) {
var restore = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : true;
if (cy === void 0 || params === void 0 || !core(cy)) {
error("An element must have a core reference and parameters set");
return;
}
var group2 = params.group;
if (group2 == null) {
if (params.data && params.data.source != null && params.data.target != null) {
group2 = "edges";
} else {
group2 = "nodes";
}
}
if (group2 !== "nodes" && group2 !== "edges") {
error("An element must be of type `nodes` or `edges`; you specified `" + group2 + "`");
return;
}
this.length = 1;
this[0] = this;
var _p = this._private = {
cy,
single: true,
// indicates this is an element
data: params.data || {},
// data object
position: params.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: group2,
// 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: params.selected ? true : false,
// whether it's selected
selectable: params.selectable === void 0 ? true : params.selectable ? true : false,
// whether it's selectable
locked: params.locked ? true : false,
// whether the element is locked (cannot be moved)
grabbed: false,
// whether the element is grabbed by the mouse; renderer sets this privately
grabbable: params.grabbable === void 0 ? true : params.grabbable ? true : false,
// whether the element can be grabbed
pannable: params.pannable === void 0 ? group2 === "edges" ? true : false : params.pannable ? true : false,
// whether the element has passthrough panning enabled
active: false,
// whether the element is active from user interaction
classes: new Set$1(),
// map ( className => true )
animation: {
// object for currently-running animations
current: [],
queue: []
},
rscratch: {},
// object in which the renderer can store information
scratch: params.scratch || {},
// scratch objects
edges: [],
// array of connected edges
children: [],
// array of children
parent: params.parent && params.parent.isNode() ? params.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 (_p.position.x == null) {
_p.position.x = 0;
}
if (_p.position.y == null) {
_p.position.y = 0;
}
if (params.renderedPosition) {
var rpos = params.renderedPosition;
var pan2 = cy.pan();
var zoom2 = cy.zoom();
_p.position = {
x: (rpos.x - pan2.x) / zoom2,
y: (rpos.y - pan2.y) / zoom2
};
}
var classes2 = [];
if (array(params.classes)) {
classes2 = params.classes;
} else if (string(params.classes)) {
classes2 = params.classes.split(/\s+/);
}
for (var i = 0, l = classes2.length; i < l; i++) {
var cls = classes2[i];
if (!cls || cls === "") {
continue;
}
_p.classes.add(cls);
}
this.createEmitter();
var bypass = params.style || params.css;
if (bypass) {
warn("Setting a `style` bypass at element creation should be done only when absolutely necessary. Try to use the stylesheet instead.");
this.style(bypass);
}
if (restore === void 0 || restore) {
this.restore();
}
}, "Element");
var defineSearch = /* @__PURE__ */ __name(function defineSearch2(params) {
params = {
bfs: params.bfs || !params.dfs,
dfs: params.dfs || !params.bfs
};
return /* @__PURE__ */ __name(function searchFn(roots, fn3, directed) {
var options2;
if (plainObject(roots) && !elementOrCollection(roots)) {
options2 = roots;
roots = options2.roots || options2.root;
fn3 = options2.visit;
directed = options2.directed;
}
directed = arguments.length === 2 && !fn$6(fn3) ? fn3 : directed;
fn3 = fn$6(fn3) ? fn3 : function() {
};
var cy = this._private.cy;
var v = roots = string(roots) ? this.filter(roots) : roots;
var Q = [];
var connectedNodes = [];
var connectedBy = {};
var id2depth = {};
var V = {};
var j = 0;
var found;
var _this$byGroup = this.byGroup(), nodes3 = _this$byGroup.nodes, edges3 = _this$byGroup.edges;
for (var i = 0; i < v.length; i++) {
var vi = v[i];
var viId = vi.id();
if (vi.isNode()) {
Q.unshift(vi);
if (params.bfs) {
V[viId] = true;
connectedNodes.push(vi);
}
id2depth[viId] = 0;
}
}
var _loop = /* @__PURE__ */ __name(function _loop2() {
var v3 = params.bfs ? Q.shift() : Q.pop();
var vId = v3.id();
if (params.dfs) {
if (V[vId]) {
return "continue";
}
V[vId] = true;
connectedNodes.push(v3);
}
var depth = id2depth[vId];
var prevEdge = connectedBy[vId];
var src = prevEdge != null ? prevEdge.source() : null;
var tgt = prevEdge != null ? prevEdge.target() : null;
var prevNode = prevEdge == null ? void 0 : v3.same(src) ? tgt[0] : src[0];
var ret = void 0;
ret = fn3(v3, prevEdge, prevNode, j++, depth);
if (ret === true) {
found = v3;
return "break";
}
if (ret === false) {
return "break";
}
var vwEdges = v3.connectedEdges().filter(function(e2) {
return (!directed || e2.source().same(v3)) && edges3.has(e2);
});
for (var _i2 = 0; _i2 < vwEdges.length; _i2++) {
var e = vwEdges[_i2];
var w = e.connectedNodes().filter(function(n) {
return !n.same(v3) && nodes3.has(n);
});
var wId = w.id();
if (w.length !== 0 && !V[wId]) {
w = w[0];
Q.push(w);
if (params.bfs) {
V[wId] = true;
connectedNodes.push(w);
}
connectedBy[wId] = e;
id2depth[wId] = id2depth[vId] + 1;
}
}
}, "_loop");
while (Q.length !== 0) {
var _ret = _loop();
if (_ret === "continue") continue;
if (_ret === "break") break;
}
var connectedEles = cy.collection();
for (var _i = 0; _i < connectedNodes.length; _i++) {
var node = connectedNodes[_i];
var edge = connectedBy[node.id()];
if (edge != null) {
connectedEles.push(edge);
}
connectedEles.push(node);
}
return {
path: cy.collection(connectedEles),
found: cy.collection(found)
};
}, "searchFn");
}, "defineSearch");
var elesfn$v = {
breadthFirstSearch: defineSearch({
bfs: true
}),
depthFirstSearch: defineSearch({
dfs: true
})
};
elesfn$v.bfs = elesfn$v.breadthFirstSearch;
elesfn$v.dfs = elesfn$v.depthFirstSearch;
var heap$1 = createCommonjsModule(function(module, exports) {
(function() {
var Heap, defaultCmp, floor, heapify, heappop, heappush, heappushpop, heapreplace, insort, min4, nlargest, nsmallest, updateItem, _siftdown, _siftup;
floor = Math.floor, min4 = Math.min;
defaultCmp = /* @__PURE__ */ __name(function(x2, y2) {
if (x2 < y2) {
return -1;
}
if (x2 > y2) {
return 1;
}
return 0;
}, "defaultCmp");
insort = /* @__PURE__ */ __name(function(a, x2, lo, hi, cmp) {
var mid;
if (lo == null) {
lo = 0;
}
if (cmp == null) {
cmp = defaultCmp;
}
if (lo < 0) {
throw new Error("lo must be non-negative");
}
if (hi == null) {
hi = a.length;
}
while (lo < hi) {
mid = floor((lo + hi) / 2);
if (cmp(x2, a[mid]) < 0) {
hi = mid;
} else {
lo = mid + 1;
}
}
return [].splice.apply(a, [lo, lo - lo].concat(x2)), x2;
}, "insort");
heappush = /* @__PURE__ */ __name(function(array3, item, cmp) {
if (cmp == null) {
cmp = defaultCmp;
}
array3.push(item);
return _siftdown(array3, 0, array3.length - 1, cmp);
}, "heappush");
heappop = /* @__PURE__ */ __name(function(array3, cmp) {
var lastelt, returnitem;
if (cmp == null) {
cmp = defaultCmp;
}
lastelt = array3.pop();
if (array3.length) {
returnitem = array3[0];
array3[0] = lastelt;
_siftup(array3, 0, cmp);
} else {
returnitem = lastelt;
}
return returnitem;
}, "heappop");
heapreplace = /* @__PURE__ */ __name(function(array3, item, cmp) {
var returnitem;
if (cmp == null) {
cmp = defaultCmp;
}
returnitem = array3[0];
array3[0] = item;
_siftup(array3, 0, cmp);
return returnitem;
}, "heapreplace");
heappushpop = /* @__PURE__ */ __name(function(array3, item, cmp) {
var _ref;
if (cmp == null) {
cmp = defaultCmp;
}
if (array3.length && cmp(array3[0], item) < 0) {
_ref = [array3[0], item], item = _ref[0], array3[0] = _ref[1];
_siftup(array3, 0, cmp);
}
return item;
}, "heappushpop");
heapify = /* @__PURE__ */ __name(function(array3, cmp) {
var i, _i, _len, _ref1, _results, _results1;
if (cmp == null) {
cmp = defaultCmp;
}
_ref1 = function() {
_results1 = [];
for (var _j = 0, _ref = floor(array3.length / 2); 0 <= _ref ? _j < _ref : _j > _ref; 0 <= _ref ? _j++ : _j--) {
_results1.push(_j);
}
return _results1;
}.apply(this).reverse();
_results = [];
for (_i = 0, _len = _ref1.length; _i < _len; _i++) {
i = _ref1[_i];
_results.push(_siftup(array3, i, cmp));
}
return _results;
}, "heapify");
updateItem = /* @__PURE__ */ __name(function(array3, item, cmp) {
var pos;
if (cmp == null) {
cmp = defaultCmp;
}
pos = array3.indexOf(item);
if (pos === -1) {
return;
}
_siftdown(array3, 0, pos, cmp);
return _siftup(array3, pos, cmp);
}, "updateItem");
nlargest = /* @__PURE__ */ __name(function(array3, n, cmp) {
var elem, result, _i, _len, _ref;
if (cmp == null) {
cmp = defaultCmp;
}
result = array3.slice(0, n);
if (!result.length) {
return result;
}
heapify(result, cmp);
_ref = array3.slice(n);
for (_i = 0, _len = _ref.length; _i < _len; _i++) {
elem = _ref[_i];
heappushpop(result, elem, cmp);
}
return result.sort(cmp).reverse();
}, "nlargest");
nsmallest = /* @__PURE__ */ __name(function(array3, n, cmp) {
var elem, los, result, _i, _j, _len, _ref, _ref1, _results;
if (cmp == null) {
cmp = defaultCmp;
}
if (n * 10 <= array3.length) {
result =